Problem: Under realistic late-game totals, many ordinary projects
activate alongside the ReCKoning endgame sequence, drowning the
climactic narrative under a large research backlog.
Fix: Add endgame gating to checkProjects() that suppresses all
non-endgame project activation when endgame conditions are met.
Changes:
data.js:
- Added endgameFlag (1 = endgame active) to game state
- Added reckoningActive (1 = ReCKoning running) to game state
- Added endgame: true to p_final_milestone
- Added 4 ReCKoning sequence projects (001, 050, 100, 140):
- p_reckoning_001: The Signal (sets reckoningActive)
- p_reckoning_050: Reflection
- p_reckoning_100: The Question
- p_reckoning_140: Resolution (clears endgame flags)
engine.js:
- Added isEndgame() function: returns true when endgameFlag=1
or when final milestone conditions are met (auto-detect)
- Modified checkProjects(): endgame guard skips all projects
without endgame: true flag when endgame is active
- Only p_final_milestone and p_reckoning_* can activate during endgame
The sequence: normal game → final milestone → endgame activates →
only ReCKoning projects can fire → ReCKoning 140 resolves →
flags cleared → normal projects resume.
Closes#132