Enhance protocol and simulation features with activity tracking and behavior definitions
- Updated protocol documentation to include new `activity` and `activityLabel` fields in the person card response, reflecting real-time activity status. - Introduced `BehaviorDef` to define behavior rules, including need thresholds and lesson skill gains, enhancing AI decision-making. - Revised the `DefCatalog` to incorporate behavior definitions and updated validation logic to ensure proper behavior handling. - Enhanced the simulation to manage presence and activity states, allowing for more dynamic interactions within the school environment. - Updated tests to validate the new activity tracking and behavior functionalities, ensuring robust performance and reliability. - Improved localization strings to support new activity and behavior features, enhancing user experience.
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
[
|
||||
{
|
||||
"defName": "EatLunch",
|
||||
"room": "Cafeteria",
|
||||
"thing": "Chair",
|
||||
"minutes": 15,
|
||||
"need": "Hunger",
|
||||
"needGain": 0.5,
|
||||
"roles": ["student", "staff"],
|
||||
"weight": 0,
|
||||
},
|
||||
{
|
||||
"defName": "UseToilet",
|
||||
"room": "Restroom",
|
||||
"minutes": 4,
|
||||
"need": "Toilet",
|
||||
"needGain": 1,
|
||||
"roles": ["student", "staff"],
|
||||
"weight": 0,
|
||||
},
|
||||
{
|
||||
"defName": "RecessRest",
|
||||
"room": "Corridor",
|
||||
"minutes": 10,
|
||||
"roles": ["student", "staff"],
|
||||
"weight": 2,
|
||||
},
|
||||
{
|
||||
"defName": "Chat",
|
||||
"room": "Corridor",
|
||||
"minutes": 8,
|
||||
"need": "Social",
|
||||
"needGain": 0.4,
|
||||
"roles": ["student", "staff"],
|
||||
"weight": 3,
|
||||
},
|
||||
{
|
||||
"defName": "WalkCorridor",
|
||||
"room": "Corridor",
|
||||
"minutes": 3,
|
||||
"roles": ["student", "staff"],
|
||||
"weight": 1,
|
||||
},
|
||||
{
|
||||
"defName": "WalkYard",
|
||||
"room": "SchoolYard",
|
||||
"minutes": 5,
|
||||
"roles": ["student", "staff"],
|
||||
"weight": 1,
|
||||
},
|
||||
]
|
||||
@@ -1 +1 @@
|
||||
{ "defName": "Sit" }
|
||||
{ "defName": "Sit", "abstract": true }
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"defName": "Behavior",
|
||||
// A need at or below this is urgent. Phase 21 turns that into a goal weight.
|
||||
"needThreshold": 0.35,
|
||||
// Skill points a lesson adds per game hour, before traits and need state.
|
||||
"lessonSkillPerHour": 0.05,
|
||||
// Inclusive extra commute minutes. 0–6 matches the previous hardcoded roll so
|
||||
// the same seed still arrives at the same minute.
|
||||
"commuteSlackMin": 0,
|
||||
"commuteSlackMax": 6,
|
||||
"switchMargin": 0.15,
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
[
|
||||
{ "defName": "Sleep", "initial": 1, "decayPerHour": 0, "min": 0, "max": 1 },
|
||||
{ "defName": "Hunger", "initial": 1, "decayPerHour": 0, "min": 0, "max": 1 },
|
||||
{ "defName": "Toilet", "initial": 1, "decayPerHour": 0, "min": 0, "max": 1 },
|
||||
{ "defName": "Social", "initial": 1, "decayPerHour": 0, "min": 0, "max": 1 },
|
||||
{ "defName": "Sleep", "initial": 1, "decayPerHour": 0.05, "min": 0, "max": 1, "restoredOffCampus": true },
|
||||
{ "defName": "Hunger", "initial": 1, "decayPerHour": 0.1, "min": 0, "max": 1 },
|
||||
{ "defName": "Toilet", "initial": 1, "decayPerHour": 0.15, "min": 0, "max": 1 },
|
||||
{ "defName": "Social", "initial": 1, "decayPerHour": 0.08, "min": 0, "max": 1 },
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user