From 8331e3e978acbf615982e70a139c6496c1eec391 Mon Sep 17 00:00:00 2001 From: iisaev Date: Sun, 18 Oct 2026 20:09:06 +0200 Subject: [PATCH] Template game = own mod + reusable town_pack The novel template becomes the intended layering: collection novel_template lists my_novel_game (its own scenes, scenarios, text), town_pack (reusable backgrounds and the bar ambience) and the engine. The town entrance and the home vestibule move from cthangover_game into town_pack instead of being copied; cthangover_game depends on it. Docs explain how to start a game from these three layers. --- test_suites/menu_flow/src/MenuFlowTestDriverNode.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test_suites/menu_flow/src/MenuFlowTestDriverNode.cs b/test_suites/menu_flow/src/MenuFlowTestDriverNode.cs index 692403a..8edd10e 100644 --- a/test_suites/menu_flow/src/MenuFlowTestDriverNode.cs +++ b/test_suites/menu_flow/src/MenuFlowTestDriverNode.cs @@ -158,11 +158,11 @@ namespace Mods.MenuFlowTest browser.Visible = false; var composition = GameCatalog.Composition(GameId); - Check("composition computed without loading the game", composition?.Any(m => m.Id == "novel_template") == true); + Check("composition computed without loading the game", composition?.Any(m => m.Id == "my_novel_game") == true); var diff = SaveCompositionDiff.Compute( new[] { new SaveGameMod { Id = "cthangover_game", Version = "2.0.0" }, new SaveGameMod { Id = "ghost_mechanic", Version = "1.0.0" } }, composition); - Check("comparison reports removed and added mechanics", diff.Removed.Contains("ghost_mechanic") && diff.Added.Contains("novel_template")); + Check("comparison reports removed and added mechanics", diff.Removed.Contains("ghost_mechanic") && diff.Added.Contains("my_novel_game")); LastSessionStore.Record(GameId, Slot); Check("Continue sees the last session", LastSessionStore.Load()?.GameId == GameId);