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

This commit is contained in:
Leonid Pershin
2026-08-20 03:50:04 +03:00
46 changed files with 9020 additions and 1931 deletions
@@ -34,6 +34,7 @@ public class ApparelDefTests
Assert.Empty(chair.Colors);
Assert.Null(chair.SkirtLength);
Assert.False(chair.Pe);
Assert.Equal(0, chair.CarryChance);
Assert.Equal(0, chair.PupilSlots);
}
@@ -166,4 +167,20 @@ public class ApparelDefTests
Assert.Contains("TShirt", ex.Message, StringComparison.Ordinal);
}
[Fact]
public void CarryChanceAboveOne_FailsTheCatalog()
{
var ex = Assert.Throws<ContentLoadException>(() => _loader.Load(
[CatalogLoader.CorePackId],
[
PackDocuments.Def(
CatalogLoader.CorePackId,
"things",
"phone",
"""{ "defName": "Phone", "portable": true, "carryChance": 1.2 }"""),
]));
Assert.Contains("carryChance", ex.Message, StringComparison.Ordinal);
}
}
@@ -47,4 +47,20 @@ public class BehaviorDefTests
warning => warning.Contains("lunchWeight", StringComparison.Ordinal)
&& warning.Contains("dutyLessonWeight", StringComparison.Ordinal));
}
[Fact]
public void NegativeCarryMass_FailsTheCatalog()
{
var error = Assert.Throws<ContentLoadException>(() => _loader.Load(
[CatalogLoader.CorePackId],
[
PackDocuments.Def(
CatalogLoader.CorePackId,
"behavior",
"rules",
"""{ "defName": "Behavior", "carryMassBase": -1 }"""),
]));
Assert.Contains("carry mass", error.Message, StringComparison.OrdinalIgnoreCase);
}
}
@@ -23,6 +23,7 @@ public class PeopleDefTests
Assert.Equal(0.2f, catalog.Needs["Hunger"].DecayPerHour);
Assert.True(catalog.Skills["Communication"].Always);
Assert.True(catalog.Skills["Agility"].Always);
Assert.True(catalog.Skills["Hauling"].Always);
Assert.True(catalog.Skills["Pedagogy"].Work);
Assert.Equal(0.4f, catalog.Skills["English"].AdultChance);
Assert.Equal(
@@ -45,6 +45,9 @@ public class VanillaCoreTests
Assert.True(catalog.Things["PeShirt"].Pe);
Assert.True(catalog.Things["Textbook"].Portable);
Assert.Empty(catalog.Things["Textbook"].Layers);
Assert.Equal(0, catalog.Things["Textbook"].CarryChance);
Assert.Equal(1, catalog.Things["SchoolBag"].CarryChance);
Assert.Equal(11, catalog.Things["Phone"].Age?.Min);
Assert.Equal(1, catalog.Things.Values.Count(thing => thing.DefName == "Textbook"));
Assert.Equal([ColorTags.Bright], catalog.Colors["Red"].Tags);
Assert.Equal([ColorTags.Neutral, ColorTags.School], catalog.Colors["White"].Tags);
@@ -100,6 +103,8 @@ public class VanillaCoreTests
Assert.Equal(5f, catalog.BehaviorRules.DutyTravelWeight);
Assert.Equal(20f, catalog.BehaviorRules.NeedWeightAtZero);
Assert.Equal(6f, catalog.BehaviorRules.LunchWeight);
Assert.Equal(5f, catalog.BehaviorRules.CarryMassBase);
Assert.Equal(0.4f, catalog.BehaviorRules.OptionalApparelChance);
}
/// <summary>