Review slice 9 C-D: persist clash opinions and the bully's victim.
FinishConflict never set RosterTalkDirty, so people.json skipped quarrel shifts until some other save — the same seam as the A-B talk-circle fix. First BullyVictimId write stayed in RAM only. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -780,11 +780,16 @@ internal static class TalkCircleSystem
|
||||
{
|
||||
var rules = school.Catalog!.BehaviorRules;
|
||||
var day = DateOnly.FromDateTime(school.Clock.Time).DayNumber;
|
||||
var previousVictim = initiator.BullyVictimId;
|
||||
var remembered = Conflict.ResolveVictim(
|
||||
initiator,
|
||||
school.Roster!.People,
|
||||
school.Catalog,
|
||||
Seed.Mix(school.PeopleSeed, initiator.Id, day, Seed.ConflictSalt + 1));
|
||||
if (!string.Equals(previousVictim, initiator.BullyVictimId, StringComparison.Ordinal))
|
||||
{
|
||||
school.RosterTalkDirty = true;
|
||||
}
|
||||
var idle = GatherCandidates(school, initiator.Id, nodeId, requirePhone: false, studentsOnly: true)
|
||||
.Where(candidate => candidate.IsIdle)
|
||||
.Select(candidate => candidate.Id)
|
||||
@@ -998,6 +1003,7 @@ internal static class TalkCircleSystem
|
||||
}
|
||||
|
||||
school.TalkCirclesById.Remove(circle.Id);
|
||||
school.RosterTalkDirty = true;
|
||||
}
|
||||
|
||||
private static void ApplyClash(
|
||||
|
||||
Reference in New Issue
Block a user