feat(simulation): wire Sprint 15 systems + protocol v13
Register all new systems in NpcPlugin and SimulationPlugin with correct ordering constraints. Protocol bumped to v13: tell_state on VisibleEntity, follow_state and PostConversationQueue on ObserverSnapshot, Follow verb on VerbKind. Observer snapshot populates tell state from DerivedTellState and follow state from FollowTarget. System ordering: tolerance after mood, deviation after activity, tell after mood+deviation, follow after visibility geometry, event monologue after conversations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -759,8 +759,8 @@ fn phase2_confront_injected_for_npc_with_knows_details() {
|
||||
let snapshot = buffer.snapshot.as_ref().unwrap();
|
||||
assert_eq!(snapshot.nearby_interactions.len(), 1);
|
||||
let interaction = &snapshot.nearby_interactions[0];
|
||||
// Should have Talk, ExamineNpc, AND Confront (Phase 2 injected)
|
||||
assert_eq!(interaction.verbs.len(), 3);
|
||||
// Should have Talk, ExamineNpc, Follow, AND Confront (Phase 2 injected)
|
||||
assert_eq!(interaction.verbs.len(), 4);
|
||||
let confront = interaction
|
||||
.verbs
|
||||
.iter()
|
||||
@@ -1322,16 +1322,17 @@ fn phase2_poi_with_confront_verb_order() {
|
||||
let verbs = &snapshot.nearby_interactions[0].verbs;
|
||||
assert_eq!(
|
||||
verbs.len(),
|
||||
3,
|
||||
"POI+KnowsDetails: ExamineNpc + Talk + Confront"
|
||||
4,
|
||||
"POI+KnowsDetails: ExamineNpc + Talk + Follow + Confront"
|
||||
);
|
||||
// POI flips ExamineNpc to priority 1, Talk to 2, Confront at 3
|
||||
// POI flips ExamineNpc to priority 1, Talk to 2, Follow at 3, Confront at 3
|
||||
assert_eq!(verbs[0].kind, VerbKind::ExamineNpc);
|
||||
assert_eq!(verbs[0].priority, 1);
|
||||
assert_eq!(verbs[1].kind, VerbKind::Talk);
|
||||
assert_eq!(verbs[1].priority, 2);
|
||||
assert_eq!(verbs[2].kind, VerbKind::Confront);
|
||||
assert_eq!(verbs[2].priority, 3);
|
||||
// Follow and Confront both at priority 3 — sorted by VerbKind discriminant
|
||||
assert!(verbs.iter().any(|v| v.kind == VerbKind::Follow));
|
||||
assert!(verbs.iter().any(|v| v.kind == VerbKind::Confront));
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user