Town-colored homes, split diagonally for mixed-culture households

Shelters now wear their town's culture color on the map (North cool-blue,
South green, West gold, East red), dimmed by wear; granaries stay green,
ruins dark. And bonds can now cross town lines: usually you pair within
your own people (that's who you're near), but a wanderer who warms to
someone from another town shacks up across cultures - the first quiet
thread of contact between two peoples. When two towns share a roof, the
house is drawn split diagonally, half each culture, visible across the map.

Mechanics: buildings track their top-two resident home-towns (recomputed
with occupancy, throttled to every 30 ticks since it's map-only); the
bonding rule dropped its same-town requirement. A 240-day run produced
126 bonds, 40 of them cross-town (East+North, West+South, all combos),
with populations still balanced - inter-cultural contact without
destabilizing the towns.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-21 21:38:57 -04:00
parent 36f6ba1f1b
commit 9e8ee1d748
4 changed files with 112 additions and 11 deletions
+7
View File
@@ -99,6 +99,13 @@ public class Building
/// whole population per building (that was the sim's O(n²) hot spot).</summary>
public int Occupancy;
/// <summary>The two most-represented home-towns among this shelter's
/// current sleepers — for the map's household coloring. When two towns
/// share a roof (someone shacked up across cultures), the house is drawn
/// split. Recomputed with Occupancy each tick.</summary>
public string ResidentTownA = "";
public string ResidentTownB = "";
public int RestCapacity =>
Kind == BuildingKind.Shelter && IsComplete && !IsRuined ? 3 + Modules : 0;