From c6627a8205ecf17f9f0a8bc076c15103e41cc283 Mon Sep 17 00:00:00 2001 From: iisaev Date: Fri, 23 Oct 2026 19:09:46 +0200 Subject: [PATCH] Character editor: characters of a mod in a searchable list, name in every language, portrait, RPG charset, stats, battle actions; GUI suite characters_editor_edit --- .gitattributes | 30 +++ locale/ui_en.properties | 22 ++ locale/ui_ru.properties | 22 ++ manifest.json | 24 ++ mod.jpg | Bin 0 -> 123558 bytes src/CharacterEditorToolBoxButton.cs | 20 ++ src/CharacterEditorToolProvider.cs | 26 +++ src/CharacterEditorWindow.cs | 65 ++++++ test_suites/edit/manifest.json | 11 + .../edit/src/CharacterEditorTestDriver.cs | 208 ++++++++++++++++++ .../src/CharacterEditorTestInitializer.cs | 33 +++ 11 files changed, 461 insertions(+) create mode 100644 .gitattributes create mode 100644 locale/ui_en.properties create mode 100644 locale/ui_ru.properties create mode 100644 manifest.json create mode 100644 mod.jpg create mode 100644 src/CharacterEditorToolBoxButton.cs create mode 100644 src/CharacterEditorToolProvider.cs create mode 100644 src/CharacterEditorWindow.cs create mode 100644 test_suites/edit/manifest.json create mode 100644 test_suites/edit/src/CharacterEditorTestDriver.cs create mode 100644 test_suites/edit/src/CharacterEditorTestInitializer.cs diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..3030c1a --- /dev/null +++ b/.gitattributes @@ -0,0 +1,30 @@ +# Line endings: LF everywhere, on every OS, whatever core.autocrlf says. +* text=auto eol=lf + +# cmd.exe misreads labels and goto in LF batch files, so they stay CRLF. +*.bat text eol=crlf +*.cmd text eol=crlf + +# Binaries: never converted, never diffed as text. +*.png binary +*.jpg binary +*.jpeg binary +*.webp binary +*.svg text +*.ogg binary +*.wav binary +*.mp3 binary +*.ttf binary +*.otf binary +*.woff binary +*.woff2 binary +*.dll binary +*.so binary +*.dylib binary +*.pdb binary +*.exe binary +*.zip binary +*.pck binary +*.moc3 binary +*.res binary +*.scn binary diff --git a/locale/ui_en.properties b/locale/ui_en.properties new file mode 100644 index 0000000..694afa3 --- /dev/null +++ b/locale/ui_en.properties @@ -0,0 +1,22 @@ +mod_characters_editor_name = Character Editor +mod_characters_editor_desc = Editor of the game's characters — heroes, NPCs and enemies: a searchable list with portraits, the name in every language of the mod, portrait, the RPG map charset, battle stats and actions; a save shows in the game at once. +tools/characters_editor/title = Characters +tools/characters_editor/name = Name +tools/characters_editor/image = Portrait +tools/characters_editor/image_tip = Picture in the mod's characters/ folder: dialogs, battles and the character panel show it +tools/characters_editor/charset = Charset (RPG) +tools/characters_editor/charset_tip = How the character looks on an RPG map: a 3×4 frame sheet from the charsets/ folder. A novel does not need it +tools/characters_editor/level = Level +tools/characters_editor/health = Health +tools/characters_editor/attack = Attack +tools/characters_editor/defence = Defence +tools/characters_editor/point = Action points +tools/characters_editor/point_tip = Points to spend on actions in a battle +tools/characters_editor/exp = Experience +tools/characters_editor/exp_tip = The character's experience, read by the battle cores +tools/characters_editor/recruitment = Recruit chance +tools/characters_editor/recruitment_tip = Chance (percent) to take the beaten character into the party; 0 — never +tools/characters_editor/behaviour = Behaviour +tools/characters_editor/behaviour_tip = How the character acts in battle when the game controls it; base — the usual +tools/characters_editor/actions = Actions +tools/characters_editor/actions_tip = The character's battle actions from the loaded mods diff --git a/locale/ui_ru.properties b/locale/ui_ru.properties new file mode 100644 index 0000000..c5f1658 --- /dev/null +++ b/locale/ui_ru.properties @@ -0,0 +1,22 @@ +mod_characters_editor_name = Редактор персонажей +mod_characters_editor_desc = Редактор персонажей игры — героев, NPC и врагов: список с поиском и портретами, имя на всех языках мода, портрет, чарсет для RPG-карты, боевые параметры и действия; сохранение сразу видно в игре. +tools/characters_editor/title = Персонажи +tools/characters_editor/name = Имя +tools/characters_editor/image = Портрет +tools/characters_editor/image_tip = Картинка из папки characters/ мода: её показывают диалоги, бои и панель персонажей +tools/characters_editor/charset = Чарсет (RPG) +tools/characters_editor/charset_tip = Как персонаж выглядит на RPG-карте: лист 3×4 кадра из папки charsets/. В новелле не нужен +tools/characters_editor/level = Уровень +tools/characters_editor/health = Здоровье +tools/characters_editor/attack = Атака +tools/characters_editor/defence = Защита +tools/characters_editor/point = Очки действий +tools/characters_editor/point_tip = Запас очков на действия в бою +tools/characters_editor/exp = Опыт +tools/characters_editor/exp_tip = Опыт персонажа, его читают боевые ядра +tools/characters_editor/recruitment = Шанс вербовки +tools/characters_editor/recruitment_tip = Шанс (в процентах) позвать побеждённого в отряд; 0 — нельзя +tools/characters_editor/behaviour = Поведение +tools/characters_editor/behaviour_tip = Как персонаж ведёт себя в бою под управлением игры; base — обычное +tools/characters_editor/actions = Действия +tools/characters_editor/actions_tip = Боевые действия персонажа из загруженных модов diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..2739355 --- /dev/null +++ b/manifest.json @@ -0,0 +1,24 @@ +{ + "id": "characters_editor", + "name": "Character Editor", + "version": "1.0.0", + "author": "ct", + "description": "Editor of the game's characters (characters_base, \"Kind\": \"character\") in the style of the other editor windows: heroes, NPCs and enemies of a writable mod in a searchable list with their portraits, a form with the name in every language of the mod, portrait, the RPG map charset, battle stats and the battle actions picked from the loaded ones; loot and fields of other mods stay editable as JSON. New characters, copies, deletion, undo, and a save the running game sees at once. Opens from the main menu tools, the novel editor hub and the in-game toolbar.", + "category": "tools, editor", + "sources": [ + "src/**/*.cs" + ], + "depends": [ + "editor_tools>=1", + "characters_base>=1", + "ui_base>=1" + ], + "test_suites": [ + { + "id": "edit", + "activate": [ + "--itest=characters_editor_edit" + ] + } + ] +} diff --git a/mod.jpg b/mod.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0cfcf87b72428cc207b7c985f512feba684975bd GIT binary patch literal 123558 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 z�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 z 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 . + public string ToolId => "characters_editor"; + + /// No icon: the button shows its label. + public string IconPath => ""; + + /// Button label key. + public string LocaleKey => "tools/characters_editor/title"; + + /// Always shown. + public bool IsVisible() => true; + } +} diff --git a/src/CharacterEditorToolProvider.cs b/src/CharacterEditorToolProvider.cs new file mode 100644 index 0000000..0e777a7 --- /dev/null +++ b/src/CharacterEditorToolProvider.cs @@ -0,0 +1,26 @@ +using Cthangover.Core.UI.Tool; +using Cthangover.Mods.Interface.Tool; +using Godot; + +namespace Cthangover.Tools.CharactersEditor +{ + /// + /// Registers the character editor as a tool: it appears in the main menu's tool + /// block, the novel editor hub and (with ) + /// the in-game toolbar. + /// + public class CharacterEditorToolProvider : IToolProvider + { + /// Tool id. + public string Id => "characters_editor"; + + /// Display name key. + public string LocaleKey => "tools/characters_editor/title"; + + /// Creates the window. + public Window CreateWindow() => new CharacterEditorWindow(); + + /// Adds the launcher button to the main menu's tool block. + public void AddMenuButton(Container container) => ToolMenuButton.Attach(container, this); + } +} diff --git a/src/CharacterEditorWindow.cs b/src/CharacterEditorWindow.cs new file mode 100644 index 0000000..9cbd2f9 --- /dev/null +++ b/src/CharacterEditorWindow.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text.Json.Nodes; +using Cthangover.Core.Characters; +using Cthangover.Core.Mods.Resolvers; +using Cthangover.Tools.EntityEditor; + +namespace Cthangover.Tools.CharactersEditor +{ + /// + /// Editor of characters ("Kind": "character", ): + /// heroes, NPCs and enemies alike. Name in every language of the mod, the + /// portrait (characters group, shown in dialogs and battles), the RPG + /// map look (Charset in the charsets group: the RPG map editor + /// places the character with it; a novel leaves it empty), battle stats and the + /// battle actions offered from the loaded action entities. Loot and + /// other mods' fields are "other fields" of the base window. New characters go + /// to characters/<mod>.json. + /// + public partial class CharacterEditorWindow : EntityEditorWindow + { + /// Builds the window and opens the first mod that has characters. + public CharacterEditorWindow() : base("tools/characters_editor/title", "character", "characters", Fields()) + { + } + + private static List Fields() => new() + { + new EntityField { Key = "Name", LabelKey = "tools/characters_editor/name", Kind = EntityFieldKind.LocaleText, KeyPattern = "characters/{0}/name" }, + new EntityField { Key = "Image", LabelKey = "tools/characters_editor/image", TooltipKey = "tools/characters_editor/image_tip", Kind = EntityFieldKind.Picture, Group = "characters" }, + new EntityField { Key = "Charset", LabelKey = "tools/characters_editor/charset", TooltipKey = "tools/characters_editor/charset_tip", Kind = EntityFieldKind.Picture, Group = "charsets" }, + new EntityField { Key = "Level", LabelKey = "tools/characters_editor/level", Kind = EntityFieldKind.Integer }, + new EntityField { Key = "Health", LabelKey = "tools/characters_editor/health", Kind = EntityFieldKind.Integer }, + new EntityField { Key = "Attack", LabelKey = "tools/characters_editor/attack", Kind = EntityFieldKind.Integer }, + new EntityField { Key = "Defence", LabelKey = "tools/characters_editor/defence", Kind = EntityFieldKind.Integer }, + new EntityField { Key = "Point", LabelKey = "tools/characters_editor/point", TooltipKey = "tools/characters_editor/point_tip", Kind = EntityFieldKind.Integer }, + new EntityField { Key = "Exp", LabelKey = "tools/characters_editor/exp", TooltipKey = "tools/characters_editor/exp_tip", Kind = EntityFieldKind.Integer }, + new EntityField { Key = "RecruitmentChance", LabelKey = "tools/characters_editor/recruitment", TooltipKey = "tools/characters_editor/recruitment_tip", Kind = EntityFieldKind.Integer }, + new EntityField { Key = "Behaviour", LabelKey = "tools/characters_editor/behaviour", TooltipKey = "tools/characters_editor/behaviour_tip", Kind = EntityFieldKind.Text }, + new EntityField { Key = "Actions", LabelKey = "tools/characters_editor/actions", TooltipKey = "tools/characters_editor/actions_tip", Kind = EntityFieldKind.List, Options = Actions } + }; + + private static IEnumerable Actions() + => (Entities.Collect()?.Keys ?? Enumerable.Empty()).OrderBy(id => id, StringComparer.Ordinal); + + /// A level 1 fighter with a plain attack; the portrait is the author's to pick. + protected override JsonObject CreateEntity(string id) => new() + { + ["Id"] = id, + ["Behaviour"] = "base", + ["Level"] = 1, + ["Point"] = 1, + ["Health"] = 10, + ["Defence"] = 0, + ["Attack"] = 2, + ["Exp"] = 1, + ["RecruitmentChance"] = 0, + ["Actions"] = new JsonArray("physics/attack") + }; + + /// <mod>_new_character: character ids are flat. + protected override string NewIdBase(string mod) => mod + "_new_character"; + } +} diff --git a/test_suites/edit/manifest.json b/test_suites/edit/manifest.json new file mode 100644 index 0000000..5da7699 --- /dev/null +++ b/test_suites/edit/manifest.json @@ -0,0 +1,11 @@ +{ + "name": "Character Editor Test", + "description": "GUI test of the character editor in rpg_demo: opens rpg_demo_game's characters, shows the slime's localized name, adds a character with the New button, types its name, health and RPG charset into the form, saves; the game must know the character with its stats and name at once, and the RPG map editor's characters tab must offer it with its charset. The new file and the locale edits are removed again. Activated by --itest=characters_editor_edit with --game=rpg_demo --new.", + "sources": [ + "src/*.cs" + ], + "depends": [ + "rpg_demo_game>=1", + "rpg_editor>=1" + ] +} diff --git a/test_suites/edit/src/CharacterEditorTestDriver.cs b/test_suites/edit/src/CharacterEditorTestDriver.cs new file mode 100644 index 0000000..7d6f8ae --- /dev/null +++ b/test_suites/edit/src/CharacterEditorTestDriver.cs @@ -0,0 +1,208 @@ +using System.Collections.Generic; +using System.IO; +using System.Linq; +using Cthangover.Core.Bootstrap; +using Cthangover.Core.Characters; +using Cthangover.Core.Localization; +using Cthangover.Core.Mods; +using Cthangover.Core.Mods.Resolvers; +using Cthangover.Core.Utils; +using Cthangover.Mods.Interface.Tool; +using Cthangover.Mods.Rpg; +using Cthangover.Tools.RpgEditor; +using Cthangover.Tools.Services; +using Godot; + +namespace Cthangover.Tools.CharactersEditor.Tests +{ + /// + /// Drives the character editor like an author: the toolbar buttons and the + /// form's fields (their change signals), Save. Then the game itself is asked: + /// the entity cache must hold the new character with the typed health and its + /// action, the translation server its typed name, and the RPG map editor's + /// character list must offer it with the typed charset. The new characters + /// file is deleted and the mod's locale files are restored afterwards, so + /// rpg_demo_game stays as it was. + /// Result line: [TEST_RESULT] name=characters_editor_edit passed=N failed=M. + /// + public partial class CharacterEditorTestDriver : Node + { + private const float TickSeconds = 0.15f; + private const float TimeoutSeconds = 60f; + private const string Mod = "rpg_demo_game"; + private const string NewFile = "characters/rpg_demo_game.json"; + private const string NewId = "rpg_demo_game_new_character"; + private const string TypedName = "Тестовый гоблин"; + + private readonly List failures = new(); + private readonly Dictionary backups = new(); + private readonly Dictionary characterFiles = new(); + private int passed; + private int step; + private double elapsed; + private CharacterEditorWindow window; + + /// Creates the driver; is unused (no screenshots). + public CharacterEditorTestDriver(string shotsDir) + { + Name = "CharacterEditorTestDriver"; + var timer = new Timer { WaitTime = TickSeconds, Autostart = true }; + AddChild(timer); + timer.Timeout += Tick; + } + + private void Tick() + { + if (step < 0) + return; + elapsed += TickSeconds; + if (elapsed > TimeoutSeconds) + { + Fail($"timeout at step {step}"); + Finish(); + return; + } + try + { + RunStep(); + } + catch (System.Exception ex) + { + Fail($"step {step}: {ex.GetType().Name}: {ex.Message}"); + Finish(); + } + } + + private void RunStep() + { + switch (step) + { + case 0: + if (!Boot.IsReady) + return; + foreach (var file in ModFileService.ListFiles(Mod, "locale", ".properties")) + backups[file] = ModFileService.ReadText(Mod, file); + foreach (var file in ModFileService.ListFiles(Mod, "characters", ".json")) + characterFiles[file] = ModFileService.ReadText(Mod, file); + Check(!characterFiles.ContainsKey(NewFile), "the mod has no editor characters file yet"); + window = ToolWindow.Open(); + step++; + return; + case 1: + if (window.Document == null) + return; + window.OpenMod(Mod); + var language = Language(); + var slime = window.Document.Find("rpg_slime"); + Check(slime != null, "the demo's characters are listed"); + window.Select(slime); + Check(window.Document.GetText(language, "rpg_demo/character/slime") == TranslationServer.Translate("rpg_demo/character/slime").ToString(), + $"the form shows the character's name in '{language}'"); + + Press("tools/entity_editor/new"); + Check(window.SelectedId == NewId, $"New adds and selects {NewId} (got {window.SelectedId})"); + Type(NameEdit(), TypedName); + Row("tools/characters_editor/health").OfType().First().Value = 33; + Type(Row("tools/characters_editor/charset").OfType().First(), "village/slime"); + var record = window.Document.Find(NewId); + Check(record.Data["Health"]?.ToString() == "33" && record.Data["Charset"]?.ToString() == "village/slime", "the form writes health and the charset"); + Check(record.Data["Actions"]?.AsArray().Any(a => a?.ToString() == "physics/attack") == true, "a new character starts with the plain attack"); + step++; + return; + case 2: + try + { + Press("tools/common/save"); + var characters = Entities.Collect(); + Check(characters.TryGetValue(NewId, out var saved), "the game knows the new character right after saving"); + Check(saved?.Health == 33 && saved.Actions?.Contains("physics/attack") == true, "with the typed health and its action"); + Check(TranslationServer.Translate(saved?.Name ?? "-").ToString() == TypedName, $"and the typed name ({saved?.Name})"); + var offered = RpgCharacterCatalog.Load(new RpgTextures()).FirstOrDefault(e => e.Id == NewId); + Check(offered?.Look == "village/slime" && offered.Name == TypedName, $"the RPG map editor offers it with its charset ({offered?.Look})"); + var written = ModFileService.ReadText(Mod, NewFile) ?? string.Empty; + Check(written.Contains("\"Kind\": \"character\"") && !written.Contains("\r"), "the new file declares its kind and has LF lines"); + Check(characterFiles.All(f => ModFileService.ReadText(Mod, f.Key) == f.Value), "the demo's character files are untouched"); + } + finally + { + Cleanup(); + } + Finish(); + return; + } + } + + /// The controls of the form row labelled . + private IEnumerable Row(string labelKey) + { + var text = TranslationServer.Translate(labelKey).ToString(); + return window.FindChildren("*", "", true, false).OfType

WRT}>-pE;}hR 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 toolbar button of the character editor, so a character can be fixed while playing. + public class CharacterEditorToolBoxButton : IToolBoxButton + { + ///