Add talk circles with TopicDef, staff/phone chat, and opinion outcomes.

This commit is contained in:
Leonid Pershin
2026-08-20 08:55:55 +03:00
parent 9d96108516
commit 47fc10da02
26 changed files with 1948 additions and 175 deletions
@@ -11,7 +11,8 @@ public class PeopleDefTests
var catalog = _loader.Load([CatalogLoader.CorePackId], PackDocuments.FromDirectory(CatalogLoader.CorePackId, root));
Assert.True(catalog.Skills.Count >= 10);
Assert.Equal(12, catalog.Traits.Count);
Assert.Equal(14, catalog.Traits.Count);
Assert.True(catalog.Topics.Count >= 8);
Assert.Equal(5, catalog.Needs.Count);
Assert.True(catalog.BodyAttributes.ContainsKey("Height"));
Assert.Equal(BodyAttributeKind.Number, catalog.BodyAttributes["Height"].Kind);
@@ -0,0 +1,32 @@
using HSchool.Content;
using HSchool.Content.Tests;
namespace HSchool.Content.Tests;
public class TopicDefTests
{
private readonly CatalogLoader _loader = new();
[Fact]
public void VanillaCore_LoadsTalkTopics()
{
var root = Path.Combine(AppContext.BaseDirectory, "vanilla");
var catalog = _loader.Load([CatalogLoader.CorePackId], PackDocuments.FromDirectory(CatalogLoader.CorePackId, root));
Assert.True(catalog.Topics.Count >= 8);
Assert.True(catalog.Topics.ContainsKey("TopicStudy"));
Assert.Contains("study", catalog.Topics["TopicStudy"].Tags);
}
[Fact]
public void CatalogWithoutTopics_ThrowsOnLoad()
{
var root = Path.Combine(AppContext.BaseDirectory, "vanilla");
var documents = PackDocuments.FromDirectory(CatalogLoader.CorePackId, root)
.Where(document => !document.RelativePath.Contains("defs/topics/", StringComparison.OrdinalIgnoreCase))
.ToList();
var ex = Assert.Throws<ContentLoadException>(() => _loader.Load([CatalogLoader.CorePackId], documents));
Assert.Contains("TopicDef", ex.Message, StringComparison.Ordinal);
}
}