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:
@@ -15,6 +15,25 @@ public sealed class MapLayout
|
||||
|
||||
public static MapLayout Parse(string jsonc, string? source = null) =>
|
||||
Jsonc.Deserialize<MapLayout>(Jsonc.Parse(jsonc, source));
|
||||
|
||||
/// <summary>RoomDef or TerritoryDef of this node, or null when the id is not on the map.</summary>
|
||||
public string? NodeDef(string nodeId)
|
||||
{
|
||||
if (Territory is { } territory && territory.Id.Equals(nodeId, StringComparison.Ordinal))
|
||||
{
|
||||
return territory.Def;
|
||||
}
|
||||
|
||||
foreach (var room in Rooms)
|
||||
{
|
||||
if (room.Id.Equals(nodeId, StringComparison.Ordinal))
|
||||
{
|
||||
return room.Def;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class TerritoryNode
|
||||
|
||||
Reference in New Issue
Block a user