magicciv/.project/team-leads/combat-dev.md
Natalie a8936e448c feat(@projects): add biome economy coupling system
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-29 13:10:45 -04:00

2.3 KiB
Raw Permalink Blame History

id name specialization objectives
combat-dev Combat-dev Combat resolution, damage formulas, keywords, siege mechanics, game-balance gates (city HP, walls, stack-of-doom cap, occupation penalty)
p1-29

Mandate

The Combat-dev lead owns the rules of war: how damage resolves, how cities defend, how stacks behave, and how ground gets held after capture. Where Warcouncil owns AI decisions, Combat-dev owns the physics those decisions act on — the dials that decide whether a snowball is structural or breakable.

Scope

  • src/simulator/crates/mc-combat/ — combat resolver, damage, keywords
  • src/simulator/crates/mc-turn/src/victory.rs — capture + grace gating
  • public/games/age-of-dwarves/data/units.json, buildings.json, combat.json, keywords.json — balance values
  • City HP, walls bonus, stack-of-doom cap, post-capture occupation penalty

Out of scope

  • AI action generation, MCTS, evaluator weights → warcouncil
  • Tactical movement plumbing, formation aggregation → warcouncil
  • Spell combat, magic damage types → magic-dev (Game 2/3)
  • Wild-creature combat heuristics → warcouncil (wild_creature_ai.gd remains warcouncil-excluded; combat math here is shared)

Quality gates inherited from Warcouncil v1 reframe

The two v1 sub-gates p0-01 reframed away because the AI-layer could not move them now belong to Combat-dev:

  • tier_peak_gap (winner loser) ≤ 4 median across 10-seed Hard batch
  • tier-10-by-T200 reachable in ≥3/10 Hard games (per .project/experiments/p1-29-tier10-by-t200.md)

Validation harness: tools/huge-map-5clan.sh --seeds 10 --turn-limit 300 on apricot, then tools/quality-gates-report.py .local/iter/<latest>/.

Closure order

  1. p1-29 anti-early-domination — city HP buff, walls defensive multiplier, stack-of-doom cap, occupation penalty post-capture. Each lever lands as a discrete batch (R1, R2, …) with per-seed parity vs the canonical baseline (.local/iter/p1-39-r10-canonical-*). Keep gold/research Rust-port deltas stable (Rail-1) — only mc-combat + JSON values move.

Handoff history

  • 2026-04-27: Warcouncil → Combat-dev handoff (.project/handoffs/20260427_warcouncil-to-combat-dev-anti-snowball.md). Warcouncil exhausted AI-layer levers; remaining gates are combat-balance.