Run 11: satiation and quarry return - clean two-year stability

Granary satiation: hunger scars motivate storage only until town
capacity could carry a winter (pop x 45); sprawl of ~10 granaries falls
to the sated level. Quarry return: packs stuck with undroppable stone
after rebuilds made starving porters; unneeded stone goes back to the
quarry (matter conserved, packs unclogged).

Also corrects the record: run 10's zero-ruin year-2 claim came from
CSV contamination by orphaned headless child processes (console wrapper
kills didn't kill the tree). Clean verified result now: year-1
catastrophe and rebuild, then year-2 at 0.77 nourishment, zero new
ruins, 100% condition, textbook granary sawtooth.

Open in FINDINGS: accessible stone exhaustion plateaus housing below
population - a Phase 3 economy question (deeper quarrying, stockpiles).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-21 15:55:39 -04:00
parent e661a3f739
commit 3ffde3d9e9
8 changed files with 6726 additions and 6437 deletions
+15
View File
@@ -110,6 +110,21 @@ public class World
return taken;
}
/// <summary>Nearest node of a kind regardless of amount — for returning
/// unneeded minerals to the quarry rather than carrying them forever.</summary>
public ResourceNode? FindNearestAny(MaterialKind kind, Vector2 position)
{
ResourceNode? best = null;
float bestDist = float.MaxValue;
foreach (var node in Nodes)
{
if (node.Kind != kind) continue;
float d = position.DistanceSquaredTo(node.Cell);
if (d < bestDist) { best = node; bestDist = d; }
}
return best;
}
/// <summary>
/// Called once per in-game day by GameManager. Season multipliers throttle
/// regeneration — winter is when the granary earns its clay.