1d54ecf57865652ec3f2d904cb8073f16258f75c
tickProduction and tickShipyardProduction cleared the finished cycle and then refused to start another in the same tick, so every cycle really took its duration plus one tick. The cost scales inversely with duration: a 1s recipe ran at 31 ticks instead of 30 and lost 3.2% of its throughput, a 12s recipe 0.3%, which skewed the relative rates the recipe tree is tuned around. Fall through from completion into the start attempt instead. The start code is straight-line, so at most one cycle still begins per building per tick, even for a duration that rounds to zero ticks, and the outputs just deposited count against the space check, so a cycle whose output no longer fits waits exactly as it did before. The balancing model already computed rates as amount / duration_seconds (tools/threat_report.py), so this brings the simulation up to the documented numbers rather than moving them. The combat arena never ticks production, so its tuning is untouched. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x
Description
No description provided
Languages
C++
96%
CMake
2.2%
Python
1.2%
C
0.6%