project-mobile-command/config/expeditions.json
StillHammer 0953451fea Implement 7 modules: 4 core (game-agnostic) + 3 MC-specific
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>
2025-12-02 16:40:54 +08:00

232 lines
6.0 KiB
JSON

{
"destinations": {
"urban_ruins": {
"type": "urban_ruins",
"base_distance": 15000,
"danger_level": 2,
"loot_potential": "medium",
"travel_speed": 30,
"description": "Abandoned urban area - former residential district with scavenging opportunities",
"events": {
"ambush_chance": 0.2,
"discovery_chance": 0.3,
"breakdown_chance": 0.1
}
},
"military_depot": {
"type": "military_depot",
"base_distance": 25000,
"danger_level": 4,
"loot_potential": "high",
"travel_speed": 20,
"description": "Former military installation - high value weapons and equipment",
"events": {
"ambush_chance": 0.5,
"discovery_chance": 0.4,
"breakdown_chance": 0.15
}
},
"village": {
"type": "village",
"base_distance": 8000,
"danger_level": 1,
"loot_potential": "low",
"travel_speed": 40,
"description": "Small village - basic supplies and potential survivors",
"events": {
"ambush_chance": 0.05,
"discovery_chance": 0.2,
"breakdown_chance": 0.05
}
},
"abandoned_factory": {
"type": "industrial",
"base_distance": 18000,
"danger_level": 3,
"loot_potential": "medium",
"travel_speed": 25,
"description": "Industrial complex - machinery parts and raw materials",
"events": {
"ambush_chance": 0.3,
"discovery_chance": 0.35,
"breakdown_chance": 0.12
}
},
"airfield": {
"type": "military",
"base_distance": 30000,
"danger_level": 5,
"loot_potential": "high",
"travel_speed": 18,
"description": "Abandoned airfield - aviation equipment and fuel reserves",
"events": {
"ambush_chance": 0.6,
"discovery_chance": 0.45,
"breakdown_chance": 0.2
}
}
},
"expeditionRules": {
"max_active": 1,
"event_probability": 0.3,
"supplies_consumption_rate": 1.0,
"min_team_size": 1,
"max_team_size": 6,
"min_fuel_required": 20,
"danger_level_scaling": {
"1": {"enemy_count": 2, "enemy_strength": 0.5},
"2": {"enemy_count": 3, "enemy_strength": 0.7},
"3": {"enemy_count": 4, "enemy_strength": 1.0},
"4": {"enemy_count": 5, "enemy_strength": 1.3},
"5": {"enemy_count": 6, "enemy_strength": 1.5}
}
},
"teamRoles": {
"leader": {
"description": "Expedition commander - improves team coordination",
"bonus": {
"event_success_chance": 0.15,
"navigation_speed": 1.1
}
},
"soldier": {
"description": "Combat specialist - improves combat effectiveness",
"bonus": {
"combat_damage": 1.2,
"ambush_detection": 0.2
}
},
"engineer": {
"description": "Technical expert - repairs equipment and drones",
"bonus": {
"repair_speed": 1.5,
"loot_quality": 1.1
}
},
"medic": {
"description": "Medical specialist - treats injuries and reduces casualties",
"bonus": {
"healing_rate": 1.5,
"casualty_reduction": 0.25
}
},
"scout": {
"description": "Reconnaissance expert - finds hidden loot and avoids danger",
"bonus": {
"discovery_chance": 1.3,
"ambush_avoidance": 0.3
}
}
},
"droneTypes": {
"recon": {
"description": "Reconnaissance drone - reveals map and detects threats",
"bonus": {
"vision_range": 500,
"threat_detection": 0.4
},
"cost": {
"drone_parts": 3,
"electronics": 2
}
},
"combat": {
"description": "Combat drone - provides fire support",
"bonus": {
"combat_damage": 0.3,
"team_protection": 0.2
},
"cost": {
"drone_parts": 5,
"electronics": 3,
"weapon_parts": 2
}
},
"cargo": {
"description": "Cargo drone - increases loot capacity",
"bonus": {
"loot_capacity": 1.5
},
"cost": {
"drone_parts": 4,
"electronics": 1
}
},
"repair": {
"description": "Repair drone - fixes equipment in the field",
"bonus": {
"field_repair": 1.2,
"drone_maintenance": 0.3
},
"cost": {
"drone_parts": 4,
"electronics": 2,
"tools": 1
}
}
},
"lootTables": {
"low": {
"scrap_metal": {"min": 5, "max": 15},
"components": {"min": 1, "max": 3},
"food": {"min": 3, "max": 8},
"fuel": {"min": 5, "max": 15},
"rare_items_chance": 0.05
},
"medium": {
"scrap_metal": {"min": 15, "max": 35},
"components": {"min": 3, "max": 8},
"food": {"min": 8, "max": 15},
"fuel": {"min": 15, "max": 30},
"weapon_parts": {"min": 1, "max": 3},
"rare_items_chance": 0.15
},
"high": {
"scrap_metal": {"min": 35, "max": 60},
"components": {"min": 8, "max": 15},
"food": {"min": 15, "max": 25},
"fuel": {"min": 30, "max": 50},
"weapon_parts": {"min": 3, "max": 8},
"electronics": {"min": 2, "max": 5},
"rare_items_chance": 0.30
}
},
"eventTypes": {
"ambush": {
"description": "Hostile forces ambush the expedition",
"triggers_combat": true,
"avoidable": true
},
"discovery": {
"description": "Team discovers hidden cache of supplies",
"bonus_loot": true,
"avoidable": false
},
"breakdown": {
"description": "Vehicle breakdown - requires repair or delay",
"requires_engineer": true,
"delay_seconds": 120
},
"survivor_encounter": {
"description": "Encounter refugees or survivors",
"choice_required": true,
"outcomes": ["recruit", "trade", "ignore"]
},
"weather_hazard": {
"description": "Severe weather slows progress",
"speed_penalty": 0.5,
"duration_seconds": 180
}
},
"debugMode": false,
"maxActiveExpeditions": 1,
"eventProbability": 0.3,
"suppliesConsumptionRate": 1.0
}