Chessistics/chessistics-engine
Samuel Bouchet 8a377c2e41 Add recurring-demand mode with shortage tracking
DemandDef gains optional ConsumptionPerTurn and SustainTurns. When
ConsumptionPerTurn > 0 the demand maintains a buffer filled by
deliveries and drained each turn. Shortage fires the first turn the
buffer can't cover consumption; it clears when the buffer refills.
SustainedTurns counts consecutive non-shortage turns, and IsSatisfied
flips to true once it meets SustainTurns — so the victory condition
becomes "no shortage for N consecutive turns" as soon as a mission opts
in. Classic demands (ConsumptionPerTurn = 0) behave exactly as before.

TurnExecutor runs the consumption sub-phase after transfers. Two new
events (DemandShortageStarted / DemandShortageCleared) let the
presentation surface the state later. BoardSnapshot + CampaignLoader
carry the new fields; no existing mission opts in yet, so
campaign_01.json is unaffected.
2026-04-17 22:39:28 +02:00
..
Commands Snapshot campaign system progress before automation harness 2026-04-16 21:22:49 +02:00
Events Add recurring-demand mode with shortage tracking 2026-04-17 22:39:28 +02:00
Loading Add recurring-demand mode with shortage tracking 2026-04-17 22:39:28 +02:00
Model Add recurring-demand mode with shortage tracking 2026-04-17 22:39:28 +02:00
Rules Add recurring-demand mode with shortage tracking 2026-04-17 22:39:28 +02:00
Simulation Add recurring-demand mode with shortage tracking 2026-04-17 22:39:28 +02:00
Chessistics.Engine.csproj Initial commit: Chessistics prototype v0.3 2026-04-10 14:58:03 +02:00