Merge branch 'main' into phase/32-weather-warmth

Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	src/HSchool.Simulation/School.cs
This commit is contained in:
Leonid Pershin
2026-08-20 04:03:42 +03:00
21 changed files with 848 additions and 29 deletions
@@ -63,4 +63,20 @@ public class BehaviorDefTests
Assert.Contains("carry mass", error.Message, StringComparison.OrdinalIgnoreCase);
}
[Fact]
public void NegativeApparelWear_FailsTheCatalog()
{
var error = Assert.Throws<ContentLoadException>(() => _loader.Load(
[CatalogLoader.CorePackId],
[
PackDocuments.Def(
CatalogLoader.CorePackId,
"behavior",
"rules",
"""{ "defName": "Behavior", "apparelWearPerHour": -0.1 }"""),
]));
Assert.Contains("apparelWearPerHour", error.Message, StringComparison.Ordinal);
}
}
@@ -105,6 +105,10 @@ public class VanillaCoreTests
Assert.Equal(6f, catalog.BehaviorRules.LunchWeight);
Assert.Equal(5f, catalog.BehaviorRules.CarryMassBase);
Assert.Equal(0.4f, catalog.BehaviorRules.OptionalApparelChance);
Assert.Equal(0.01f, catalog.BehaviorRules.ApparelWearPerHour);
Assert.Equal(0.15f, catalog.BehaviorRules.ApparelReplaceBelow);
Assert.Equal(4, catalog.BehaviorRules.ApparelConditionBands.Count);
Assert.Equal("ApparelConditionIntact", catalog.BehaviorRules.ApparelConditionBands[0].Id);
}
/// <summary>
@@ -147,6 +151,12 @@ public class VanillaCoreTests
keys.Add(BodyBuilds.Attribute);
keys.AddRange(BodyBuilds.Values);
keys.AddRange(ApparelLayers.All);
if (catalog.BehaviorRules is { } rules)
{
keys.AddRange(rules.ApparelConditionBands.Select(band => band.Id));
}
keys.Add("ApparelReplaced");
foreach (var value in catalog.BodyAttributes.Values.SelectMany(def => def.Options))
{