diff --git a/.gitignore b/.gitignore index 2601f9f..c6b1b06 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ obj/ # Claude Code private notes .claude/scratchpad/ +.claude/skills/ # OS files .DS_Store @@ -28,3 +29,8 @@ CardSets/* # Preview image (generate your own) # preview.png + +# Steam Workshop (local config) +workshop-staging/ +workshop.vdf +workshop-upload.sh diff --git a/CLAUDE.md b/CLAUDE.md index 38ee892..c894cf8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -36,6 +36,15 @@ dotnet build TradingCardMod.csproj -c Release ./remove.sh --backup ``` +## Project Skills + +Two workflow skills are available in this project: + +- `/build` - Build and deploy locally for testing (runs `dotnet build` + `./deploy.sh`) +- `/deploy` - Build Release and stage for Steam Workshop upload (uses `workshop-upload.sh`) + +Skills are defined in `.claude/skills/`. + ## Testing ```bash @@ -163,8 +172,8 @@ Key namespaces and APIs from the game: ## Current Project Status -**Phase:** 3 Complete - Storage & Pack System ✅ -**Status:** Ready for first release candidate +**Phase:** 3 - Storage System ✅ +**Status:** Ready for first release **Project Plan:** `.claude/scratchpad/PROJECT_PLAN.md` **Technical Analysis:** `.claude/scratchpad/item-system-analysis.md` @@ -177,7 +186,6 @@ Key namespaces and APIs from the game: - "TradingCard": Identifies trading cards - "BinderSheet": Identifies binder sheet items - "CardBinderContent": Parent tag for both cards and binder sheets (enables hierarchical storage) -- Card packs with gacha-style mechanics (weighted random distribution) - Hierarchical storage system: - **Binder Sheet** (9 slots, weight 0.1): Holds trading cards only - **Card Binder** (12 slots, weight 1.5): Holds trading cards OR binder sheets @@ -185,7 +193,7 @@ Key namespaces and APIs from the game: - Card set exclusion: Prefix folders with `_` to disable loading - ModConfig integration: - Enhanced card info display (set name, number, rarity) - - Mod statistics display (total cards, packs, disabled sets) + - Mod statistics display (total cards, disabled sets) - Debug spawn window with F10 key (for testing): - Spawn storage items (Card Binder, Binder Sheet) - Spawn random cards by rarity @@ -193,9 +201,9 @@ Key namespaces and APIs from the game: - Disassembly support for storage items: - Binder Sheet → 2x Polyethylene Sheet - Card Binder → 4x Polyethylene Sheet - - Cards/packs intentionally have no disassembly (collectibles) + - Cards intentionally have no disassembly (collectibles) - Deploy/remove scripts for quick iteration -- Unit tests for parsing logic and pack system +- Unit tests for parsing logic ### Implementation Approach: Clone + Reflection @@ -208,10 +216,14 @@ Based on analysis of the AdditionalCollectibles mod: 5. **Load sprites** from user files in `CardSets/*/images/` 6. **Attach custom behaviors** for pack opening mechanics +### Upcoming Features + +- **Card packs** with gacha-style mechanics (weighted random distribution) - disabled pending fix +- Additional storage variants or customization options (e.g., larger binders, themed storage boxes) + ### Future Considerations - Investigate new ItemBuilder API (added in recent game update) as potential replacement for reflection-based approach -- Additional storage variants or customization options (e.g., larger binders, themed storage boxes) ### Log File Location diff --git a/src/ModBehaviour.cs b/src/ModBehaviour.cs index 4e1b0ac..7c755ad 100644 --- a/src/ModBehaviour.cs +++ b/src/ModBehaviour.cs @@ -123,8 +123,9 @@ namespace TradingCardMod // Create storage items CreateStorageItems(); - // Create card packs - CreateCardPacks(); + // Card packs disabled - feature not working correctly + // TODO: Fix pack opening mechanics before re-enabling + // CreateCardPacks(); // Set up disassembly formulas for all items SetupDisassembly();