docs(10-26): 修复高级 II 读者问题(第2轮)

This commit is contained in:
AncTe committed 2026-10-21 20:25:18 +08:00
1 parent 2d25a32660
commit 153bc8b373
7 files changed
+94 -26

No files matched your search

+4 -2
View File
@@ -31,6 +31,8 @@ export interface IEnemyAttr {
具体数值来自 `IEnemyRawData.attribute`:怪物模板由 `num`(图块数字)、`attribute`(属性对象)与 `special`(特殊属性)组成。默认模板写在 `src/content/defaults/enemy.jsonc`,实际内容写在 `src/content/enemy.jsonc`。内容文件里每个怪物条目都有一份自己的 `attribute`,不会与默认模板合并。
默认模板在运行时不会被用来补全内容条目:加载器只是把它以 `enemy-default` 的标识读进配置表,供编辑器/校验端新建条目、核对字段形状;`enemyStore` 构建怪物时只读 `enemy.jsonc` 里的条目。因此它既不是新游戏内容的兜底值,也不会参与读档迁移。编辑器接入前,可以把它当作字段清单与类型示例。
`guard` 与其他字段不同:它是运行时由支援光环写入的集合(`GuardAura.apply` 会把来源怪物视图 `add` 进去),不是内容文件里手填的普通数值。改接口时不要把它当成内容字段,也不要在 `enemy.jsonc` 里补它。
## 改接口
@@ -441,7 +443,7 @@ function verifyEnemyAttribute(
预期现象:
- `armor` 从 `50` 改为 `0` 后,勇士每回合伤害恢复,回合数减半,总伤害大致翻倍;
- `armor` 从 `50` 改为 `0` 后,勇士每回合伤害翻倍,回合数大致减半;攻速没变时怪物每回合伤害不变,按 `damage = (turn - 1) * enemyPerDamage`,总伤害也大致减半;
- 计算后护甲可能高于模板值(光环或最终效果会继续叠加),所以打印的是 `getComputedEnemy()` 的结果;
- `atkSpeed` 从 `100` 提到 `120` 后,怪物每回合伤害提高 20%,总伤害随之上升。
@@ -451,7 +453,7 @@ function verifyEnemyAttribute(
## 边界与注意
- **接口、默认模板、内容条目都要补键**:三处缺一不可。内容对象不会与默认模板合并,缺键就是 `undefined`。
- **接口、内容条目、默认模板都要补键**:接口决定类型,内容条目决定运行时取值,默认模板只供编辑器/校验对照。内容对象不会与默认模板合并,运行时缺键就是 `undefined`。
- **`guard` 不要写进内容**:它是运行时由支援光环维护的集合,手填会与运行时行为冲突。
- **百分数统一用整数存储**:`20` 表示 20%,计算时再除以 `100`;不要一处存 `0.2`、另一处存 `20`。
- **新增字段会进入怪物存档**:读旧档时缺失的键不会自动补齐,需要按上文「旧存档迁移」在 `state.loadState` 之前给默认值。