diff --git a/catalog.json b/catalog.json index 9db7de4..3a61d0b 100644 --- a/catalog.json +++ b/catalog.json @@ -1,53 +1,49 @@ { "catalog": { "version": 1, - "updated_at": "2026-09-24T00:00:00Z" + "updated_at": "2026-10-23T07:10:38Z" }, "mods": [ { - "id": "visual_novel_core", - "name": "Visual Novel Core", + "id": "audio_base", + "name": "Audio Engine", "author": "ct", "version": "1.0.0", - "description": "Game core", - "category": "Library", - "tags": ["core", "kernel"], - "icon_url": "https://git.cthangover.ru/cthangover/mod_visual_novel_core/raw/branch/master/mod.png", - "depends": [], - "conflicts_with": [], - "downloads": [ + "description": "Engine audio subsystem: IAudioService implementation (Music/SFX/Ambient buses), the auto-advancing music player and the audio factories (music, sounds, playlists). Replaces the former Core/Audio autoloads — the AudioModInitializer adds nodes named AudioService and MusicPlayer to the scene tree root on the boot Scenes phase, so /root/AudioService keeps resolving.", + "locale": [ { - "version": "1.0.0", - "urls": [ - "https://git.cthangover.ru/cthangover/mod_visual_novel_core/releases/download/v1.0.0/mod_visual_novel_core-v1.0.0.zip" - ], - "size_bytes": 141571314, - "archive_sha256": "feb675e213fa5605455926426d785335ee0c4226e7551a195c56c6110bbc1cce", - "install_sha256": "12cced70ba958fa4609d2181a8bc301b6532d45a177a02a9295bed10b7baba90" + "lang": "en", + "name": "Audio Engine", + "description": "Engine audio subsystem: IAudioService implementation (Music/SFX/Ambient buses), the auto-advancing music player and the audio factories (music, sounds, playlists)." + }, + { + "lang": "ru", + "name": "Аудиодвижок", + "description": "Звуковая подсистема движка: реализация IAudioService (шины Music/SFX/Ambient), музыкальный плеер с автопродвижением и фабрики аудио (музыка, звуки, плейлисты)." } ], - "status": "stable" - }, - { - "id": "interface", - "name": "Interface", - "author": "ct", - "version": "1.0.0", - "description": "Game interface", - "category": "UI", - "tags": ["ui", "interface"], - "icon_url": "https://git.cthangover.ru/cthangover/mod_interface/raw/branch/master/mod.png", - "depends": ["visual_novel_core>=1"], + "category": "engine, library", + "tags": [ + "audio", + "base", + "engine", + "library" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_audio_base/raw/branch/master/mod.jpg", + "depends": [ + "shell2d_base>=1", + "ui_base>=1" + ], "conflicts_with": [], "downloads": [ { "version": "1.0.0", "urls": [ - "https://git.cthangover.ru/cthangover/mod_interface/releases/download/v1.0.0/mod_interface-v1.0.0.zip" + "https://git.cthangover.ru/cthangover/mod_audio_base/releases/download/v1.0.0/mod_audio_base-v1.0.0.zip" ], - "size_bytes": 197847, - "archive_sha256": "95a8dad64a084baff6fbee416eb2ad5eaeb1926a9917abcdf80bfe3bea4d4bcc", - "install_sha256": "0950e8d6051a7c2b8c7cd9037453a6f250115ea4b7582ef74442f92bc2a92566" + "size_bytes": 110675, + "archive_sha256": "58efd87569bf7e75a04e107ed306615716670717c8d55da910ffb30861990347", + "install_sha256": "ce2fa446e6d20d4f7d97002da050ebb1870ee6d64e4d60a73b80531bf50b3634" } ], "status": "stable" @@ -57,11 +53,18 @@ "name": "CardBattle", "author": "ct", "version": "1.0.0", - "description": "Card battle mechanics", - "category": "Gameplay", - "tags": ["battle", "cards", "gameplay"], - "icon_url": "https://git.cthangover.ru/cthangover/mod_card_battle/raw/branch/master/mod.png", - "depends": ["visual_novel_core>=1", "interface>=1"], + "description": "Card battle implementation on top of turn_battle_base: an action-card hand with attack/defence values, character cards, battle HUD, log and banners, end-turn flow and its own battle sounds.", + "category": "gameplay", + "tags": [ + "card", + "battle", + "gameplay" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_card_battle/raw/branch/master/mod.jpg", + "depends": [ + "ui_base>=1", + "turn_battle_base>=1" + ], "conflicts_with": [], "downloads": [ { @@ -69,33 +72,53 @@ "urls": [ "https://git.cthangover.ru/cthangover/mod_card_battle/releases/download/v1.0.0/mod_card_battle-v1.0.0.zip" ], - "size_bytes": 165410, - "archive_sha256": "a711c6f17956216b43a50ba6e4acadf8bcadbe0b9727c5ded7595ea3111948ea", - "install_sha256": "5be5b1078dd6a4172549e9b6c697b9fec8be518a8d3ada73890b19e4289fa974" + "size_bytes": 713160, + "archive_sha256": "53699f28afaff979f7288d0eb8544b9592854b1be1e558a862d0ea427f41fa3f", + "install_sha256": "996cab4a816cdb1cb6f3c1c6f339854fdccbca525bc0bf19dfad1f9fe41951ab" } ], "status": "stable" }, { - "id": "ff_battle", - "name": "FFBattle", + "id": "characters_base", + "name": "Characters Engine", "author": "ct", "version": "1.0.0", - "description": "Final Fantasy style battle system", - "category": "Gameplay", - "tags": ["battle", "final-fantasy", "gameplay"], - "icon_url": "https://git.cthangover.ru/cthangover/mod_ff_battle/raw/branch/master/mod.png", - "depends": ["visual_novel_core>=1", "interface>=1"], + "description": "Engine characters subsystem: the character and action-card factories (entity kinds 'character' and 'action'), the avatar factory and the character panel UI. Replaces the former Core/Characters factories and Core/UI/CharacterPanel — the CharactersModInitializer publishes kernel contracts (ICharacterTemplateProvider, IActionTemplateProvider, IAvatarProvider) so core code resolves templates without referencing this assembly.", + "locale": [ + { + "lang": "en", + "name": "Characters Engine", + "description": "Engine characters subsystem: character and action-card factories, the avatar factory and the character panel UI. Kernel resolves templates through ICharacterTemplateProvider/IActionTemplateProvider/IAvatarProvider contracts." + }, + { + "lang": "ru", + "name": "Движок персонажей", + "description": "Подсистема персонажей движка: фабрики персонажей и боевых карточек, фабрика аватаров и панель персонажа. Ядро получает шаблоны через контракты ICharacterTemplateProvider/IActionTemplateProvider/IAvatarProvider." + } + ], + "category": "engine, library", + "tags": [ + "characters", + "base", + "engine", + "library" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_characters_base/raw/branch/master/mod.jpg", + "depends": [ + "shell2d_base>=1", + "ui_base>=1" + ], "conflicts_with": [], "downloads": [ { "version": "1.0.0", "urls": [ - "https://git.cthangover.ru/cthangover/mod_ff_battle/releases/download/v1.0.0/mod_ff_battle-v1.0.0.zip" + "https://git.cthangover.ru/cthangover/mod_characters_base/releases/download/v1.0.0/mod_characters_base-v1.0.0.zip" ], - "size_bytes": 108655, - "archive_sha256": "c18e327f406766dbc9f0917263a41a1de548f8056a30909ae727b0e27d79f5b2", - "install_sha256": "12917bf52f987af1279a37529f5736b44d1ae3b65e4f3bf3d5933f416cdc39f1" + "size_bytes": 457906, + "archive_sha256": "a405391fa16d617e5ecebe887241aa5fa7ae714bf87ece98cd95e14182994a8d", + "install_sha256": "ed3604fb889fea1cde00bd56b41b512865fb4e38da55099bf78722db645200a1" } ], "status": "stable" @@ -105,11 +128,31 @@ "name": "Cooking", "author": "ct", "version": "1.0.0", - "description": "Cooking mechanic - full autonomous mod", - "category": "Gameplay", - "tags": ["cooking", "crafting", "survival"], - "icon_url": "https://git.cthangover.ru/cthangover/mod_cooking/raw/branch/master/mod.png", - "depends": ["visual_novel_core>=1", "interface>=1"], + "description": "Autonomous cooking mechanic: the kitchen workbench overlay in home_kitchen with recipe-based cooking (e.g. wolf meat into rations), a ration statistics panel and the home_kitchen_cooking scenario.", + "locale": [ + { + "lang": "en", + "name": "Cooking", + "description": "Cooking mechanic: the kitchen workbench in home_kitchen with recipe-based cooking (e.g. wolf meat into rations), a ration statistics panel and the cooking scenario." + }, + { + "lang": "ru", + "name": "Готовка", + "description": "Механика готовки: верстак на кухне home_kitchen с рецептами (например, волчье мясо в рационы), панель статистики рационов и сценар готовки." + } + ], + "category": "gameplay", + "tags": [ + "cooking", + "gameplay" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_cooking/raw/branch/master/mod.jpg", + "depends": [ + "cthangover_game>=1", + "ui_base>=1", + "items_base>=1", + "time_base>=1" + ], "conflicts_with": [], "downloads": [ { @@ -117,117 +160,1072 @@ "urls": [ "https://git.cthangover.ru/cthangover/mod_cooking/releases/download/v1.0.0/mod_cooking-v1.0.0.zip" ], - "size_bytes": 189925, - "archive_sha256": "97001727fba6b2b8d7dc9a2397fc30ffa2e136e2c60b038b93df124f963cfc83", - "install_sha256": "dec437c18064a003f30fe7bbe7e22c42d7b70a956708c540d238cc5d00adb15e" + "size_bytes": 232432, + "archive_sha256": "fcd92d743d6fa5d69f8bb9d08de9b2c2040b4bdca24a66129fb77ccccf479e23", + "install_sha256": "b8bbf8e0dbfe55509f9246a2f6bed5c5e38c7bde405e42511ff21f6a140827bb" } ], "status": "stable" }, { - "id": "live2d", + "id": "cthangover_game", + "name": "Cthangover: Story", + "author": "ct", + "version": "2.0.0", + "description": "Story content of the Cthangover game: scenes, scenarios, characters, items, quests, backgrounds and the main game collection.", + "locale": [ + { + "lang": "en", + "name": "Cthangover: Story", + "description": "Story content of the Cthangover game: scenes, scenarios, characters, items, quests, backgrounds and the main game collection." + }, + { + "lang": "ru", + "name": "Cthangover: сюжет", + "description": "Сюжетный контент игры Cthangover: сцены, сценарии, персонажи, предметы, квесты, фоны и коллекция основной игры." + } + ], + "category": "story", + "tags": [ + "cthangover", + "game", + "story" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_cthangover_game/raw/branch/master/mod.png", + "depends": [ + "shell2d_base>=1", + "dialog_base>=1", + "interactive_base>=1", + "skills_base>=1", + "map_base>=1", + "ui_base>=1", + "characters_base>=1", + "items_base>=1", + "quests_base>=1", + "town_pack>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "2.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_cthangover_game/releases/download/v2.0.0/mod_cthangover_game-v2.0.0.zip" + ], + "size_bytes": 123146737, + "archive_sha256": "b125111f75e6c497a140729c10c7436e840d9506927d5057ad8200fd450c7f34", + "install_sha256": "f8821151af20485b6319c3801910d6b5099f2b74c517a3dcf1d4ae29ec33ce30" + } + ], + "status": "stable" + }, + { + "id": "cthangover_murakami", + "name": "Cthangover: Murakami", + "author": "ct", + "version": "1.0.0", + "description": "Story line about Murakami: a wild wolf prowling the town, the meeting scenario chain (start, wolf battle, werewolf boss, escort home), the Murakami character with her avatar set and the meeting quest.", + "locale": [ + { + "lang": "en", + "name": "Cthangover: Murakami", + "description": "Murakami story line: a wild wolf prowling the town, the meeting scenario chain (wolf battle, the werewolf boss, escorting home), the Murakami character with her avatars and the meeting quest." + }, + { + "lang": "ru", + "name": "Cthangover: Мураками", + "description": "Сюжетная линия Мураками: дикий волк в городе, цепочка сценариев знакомства (бой с волками, вервольф-босс, проводы домой), персонаж Мураками с аватарами и квест встречи." + } + ], + "category": "story, characters", + "tags": [ + "cthangover", + "murakami", + "story", + "characters" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_cthangover_murakami/raw/branch/master/mod.png", + "depends": [ + "cthangover_game>=1", + "ui_base>=1", + "characters_base>=1", + "quests_base>=1", + "turn_battle_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_cthangover_murakami/releases/download/v1.0.0/mod_cthangover_murakami-v1.0.0.zip" + ], + "size_bytes": 10470715, + "archive_sha256": "1f92b0b6181f80acb5bf65b63f81d6a809d3de0e5f2c5f6a30f902ceccd360f2", + "install_sha256": "66f110e734c7b5d3a8da9d2bad1481b0ba014dc3119e29499286fbf0f595d875" + } + ], + "status": "stable" + }, + { + "id": "cthangover_party", + "name": "Cthangover: Starter Party", + "author": "ct", + "version": "1.0.0", + "description": "Seeds the default starter party (Marao) and the slave_master skill after mod resources are ready, and restores it on NewGameStartedEvent. Split out of cthangover_game so the base content mod stays pure content (scenes/dialogs/quests/data) with no C# gameplay logic.", + "locale": [ + { + "lang": "en", + "name": "Cthangover: Starter Party", + "description": "Seeds the default starter party (Marao) and the slave_master skill after mod resources are ready, and restores it on NewGameStartedEvent. Split out of cthangover_game so the base content mod stays pure content." + }, + { + "lang": "ru", + "name": "Cthangover: стартовая партия", + "description": "Выдаёт стартовую партию (Марао) и умение slave_master после готовности ресурсов модов и восстанавливает её на событии новой игры. Вынесено из cthangover_game, чтобы базовый контент-мод оставался чистым контентом." + } + ], + "category": "engine, library", + "tags": [ + "cthangover", + "party", + "engine", + "library" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_cthangover_party/raw/branch/master/mod.png", + "depends": [ + "cthangover_game>=1", + "skills_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_cthangover_party/releases/download/v1.0.0/mod_cthangover_party-v1.0.0.zip" + ], + "size_bytes": 21751, + "archive_sha256": "eac8bf43efdbe7d36d0ebdfe201dcfba81634dc8ede00a1100c8eb730d99573f", + "install_sha256": "e8532eed96db7771c49e7f0d1b61aa7414d7148151cb878ff6a44554129943d3" + } + ], + "status": "stable" + }, + { + "id": "dialog_base", + "name": "Dialog Engine", + "author": "ct", + "version": "1.0.0", + "description": "Engine dialog subsystem: DialogBox/DialogCanvas/AnswerBox UI, the dialog queue runtime with the full DSL action set, the .scenario parser with command strategies, the executable event chains and the /root/DialogRunner for interactive dialogs. Replaces the former Core/UI/Dialog, Core/UI/Executable and Core/Scenarios implementations — SceneManager and SaveService keep driving chains and events through the core contracts (IDialogBox, IExecutableEvent, IExecutableEventChain, IScenarioEventFactory).", + "locale": [ + { + "lang": "en", + "name": "Dialog Engine", + "description": "Engine dialog subsystem: DialogBox/DialogCanvas/AnswerBox UI, the dialog queue with the full DSL action set, the .scenario parser, executable event chains and the /root/DialogRunner for interactive dialogs." + }, + { + "lang": "ru", + "name": "Движок диалогов", + "description": "Подсистема диалогов движка: UI DialogBox/DialogCanvas/AnswerBox, очередь диалогов с полным набором DSL-действий, парсер .scenario, цепочки событий и /root/DialogRunner для интерактивных диалогов." + } + ], + "category": "engine, library", + "tags": [ + "dialog", + "base", + "engine", + "library" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_dialog_base/raw/branch/master/mod.jpg", + "depends": [ + "shell2d_base>=1", + "interactive_base>=1", + "effects_base>=1", + "time_base>=1", + "map_base>=1", + "ui_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_dialog_base/releases/download/v1.0.0/mod_dialog_base-v1.0.0.zip" + ], + "size_bytes": 249308, + "archive_sha256": "95f49402914f5e8d360be5d953d300455d2a35da5ff337ba9fc4356e813a9c08", + "install_sha256": "801504a00465f0f5f6cfdfe1c98998d9d614af153f3ff75d40a1b057dbf38514" + } + ], + "status": "stable" + }, + { + "id": "editor_tools", + "name": "Editor Tools", + "author": "ct", + "version": "1.0.0", + "description": "Developer toolbox of ToolBox windows: scenario graph editor, scene editor (create and change the places of a novel: backgrounds, ambient sound, default scenario, the scene's scenarios), map editor with zones, scene builder with inspector, interactive and light editors, and the mod catalog export window.", + "category": "tools, editor", + "tags": [ + "editor", + "tools" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_editor_tools/raw/branch/master/mod.jpg", + "depends": [ + "dialog_base>=1", + "interactive_base>=1", + "time_base>=1", + "map_base>=1", + "ui_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_editor_tools/releases/download/v1.0.0/mod_editor_tools-v1.0.0.zip" + ], + "size_bytes": 246362, + "archive_sha256": "6eb17943b0cda212ac2ceee90b12f666287898a76e0fbf4329ddf1f03ed89ae2", + "install_sha256": "4425bf7978a9188f56c653fdd6756a6d42066ada643e126fef2bb0f4bc5b2203" + } + ], + "status": "stable" + }, + { + "id": "effects_base", + "name": "Effects Engine", + "author": "ct", + "version": "1.0.0", + "description": "Engine effects subsystem: PackedScene visual effect factory (folder mods only) and the frame/animated effect controllers. Replaces the former Core/UI/Animation implementations and Core/Factories/Impls/EffectFactory.", + "locale": [ + { + "lang": "en", + "name": "Effects Engine", + "description": "Engine effects subsystem: PackedScene visual effect factory and the frame/animated effect controllers." + }, + { + "lang": "ru", + "name": "Движок эффектов", + "description": "Подсистема визуальных эффектов движка: фабрика PackedScene-эффектов и контроллеры кадровых и анимированных эффектов." + } + ], + "category": "engine, library", + "tags": [ + "effects", + "base", + "engine", + "library" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_effects_base/raw/branch/master/mod.jpg", + "depends": [], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_effects_base/releases/download/v1.0.0/mod_effects_base-v1.0.0.zip" + ], + "size_bytes": 85412, + "archive_sha256": "156e7cc78d69d5a15eb2aca1d124a555010cbec27a06309fcd520a44d0cfb4c5", + "install_sha256": "5ea8e67d8da4ec6ba25c8c2388a479106f37dea17364850c0f06e07db282b5a8" + } + ], + "status": "stable" + }, + { + "id": "ff_battle", + "name": "FFBattle", + "author": "ct", + "version": "1.0.0", + "description": "Final Fantasy style battle system on top of turn_battle_base: menu-driven commands (attack/defence/item/stun), enemy and party panels, per-action animations and executors, battle HUD and log.", + "category": "gameplay", + "tags": [ + "ff", + "battle", + "gameplay" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_ff_battle/raw/branch/master/mod.jpg", + "depends": [ + "ui_base>=1", + "turn_battle_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_ff_battle/releases/download/v1.0.0/mod_ff_battle-v1.0.0.zip" + ], + "size_bytes": 234104, + "archive_sha256": "4aa84b85e372f436a28a1760d1130aabbedd94c12072eb96f5fda6820cb7917f", + "install_sha256": "27a5324b2a824f2a19f062383fb161fe5d5c4fcc8457f48bfb9f815d2a0999fc" + } + ], + "status": "stable" + }, + { + "id": "interactive_base", + "name": "Interactive Base", + "author": "ct", + "version": "1.0.0", + "description": "Interactive objects subsystem: JSON-driven scene interactives (hover/click hit areas, highlight effects) with DSL/scenario click actions. Owns InteractiveManager, the interactive definition resolver/factory and the InteractiveEditor data plane.", + "locale": [ + { + "lang": "en", + "name": "Interactive Base", + "description": "Interactive objects subsystem: JSON-driven scene interactives (hover/click hit areas, highlight effects) with DSL/scenario click actions, the InteractiveManager and the interactive editor data plane." + }, + { + "lang": "ru", + "name": "Интерактивные объекты", + "description": "Подсистема интерактивных объектов: JSON-описания зон наведения и клика с подсветкой и сценарными действиями, InteractiveManager и данные редактора интерактива." + } + ], + "category": "engine, library", + "tags": [ + "interactive", + "base", + "engine", + "library" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_interactive_base/raw/branch/master/mod.jpg", + "depends": [ + "shell2d_base>=1", + "ui_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_interactive_base/releases/download/v1.0.0/mod_interactive_base-v1.0.0.zip" + ], + "size_bytes": 108690, + "archive_sha256": "2d70612eb7cd5b668120b08c0f0f1ae034396ff3591203b836f85c079d712bf3", + "install_sha256": "d431edc162377e26b0f721b31ffbc28ee80022aaff2a57eb94a21bb31b3b4947" + } + ], + "status": "stable" + }, + { + "id": "items_base", + "name": "Items Base", + "author": "ct", + "version": "1.0.0", + "description": "Item definitions and factories, inventory and recipe state, inventory UI and their save state", + "locale": [ + { + "lang": "en", + "name": "Items Base", + "description": "Item definitions and factories, inventory and recipe state, inventory UI and their save state." + }, + { + "lang": "ru", + "name": "Предметы и инвентарь", + "description": "Определения предметов и фабрики, состояние инвентаря и рецептов, интерфейс инвентаря и их сохранение." + } + ], + "category": "gameplay", + "tags": [ + "items", + "base", + "gameplay" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_items_base/raw/branch/master/mod.jpg", + "depends": [ + "shell2d_base>=1", + "ui_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_items_base/releases/download/v1.0.0/mod_items_base-v1.0.0.zip" + ], + "size_bytes": 162977, + "archive_sha256": "f45338a3bf24680c465aaca4b542977a3df59389b187192013cbb441573f3450", + "install_sha256": "fd1281b9d086dee76958a6439079f6f61364340043cb800cef3321b2cb1e65b4" + } + ], + "status": "stable" + }, + { + "id": "live2d_base", "name": "Live2D Cubism", "author": "ct", "version": "1.0.0", "description": "Live2D Cubism C# runtime: model loading, rendering, physics, animation, effects", - "category": "Library", - "tags": ["live2d", "ui", "graphics", "2d"], - "icon_url": "https://git.cthangover.ru/cthangover/mod_live2d/raw/branch/master/mod.png", - "depends": ["visual_novel_core>=1"], + "locale": [ + { + "lang": "en", + "name": "Live2D Cubism", + "description": "Live2D Cubism C# runtime: model loading, rendering, physics, animation, effects." + }, + { + "lang": "ru", + "name": "Live2D Cubism", + "description": "C#-рантайм Live2D Cubism: загрузка и отрисовка моделей, физика, анимации и эффекты." + } + ], + "category": "library, visual", + "tags": [ + "live2d", + "base", + "library", + "visual" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_live2d_base/raw/branch/master/mod.jpg", + "depends": [ + "ui_base>=1" + ], "conflicts_with": [], "downloads": [ { "version": "1.0.0", "urls": [ - "https://git.cthangover.ru/cthangover/mod_live2d/releases/download/v1.0.0/mod_live2d-v1.0.0.zip" + "https://git.cthangover.ru/cthangover/mod_live2d_base/releases/download/v1.0.0/mod_live2d_base-v1.0.0.zip" ], - "size_bytes": 253979, - "archive_sha256": "698e3d6e9f74cde6b98ca88bf89e2dd3944f512241f1d0f19fbbd777149eac6a", - "install_sha256": "d43643940343089c00db0b0cd6d3d902261d0222e152e2ed44e25ced1960c868" + "size_bytes": 48031383, + "archive_sha256": "9d20f4eda7a3ba7b380fefa5964098dc696b3c8399049614e4cd4a03cc6bb1d6", + "install_sha256": "abece6c284f36c35e1b975025dc7b465009f67ce42870c9ad896c5816bb01df4" } ], "status": "stable" }, { - "id": "live2d_test", - "name": "Live2D Cubism Test", + "id": "locale_atlas", + "name": "Locale Atlas", "author": "ct", - "version": "1.0.0", - "description": "Live2D Cubism integration test mod", - "category": "Visual", - "tags": ["live2d", "test"], - "icon_url": "https://git.cthangover.ru/cthangover/mod_live2d_test/raw/branch/master/mod.png", - "depends": ["visual_novel_core>=1", "live2d>=1"], - "conflicts_with": [], - "downloads": [ + "version": "0.1.0", + "description": "Localization key map for developers and AI agents: every key declared in locale/*.properties or referenced by scenarios, C#, JSON, scenes, collections and manifests, per language. Reports keys that are missing in some languages, empty, undeclared or duplicated, collection texts without a translation, and the encoding of every locale file (UTF-8 validity, BOM, mojibake, control characters, line endings). Activated by the --locale-atlas user arg; writes report.md/report.json and prints [TEST_RESULT].", + "locale": [ { - "version": "1.0.0", - "urls": [ - "https://git.cthangover.ru/cthangover/mod_live2d_test/releases/download/v1.0.0/mod_live2d_test-v1.0.0.zip" - ], - "size_bytes": 46746709, - "archive_sha256": "ba82dac21560aa948a7e507ec172b11c63bd9d054ceec20424899f876773962f", - "install_sha256": "dd0bf02efbd8ce552779c4baa209874e79161acedc4ff3913ec98d44612561a0" + "lang": "en", + "name": "Locale Atlas", + "description": "Localization key map: keys missing in some languages, empty, undeclared or duplicated, untranslated collection texts and the encoding of every locale file." + }, + { + "lang": "ru", + "name": "Карта локализации", + "description": "Карта ключей локализации: ключи, которых нет в части языков, пустые, необъявленные или повторные, непереведённые тексты коллекций и кодировка каждого файла локализации." } ], - "status": "beta" - }, - { - "id": "murakami", - "name": "Murakami", - "author": "dyn", - "version": "1.0.0", - "description": "Murakami line", - "category": "Story", - "tags": ["story", "character"], - "icon_url": "https://git.cthangover.ru/cthangover/mod_murakami/raw/branch/master/mod.png", - "depends": ["visual_novel_core>=1", "interface>=1"], + "category": "tools, debug", + "tags": [ + "locale", + "atlas", + "tools", + "debug" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_locale_atlas/raw/branch/master/mod.jpg", + "depends": [], "conflicts_with": [], "downloads": [ { - "version": "1.0.0", + "version": "0.1.0", "urls": [ - "https://git.cthangover.ru/cthangover/mod_murakami/releases/download/v1.0.0/mod_murakami-v1.0.0.zip" + "https://git.cthangover.ru/cthangover/mod_locale_atlas/releases/download/v0.1.0/mod_locale_atlas-v0.1.0.zip" ], - "size_bytes": 10472576, - "archive_sha256": "f7f2d5792ea534c539c68bfde2b0724aca97d676540ad807383bb710a6cf6860", - "install_sha256": "e30aab066c38c4fab21d06d6c1345dbab04a2a2ae20b71dd0c916666fa368ace" + "size_bytes": 140203, + "archive_sha256": "020675af3f07a726eeed9edfbb655db0712fb0d806a7340ca3bf10217df79633", + "install_sha256": "0be57ac5ba0ca1bed645c6a4c6f3bb85efc794719ccac4db8781d9bc879e1888" } ], "status": "stable" }, { - "id": "gdscript_test", - "name": "GDScript Integration Test Mod", + "id": "map_base", + "name": "World Map Engine", "author": "ct", "version": "1.0.0", - "description": "Integration tests for GDScript mod actions. Exercises the full pipeline: .gd load -> compile -> action registration -> scenario execution.", - "category": "Other", - "tags": ["test", "gdscript"], - "depends": ["visual_novel_core>=1"], + "description": "Engine world map subsystem: the full-screen map overlay (MapWidget), polygon zones layer, markers, the zone list + runtime override singleton, the scenario-facing map service facade with the open/close/show/hide scenario actions, and the shared zone style and enterability rules. Replaces the former Core/UI/Tool Map* implementations and Core/Actions/MapZoneServiceImpl. The save-format DTO MapZoneStateData stays in the core because RuntimeSerializer owns the __core__ slot layout; the mod plugs into it through MapStateBridge.", + "locale": [ + { + "lang": "en", + "name": "World Map Engine", + "description": "Engine world map subsystem: the fullscreen map overlay, polygon zones, markers, the zone list, the scenario-facing map service (open/close/show/hide actions) and the shared zone style and enterability rules." + }, + { + "lang": "ru", + "name": "Движок карты мира", + "description": "Подсистема карты мира: полноэкранный оверлей карты, полигональные зоны, маркеры, список зон, сценарные действия open/close/show/hide и общие правила стиля и входа в зоны." + } + ], + "category": "engine, library", + "tags": [ + "map", + "base", + "engine", + "library" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_map_base/raw/branch/master/mod.jpg", + "depends": [ + "ui_base>=1" + ], "conflicts_with": [], "downloads": [ { "version": "1.0.0", "urls": [ - "https://git.cthangover.ru/cthangover/mod_gdscript_test/releases/download/v1.0.0/mod_gdscript_test-v1.0.0.zip" + "https://git.cthangover.ru/cthangover/mod_map_base/releases/download/v1.0.0/mod_map_base-v1.0.0.zip" ], - "size_bytes": 5425, - "archive_sha256": "df83e38931835bf52c743bc2186d6f9cff090ee712069cab2ce30ebe32bc6e7b", - "install_sha256": "8df7f7fefbafa5e602353657efabda3b45c1544c3aae18499f147858c2c19537" + "size_bytes": 152409, + "archive_sha256": "8a757fd8a0094b9b75752c2d425fbd3a57ea404ccf61a22b1cdc24c1f4373881", + "install_sha256": "c6e18819864674e28a71c26403810ca8b8921b1a620885734c8ca1556069c5de" } ], - "status": "beta" + "status": "stable" + }, + { + "id": "menu_base", + "name": "Menu", + "author": "ct", + "version": "1.0.0", + "description": "Registry-driven main menu: built-in buttons, settings and save/load panels moved out of the core.", + "locale": [ + { + "lang": "en", + "name": "Menu", + "description": "Registry-driven main menu: built-in buttons, settings and save/load panels moved out of the core." + }, + { + "lang": "ru", + "name": "Меню", + "description": "Главное меню на реестрах: встроенные кнопки, настройки и панели сохранения/загрузки, вынесенные из ядра." + } + ], + "category": "ui", + "tags": [ + "menu", + "base", + "ui" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_menu_base/raw/branch/master/mod.jpg", + "depends": [ + "ui_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_menu_base/releases/download/v1.0.0/mod_menu_base-v1.0.0.zip" + ], + "size_bytes": 3551797, + "archive_sha256": "3a48c3cf8a8022b3ec55d824a097efa802597c749baa8197efe39782f3a7803f", + "install_sha256": "48a9afdba7fc08244778a63db196b8f54927dc04d0428f2faae4594d202ccfab" + } + ], + "status": "stable" + }, + { + "id": "mod_manager", + "name": "Mod Manager", + "author": "ct", + "version": "1.0.0", + "description": "Nexus-style mod manager: browse the catalog, filter by category and status, install, update and remove mods.", + "locale": [ + { + "lang": "en", + "name": "Mod Manager", + "description": "Nexus-style mod manager: catalog browsing, category filters, install, update and remove." + }, + { + "lang": "ru", + "name": "Менеджер модов", + "description": "Менеджер модов в стиле Nexus: каталог, фильтры по категориям, установка, обновление и удаление." + } + ], + "category": "tools, ui", + "tags": [ + "mod", + "manager", + "tools", + "ui" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_mod_manager/raw/branch/master/mod.jpg", + "depends": [ + "ui_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_mod_manager/releases/download/v1.0.0/mod_mod_manager-v1.0.0.zip" + ], + "size_bytes": 197367, + "archive_sha256": "b7e4f3c44fb73232360edac5c7d74ffcbf58c3febfea69c85bdce0f8a93157ca", + "install_sha256": "37786d16cd0fb19eb2bdfe6dde5aa2ff1f1d044ddd1b206eccc1542947062ecb" + } + ], + "status": "stable" + }, + { + "id": "my_novel_game", + "name": "My Novel", + "author": "ct", + "version": "1.0.0", + "description": "The novel template's own content: a town where you can go into a bar or back home, and a way back from both. Only scenes, scenarios and text; backgrounds and sound come from town_pack. Rename it after your game (_game) and grow your story from here.", + "locale": [ + { + "lang": "en", + "name": "My Novel", + "description": "The novel template's own scenes and scenarios: a town with a bar and a home, connected by scene switches. Backgrounds and sound come from the town pack." + }, + { + "lang": "ru", + "name": "Моя новелла", + "description": "Собственные сцены и сценарии шаблона новеллы: город с баром и домом, связанные переходами между сценами. Фоны и звук берутся из городского пака." + } + ], + "category": "story", + "tags": [ + "my", + "novel", + "game", + "story" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_my_novel_game/raw/branch/master/mod.jpg", + "depends": [ + "shell2d_base>=1", + "dialog_base>=1", + "audio_base>=1", + "town_pack>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_my_novel_game/releases/download/v1.0.0/mod_my_novel_game-v1.0.0.zip" + ], + "size_bytes": 76252, + "archive_sha256": "089b55fd3735532c946a9922e022979ea7ec17e839a2fc28bd09dd8161fffe09", + "install_sha256": "04b66cc3b15bb12a4bfff7f8a0cec224808d5c18bcdc62745d4568a6bc73cc01" + } + ], + "status": "stable" + }, + { + "id": "quests_base", + "name": "Quests Engine", + "author": "ct", + "version": "1.0.0", + "description": "Engine quests subsystem: the quest factory and runtime state (QuestFactory, QuestBase/QuestData), the IQuestService implementation, quest scenario actions, quest scene conditions with the QuestParser leaf parser and the quest journal UI. Replaces the former Core/Quests state, Core/Actions quest services and actions, Core/Scenes quest conditions and Core/UI/Quests - QuestsModInitializer publishes the kernel contract (IQuestService via QuestServiceRegistry), registers the quest leaf parser and the new-game resettable; QuestsSaveable persists quest state through the generic mod save slot.", + "locale": [ + { + "lang": "en", + "name": "Quests Engine", + "description": "Engine quests subsystem: the quest factory and runtime state, the IQuestService implementation, quest scenario actions, quest scene conditions and the quest journal UI." + }, + { + "lang": "ru", + "name": "Движок квестов", + "description": "Подсистема квестов движка: фабрика квестов и их состояние, реализация IQuestService, сценарные действия, условия квестов в сценах и журнал квестов." + } + ], + "category": "engine, library", + "tags": [ + "quests", + "base", + "engine", + "library" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_quests_base/raw/branch/master/mod.jpg", + "depends": [ + "characters_base>=1", + "ui_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_quests_base/releases/download/v1.0.0/mod_quests_base-v1.0.0.zip" + ], + "size_bytes": 132415, + "archive_sha256": "142eef223e5a369dd3e4d0636a812c190c498c50b6f7934a07269d30e3168b40", + "install_sha256": "1f318051198c88660206635e0694825258688e0786a0fb7266e88a34d793c420" + } + ], + "status": "stable" + }, + { + "id": "recruiting", + "name": "Recruiting", + "author": "ct", + "version": "1.1.0", + "description": "Recruitment of defeated characters: the roster panel, join conditions (e.g. enslaving a defeated enemy), per-recruit behaviours such as nutrition, the party bridge, tick updates and save state.", + "locale": [ + { + "lang": "en", + "name": "Recruiting", + "description": "Recruitment of defeated characters: the roster panel, join conditions (e.g. enslaving a defeated enemy), per-recruit behaviours such as nutrition, the party bridge, tick updates and save state." + }, + { + "lang": "ru", + "name": "Рекрутинг", + "description": "Вербовка побеждённых персонажей: панель ростера, условия присоединения (например, порабощение врага), поведение рекрутов (например, питание), мост в партию, тики и сохранение состояния." + } + ], + "category": "gameplay", + "tags": [ + "recruiting", + "gameplay" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_recruiting/raw/branch/master/mod.jpg", + "depends": [ + "shell2d_base>=1", + "characters_base>=1", + "ui_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.1.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_recruiting/releases/download/v1.1.0/mod_recruiting-v1.1.0.zip" + ], + "size_bytes": 148984, + "archive_sha256": "c12b73363aa39361454b7be6a90d852fa1f17722ed0a76c2d981a1292a9818fc", + "install_sha256": "91b4df86739927e7acfdb8ef8892848fee1e5fd427998a573364c4a273c81466" + } + ], + "status": "stable" + }, + { + "id": "resource_atlas", + "name": "Resource Atlas", + "author": "ct", + "version": "0.1.0", + "description": "Cross-mod resource map for developers and AI agents: which mod requests resources (sounds, textures, scenes, entities, actions, locale keys, res:// files) provided by another mod, which mod overrides or patches another mod's resources, and whether each link is backed by manifest depends. Activated by the --resource-atlas user arg; writes report.md/report.json and prints [TEST_RESULT].", + "locale": [ + { + "lang": "en", + "name": "Resource Atlas", + "description": "Cross-mod resource map: who requests, overrides or patches another mod's resources, and whether manifest depends declare it." + }, + { + "lang": "ru", + "name": "Карта ресурсов", + "description": "Карта ресурсов между модами: кто запрашивает, переопределяет или патчит ресурсы другого мода и объявлено ли это в depends манифеста." + } + ], + "category": "tools, debug", + "tags": [ + "resource", + "atlas", + "tools", + "debug" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_resource_atlas/raw/branch/master/mod.jpg", + "depends": [ + "validator>=0.1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "0.1.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_resource_atlas/releases/download/v0.1.0/mod_resource_atlas-v0.1.0.zip" + ], + "size_bytes": 108000, + "archive_sha256": "0b3b5bbce8dd8c9c66c5ae7011dcc6e1c3661c4427db3502c5aae30b88f70f63", + "install_sha256": "49ba17295cef52b42183c9b176e25b64f7f9d0158e8a14e68af047a2388e6a1b" + } + ], + "status": "stable" + }, + { + "id": "rpg", + "name": "RPG World", + "author": "ct", + "version": "1.0.0", + "description": "Top-down tile world in the spirit of RPG Maker on top of the 2D engine mods: maps of square tiles in three layers (back, main, front) with a collision layer, walking on the grid with WASD or the arrows, events that talk, teleport or start battles with the action key E/F or on touch, random encounters. A map is a logical scene, so entry scenarios, ambience, saving and the dialog box work on maps unchanged; battles run on the turn-based platform with the game's battle core and return to the same cell. Scenario actions: rpg.battle, rpg.teleport.", + "locale": [ + { + "lang": "en", + "name": "RPG World", + "description": "Top-down tile world in the spirit of RPG Maker: three tile layers and a collision layer, grid walking with WASD, events on the action key E/F, random encounters and battles that return to the map." + }, + { + "lang": "ru", + "name": "RPG-мир", + "description": "Мир из тайлов с видом сверху в духе RPG Maker: три слоя тайлов и слой коллизий, ходьба по клеткам на WASD, события по клавише действия E/F, случайные встречи и бои с возвратом на карту." + } + ], + "category": "gameplay", + "tags": [ + "rpg", + "gameplay" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_rpg/raw/branch/master/mod.jpg", + "depends": [ + "shell2d_base>=1", + "ui_base>=1", + "dialog_base>=1", + "turn_battle_base>=2" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_rpg/releases/download/v1.0.0/mod_rpg-v1.0.0.zip" + ], + "size_bytes": 138869, + "archive_sha256": "235d9f766ed01746ae8983f07949c09c6c0c00b344e6b1e01ae42521738e74d3", + "install_sha256": "50f6eb7d7bf5f8a4d843804b9a3bdd8ae70894ad42213881cc42bd4cd0c0706a" + } + ], + "status": "stable" + }, + { + "id": "rpg_demo_game", + "name": "RPG Demo", + "author": "ct", + "version": "1.0.0", + "description": "Content of the RPG demo (collection rpg_demo): a village, the elder's house and a forest with a wolf at the cave, made of rpg_map files over the village_pack tileset. Shows teleports, talking NPCs, events that change with story flags, chests, things to gather in the forest (brushwood, stones, mushrooms that heal), a merchant who sells elixirs and buys the junk, a map monster with a win flag and random encounters in the forest. Only data and scenarios, no C#.", + "locale": [ + { + "lang": "en", + "name": "RPG Demo", + "description": "Content of the RPG demo: a village, the elder's house and a forest with a wolf by the cave. Maps, events and scenarios only." + }, + { + "lang": "ru", + "name": "RPG-демо", + "description": "Содержимое RPG-демо: деревня, дом старосты и лес с волком у пещеры. Только карты, события и сценарии." + } + ], + "category": "story", + "tags": [ + "rpg", + "demo", + "game", + "story" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_rpg_demo_game/raw/branch/master/mod.jpg", + "depends": [ + "rpg>=1", + "village_pack>=1", + "characters_base>=1", + "dialog_base>=1", + "items_base>=1", + "trading>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_rpg_demo_game/releases/download/v1.0.0/mod_rpg_demo_game-v1.0.0.zip" + ], + "size_bytes": 118716, + "archive_sha256": "e9e5fc4f857accd4e2f32a37b775284e3e7528dc9c77688f8a6811a53010d4b3", + "install_sha256": "18a4dfe1b65a292c30884f8b790e3e05e6f177eeb058c4082a2b7af054aacead" + } + ], + "status": "stable" + }, + { + "id": "rpg_editor", + "name": "RPG Map Editor", + "author": "ct", + "version": "1.0.0", + "description": "Editor of the rpg mod's tile maps (maps/*.json): paints the back, main and front tile layers and the collision layer with a pencil, an eraser and a flood fill from the tileset palette, places and edits map events (look, trigger, scenario, inline commands, teleport, condition), sets the map size, spawn and random encounters. Undo/redo, live update of the running world after saving, play from the spawn. Opens from the main menu tools, the novel editor hub and the in-game toolbar.", + "category": "tools, editor", + "tags": [ + "rpg", + "editor", + "tools" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_rpg_editor/raw/branch/master/mod.jpg", + "depends": [ + "rpg>=1", + "editor_tools>=1", + "ui_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_rpg_editor/releases/download/v1.0.0/mod_rpg_editor-v1.0.0.zip" + ], + "size_bytes": 124355, + "archive_sha256": "e490921161633a35ca8c2b8714c542a7e0051f3185b47b167e3d2fe31c95e765", + "install_sha256": "e7a5ec3bb49ca64fafe273e74d6d4136a1a10ffac416ac16e8d7b3cc5ba50503" + } + ], + "status": "stable" + }, + { + "id": "scenario_studio", + "name": "Scenario Studio", + "author": "ct", + "version": "0.1.0", + "description": "In-game scenario debugger and live editor: a non-modal dock over the running game with pause, step, breakpoints and restarts (with state rollback), the current scenario line, scene candidates with the reason they did or did not start, editable game state, an event log and the scene map. Edits go into folder mods or into a per-game studio layer over read-only mods, which can be exported as a mod; backgrounds dropped into a mod or the layer during the game are picked up with the \"Resources\" button of the transport bar. Author mode shows the script, novice mode the story moment.", + "locale": [ + { + "lang": "en", + "name": "Scenario Studio", + "description": "Debug and edit scenarios while the game runs: pause, step, restart, the current line, why scenarios started, game state, an event log and the scene map. Author and Novice modes." + }, + { + "lang": "ru", + "name": "Студия сценариев", + "description": "Отладка и правка сценариев прямо во время игры: пауза, шаг, перезапуск, текущая строка, причины запуска сценариев, состояние игры, журнал и карта сцен. Режимы «Автор» и «Новичок»." + } + ], + "category": "tools, editor", + "tags": [ + "scenario", + "studio", + "tools", + "editor" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_scenario_studio/raw/branch/master/mod.jpg", + "depends": [ + "ui_base>=1", + "dialog_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "0.1.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_scenario_studio/releases/download/v0.1.0/mod_scenario_studio-v0.1.0.zip" + ], + "size_bytes": 192261, + "archive_sha256": "2a548f820cffb23a5078679dffc960afc8fab04d87454e70872356d3987bb304", + "install_sha256": "9bb2742403cdf0737d8766cf76f05f1bacbaf66a1b8d2d0b6d05e8bd4a7e0aa1" + } + ], + "status": "stable" + }, + { + "id": "shell2d_base", + "name": "2D Shell", + "author": "ct", + "version": "1.0.0", + "description": "2D presentation platform: base shell scene with the view box, toolbar, panel slots and notifications. Parent for all 2D mods; content mods fill the shell through scene patches.", + "locale": [ + { + "lang": "en", + "name": "2D Shell", + "description": "2D presentation platform: base shell scene with the view box, toolbar, panel slots and notifications. Parent for all 2D mods; content mods fill the shell through scene patches." + }, + { + "lang": "ru", + "name": "2D-оболочка", + "description": "Базовая 2D-платформа: сцена-оболочка с ViewBox, тулбаром, слотами панелей и уведомлениями. Родитель для всех 2D-модов; контент-моды наполняют оболочку через патчи сцен." + } + ], + "category": "engine, library", + "tags": [ + "shell2d", + "base", + "engine", + "library" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_shell2d_base/raw/branch/master/mod.jpg", + "depends": [ + "time_base>=1", + "ui_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_shell2d_base/releases/download/v1.0.0/mod_shell2d_base-v1.0.0.zip" + ], + "size_bytes": 72196, + "archive_sha256": "e0d6ff8b46520e617275fb908b54af0891586aaf2952e8c2565ce90787901c2a", + "install_sha256": "53e104b9984b0cf8fd93382fa14d89b4ec2407300dc76406e0f483edf28d0774" + } + ], + "status": "stable" + }, + { + "id": "skills_base", + "name": "Skills Engine", + "author": "ct", + "version": "1.0.0", + "description": "Engine skills subsystem: card-based skill definitions, the grant service (skill + granted action pairing), the skills panel UI and the collection effect plate. Replaces the former Core/Skills implementations and Core/Factories/Impls/SkillFactory.", + "locale": [ + { + "lang": "en", + "name": "Skills Engine", + "description": "Engine skills subsystem: card-based skill definitions, the grant service (skill + granted action pairing), the skills panel UI and the collection effect plate." + }, + { + "lang": "ru", + "name": "Движок умений", + "description": "Подсистема умений движка: карточные определения умений, сервис выдачи (умение + связанное действие), панель умений и плашка эффекта коллекции." + } + ], + "category": "engine, library", + "tags": [ + "skills", + "base", + "engine", + "library" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_skills_base/raw/branch/master/mod.jpg", + "depends": [ + "ui_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_skills_base/releases/download/v1.0.0/mod_skills_base-v1.0.0.zip" + ], + "size_bytes": 117109, + "archive_sha256": "1dc171c2873cdd9fa58c5c7e4f2c0762bb2a619cf666a92be2e65d0cd3e89cdc", + "install_sha256": "7fb28f2b16d07014129766a8a86a9b8f214c701af7862ed7709c41cca8705b7c" + } + ], + "status": "stable" }, { "id": "test_defaults_and_patches", "name": "Test Defaults and Patches", "author": "ct", "version": "1.0.0", - "description": "Test mod demonstrating property patches system with wildcard and targeted patches", - "category": "Other", - "tags": ["test", "patches"], - "depends": ["visual_novel_core>=1"], + "description": "Test fixture of the property patches system: a targeted patch (Marao, food/ration) and wildcard patches of every character and item. Marked as a fixture, so --all-mods and games never load it; the property_patches itest loads it explicitly (--with-mods=test_defaults_and_patches --itest=property_patches) and checks the merged entities.", + "locale": [ + { + "lang": "en", + "name": "Test Defaults and Patches", + "description": "Test mod demonstrating the property patches system with wildcard and targeted patches." + }, + { + "lang": "ru", + "name": "Тест: значения по умолчанию и патчи", + "description": "Тестовый мод системы патчей свойств: wildcard-патчи и точечные патчи значений." + } + ], + "category": "other", + "tags": [ + "test", + "defaults", + "and", + "patches", + "other" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_test_defaults_and_patches/raw/branch/master/mod.jpg", + "depends": [ + "cthangover_game>=1", + "cthangover_murakami>=1", + "cooking>=1", + "characters_base>=1", + "items_base>=1" + ], "conflicts_with": [], "downloads": [ { @@ -235,58 +1233,298 @@ "urls": [ "https://git.cthangover.ru/cthangover/mod_test_defaults_and_patches/releases/download/v1.0.0/mod_test_defaults_and_patches-v1.0.0.zip" ], - "size_bytes": 749, - "archive_sha256": "4758fe6e95ee64431e5e0f40f4d77a958f20e36f6940af387174d36e4972ad2d", - "install_sha256": "8ea1161036856463deb49738f4db58fa75349e9732e99dcce9a630b053000ff9" + "size_bytes": 132024, + "archive_sha256": "87040cd40f3be41d2ad6f7cbb6d505ab2a3bbe443b420bb17ea1b961998ef447", + "install_sha256": "e16bc30ae52eba8e6a997c6388cf0de8130e93a9666fee514188c95807367ba0" } ], - "status": "beta" + "status": "stable" }, { - "id": "test_interactives", - "name": "Test Interactives", + "id": "time_base", + "name": "Time Engine", "author": "ct", "version": "1.0.0", - "description": "Test mod demonstrating the interactive object system - clickable elements on scene with highlight", - "category": "Other", - "tags": ["test", "interactives"], - "depends": ["visual_novel_core>=1", "interface>=1"], + "description": "Engine time subsystem: the in-game clock tick controller bridging SceneEventController timer pulses to RuntimeData.Time, the clock HUD widget, the 2D lighting stack (UiLightController, LampBehaviour, LightDef) installed into the kernel through LightingBridge, and the lighting.clear_map scenario action. Replaces the former Core/Settings/TimeTickController, Core/UI/Lights, Core/UI/Tool/TimeController and Core/Actions/LightingServiceImpl.", + "locale": [ + { + "lang": "en", + "name": "Time Engine", + "description": "Engine time subsystem: the in-game clock tick controller, the clock HUD widget, the 2D lighting stack (UiLightController, LampBehaviour, LightDef) and the lighting.clear_map scenario action." + }, + { + "lang": "ru", + "name": "Движок времени", + "description": "Подсистема игрового времени: контроллер тиков часов, HUD-виджет часов, стек 2D-освещения (UiLightController, LampBehaviour, LightDef) и сценарное действие lighting.clear_map." + } + ], + "category": "engine, library", + "tags": [ + "time", + "base", + "engine", + "library" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_time_base/raw/branch/master/mod.jpg", + "depends": [ + "ui_base>=1" + ], "conflicts_with": [], "downloads": [ { "version": "1.0.0", "urls": [ - "https://git.cthangover.ru/cthangover/mod_test_interactives/releases/download/v1.0.0/mod_test_interactives-v1.0.0.zip" + "https://git.cthangover.ru/cthangover/mod_time_base/releases/download/v1.0.0/mod_time_base-v1.0.0.zip" ], - "size_bytes": 1571, - "archive_sha256": "7dbce2b0d0a6e7808ac880a67950e61601a4dcf0864310fce8c6be4d1ce12e1f", - "install_sha256": "b8407e4931c88a9de757d91cf27deb92a0b417a8c641870d1caa707a9bad7e0f" + "size_bytes": 150860, + "archive_sha256": "678d4400f6b3399313208ad2169f3e07b0dddb60ef23bca8046d218652f72f45", + "install_sha256": "97eb33a66c086dd8fcdf2bdba5cc84e21014bd2d838b927f65dcbc2a0bdfcc86" } ], - "status": "beta" + "status": "stable" }, { - "id": "tools", - "name": "Tools", + "id": "town_pack", + "name": "Town Pack", "author": "ct", "version": "1.0.0", - "description": "Development tools", - "category": "Other", - "tags": ["tools", "editor", "development"], - "depends": ["visual_novel_core>=1"], + "description": "Reusable town content for any game: the town entrance (with a depth map), a home vestibule, a bar and the bar ambience. Backgrounds: town/town_entry, home/vestibule, bar/bar; sound: bar/bar_ambient.", + "locale": [ + { + "lang": "en", + "name": "Town Pack", + "description": "Reusable town content for any game: the town entrance, a home vestibule, a bar and the bar ambience." + }, + { + "lang": "ru", + "name": "Городской пак", + "description": "Городской контент для любой игры: въезд в город, прихожая дома, бар и звук бара." + } + ], + "category": "visual, audio", + "tags": [ + "town", + "pack", + "visual", + "audio" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_town_pack/raw/branch/master/mod.jpg", + "depends": [], "conflicts_with": [], "downloads": [ { "version": "1.0.0", "urls": [ - "https://git.cthangover.ru/cthangover/mod_tools/releases/download/v1.0.0/mod_tools-v1.0.0.zip" + "https://git.cthangover.ru/cthangover/mod_town_pack/releases/download/v1.0.0/mod_town_pack-v1.0.0.zip" ], - "size_bytes": 72801, - "archive_sha256": "61eeaff5bbb99f57f0084eb5e90775ab20fefabe7e9e687f5dec20d58bd3d081", - "install_sha256": "dd43cc1d911441ab36c61a19c8ad5abf6fbc774546707768f240f54e89aa46ae" + "size_bytes": 1494160, + "archive_sha256": "ffb31ae8e592a85c9fea7acc884bb36b4883d61f8b8404539aad32ddaf74fc90", + "install_sha256": "6fb87acaf6bd7fa6934292d2224bcc6ebfc84a72f8999909c7865c339dd9f8ce" } ], - "status": "beta" + "status": "stable" + }, + { + "id": "trading", + "name": "Trading", + "author": "ct", + "version": "1.0.0", + "description": "Shops: merchants defined as data (\"Kind\": \"shop\": what they sell, what they buy back and at which price) and a trade window of two inventories side by side, the merchant's goods and the player's bag, with a deal card between them. Money is an ordinary inventory item, the gold coin money/coin by default. Scenario action: trade.open shop=.", + "locale": [ + { + "lang": "en", + "name": "Trading", + "description": "Merchants' shops: what they sell, what they buy back and at which price (\"Kind\": \"shop\" data), and a trade window of two inventories, the merchant's goods and the player's bag. Money is an ordinary item, the gold coin." + }, + { + "lang": "ru", + "name": "Торговля", + "description": "Лавки торговцев: что продают, что скупают и почём (данные «Kind»: «shop»), и окно торговли из двух инвентарей — товары торговца и сумка игрока. Деньги — обычный предмет, золотая монета." + } + ], + "category": "gameplay", + "tags": [ + "trading", + "gameplay" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_trading/raw/branch/master/mod.jpg", + "depends": [ + "ui_base>=1", + "items_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_trading/releases/download/v1.0.0/mod_trading-v1.0.0.zip" + ], + "size_bytes": 134769, + "archive_sha256": "754b099e33ba1ffe7b45112bf6916038d136a40e194f4b44a9f2b58bf5ddedda", + "install_sha256": "408b93af91a1e5ddf725544e78bcc936f2ac5353c9c516873c6f141f8f9e6f3f" + } + ], + "status": "stable" + }, + { + "id": "turn_battle_base", + "name": "Turn-based battle engine", + "author": "ct", + "version": "2.0.0", + "description": "Turn-based battle platform: battle ruleset contracts, core registry, action executors, status effects, battle scene, victory/defeat screens, EXP and loot reports", + "locale": [ + { + "lang": "en", + "name": "Turn-based Battle Engine", + "description": "Turn-based battle platform: battle ruleset contracts (IBattleCore), the core registry, action executors, status effects, the battle scene, victory/defeat screens and EXP/loot reports." + }, + { + "lang": "ru", + "name": "Движок пошаговых боёв", + "description": "Платформа пошаговых боёв: контракты боевых ядер (IBattleCore), реестр ядер, исполнители действий, статус-эффекты, боевая сцена, экраны победы/поражения и отчёты опыта и добычи." + } + ], + "category": "engine, gameplay", + "tags": [ + "turn", + "battle", + "base", + "engine", + "gameplay" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_turn_battle_base/raw/branch/master/mod.jpg", + "depends": [ + "characters_base>=1", + "ui_base>=1", + "items_base>=1", + "quests_base>=1", + "time_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "2.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_turn_battle_base/releases/download/v2.0.0/mod_turn_battle_base-v2.0.0.zip" + ], + "size_bytes": 238350, + "archive_sha256": "b1f99b90752ea39312b6616dc1c5750f6d1fae3ced5803f333bd5859cdff76ed", + "install_sha256": "de4c47070766ac40954697428e60d15108bfa3311a070241f6cc07badf1918af" + } + ], + "status": "stable" + }, + { + "id": "ui_base", + "name": "UI", + "author": "ct", + "version": "1.0.0", + "description": "Engine UI subsystem: widget toolkit (Widget/ModWidget/lists), ViewBox background viewport, ToolBox toolbar, GameMenu/SaveIcon, notification panels, UiKit design system, DeviceInput. Kernel keeps only contracts (IWidget, IDialogBox, IToolbarHost, ISaveIconHost, IBackgroundView, IUiLazyConstruct, MenuRegistry, ToolFactory, NotificationBuffer, SceneEventController, CthangoverTheme/UiTokens boot styling) and drives this mod through those seams.", + "category": "ui", + "tags": [ + "ui", + "base" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_ui_base/raw/branch/master/mod.jpg", + "depends": [], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_ui_base/releases/download/v1.0.0/mod_ui_base-v1.0.0.zip" + ], + "size_bytes": 359315, + "archive_sha256": "bfe7dc75af7f2a9df8b6d3f2bca68e3200d9ac42cd47b723bcb69624d20640c3", + "install_sha256": "eeef02dba74236006b95d5ad33e806691b6da56caa7e17b315b06c78bf026718" + } + ], + "status": "stable" + }, + { + "id": "validator", + "name": "Validator", + "author": "ct", + "version": "0.1.0", + "description": "Static validation of mods without running the game: manifest schema, entity strategies (characters, items, quests, skills, recipes, actions), cross references, depends, scenario commands and scene patches, with an optional text report.", + "locale": [ + { + "lang": "en", + "name": "Validator", + "description": "Static validation of mods without running the game: manifest schema, entity strategies (characters, items, quests, skills, recipes, actions), cross references, depends, scenario commands and scene patches, with a text report." + }, + { + "lang": "ru", + "name": "Валидатор", + "description": "Статическая проверка модов без запуска игры: схема манифеста, стратегии сущностей (персонажи, предметы, квесты, умения, рецепты, действия), перекрёстные ссылки, depends, команды сценариев и патчи сцен, текстовый отчёт." + } + ], + "category": "debug", + "tags": [ + "validator", + "debug" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_validator/raw/branch/master/mod.jpg", + "depends": [ + "dialog_base>=1", + "interactive_base>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "0.1.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_validator/releases/download/v0.1.0/mod_validator-v0.1.0.zip" + ], + "size_bytes": 115667, + "archive_sha256": "69d8ff2088bb6f815b90c1ff18062a98a798bbdc987fc7448860ebb6680892d5", + "install_sha256": "1de256e6a838ea14b25e45d81e96db551c65d5c855439bcd683435ab88c74e6e" + } + ], + "status": "stable" + }, + { + "id": "village_pack", + "name": "Village Pack", + "author": "ct", + "version": "1.0.0", + "description": "Reusable pixel-art content for RPG maps: the 'village' tileset (grass, paths, water, trees with crowns for the front layer, houses, fences, chests, a forest floor and a cave mouth, things lying on the ground to pick up — brushwood, stones, a mushroom — with solid flags), charsets of a hero, an elder, a villager, a merchant, a slime and a wolf, battle portraits of the hero, the slime and the wolf, and two battle backgrounds (meadow, forest) with depth maps. Art only: no maps, no stories.", + "locale": [ + { + "lang": "en", + "name": "Village Pack", + "description": "Pixel-art content for RPG maps: the village tileset, charsets of townsfolk and monsters, battle portraits and battle backgrounds." + }, + { + "lang": "ru", + "name": "Деревенский пак", + "description": "Пиксельная графика для RPG-карт: деревенский тайлсет, чарсеты жителей и монстров, портреты для боя и фоны для сражений." + } + ], + "category": "visual, characters", + "tags": [ + "village", + "pack", + "visual", + "characters" + ], + "icon_url": "https://git.cthangover.ru/cthangover/mod_village_pack/raw/branch/master/mod.jpg", + "depends": [ + "rpg>=1" + ], + "conflicts_with": [], + "downloads": [ + { + "version": "1.0.0", + "urls": [ + "https://git.cthangover.ru/cthangover/mod_village_pack/releases/download/v1.0.0/mod_village_pack-v1.0.0.zip" + ], + "size_bytes": 15458812, + "archive_sha256": "b23a1f458487a0194b12b62aca3490014ed4e3dd02a548626ee506e0440be338", + "install_sha256": "94e0742611e7dec93135e327f5412535b8b58443bfea43aff5df574f8463c3ec" + } + ], + "status": "stable" } ] }