Implement phase 35 dress appropriateness and school rules.

Adds outfit evaluation, morning home dressing, locker-room ChangeClothes with day-log events, PE/weather AI goals, dress-rules API, and tests.
This commit is contained in:
Leonid Pershin
2026-08-20 05:16:52 +03:00
parent 5b63c72806
commit 6a0d5a9886
32 changed files with 1894 additions and 25 deletions
@@ -50,4 +50,20 @@
"roles": ["student", "staff"],
"weight": 1,
},
{
"defName": "ChangeClothesMale",
"room": "MaleChangingRoom",
"thing": "ChangingSpot",
"minutes": 5,
"roles": ["student", "staff"],
"weight": 0,
},
{
"defName": "ChangeClothesFemale",
"room": "FemaleChangingRoom",
"thing": "ChangingSpot",
"minutes": 5,
"roles": ["student", "staff"],
"weight": 0,
},
]
@@ -38,4 +38,12 @@
{ "min": 0.15, "id": "ApparelConditionTorn" },
{ "min": 0, "id": "ApparelConditionRags" },
],
// Dress code thresholds — axes live in code, numbers here.
"shortFormMinAge": 13,
"formalityRegularMin": 20,
"formalityStrictMin": 60,
"outerBelowC": 10,
"heavyOuterAboveC": 15,
"apparelGoalWeight": 6,
"changeClothesMinutes": 5,
}
@@ -56,6 +56,7 @@
"lockerSex": "male",
"slots": [
{ "key": "lockers", "thing": "Locker", "count": 12 },
{ "key": "spots", "thing": "ChangingSpot", "count": 4 },
],
"travelMinutes": 0.5,
},
@@ -64,6 +65,7 @@
"lockerSex": "female",
"slots": [
{ "key": "lockers", "thing": "Locker", "count": 12 },
{ "key": "spots", "thing": "ChangingSpot", "count": 4 },
],
"travelMinutes": 0.5,
},
@@ -7,4 +7,5 @@
{ "defName": "Computer", "pupilSlots": 1 },
{ "defName": "MedicalCouch" },
{ "defName": "Locker" },
{ "defName": "ChangingSpot" },
]
@@ -95,6 +95,9 @@
"UtilityRoom": "Utility room",
"MaleChangingRoom": "Boys' changing room",
"FemaleChangingRoom": "Girls' changing room",
"ChangingSpot": "Changing spot",
"ChangeClothesMale": "Change clothes",
"ChangeClothesFemale": "Change clothes",
"Mathematics": "Mathematics",
"RussianLanguage": "Russian",
"Literature": "Literature",
@@ -173,5 +176,6 @@
"ActionStarted": "started: {0}",
"ActionEnded": "finished: {0}",
"ApparelReplaced": "got a new {0}",
"ApparelChanged": "changed clothes: {0}",
"core": "Core",
}
@@ -95,6 +95,9 @@
"UtilityRoom": "Теплоузел",
"MaleChangingRoom": "Мужская раздевалка",
"FemaleChangingRoom": "Женская раздевалка",
"ChangingSpot": "Место переодевания",
"ChangeClothesMale": "Переодеться",
"ChangeClothesFemale": "Переодеться",
"Mathematics": "Математика",
"RussianLanguage": "Русский язык",
"Literature": "Литература",
@@ -173,5 +176,6 @@
"ActionStarted": "начал: {0}",
"ActionEnded": "закончил: {0}",
"ApparelReplaced": "получил новую {0}",
"ApparelChanged": "переоделся: {0}",
"core": "Базовая игра",
}
@@ -205,6 +205,7 @@
"floor": "gym-floor",
"slots": [
{ "key": "lockers", "thing": "Locker", "count": 12 },
{ "key": "spots", "thing": "ChangingSpot", "count": 4 },
],
},
{
@@ -214,6 +215,7 @@
"floor": "gym-floor",
"slots": [
{ "key": "lockers", "thing": "Locker", "count": 12 },
{ "key": "spots", "thing": "ChangingSpot", "count": 4 },
],
},
],