Outer Swirl 是一个用于《A Dance of Fire and Ice》(ADOFAI)的 Unity Mod Manager 模组。它会在关卡编辑器中新增一个自定义事件,用来在谱面指定楼层开启或关闭“外圈星球”效果。
- 在编辑器的 Gameplay 分类中注册自定义事件 Outer Swirl / 星球外圈。
- 事件可放置在第一格,并在
OnBar时机应用效果。 - 在星球移动到对应楼层时应用事件状态,动态切换外圈效果。
- 支持英文、简体中文、韩文和日文的事件名称与属性标签本地化。
- 使用 Harmony 补丁扩展游戏对
scrPlanet.foolSwirl的判断,让外圈状态可以由自定义事件控制。 - 通过补丁扩展
LevelEventType枚举值列表与RDUtils.ParseEnum<LevelEventType>()解析,使自定义事件可以按事件类型参与读取与编辑器显示。
| 项目 | 值 |
|---|---|
| 事件名称 | Outer Swirl / 星球外圈 |
| 事件分类 | Gameplay |
| 执行时机 | OnBar |
| 是否允许第一格 | 是 |
| 自定义事件 ID | 100000 |
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enabled |
Bool |
true |
开启或关闭外圈效果。 |
- 模组初始化时会注册名为
OuterSwirlEvent的自定义事件,并把事件 ID100000加入编辑器可识别的事件类型列表。 - 关卡应用事件时,模组会拦截 ID 为
100000的事件,将该楼层的事件属性缓存起来。 - 星球移动到对应楼层后,模组读取缓存的
enabled值并更新外圈状态。 - 最新实现通过
RDUtils.ParseEnum<LevelEventType>()补丁识别自定义事件类型;不再依赖把自定义事件转写成EditorComment的兼容层。
- 确保已为 ADOFAI 安装 Unity Mod Manager。
- 从 Release 或自行编译获取模组文件。
- 将以下文件放入 Unity Mod Manager 的
Mods/OuterSwirl目录:Outer Swirl.dllInfo.jsonLocalization.json
- 在 Unity Mod Manager 中启用 Outer Swirl。
- Windows
- Visual Studio 或 MSBuild
- .NET Framework 4.8.1 Developer Pack
- 已安装 ADOFAI 与 Unity Mod Manager
项目文件中的游戏依赖默认指向:
D:\Program Files\Steam\steamapps\common\A Dance of Fire and Ice\A Dance of Fire and Ice_Data\Managed\
如果你的游戏安装路径不同,请在 Outer Swirl.csproj 中更新相关 <HintPath>。
msbuild "Outer Swirl.sln" /p:Configuration=Release构建产物默认输出到:
bin\Release\Outer Swirl.dll
.
├── Events/SetOuterSwirlEvent.cs # 自定义 Outer Swirl 事件定义
├── Events/ffxOuterSwirl.cs # 运行时外圈状态控制组件
├── Patch/FoolSwirlPatch.cs # 扩展 foolSwirl 判断的 Harmony 补丁
├── Patch/EventsInBarPatch.cs # 编辑器事件按钮栏宽度适配
├── EventSystem.cs # 自定义事件注册、事件缓存、枚举解析与本地化挂钩
├── PatchManager.cs # Harmony 补丁注册与生命周期管理
├── OuterSwirlLocalization.cs # 多语言文本加载与查询
├── Info.json # Unity Mod Manager 元数据
├── Localization.json # 本地化文本
└── Outer Swirl.csproj # C# 项目文件
- 新增补丁后,请在
PatchManager.RegisterAll()中注册补丁类型。 - 新增事件属性时,请在事件成员上添加
[EventProperty],并按需添加[PropertyLabel]等属性元数据。 - 新增本地化文本时,请同步更新
Localization.json。 - 自定义事件类型解析依赖
OuterSwirlEventSystem.ParseEnum,调整事件名或事件 ID 时需要同步检查事件注册、解析与本地化键。
本项目采用 MIT 协议开源,详情请参见 LICENSE。