Core Modules (game-agnostic, reusable for WarFactory): - ResourceModule: Inventory, crafting system (465 lines) - StorageModule: Save/load with pub/sub state collection (424 lines) - CombatModule: Combat resolver, damage/armor/morale (580 lines) - EventModule: JSON event scripting with choices/outcomes (651 lines) MC-Specific Modules: - GameModule v2: State machine + event subscriptions (updated) - TrainBuilderModule: 3 wagons, 2-axis balance, performance malus (530 lines) - ExpeditionModule: A→B expeditions, team management, events integration (641 lines) Features: - All modules hot-reload compatible (state preservation) - Pure pub/sub architecture (zero direct coupling) - 7 config files (resources, storage, combat, events, train, expeditions) - 7 test suites (GameModuleTest: 12/12 PASSED) - CMakeLists.txt updated for all modules + tests Total: ~3,500 lines of production code + comprehensive tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
129 lines
2.3 KiB
JSON
129 lines
2.3 KiB
JSON
{
|
|
"resources": {
|
|
"scrap_metal": {
|
|
"maxStack": 100,
|
|
"weight": 1.5,
|
|
"baseValue": 10,
|
|
"lowThreshold": 15
|
|
},
|
|
"ammunition_9mm": {
|
|
"maxStack": 500,
|
|
"weight": 0.01,
|
|
"baseValue": 2,
|
|
"lowThreshold": 100
|
|
},
|
|
"fuel_diesel": {
|
|
"maxStack": 200,
|
|
"weight": 0.8,
|
|
"baseValue": 5,
|
|
"lowThreshold": 30
|
|
},
|
|
"medical_supplies": {
|
|
"maxStack": 50,
|
|
"weight": 0.5,
|
|
"baseValue": 20,
|
|
"lowThreshold": 10
|
|
},
|
|
"repair_kit": {
|
|
"maxStack": 20,
|
|
"weight": 2.0,
|
|
"baseValue": 50,
|
|
"lowThreshold": 3
|
|
},
|
|
"drone_parts": {
|
|
"maxStack": 50,
|
|
"weight": 0.5,
|
|
"baseValue": 30,
|
|
"lowThreshold": 10
|
|
},
|
|
"electronics": {
|
|
"maxStack": 100,
|
|
"weight": 0.2,
|
|
"baseValue": 15,
|
|
"lowThreshold": 20
|
|
},
|
|
"food_rations": {
|
|
"maxStack": 100,
|
|
"weight": 0.3,
|
|
"baseValue": 3,
|
|
"lowThreshold": 25
|
|
},
|
|
"water_clean": {
|
|
"maxStack": 150,
|
|
"weight": 1.0,
|
|
"baseValue": 2,
|
|
"lowThreshold": 30
|
|
},
|
|
"explosives": {
|
|
"maxStack": 30,
|
|
"weight": 1.2,
|
|
"baseValue": 40,
|
|
"lowThreshold": 5
|
|
},
|
|
"drone_recon": {
|
|
"maxStack": 10,
|
|
"weight": 5.0,
|
|
"baseValue": 200,
|
|
"lowThreshold": 2
|
|
},
|
|
"drone_fpv": {
|
|
"maxStack": 10,
|
|
"weight": 3.0,
|
|
"baseValue": 150,
|
|
"lowThreshold": 2
|
|
}
|
|
},
|
|
"recipes": {
|
|
"repair_kit_basic": {
|
|
"inputs": {
|
|
"scrap_metal": 5,
|
|
"electronics": 1
|
|
},
|
|
"outputs": {
|
|
"repair_kit": 1
|
|
},
|
|
"craftTime": 30.0
|
|
},
|
|
"drone_recon": {
|
|
"inputs": {
|
|
"drone_parts": 3,
|
|
"electronics": 2
|
|
},
|
|
"outputs": {
|
|
"drone_recon": 1
|
|
},
|
|
"craftTime": 120.0
|
|
},
|
|
"drone_fpv": {
|
|
"inputs": {
|
|
"drone_parts": 2,
|
|
"electronics": 1,
|
|
"explosives": 1
|
|
},
|
|
"outputs": {
|
|
"drone_fpv": 1
|
|
},
|
|
"craftTime": 90.0
|
|
},
|
|
"ammunition_craft": {
|
|
"inputs": {
|
|
"scrap_metal": 2
|
|
},
|
|
"outputs": {
|
|
"ammunition_9mm": 50
|
|
},
|
|
"craftTime": 20.0
|
|
},
|
|
"explosives_craft": {
|
|
"inputs": {
|
|
"scrap_metal": 3,
|
|
"electronics": 1
|
|
},
|
|
"outputs": {
|
|
"explosives": 2
|
|
},
|
|
"craftTime": 45.0
|
|
}
|
|
}
|
|
}
|