Add lesson whispers, teacher catch chance, and after-bell teacher talk.

Whispering cuts lesson skill gain from BehaviorDef; a teacher in the room may interrupt into a discipline circle, and pedagogy scales the pupil's opinion of the teacher.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-20 10:35:31 +03:00
co-authored by Cursor
parent cb869e4977
commit f7d5e0c042
22 changed files with 1061 additions and 36 deletions
+19 -1
View File
@@ -6,12 +6,22 @@ public static class TalkActions
public const string Chat = "Chat";
public const string StaffChat = "StaffChat";
public const string PhoneChat = "PhoneChat";
public const string Whisper = "Whisper";
public const string TeacherTalk = "TeacherTalk";
public static bool IsTalk(string? actionId) =>
actionId is not null
&& (actionId.Equals(Chat, StringComparison.Ordinal)
|| actionId.Equals(StaffChat, StringComparison.Ordinal)
|| actionId.Equals(PhoneChat, StringComparison.Ordinal));
|| actionId.Equals(PhoneChat, StringComparison.Ordinal)
|| actionId.Equals(Whisper, StringComparison.Ordinal)
|| actionId.Equals(TeacherTalk, StringComparison.Ordinal));
public static bool IsWhisper(string? actionId) =>
actionId is not null && actionId.Equals(Whisper, StringComparison.Ordinal);
public static bool IsTeacherTalk(string? actionId) =>
actionId is not null && actionId.Equals(TeacherTalk, StringComparison.Ordinal);
}
/// <summary>Vanilla topic tags from the social slice design doc.</summary>
@@ -26,3 +36,11 @@ public static class TopicTags
public const string Rude = "rude";
public const string Appearance = "appearance";
}
/// <summary>Teacher-after-lesson and reprimand topics in core. Names match TopicDef ids.</summary>
public static class TeacherTopics
{
public const string Question = "TopicQuestion";
public const string Praise = "TopicPraise";
public const string Discipline = "TopicDiscipline";
}