Last updated: 2026-04-14 (UTC)
Branch: work
- Full simulation runs (
python main.py). - Projectile API is integrated in
engine/full_simulation.py. - Season loader supports listing/loading and basic schema checks.
- Initial unit tests exist under
tests/. - Trait activation pipeline now exists with initial start-of-battle effects for
AceandUndead. - Trait multipliers are now data-driven from
data/trait_effects.pywith explicit placeholder provenance.
- Current design is mostly not over-engineered for this stage.
- The only risk area is scope creep (shop/draft/multi-round) before core combat fidelity is complete.
- Keep a strict rule: only build abstractions that are used by running simulation code and covered by tests.
AbilityEngineis still a placeholder.- Trait logic is only partially implemented (currently only
AceandUndead). - Most troop stats still rely on defaults because
data/troops.pylacks complete numeric fields. - Season JSON contains deltas but not complete baseline numeric data.
- Implement
engine/traits.pyand integrate at battle start. - Fill troop numeric stats and remove implicit defaults over time.
- Add ability handlers for a small subset of troops, then expand.
- Add integration tests around complete battle determinism.
- Defer non-core systems (shop/draft/rounds) until steps 1-4 are stable.
python -m unittest discover -s tests -vpython main.py
- See
DECISIONS.mdfor current beliefs, counterarguments, and architecture self-review.