Wire grade trail notices, dress mark factor, and truancy summons weights.

Lesson multipliers stay explicit in tests; poor marks and unexcused absences toast and may auto-summon, while illness stays excused.
This commit is contained in:
Leonid Pershin
2026-08-21 14:18:41 +03:00
parent 975ca4936e
commit 59a7023bc4
23 changed files with 762 additions and 13 deletions
+30
View File
@@ -752,6 +752,36 @@ internal static class PeopleDefValidator
$"BehaviorDef '{behavior.DefName}' lessonLateMinutes cannot be negative.");
}
if (behavior.LessonDressMarkFactor is < 0f or > 1f)
{
throw new ContentLoadException(
$"BehaviorDef '{behavior.DefName}' lessonDressMarkFactor must be 01.");
}
if (behavior.PoorMarkTrailMaxAverage is < 0f or > 5f)
{
throw new ContentLoadException(
$"BehaviorDef '{behavior.DefName}' poorMarkTrailMaxAverage must be 05.");
}
if (behavior.PoorMarkTrailMinMarks < 0)
{
throw new ContentLoadException(
$"BehaviorDef '{behavior.DefName}' poorMarkTrailMinMarks cannot be negative.");
}
if (behavior.TruancyTrailMinCount < 0)
{
throw new ContentLoadException(
$"BehaviorDef '{behavior.DefName}' truancyTrailMinCount cannot be negative.");
}
if (behavior.GradeTrailSummonChance is < 0f or > 1f)
{
throw new ContentLoadException(
$"BehaviorDef '{behavior.DefName}' gradeTrailSummonChance must be 01.");
}
if (behavior.DiseaseVectorScale < 0f)
{
throw new ContentLoadException(