p2-57b gap analysis flagged dangling produces[] refs: adamantine_press / gravity_press → dwarf_master_engineer, royal_infirmary / field_hospital_corps → master_surgeon, grand_chronicle → saga_writer named units that had no JSON. Authored all three in public/resources/units/ matching the unit schema and the shape of their nearest siblings (dwarf_grand_engineer, field_surgeon, loremaster): Great-Person-tier support specialists with logistics blocks, real tech gates (deep_engineering / surgical_practice / rune_archives), upgrade chains, and GP actions consistent with their class. validate-game-data.py PASSes all three (the 90 unrelated failures pre-exist on main). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
129 lines
3.1 KiB
JSON
129 lines
3.1 KiB
JSON
{
|
|
"id": "dwarf_master_engineer",
|
|
"name": "Master Engineer",
|
|
"description": "The pinnacle of dwarven civil engineering — a master who reads load and stress the way others read runes. Where a grand engineer raises fortifications, a master engineer raises whole works: pressure-forges, gravity presses, and the deep machinery that turns raw adamantine into an empire's edge.",
|
|
"unit_type": "support",
|
|
"school": null,
|
|
"domain": "land",
|
|
"attributes": [
|
|
"medium",
|
|
"biological"
|
|
],
|
|
"attack_type": "none",
|
|
"hp": 75,
|
|
"attack": 0,
|
|
"defense": 3,
|
|
"ranged_attack": 0,
|
|
"range": 0,
|
|
"movement": 2,
|
|
"vision": 2,
|
|
"cost": 300,
|
|
"tech_required": "deep_engineering",
|
|
"upgradeable_from": "dwarf_grand_engineer",
|
|
"race_required": "dwarf",
|
|
"faction": "dwarf",
|
|
"can_found_city": false,
|
|
"can_build_improvements": true,
|
|
"flags": [
|
|
"fast_build",
|
|
"instant_fortify",
|
|
"can_build_fortifications",
|
|
"can_build_railroads"
|
|
],
|
|
"mana_cost": null,
|
|
"sprite": "sprites/units/dwarf_master_engineer.png",
|
|
"gender": {
|
|
"male": {
|
|
"name": "Master Engineer",
|
|
"sprite": "sprites/units/dwarf_master_engineer_dwarves_m.png"
|
|
},
|
|
"female": {
|
|
"name": "Master Engineer",
|
|
"sprite": "sprites/units/dwarf_master_engineer_dwarves_f.png"
|
|
}
|
|
},
|
|
"maintenance": 14,
|
|
"encyclopedia": {
|
|
"category": "combat",
|
|
"entry_type": "unit",
|
|
"detail_route": "/military/units",
|
|
"tags": [
|
|
"land",
|
|
"support",
|
|
"none"
|
|
]
|
|
},
|
|
"tier": 6,
|
|
"action_point_capacity": 16,
|
|
"capturable": true,
|
|
"ransom_multiplier": 4.0,
|
|
"great_person_class": "great_engineer",
|
|
"great_person_gpp_type": "engineering",
|
|
"great_person_produces": "wonder_hurry",
|
|
"great_person_action": {
|
|
"action_type": "wonder_hurry",
|
|
"rationale": "Decisive production contribution toward late-era industrial projects and wonders.",
|
|
"max_target_tier": 9,
|
|
"production_value": 1200
|
|
},
|
|
"logistics": {
|
|
"composition": {
|
|
"leader": 1,
|
|
"member": 14
|
|
},
|
|
"inventory": {
|
|
"rations": 150,
|
|
"water": 120,
|
|
"tool_durability": 28,
|
|
"build_kits": 6
|
|
},
|
|
"stats": {
|
|
"str": 30,
|
|
"con": 110,
|
|
"end": 70
|
|
},
|
|
"terrain_movement": {
|
|
"road": 0.5,
|
|
"dirt_road": 0.65,
|
|
"wagon_track": 0.85,
|
|
"trail": 0.8,
|
|
"grass": 1.0,
|
|
"hills": 1.5,
|
|
"forest_open": 1.5,
|
|
"forest_dense": 2.5,
|
|
"mountain": 3.0,
|
|
"snow": 2.0,
|
|
"tundra": 1.5,
|
|
"desert": 2.5,
|
|
"marsh": 3.0,
|
|
"river_ford": 2.0,
|
|
"river_unfordable": "blocked",
|
|
"deep_water": "blocked"
|
|
},
|
|
"carriers": {
|
|
"foot_runners": 2
|
|
},
|
|
"supply": {
|
|
"range_turns": 6,
|
|
"decline_rate": 0.8
|
|
},
|
|
"slots": {
|
|
"ox_wagon": {
|
|
"enabling_tech": "animal_husbandry",
|
|
"enabling_resources": [
|
|
"cattle"
|
|
],
|
|
"provides": "+2 carry-capacity, fodder consumption",
|
|
"count": 1
|
|
},
|
|
"officer_bird": {
|
|
"enabling_tech": "falconry_command",
|
|
"enabling_resources": [
|
|
"crag_aerie"
|
|
],
|
|
"provides": "crag-raven one-way carrier",
|
|
"count": 2
|
|
}
|
|
}
|
|
}
|
|
}
|