奇物 v2.7:三个子节点正式定名(专长 / 属性值提升 / 资源)

用户指出缺口:父节点有专名,子节点只有描述没有专名。理由站得住——帮助 /
百科 / 成就页一定会把分类露给玩家(「首次集齐 4 件专长」「三件属性值提升」),
效果描述里的指代也需要名字;卡面不带分类是**呈现面规则**,与命名是两件事。

定名:**专长(Feat)/ 属性值提升(ASI)/ 资源**——去掉「类」字后缀。
- 前两个是 DND 官方中文,且与用户 v1.1 原话一致(当时原话就是
  「属性提升(ASI)」与「专长」,v1.1 落文时被加了后缀而退化成描述)
- 「机制类」这个叫法另有硬伤:28 个成员里没一件是"机制",实际是
  "在结算挂点上改一条规则",读者会误解为游戏机制
- 「资源」虽偏泛,但 1.3 已有判据句托底,且是用户自己的裁定

新增 1.6 节「三层结构与命名」——用户拍板的玩家可见三层:
  一层 奇物(总称)/二层 专长·属性值提升·资源/三层 具体单件
明确写成规矩:**命名归本节,呈现归 battle.md / node-reward.md 裁决**,
并记明代码侧四套词族对应(curio_* / feat_* / asi_* / res_*)。

连带修掉批量替换撞出的七处自撞(专长(专长)、专长 = 专长、资源(资源))、
1.1 节标题的「专长:专长」、1.5 节残留的「命名待定」与旧括注、
02-系统清单文档树行的重嵌套。另把五处「这一类/这类」改为专名指代——
专名定下后仍用「这一类」指代会让读者不知道在说哪个。

同步:entities.yaml(categories 补专名与定名依据、新增 hierarchy 字段、
naming_note 记 v2.7)、06-待办清单、02-系统清单 v1.9、任务书 T3 词族目标
(顶层 curio_* 与内层 feat_* 分属两套词族)、两个 schema 概念指路注释。

数据层零变更;未 merge 回 master(本会话零测试)。
This commit is contained in:
DKChan committed 2026-10-05 06:42:48 +08:00
1 parent 483cf2a39b
commit b6b43ebc2f
7 files changed
+118 -95

No files matched your search

@@ -2,7 +2,7 @@
- 日期:2026-10-05
- 设计事实源:[奇物.md](../gdd/systems/冒险循环/奇物.md) v2.6(概念唯一定义,2026-10-05 用户逐轮裁定)
- 登记台账:[06-待办清单](../gdd/06-待办清单.md) 三条目(渠道分工目标态 / 资源类两个新种类入池 / 奇物命名统一后续)
- 登记台账:[06-待办清单](../gdd/06-待办清单.md) 三条目(渠道分工目标态 / 资源两个新种类入池 / 奇物命名统一后续)
- 实体登记:[entities.yaml](../registry/entities.yaml) `curio` 条目
- 状态:**定稿待发令**——用户 2026-10-05 令:本批只改文档,代码与配置改动整理成任务书编入迭代 15
- **loop 计划书八件对照**:①目标与完成定义=§一 ②现状事实(代码级,开工自行复核)=§二 ③设计契约(🔴 触碰=L3 停机)=§三 ④范围边界=§四 ⑤任务卡 T0..Tn=§五 ⑥验证闸=§六 ⑦异常分级=§七 ⑧代拍板白名单=§八
@@ -20,7 +20,7 @@
完成定义(逐条可验):
1. **词族对齐完成**:`feature_*` → `curio_*`(103 处 / 7 文件)、`relic_*` → `curio_*` 或 `feat_*`(162 处 / 12 文件)、运行层 `bonus_*` → `curio_*`(160 处 / 8 文件)全部改完,`game/` 下 `grep -c "feature_\|relic_\|_bonus_\|pick_bonus\|BonusInteract\|BonusPick"` 归零(存档键 5 个除外,见 T2 裁点)
2. **渠道分工落地**:三条渠道按分类分离——关底 Boss 击败=通过这一关 → 只出机制类;奖励节点 / 商店 → 只出属性提升类 + 资源类,机制类在此只以门票形式出现;三渠道不再共用同一个池
2. **渠道分工落地**:三条渠道按分类分离——关底 Boss 击败=通过这一关 → 只出专长;奖励节点 / 商店 → 只出属性值提升 + 资源,专长在此只以门票形式出现;三渠道不再共用同一个池
3. **两个新种类入表**:刷新次数、专长获取门票进入 `adventure.tres`,各自带全参数
4. **商店货架补回复**:按默认原则,回复必须在商店货架内(现行缺)
5. **数据缺陷修复**:`relics.tres` 的 charge 标签补至 ≥4 件(档二要求同标签 ≥4,现仅 3 件,永远达不到)
@@ -51,7 +51,7 @@
### 2.3 渠道与池的现状
- 现行**三渠道共用同一个 98 张固定配额令牌池**(普通 70 / 稀有 25 / 罕见 3),三类混编
- 机制类(专长)只占稀有/罕见档,与属性大件混编;商店货架靠"零机制类挤掉一张普通卡"保底
- 专长只占稀有/罕见档,与属性大件混编;商店货架靠"零专长挤掉一张普通卡"保底
- 商店货架 = 池 ∖ {GP 袋}(`shop.tres` 的 `pool_shelf` 行族,现为 attack / max_hp / armor_class / ap 四项,**缺回复**)
- 奖励节点与通关三选一**共享同一池、同权重同上限**(`node-reward` v2.4)
@@ -67,16 +67,16 @@
## 三、设计契约(违反即返工,🔴 触碰 = L3 停机)
1. 🔴 **兑付频率不可改**:奇物**不是打一场战斗给一份**。关内普通战斗节点打完不给任何奇物;一关之内只兑付一次,触发点是**关底 Boss 被击败**——按 [冒险结构](../gdd/systems/冒险循环/冒险结构.md) 定义"通关一关 = 该关关底 Boss 被击杀",**这两件事是同一个时刻,不是一条链上的两步**。任何把专长挂到"战斗结算后"的实现即为 L3
2. 🔴 **两条轴互不决定**:分类轴(给的是什么:机制类 / 属性提升类 / 资源类)与渠道轴(从哪来:奖励节点 / 商店 / 关底 Boss 击败)**不得互相推导**。禁止"因为它要进商店所以另立一分类"这类反向推导(= 06 已登记的"两轴缠回去")
3. 🔴 **Boss 渠道独占机制类**:关底 Boss 击败=通过这一关**只出机制类**,属性提升类与资源类在此不出现。这是渠道轴的定位决定,不是例外,不需另找理由。末关的 Boss 击败后不给(无后续关卡可消费)
2. 🔴 **两条轴互不决定**:分类轴(给的是什么:专长 / 属性值提升 / 资源)与渠道轴(从哪来:奖励节点 / 商店 / 关底 Boss 击败)**不得互相推导**。禁止"因为它要进商店所以另立一分类"这类反向推导(= 06 已登记的"两轴缠回去")
3. 🔴 **Boss 渠道独占专长**:关底 Boss 击败=通过这一关**只出专长**,属性值提升与资源在此不出现。这是渠道轴的定位决定,不是例外,不需另找理由。末关的 Boss 击败后不给(无后续关卡可消费)
4. 🔴 **专长门票四条口径不可改**:①**拿到即开、不可囤积**(不进持有集,选中/买下同一时刻开专长三选一);②**罕见只在概率、不在价格**(货架价与其他商品相当);③**一局限购一次**;④**计步保底**——连续 5 次三选一展示未出现 → 第 6 次必定出现(计数=**展示次数**,刷新后的重展计入,奖励节点与商店共享计数,触发后清零,限购用满后不再触发)
5. 🔴 **统一词族不得用 `reward_*`**(已被 `reward_pick` / `reward_node` / `reward_preview` 占用,见 §2.1)
6. 🔴 **档位配额结构锚不可绕过**:`TIER_QUOTAS` 的 70/25/3 有 validate 硬断言。改总量须重裁并留说明,不得调参绕过
7. 🔴 **不新增节点类型**:`关卡节点地图` 的节点类型封闭枚举五种不变,机制类挂 Boss 节点兑付面
7. 🔴 **不新增节点类型**:`关卡节点地图` 的节点类型封闭枚举五种不变,专长挂 Boss 节点兑付面
8. 🔴 **魔法道具边界不位移**:奇物**当局清零、跨局带走的是魔法道具**(判据走生命周期,不走"带在身上")。本批任何改动不得让奇物进同调位,也不得让魔法道具进当局随机渠道
9. 🔴 **层级纪律**:奇物只走当局随机渠道(奖励节点 / 商店 / Boss 兑付),不进元进度天赋树
10. **本批不改平衡数值**:所有 `feature_value_*` / `feature_quota_*` 的**值零变更**。入新种类属结构改动(占配额),非调参
11. **零战斗期新动词**:机制类表达全部经"扫雷决策 → 自动结算"间接生效,不新增手动闪避 / 主动施法
11. **零战斗期新动词**:专长表达全部经"扫雷决策 → 自动结算"间接生效,不新增手动闪避 / 主动施法
## 四、范围边界(以下均不在本批,收到即停、不顺手做)
@@ -119,10 +119,10 @@
- 建议甲或乙;若判断丙才对,回写本任务书并转 06
- 轻闸:冒烟全量 + **断点存档往返测试绿** + `ui_click_probe`(触碰 presentation)
### T3 词族对齐第三批:`relic_*` → 机制类(≈0.8d)
### T3 词族对齐第三批:`relic_*` → 专长(≈0.8d)
- 范围:`relic_table.gd`(+`.uid`)/ `relics.tres` / `relics_engine.gd` / 及 9 个引用文件
- 目标词族:`feat_*`(机制类 = 专长 Feat,**与顶层 `curio_*` 区分**:顶层是容器,内层分类各有各的词族——`curio_*` 是总称、`feat_*` 是机制类、`asi_*` 是属性提升类、`res_*` 是资源类)
- 目标词族:**`feat_*`**(专长 Feat)。**顶层与内层分类各有各的词族**(v2.7 定名后确立):`curio_*` 是总称「奇物」/`feat_*` 是专长/`asi_*` 是属性值提升/`res_*` 是资源
- **文件名与 `class_name` 改名须同步 `.uid` 与 `.tscn`**(非文本层)
- **不新增节点类型**;MINE_HOOKS 红线校验逻辑零改动
- 轻闸:冒烟全量 + 全探针(三)
@@ -131,9 +131,9 @@
### T4 渠道分离:池的拆分(≈0.8d)
- 目标:三个渠道各按分类白名单取候选,不再共用同一个 98 张池
- 关底 Boss 击败 → 只出机制类
- 奖励节点 / 商店 → 机制类**只以门票形式出现** + 属性提升类 + 资源类
- ⚠️ **配额结构锚处置**:机制类抽离共享池后,属性与资源类的配额总量是否维持 98?**若须改 `TIER_QUOTAS` 总量,走重裁流程并在本任务书回写理由**(不得调参绕过 validate 硬断言)
- 关底 Boss 击败 → 只出专长
- 奖励节点 / 商店 → 专长**只以门票形式出现** + 属性值提升 + 资源
- ⚠️ **配额结构锚处置**:专长抽离共享池后,属性与资源的配额总量是否维持 98?**若须改 `TIER_QUOTAS` 总量,走重裁流程并在本任务书回写理由**(不得调参绕过 validate 硬断言)
- 商店货架 = 池 ∖ {GP 袋}(**计价物不自售**规则:凡以某渠道计价物为内容的奖励不进该渠道货架)
- 轻闸:冒烟全量 + 探针 + **MC 逐位对拍**(涉核心,必须)
@@ -187,14 +187,14 @@
| A1 | 词族归零 | `game/` 下 `feature_\|relic_\|_bonus_\|pick_bonus\|BonusInteract\|BonusPick` 命中数 = 0(存档键除外) |
| A2 | 禁词未用 | `game/` 下无 `reward_pick` / `reward_node` / `reward_preview` **新增**(既有三处不动) |
| A3 | 兑付频率正确 | 专长兑付点 = 关底 Boss 击败;**关内普通战斗节点不产奇物**(代码级断言 + 人闸目检双查) |
| A4 | 渠道分离 | 三渠道候选池按分类白名单过滤;机制类在非 Boss 渠道只以门票形态出现 |
| A4 | 渠道分离 | 三渠道候选池按分类白名单过滤;专长在非 Boss 渠道只以门票形态出现 |
| A5 | 门票拿到即开 | 门票不进持有集;选中/买下同帧开专长三选一(断言:持有关卡推进后仍无门票残留) |
| A6 | 保底计数 | 连续 5 次展示未出 → 第 6 次必出;刷新重展计入;限购用满后不触发 |
| A7 | 值零变更 | T1-T3 全部改名的键,值与基线**逐位相等** |
| A8 | 存档往返 | 旧断点可读、可续;存档键按 T2 裁点结论验证 |
| A9 | 池配额锚 | `TIER_QUOTAS` validate 硬断言绿;若改总量须有重裁说明 |
| A10 | 节点类型零扩类 | 节点类型仍为封闭枚举五种 |
| A11 | 玩家可见面无分类名 | 奇物列表 / 三选一面 / 弹窗**不出现**"机制类/属性提升类/资源类"字样(与 06 独立条目协同,本批只做**断言检查**,不改法) |
| A11 | 玩家可见面无分类名 | 奇物列表 / 三选一面 / 弹窗**不出现**"专长/属性值提升/资源"字样(与 06 独立条目协同,本批只做**断言检查**,不改法) |
| A12 | 档二通路 | charge 标签 ≥4 件,或已有显式登记"不可达 + 转内容批" |
## 七、异常分级(loop 规范)
@@ -205,7 +205,7 @@
**本批预判的 L3 高风险点**:
1. `relic_table.gd` 改名连带 `.uid` / `.tscn` 非文本层引用失败(T3)
2. 机制类抽离共享池后配额结构锚失锚,需重裁(T4)
2. 专长抽离共享池后配额结构锚失锚,需重裁(T4)
3. 存档键换名导致旧断点读不出(T2)
## 八、代拍板白名单(批内可自裁,台账留痕)
@@ -239,5 +239,5 @@
| v2.2 | 非 Boss 渠道给**门票**形式(拿到即开、不可囤积);渠道约束重构为**三层**(分类白名单 / 可计算谓词 / 显式例外清单);立**默认原则**——除已登记规则外分类内成员都要在池子里 |
| v2.3 | 门票四条口径细化(含**计步保底**:连续 5 次展示未出第 6 次必出,刷新重展计入);修正默认原则表述——**只管分类内部**,"渠道出哪些分类"是渠道轴自己的定位决定 |
| v2.4 | 顶层定名**「奇物」Wondrous Item**(DND 魔法物品九分类的兜底杂类);落选 Treasure(偏财物)/ Relic(用户否决)/ 全部自造词;**代码词族定为 `curio_*`**(`reward_*` 已被占用) |
| v2.5 | 第三类定名**「资源类」**(偏泛,故在 1.3 写死判据句);**回复留在资源类**不拆第四类 |
| v2.5 | 第三类定名**「资源」**(偏泛,故在 1.3 写死判据句);**回复留在资源**不拆第四类 |
| v2.6 | **修正核心循环图**——奇物不是打一场战斗给一份;关底 Boss 击败=通过这一关是同一时刻;兑付频率写进文首 / 2.1 / 待办 / registry |