51 lines
1.6 KiB
Markdown
51 lines
1.6 KiB
Markdown
# Mod 开发
|
||
|
||
## 公共接口
|
||
|
||
纯规则层位于 `ReplacedPerson.Core`,可在 Unity 和 .NET 8 独服中使用:
|
||
|
||
- `IReplacedPersonMod`
|
||
- `IReplacedPersonRegistry`
|
||
- `IReplacedPersonEffectResolver`
|
||
- `ReplacedPersonModManifest`
|
||
|
||
可注册卡牌、结束牌、敌人、奖励、剧情、规则效果和命令。联网规则不得依赖 Unity 类型。Unity 适配层通过 ShrinkModFramework 生命周期把规则实现注册到 `replaced-person.mods`;`AutoApplyHarmonyPatches` 应保持关闭。
|
||
|
||
## 审计训练 Mod
|
||
|
||
示例位于 `Assets/Demos/ReplacedPerson/Mods/ExampleGreedMod/`,包含:
|
||
|
||
- 普通牌“审计”:反击类型,触发正式效果解析器后恢复 1 COST。
|
||
- 训练敌人“训练用审计员”。
|
||
- 奖励、短剧情和 `example audit` 命令。
|
||
- 纯规则程序集和可选 Unity 适配程序集。
|
||
- 内容 JSON、PNG 图标和严格文件哈希清单。
|
||
|
||
构建并打包:
|
||
|
||
```powershell
|
||
./GeneratedServers/ExampleGreedMod.Rules/pack-mod.ps1
|
||
```
|
||
|
||
输出:
|
||
|
||
```text
|
||
Artifacts/ReplacedPersonMods/ExampleGreedMod-1.0.0.zip
|
||
GeneratedServers/ReplacedPerson.ServerHost/Mods/ExampleGreedMod/
|
||
```
|
||
|
||
## 包结构
|
||
|
||
```text
|
||
ExampleGreedMod/
|
||
manifest.json
|
||
content.json
|
||
icon.png
|
||
ExampleGreedMod.Rules.dll
|
||
ExampleGreedMod.Unity.dll # 可选,仅 Unity 端需要
|
||
```
|
||
|
||
`manifest.json` 的 `files` 必须覆盖包内所有参与联网兼容判断的文件,并写入小写 SHA-256。独服启动时先校验文件,再加载纯规则 DLL;当前房间保留不可变内容快照,`reload-mods` 只影响之后创建的房间。
|
||
|
||
不可信 DLL 不在本 Demo 的安全边界内。服务器管理员只应安装可信来源的规则程序集。
|