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
+23 -1
View File
@@ -8,6 +8,11 @@ public static class TalkActions
public const string PhoneChat = "PhoneChat";
public const string Whisper = "Whisper";
public const string TeacherTalk = "TeacherTalk";
public const string Quarrel = "Quarrel";
public const string QuarrelYard = "QuarrelYard";
public const string Fight = "Fight";
public const string FightGym = "FightGym";
public const string Apologize = "Apologize";
public static bool IsTalk(string? actionId) =>
actionId is not null
@@ -15,7 +20,24 @@ public static class TalkActions
|| actionId.Equals(StaffChat, StringComparison.Ordinal)
|| actionId.Equals(PhoneChat, StringComparison.Ordinal)
|| actionId.Equals(Whisper, StringComparison.Ordinal)
|| actionId.Equals(TeacherTalk, StringComparison.Ordinal));
|| actionId.Equals(TeacherTalk, StringComparison.Ordinal)
|| IsConflict(actionId));
public static bool IsQuarrel(string? actionId) =>
actionId is not null
&& (actionId.Equals(Quarrel, StringComparison.Ordinal)
|| actionId.Equals(QuarrelYard, StringComparison.Ordinal));
public static bool IsFight(string? actionId) =>
actionId is not null
&& (actionId.Equals(Fight, StringComparison.Ordinal)
|| actionId.Equals(FightGym, StringComparison.Ordinal));
public static bool IsApologize(string? actionId) =>
actionId is not null && actionId.Equals(Apologize, StringComparison.Ordinal);
public static bool IsConflict(string? actionId) =>
IsQuarrel(actionId) || IsFight(actionId) || IsApologize(actionId);
public static bool IsWhisper(string? actionId) =>
actionId is not null && actionId.Equals(Whisper, StringComparison.Ordinal);