Dress people at generation from a separate apparel stream.

Wardrobes live on the person in people.json: everyday layers, textbooks per parallel, and chance-based bags from catalog data. Hauling and the carry cap are defs, not constants. The golden roster gains an items column; later family members shift because Hauling consumes extra appearance rolls. Old saves without items are dressed on load.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-20 03:24:54 +03:00
co-authored by Cursor
parent d8f4958167
commit 37501c506a
43 changed files with 8883 additions and 1305 deletions
@@ -21,4 +21,11 @@
// beats walking on to the next room, below the lesson so it never pulls
// anybody out of class. Raise it past dutyLessonWeight and they will.
"lunchWeight": 6,
// Bag limit: base kg + per point of Strength, Endurance and Hauling.
"carryMassBase": 5,
"carryMassPerStrength": 0.08,
"carryMassPerEndurance": 0.04,
"carryMassPerHauling": 0.08,
// Sweater, coat, hat, accessory — each rolled separately at generation.
"optionalApparelChance": 0.4,
}
@@ -30,4 +30,10 @@
{ "attribute": "Build", "value": "Athletic", "min": 40 },
],
},
{
"defName": "Hauling",
"always": true,
"range": { "min": 0, "max": 100 },
"distribution": { "mean": 50, "stdDev": 12 },
},
]
@@ -1,6 +1,6 @@
[
{ "defName": "SchoolBag", "portable": true, "mass": 0.8 },
{ "defName": "SchoolBag", "portable": true, "mass": 0.8, "age": { "min": 6, "max": 18 }, "carryChance": 1 },
{ "defName": "Textbook", "portable": true, "mass": 0.4 },
{ "defName": "Phone", "portable": true, "mass": 0.15, "colors": ["Black", "White", "Gray"] },
{ "defName": "Bottle", "portable": true, "mass": 0.3, "colors": ["Blue", "Green", "White"] },
{ "defName": "Phone", "portable": true, "mass": 0.15, "colors": ["Black", "White", "Gray"], "age": { "min": 11 }, "carryChance": 0.45 },
{ "defName": "Bottle", "portable": true, "mass": 0.3, "colors": ["Blue", "Green", "White"], "age": { "min": 6 }, "carryChance": 0.7 },
]
@@ -115,6 +115,7 @@
"Agility": "Agility",
"Strength": "Strength",
"Endurance": "Endurance",
"Hauling": "Hauling",
"Diligent": "Diligent",
"AbsentMinded": "Absent-minded",
"Bully": "Bully",
@@ -115,6 +115,7 @@
"Agility": "Ловкость",
"Strength": "Сила",
"Endurance": "Выносливость",
"Hauling": "Переноска",
"Diligent": "Усидчивый",
"AbsentMinded": "Рассеянный",
"Bully": "Задира",