Add card packs that can be opened via right-click Use menu to receive random cards based on weighted slot configurations. Packs support customizable rarity-based or card-specific drop rates. Key features: - CardPack/PackSlot data classes with weighted random selection - PackParser for user-defined pack configurations - PackUsageBehavior extending game's UsageBehavior system - Runtime data lookup to handle Unity serialization limitations - Pack consumption after opening with stack support - Auto-generated default packs per card set Technical notes: - UsageUtilities registration for context menu integration - All non-serializable fields (Dictionary, List<PackSlot>) looked up at runtime from ModBehaviour to survive Unity instantiation - F9 debug spawn now uses InstantiateSync for proper item copies 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
75 lines
3.1 KiB
XML
75 lines
3.1 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
<PropertyGroup>
|
|
<TargetFramework>netstandard2.1</TargetFramework>
|
|
<Nullable>enable</Nullable>
|
|
<LangVersion>8.0</LangVersion>
|
|
<RootNamespace>TradingCardMod</RootNamespace>
|
|
<AssemblyName>TradingCardMod</AssemblyName>
|
|
|
|
<!-- Game installation path -->
|
|
<DuckovPath>/mnt/NV2/SteamLibrary/steamapps/common/Escape from Duckov</DuckovPath>
|
|
|
|
<SubPath>/Duckov_Data/Managed/</SubPath>
|
|
|
|
<!-- Steam Workshop path for mod dependencies -->
|
|
<WorkshopPath>/mnt/NV2/SteamLibrary/steamapps/workshop/content/3167020</WorkshopPath>
|
|
|
|
<!-- HarmonyLoadMod Workshop ID -->
|
|
<HarmonyModId>3589088839</HarmonyModId>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<!-- Game DLL references -->
|
|
<Reference Include="TeamSoda.Duckov.Core">
|
|
<HintPath>$(DuckovPath)$(SubPath)TeamSoda.Duckov.Core.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="TeamSoda.Duckov.Utilities">
|
|
<HintPath>$(DuckovPath)$(SubPath)TeamSoda.Duckov.Utilities.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="TeamSoda.MiniLocalizor">
|
|
<HintPath>$(DuckovPath)$(SubPath)TeamSoda.MiniLocalizor.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="SodaLocalization">
|
|
<HintPath>$(DuckovPath)$(SubPath)SodaLocalization.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="ItemStatsSystem">
|
|
<HintPath>$(DuckovPath)$(SubPath)ItemStatsSystem.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="Duckov">
|
|
<HintPath>$(DuckovPath)$(SubPath)Duckov.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="UnityEngine">
|
|
<HintPath>$(DuckovPath)$(SubPath)UnityEngine.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="UnityEngine.CoreModule">
|
|
<HintPath>$(DuckovPath)$(SubPath)UnityEngine.CoreModule.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="UnityEngine.ImageConversionModule">
|
|
<HintPath>$(DuckovPath)$(SubPath)UnityEngine.ImageConversionModule.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="UnityEngine.InputLegacyModule">
|
|
<HintPath>$(DuckovPath)$(SubPath)UnityEngine.InputLegacyModule.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="UniTask">
|
|
<HintPath>$(DuckovPath)$(SubPath)UniTask.dll</HintPath>
|
|
</Reference>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<!-- Harmony library from HarmonyLoadMod (required dependency) -->
|
|
<Reference Include="$(WorkshopPath)/$(HarmonyModId)/0Harmony.dll"/>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<!-- Exclude non-code files from compilation -->
|
|
<None Include="CardSets/**/*" CopyToOutputDirectory="PreserveNewest" />
|
|
<None Include="info.ini" CopyToOutputDirectory="PreserveNewest" />
|
|
<None Include="preview.png" CopyToOutputDirectory="PreserveNewest" Condition="Exists('preview.png')" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<!-- Exclude test files from main build (they're in the test project) -->
|
|
<Compile Remove="tests/**/*.cs" />
|
|
</ItemGroup>
|
|
</Project>
|