From 821d7fdac47a85cddfcaaeb0acb22196cd279bf8 Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Sun, 27 Jul 2025 17:17:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98=E4=BA=8B=E4=BB=B66?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.6/Assemblies/WulaFallenEmpire.dll | Bin 79872 -> 79872 bytes .../CustomUI_Example.xml | 15 ++ .../EventUIConfig.xml | 6 +- Documentation/EventSystem_Documentation.md | 8 +- Documentation/layout_preview.html | 186 ++++++++++++++++++ .../.vs/WulaFallenEmpire/v17/.suo | Bin 114176 -> 118784 bytes .../EventSystem/CustomUIDef.cs | 2 + .../EventSystem/Dialog_CustomDisplay.cs | 8 + 8 files changed, 221 insertions(+), 4 deletions(-) rename 1.6/Defs/{CustomUIDefs => EventDefs}/CustomUI_Example.xml (84%) rename 1.6/Defs/{ConfigDefs => WulaMiscSettingDefs}/EventUIConfig.xml (81%) create mode 100644 Documentation/layout_preview.html diff --git a/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/Assemblies/WulaFallenEmpire.dll index c0ce499d266305bd4607355ae83c2afbeb3ad83e..003e18c35fc9bb94ddbb7e31818d9eddb26fcf19 100644 GIT binary patch delta 19999 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 z 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 V>mpp&h_lP~TMC8mg@#=H{{ggJ*N*@I diff --git a/1.6/Defs/CustomUIDefs/CustomUI_Example.xml b/1.6/Defs/EventDefs/CustomUI_Example.xml similarity index 84% rename from 1.6/Defs/CustomUIDefs/CustomUI_Example.xml rename to 1.6/Defs/EventDefs/CustomUI_Example.xml index 7c5ae061..8f68452d 100644 --- a/1.6/Defs/CustomUIDefs/CustomUI_Example.xml +++ b/1.6/Defs/EventDefs/CustomUI_Example.xml @@ -8,6 +8,21 @@ UI/HeroArt/Storytellers/Randy 兰迪·随机 这是一个事件链的开端。选择第一个选项将会打开第二个事件窗口。 + +
  • + 事件窗口已打开! + NeutralEvent +
  • +
    + +
  • + 事件窗口已关闭,进度已重置。 + NeutralEvent +
  • +
  • + wula_event_progress +
  • +
  • diff --git a/1.6/Defs/ConfigDefs/EventUIConfig.xml b/1.6/Defs/WulaMiscSettingDefs/EventUIConfig.xml similarity index 81% rename from 1.6/Defs/ConfigDefs/EventUIConfig.xml rename to 1.6/Defs/WulaMiscSettingDefs/EventUIConfig.xml index a03791be..1f45a947 100644 --- a/1.6/Defs/ConfigDefs/EventUIConfig.xml +++ b/1.6/Defs/WulaMiscSettingDefs/EventUIConfig.xml @@ -13,11 +13,11 @@ (500, 800) (260, 130) (650, 500) - 610 + 650 - 20 - 20 + 0 + 0 diff --git a/Documentation/EventSystem_Documentation.md b/Documentation/EventSystem_Documentation.md index 97ab5a35..9b22ae39 100644 --- a/Documentation/EventSystem_Documentation.md +++ b/Documentation/EventSystem_Documentation.md @@ -45,10 +45,14 @@ **字段说明:** - `labelFont`: 事件标题 (`label`) 的字体大小。可选值: `Tiny`, `Small`, `Medium`, `Large`。 - `drawBorders`: 是否为立绘、名称和描述区域绘制白色边框。 -- `defaultBackgroundImagePath`: 所有事件窗口默认使用的背景图路径。 +- `defaultBackgroundImagePath`: 所有事件窗口默认使用的背景图路径。**注意**: 为了完美适配默认的 1000x750 像素窗口,推荐使用宽高比为 4:3 的图片 (例如 1000x750, 800x600 等)。 - `lihuiSize`, `nameSize`, `textSize`, `optionsWidth`: 定义了UI各部分的基础虚拟尺寸,代码会根据窗口大小按比例缩放它们。 - `textNameOffset`, `optionsTextOffset`: 定义了各部分之间的垂直间距。 +**布局预览工具:** +为了帮助您设计背景图片,我们提供了一个动态的可视化布局预览工具。您可以将 `EventUIConfig.xml` 的内容粘贴进去,它会根据您的配置实时生成布局参考图。 +- [**打开动态布局预览 (layout_preview.html)**](./layout_preview.html) + --- ## 3. 如何创建事件 (`CustomUIDef`) @@ -78,6 +82,8 @@ - `characterName`: 显示在名称框中的文本。 - `backgroundImagePath`: (可选)为此特定事件指定的背景图路径,它会覆盖 `EventUIConfigDef` 中的默认背景。 - `description`: 显示在描述框中的主要文本。 +- `onOpenEffects`: (可选) 一个 `
  • ` 列表,定义了在事件窗口**打开时**立即执行的所有 `Effect`。 +- `dismissEffects`: (可选) 一个 `
  • ` 列表,定义了在事件窗口**关闭时**(通过选项或关闭按钮)执行的所有 `Effect`。 - `options`: 一个 `
  • ` 列表,定义了所有的交互选项。 --- diff --git a/Documentation/layout_preview.html b/Documentation/layout_preview.html new file mode 100644 index 00000000..7f279959 --- /dev/null +++ b/Documentation/layout_preview.html @@ -0,0 +1,186 @@ + + + + + + 事件UI布局预览 (动态版) + + + +
    +

    动态布局预览

    +

    请将您的 EventUIConfig.xml 文件内容完整粘贴到下面的文本框中,然后点击“生成预览”按钮。

    + + +
    +
    + +
    + + + + diff --git a/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/v17/.suo b/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/v17/.suo index 72a39eb5242748606828d32f84f754d2f66b54d1..84d24777106307fa8272b7f5f6897a91b73a0ba0 100644 GIT binary patch delta 109 zcmZqp!`85XeS(1^69W_oFfhminIQhZ|NsAkM45qDePf_B6YB%ltuog(7c%{3W)(Q> z<8{5ckZpS*8)N_WWwRJrCKuQVO&8e4$g^E;4dWy3$v%eE1L_MelxQc S1e_4N(p<>4y^xKue>(t@`V~U} diff --git a/Source/WulaFallenEmpire/EventSystem/CustomUIDef.cs b/Source/WulaFallenEmpire/EventSystem/CustomUIDef.cs index ecfafaf5..c1f4534a 100644 --- a/Source/WulaFallenEmpire/EventSystem/CustomUIDef.cs +++ b/Source/WulaFallenEmpire/EventSystem/CustomUIDef.cs @@ -10,6 +10,8 @@ namespace WulaFallenEmpire public new string description; public List options; public string backgroundImagePath; // Override default background + public List onOpenEffects; + public List dismissEffects; } public class CustomUIOption diff --git a/Source/WulaFallenEmpire/EventSystem/Dialog_CustomDisplay.cs b/Source/WulaFallenEmpire/EventSystem/Dialog_CustomDisplay.cs index 49d95f75..5c037aa4 100644 --- a/Source/WulaFallenEmpire/EventSystem/Dialog_CustomDisplay.cs +++ b/Source/WulaFallenEmpire/EventSystem/Dialog_CustomDisplay.cs @@ -47,6 +47,8 @@ namespace WulaFallenEmpire { background = ContentFinder.Get(bgPath); } + + HandleAction(def.onOpenEffects); } public override void DoWindowContents(Rect inRect) @@ -199,5 +201,11 @@ namespace WulaFallenEmpire } return reason; } + + public override void PostClose() + { + base.PostClose(); + HandleAction(def.dismissEffects); + } } }