Skip to content

GrowthSystem

GrowthSystem

Phase · priority Environment · 100
Reads food_value on Edible + Harvestable (or GrowthCapable) nodes
Writes food_value
Settings per template: regrow_per_day 80, food_value cap 25
Status designed · Phase 1 (#34)
PLAN §15.2, §7.7, §3.9
Player Food

Regrows food. A berry bush's food_value is a stock of meals, capped at 25, regrowing at 80 per day — an accumulator in sim-time (PLAN §3.9):

foreach (var bush in view.NodesWithComponent("Edible"))
{
    var cap = view.GetOrDefault(bush, "food_value_max", 25f);
    var cur = view.GetOrDefault(bush, "food_value", cap);
    if (cur < cap) yield return new DeltaAttributeIntent(bush, "food_value", Math.Min(ctx.PerTick(s.RegrowPerDay), cap - cur));
}

The economy is deliberately generous (fifty villagers need ~200 meals a day; twelve bushes supply up to ~960) so that there is something to watch other than starvation. Scarcity is a harness tuning target and a Tinkerer's toggle.

Why it is in Phase 1: without regrowth the spike's village starved to extinction in every run. Hot-toggle: off, bushes deplete and never refill — the starvation story. Bounds: food_value has min: 0; summed bites cannot take it negative.

History

Phase Change
1 Introduced (pulled forward from the Survival phase); rate per day.

See also: ActionSystem (eat) · HungerSystem