Add recess quarrels, rare yard and gym fights, and apologies.

Bullies remember a victim by a trait field, a defender can join, staff break up a fight with a reprimand, and skip empty time clears leftover clashes so they cannot last forever.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-20 11:31:06 +03:00
co-authored by Cursor
parent f45347b335
commit 395107c959
20 changed files with 1504 additions and 23 deletions
+5
View File
@@ -136,6 +136,8 @@ public sealed class School : IDisposable
internal Dictionary<string, string> TalkCircleByPerson { get; } = new(StringComparer.Ordinal);
internal Dictionary<string, ApologyDebt> ApologyDebts { get; } = new(StringComparer.Ordinal);
internal void ResetDayLog()
{
_dayLog.Clear();
@@ -260,6 +262,7 @@ public sealed class School : IDisposable
var before = Clock.Time;
Clock.JumpTo(next.Value);
TalkCircleSystem.AbandonAll(this);
ResetDayLog();
var peopleChanged = TryYearlyIntake(before, next.Value);
peopleChanged |= TryApplicantRefresh();
@@ -494,3 +497,5 @@ public readonly record struct SkipEmptyResult(SkipEmptyError Error, DateTime? Ti
public static SkipEmptyResult Fail(SkipEmptyError error) => new(error, null, false);
}
internal readonly record struct ApologyDebt(string FromId, string ToId, int Baseline, int Lost);