合并(意图徽标类型级收敛批·写卡): 文档闭合+卡片成立合回——敌人系统.md v2.1 规则句(攻击系内部不分档预告,强度感知归本体准备动画)+character-design v1.0/资产清单 v1.0 三族口径落文; 需求卡片-意图徽标类型级收敛批-2026-11-09 重立(原2026-11-01卡作废: master已前行号漂移+行号锚废止; 模态句柄册分域卡退役=迭代49已实现): 拆CHARGE_SKILL_IDS/_intent_charge与缓推动画分支、GOLD_INK转标签岗、验证面换代旧〔wd2〕两处退役+新V1-V8、估时0.75日、验收档中、零待裁点; 复核1轮4发现全落卡内复核记录节; 待办清单条目推进文档设计已闭合+已写卡; README能力表增行敌方意图徽标类型级预告. 区内凭据: 流水线闸 PASS(35条目/57行/2链/7卡)+文档域闸八闸全绿; 合回前置检查读数见 pre-merge 钩子; post-merge 钩子推送触发远端 CI
ci / gates (push) Successful in 2m59s

This commit is contained in:
DKChan committed 2026-11-09 23:55:05 +08:00
commit a8989ecc86
6 files changed
+216 -6

No files matched your search

+2 -1
View File
@@ -3,6 +3,7 @@
> **性质**:表现层升级批与战斗表现批的生产侧清单——把散在战斗表现 / HUD框架 / 关卡节点地图 / 敌人系统里的资产需求收拢成一张可执行的工单视图,**兼资产维度单一登记处**。**规范效力归各 owner 文档**(战斗表现、美术圣经、04-美术音频方向),本文只补「生产视角的需求规格」,冲突时以 owner 文档为准。
> **建立**:场景一(战斗画面呈现)讨论产物;本文为唯一清单。历次修订明细见 git 提交史。
> **更新纪律**:各条目「现状」行顺带更新(未开始 / 候选已出 / 已裁决 / 已交付);做完不删条目,改状态。与待办清单的联动:本文是资产维度明细,待办清单只留指路存根。
> **状态**:现行为 v1.0(2026-11-01)。
## 0. 生产渠道、规格与风格宪法
@@ -94,7 +95,7 @@
- **风格/规格**:三档在**灰度/剪影层也可辨**(双通道纪律);每档动画时长与结算节拍对齐(预告时序 = 下一拍、挖掘期全程可见)。
- **联动**:HUD框架「意图徽标不预告技能名与数值」条款由本拍板承接为动画承载(文字与技能名彻底退出);战斗表现「特殊技两型动画」输入清单按三档改写;映射按 enemy_id 全局恒定(跨 run 禁重掷);契约锚 = art-bible §4.6.4 意图姿态行。
- **来源**:✦/⚙ 自产——三档表演层挂在我们自己的精灵图上,动画本体不可复用;通用蓄力/施法光效素材(♻)仅可作参考与粒子底料,过复用闸。
- **现状**:占位符号已落地(普通攻击「—」/ ⚔ / ✦ / 重击类「蓄力」,技能名退出徽标);终稿动画待样张后开工。
- **现状**:占位符号已落地(普通攻击「—」/ 伤害技 ⚔ / 增益技 ✦ / 妨害技 ☠——攻击系内部分档不作预告,重击与普通伤害技同呈现,技能名退出徽标);终稿动画待样张后开工。
---
+3 -2
View File
@@ -2,6 +2,7 @@
> **性质**:美术圣经 §5(角色设计)的独立承载文档——**人设高频改动、独立成档免动圣经**;圣经 §5 自此为引用存根指向本文件,**小节号 §5.1–§5.6 沿用不变**(跨文档引用经圣经 §5 存根仍可达,新引用直指本文件)。
> **边界**:本文件只定角色呈现;角色承载的机制语义(护甲克制矩阵、技能与状态)以 GDD 为准(敌人系统/增益状态/战斗结算)。色彩系统、形状语言总纲引用美术圣经 [art-bible](art-bible.md) §4/§3,冲突以圣经为准。提示词执行侧(可直贴串)归 [art-prompts](art-prompts.md),本文件是它的规格上游。
> **状态**:现行为 v1.0(2026-11-01)。
---
@@ -21,7 +22,7 @@
## 5.2 头身比与体量档位
- **头身比**:全角色 2~3 头身(chibi)两档——小人剪影须在两档下均成立(§5.1);敌种按 archetype 取档,同一敌种恒定一档(enemy_id 键恒定纪律,圣经 §4.6.4)。←风格基调
- **体量档位 = 生物体型通道(原「强度先验·普通 < 精英 < Boss 单调递增」读法已弃用)**:体量按**物种天性**定,禁按强度档位线性映射——小体型精英与大体型普通怪并存(锁定实例:钩爪恐魔 > 灰矮人、灰矮人 < 熊地精、食人魔酋长 > 熊地精);「大个子多半有重击」的强度先验读法改由意图徽标(§5.6)与甲档(§5.3)承担,体量不再报强度;图像不报数,精确数值只在结算明细。
- **体量档位 = 生物体型通道(原「强度先验·普通 < 精英 < Boss 单调递增」读法已弃用)**:体量按**物种天性**定,禁按强度档位线性映射——小体型精英与大体型普通怪并存(锁定实例:钩爪恐魔 > 灰矮人、灰矮人 < 熊地精、食人魔酋长 > 熊地精);「大个子多半有重击」的强度先验读法改由意图准备动画(§5.6)与甲档(§5.3)承担,体量不再报强度;图像不报数,精确数值只在结算明细。
- 像素画布/精灵尺寸**不在本节**——归圣经 §8 资产规范;本节只锁比例关系与档位次序。
## 5.3 护甲类型视觉区分
@@ -77,6 +78,6 @@
- **三档**:① 普通攻击 = 常态待机(待机即预示,零独立资产);② 攻击技能 = 特殊准备动画(放光/高举武器等"摇号感"动作);③ 重击/硬化类 = 蓄力动作或防御姿态。
- **双通道纪律**:三档在灰度/剪影层可辨(色弱安全,圣经 §4.5 同款要求)。
- **呈现纪律**:不显示文字与技能名(文字与技能名彻底退出预告);映射按 enemy_id **全局恒定、跨 run 禁重掷**;预告时序 = 下一拍,挖掘期全程可见,结算不另设独立意图播片。契约锚 = 圣经 §4.6.4 意图姿态行。
- **终稿帧规格**(帧数/时长/结算节拍对齐)归圣经 §8 资产规范与战斗一屏样张(清单 §2.3);占位符号(—/⚔/✦/蓄力)现行使用,动画到位后原位替换。
- **终稿帧规格**(帧数/时长/结算节拍对齐)归圣经 §8 资产规范与战斗一屏样张(清单 §2.3);占位符号(—/伤害技 ⚔/增益技 ✦/妨害技 ☠——攻击系内部分档不作预告)现行使用,动画到位后原位替换。
---
@@ -1,7 +1,7 @@
# 敌人系统
> 一句话:敌人数据、技能池出招、意图呈现
> 状态:已定稿;现行为 v2.0
> 状态:已定稿;现行为 v2.1
## 设计目的
@@ -203,7 +203,7 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**技能错
| 特殊技 | 技能动画占位(攻击系 / 增益系 / 妨害系三族)——纯类型级提醒,不预告技能名与数值 | 明细行具名技能 + 数值 |
| nat20 暴击 | 无前置表示(掷点层,与技能重击严格区分) | 明细行"(暴击)"标注 |
即:普攻完全不可预测;特殊技有一次类型级预告,不可撤销,但给"继续挖还是停手"的决策依据。
即:普攻完全不可预测;特殊技有一次类型级预告,不可撤销,但给"继续挖还是停手"的决策依据。攻击系内部不分档预告——重击与普通伤害技的预告呈现完全相同,强度差异的感知通道是敌人本体的准备动画(规格见[角色设计](../../../art/character-design.md) §5.6 意图准备动画三档)。
**半血解锁弹出规格(解锁判定点=通用事件「血量阈值 `enemy_hp_threshold`」的发射点,对所有带闩型血量触发条件的敌人逐个发射、非 Boss 专属——Boss 语义留给订阅条件判定;条件载体=技能行 trigger 闩型,见「触发条件」节)**:Boss 血量降至解锁阈值(trigger 行值,域 [1,99],缺省无字段=无门槛)时,下一个开轮摇号前出一次归因明细行「XX 解锁了 YY」(高光键为技能解锁,行型复用高光行零新增);呈现层对该行弹**一次性技能名 toast**(轻量提示,非演出——零动画资产、不改演出规格),只报技能名不报数值,池与权重不公开纪律不变。解锁=单向闩(治疗抬血不解锁);锁定条目双面过滤(不进可摇集合与保底特殊技集合——保底禁止逼出未解锁技);解锁后冷却初值 0 即可摇。投放纪律=机制通用、闩型解锁用例仅 Boss 专属技投放(enemy 表无 boss 编码位,硬闸须跨表查节点类型——不做硬闸,本句即文档纪律登记)。技能动画的攻/防系映射归[战斗表现](战斗表现.md),敌人侧摇定动画位归[HUD 框架](../表现与支撑/HUD框架.md)(呈现载体 = 站桩立绘,2026-09-20 全站桩拍板),本系统只锁上面这张三档规格。
+2 -1
View File
@@ -156,6 +156,7 @@ tests/
| 站桩敌人呈现与结算演出落点 | 战斗表现 | `BattleStageView.enemy_standee_center()`/`BattleEndOverlay.open_victory()` | `standee_fx_sweep_test.gd:_init`;`pacing_queue_test.gd:_init` |
| 站桩呈现定值与素材绑定 | 战斗表现 | `UiKit.load_tex()`/`StandeeBody.name_line_probe()` | `standee_present_values_test.gd:_init` |
| 站桩显示档与素材分辨率绑定 | 战斗表现 | `StandeeBody.portrait_probe()`/`StandeeMotion.PORTRAIT_DISPLAY_H` | `standee_present_values_test.gd:_check_display_tier` |
| 敌方意图徽标类型级预告 | 战斗表现 | `StandeeBody.set_pending()` → `StandeeBody.intent_probe()` | `standee_fx_sweep_test.gd:_init` |
| B 区舞台背景三关变体与连续地面层(按 board_type 选图/地面层高度读布局表/四柱光柱退役) | HUD框架 | `BattleStageView.set_board_type()` | `stage_background_test.gd:_test_background_selection`;`stage_background_test.gd:_test_ground_layer_geometry`;`stage_background_test.gd:_test_beams_retired` |
| 动画帧数规格(待机/攻击/受击;现役单帧形制锚定) | 战斗表现 | `UiKit.load_tex()`(`TEX_HERO_*` 四态件装载链——棋盘站立/行走与舞台三态同源) | `animation_frame_spec_test.gd:_test_spec_table`;`animation_frame_spec_test.gd:_test_current_form` |
| 战斗屏三区几何与棋盘格边长(分辨率两档×四档板型) | HUD框架 | `BoardView.set_cell_area()`(D 区可用面积 → 格边长);读面 `BoardView.cell_size` | `layout_probe.gd:_ready`;`board_gen_reward_test.gd:_smoke_layout_cell_formula`;`stage_background_test.gd:_test_side_rail_width_from_table`/`_test_log_band_settle_height`(计划——需求卡片「QA覆盖余量收口批」2026-11-07 锚定) |
@@ -223,7 +224,7 @@ tests/
| 战斗循环 | 地图战斗资源.md | 清图奖励双份与零路径;GP 钱包/escrow/商店收口/共享池;封印与极性路由/不可逆 | 已覆盖 | — |
| 战斗循环 | 增益状态.md | 系统间契约词表与受理口径:五配方互异/掷点标签成员性/增益布尔受理;同名状态合并策略(叠加/累加/并存)与剩余次数语义;状态效果结算链(逐值衰减/到期移除/战斗结束全清/满层拒绝/独立并存/首授快照);状态实例按个体归属:个体隔离/全体授予逐体发/死亡即清/同体合并照旧;敌方增益自体落点与乘区池按个体;封印与极性路由/不可逆 | 部分覆盖 | 结算链剩余缺口由「断言补齐批」承接;见待办清单「能力清单覆盖缺口补齐」条 |
| 战斗循环 | 战斗结算.md | 伤害公式与掷点乘区;伤害单据编排与回放;轮内流与结算五段全序 | 已覆盖 | — |
| 战斗循环 | 战斗表现.md | 站桩敌人呈现与结算演出落点;站桩呈现定值与素材绑定;站桩显示档与素材分辨率绑定 | 已覆盖 | 死亡灰化与减动效演出档以探针+人工目检为终态(2026-11-02 用户裁除名,不再补自动断言) |
| 战斗循环 | 战斗表现.md | 站桩敌人呈现与结算演出落点;站桩呈现定值与素材绑定;站桩显示档与素材分辨率绑定;敌方意图徽标类型级预告 | 已覆盖 | 死亡灰化与减动效演出档以探针+人工目检为终态(2026-11-02 用户裁除名,不再补自动断言) |
| 战斗循环 | 敌人系统.md | 技能池数据面与回放独立;Boss 半血解锁技门控;敌人技能池跨表链接校验;精英行:池继承合并、加载期校验与暂不接线 | 部分覆盖 | 精英行「开战快照拿到合并后池」随接线批验收;见待办清单「战斗节点遭遇编排方式」条 |
| 排雷循环 | 地形变异.md | 变异布置门控;表结构守卫:域校验/行序键/跨字段互锁/配额锚 | 已覆盖 | — |
| 排雷循环 | 排雷玩法.md | 装板与开局免费展开(封锁格无资源、计入清图);挖/封印合法性与可辨拒绝(拒绝零副作用、挖封印格被拒);封印受理即揭示(身份可查、受理零事件);清图口径换代(挖开∪封印、封印可完成清图) | 已覆盖 | — |
@@ -0,0 +1,196 @@
# 需求卡片:意图徽标类型级收敛批(2026-11-09)
> 来源:待办清单「意图徽标类型级收敛批」条目(2026-11-01 登记;2026-11-09 按现行 master 重写,原 2026-11-01 卡作废)。
> 验收档:中(呈现数据面——玩家可见、不损持久状态)。
> 来源:设计事实源见下节(唯一事实源声明)。
## 1. 目标与完成定义
敌方意图徽标收敛回类型级三态(⚔ 攻击系红/✦ 增益系蓝/☠ 妨害系紫)。拆除实现里超出规格的攻击系内部「重击档」:重击(`heavy`)徽标换金墨 `GOLD_INK`、徽标动画多一段「缓推+定格」。拆后重击与其他伤害技徽标完全相同;强度差异交给敌人本体准备动画(本批不动)。
完成定义(全部满足才算完):
1. `CHARGE_SKILL_IDS` 常量与 `_intent_charge` 成员退役;`set_pending` 选墨唯一判据=pending_type 三态;`play_intent_motion` 去参、缓推分支删除。
2. `GOLD_INK` 常量保留(标签岗在役),徽标层金墨清零;对比度探针、样张工具、分档字样注记同步。
3. 验证闸对照表 B1–B8 在当轮真实跑批执行并通过;代码域闸全绿;独立验收审计通过。
## 2. 设计事实源
`design/gdd/systems/战斗循环/敌人系统.md` v2.1「目标顺位与意图线索」节——规则句:「攻击系内部不分档预告——重击与普通伤害技的预告呈现完全相同,强度差异的感知通道是敌人本体的准备动画」;同节三档信息面表:特殊技=纯类型级提醒。美术侧=`design/art/character-design.md` v1.0 §5.6 意图准备动画三档(占位符号行已同步为三族、攻击系内部不分档)。与待办清单条目闭合凭据一致。
用户裁决(2026-11-01,卡内不再开裁):①收敛不拆分;②验证面改动与表现面改动同卡。
## 3. 现状事实(2026-11-09 master `cf807329` 实读;开工 T0 复核)
- **分档判据**:`game/presentation/views/standee_body.gd` 文件头常量区 `const CHARGE_SKILL_IDS := ["heavy"]`;成员 `var _intent_charge := false`(行尾注「蓄力档……源码锚承载成员住宿主」)。
- **分档写点**:同文件 `set_pending()` 内四处——死亡残位分支与普攻分支各一处 `_intent_charge = false`;三态选墨之后 `_intent_charge = pid in CHARGE_SKILL_IDS` 与 `if _intent_charge: col = UiKit.GOLD_INK`;末行 `mo.play_intent_motion(_intent_charge)`。`mark_dead()` 内一处 `_intent_charge = false`。
- **头注**:同文件 `##` 头注第 7–8 行「源码锚承载成员(_intent_charge——theme 源锚句所在行逐字保留)」——成员删除后失实。
- **徽标注记**:同文件 `_draw_intent_badge()` 内注记「atk 5.3/buf 4.8/debuff 4.7/charge 4.9」「charge 换 GOLD_INK」——四墨旧口径。
- **读出口**:同文件 `intent_probe()` 返回 `{visible, text}`,无墨色字段——本批不动。
- **动画**:`game/presentation/views/standee_motion.gd` `play_intent_motion(charge: bool)`——`if charge:` 分支为缩放到 1.22 的缓推+0.40 定格+回落;`else` 分支为 1.26 二次弹跳。函数上方四行注记为「三档运动签名」口径,末行「(charge = 宿主 _intent_charge 分档布尔参判传入)」。全仓唯一调用者=`standee_body.gd` `set_pending()`。
- **金墨常量**:`game/presentation/views/ui_kit.gd` `const GOLD_INK := Color8(116, 80, 11)`,注记「深金墨(意图蓄力徽标墨——PANEL_DATA 垫牌上 4.9:1)」。标签岗消费在役:`battle_end_overlay.gd`(结算 GP 行)、`ui_kit.gd`(货架价签)、`forge_view.gd`(锻造区头)、`tree_view.gd`(天赋树分组头)、`treasure_view.gd`(状态字)。
- **旧断言①**:`game/tests/unit/presentation/theme_projection_test.gd` `_smoke_contrast_inks()` 内「V4 意图蓄力档判据=分档布尔……〔wd2〕」源码锚——判据 `sb_src.contains("_intent_charge = pid in CHARGE_SKILL_IDS")`。
- **旧断言②**:`game/tests/unit/presentation/standee_fx_sweep_test.gd` `_init()` 内「① 意图蓄力档可达(d2)」段——`charge_cases` 四行表,逐行直读内部字段 `s1._intent_charge`(尾缀〔wd2〕);文件头注第 3 行「① 意图蓄力档可达」。
- **探针测点**:`game/probe/ui_contrast_probe.gd` `_pairs()` 内「意图charge·垫牌」行(`GOLD_INK` 对 `PANEL_DATA`);文件头注「意图徽标四墨」。
- **样张工具**:`tools/render_sample_sheet_v3.py` `draw_standee()` 内意图字典含 `"charge": ("⚔", (116, 80, 11))` 键,上方注记「四色墨对牌 4.7–5.8:1」;熊地精调用 `intent="charge"`(删键不改调用=KeyError);明细带摘要行文案「熊地精 蓄力(重击预告)」;文件尾部 S1b 自检段为「意图徽标四色墨对 PANEL_DATA 垫牌 ≥4.5:1」断言(墨表四行含「蓄力墨」,注记「四墨=意图色表 damage/buff/debuff/charge 四值」)。
- **退役旧版样张工具**:`tools/render_sample_sheet.py`(v2)同样含 `"charge"` 键(旧墨值)与 `intent="charge"` 调用——已退役复现件(art-pipeline-tools.md:已被 v3 取代、只用于复现 v2 旧口径),**本批不动**;T0 按 "charge" 全仓检索命中它不判 L3。
- **分档字样注记**:`game/probe/fx_probe.gd` 头注「意图三档动画(damage/buff/debuff/charge ……)」与 `_ready()` 内「与蓄力档(heavy)摇定」;`game/tests/run_all.gd` 套件清单 `standee_fx_sweep_test.gd` 行尾「d2 蓄力档」。`game/probe/ui_probe.gd` 的「意图三档动作动画占位」指 GDD 三档信息面(普攻/特殊技/暴击),不失实,不在触面。
- **对比度基线**(`theme_projection_test.gd` `_theme_contrast` 同式 WCAG 复算,对 `PANEL_DATA`):RED_MINE 5.62/HERO_BLUE_DEEP 5.10/DEBUFF_PURPLE 4.97,全 ≥4.5。
- **技能 id**:`game/data/tables/skills.tres` 含 `heavy` 与 `lunge` 两行(均为伤害技)。
- **渲染基线**:`game/tests/golden/` 在库基线不含站桩意图徽标——本批零渲染闸换代面。
## 4. 设计契约(违反即返工)
- 🔴 **类型级三态、零分档**:徽标选墨唯一判据=pending_type(damage→RED_MINE/buff→HERO_BLUE_DEEP/debuff→DEBUFF_PURPLE);任何按 skill_id 的徽标分档=规格外分档复发。
- 🔴 **强度感知归本体动画**:character-design §5.6 本体准备动画零触碰;徽标动画收敛为单形态(弹入+二次弹跳),禁重造徽标层强度动画。
- 🔴 **墨岗守恒**:`GOLD_INK` 常量与取值保留(标签岗在役);RED_MINE/HERO_BLUE_DEEP/DEBUFF_PURPLE 语义岗不动。
- 🔴 **拆除不新增、禁无效成员**:零新增文件/函数/常量;`CHARGE_SKILL_IDS`/`_intent_charge`/`play_intent_motion` 的参数禁以别名、注释句或死代码残留;禁为迎合机检消息文本保留无效成员——机检键与本卡契约互斥时停卡呈报,禁自造第三条路(code-conventions §1.1)。本批是拆除收敛,无拆出单元。
- 🔴 **验证面同生死**(test-conventions §5.5):两处旧分档断言随实现同批摘除,由新断言替代;新断言从真实入口进入、当轮真实跑批通过。
## 5. 范围边界
做:§3 触面——徽标收敛、验证面换代、探针与样张镜像、分档字样注记改写。
不做(去向):
- 敌人本体准备动画、战斗表现摇定动画位——不动,无去向;
- `skills.tres` 表值——不动(技能数据零改);
- 半血解锁 toast、结算明细行——不动;
- 待办清单条目删除——归批后收尾段(实现批禁写待办清单)。
## 6. 关联文档同步面
| 文档 | 关联点(本批实现会改变它的哪条陈述) | 同步义务 |
|---|---|---|
| `design/gdd/systems/战斗循环/敌人系统.md` | 「目标顺位与意图线索」规则句=本批实现依据(v2.1 已落文) | 设计权威文档——实现批禁直改;实现与条款失配→列 `reports/iter<N>-反哺点-<日期>.md` 由用户裁决后归文档批 |
| `design/art/character-design.md` | §5.6 占位符号行(已同步三族、攻击系不分档) | 同上 |
| `game/tests/README.md` | 能力表行「敌方意图徽标类型级预告」+覆盖域表战斗表现行 | 本写卡批已随卡增行;实现批禁写,批末只核对表上名字与实际落地一致 |
| `待办清单.md` | 本条目状态 | 流水线面——实现批禁写;入库后整条删除归收尾段 |
## 7. 卡前·文件结构图(全部既有件,零新增文件)
| 文件 | 职责 | 改动性质 |
|---|---|---|
| `game/presentation/views/standee_body.gd` | 徽标三态选墨收敛;分档常量/成员/复位句退役;头注与徽标注记改写 | 行为改动(B1、B2) |
| `game/presentation/views/standee_motion.gd` | 徽标动画单形态(去参+删缓推分支+注记) | 行为改动(B3) |
| `game/presentation/views/ui_kit.gd` | `GOLD_INK` 注记改标签岗口径(常量零动) | 非行为改动(B6) |
| `game/tests/unit/presentation/theme_projection_test.gd` | 旧蓄力锚退役+新源码锚+三墨对比锚 | 非行为改动(验证面换代,B2/B3/B4) |
| `game/tests/unit/presentation/standee_fx_sweep_test.gd` | 蓄力判据表退役+`intent_probe()` 真实入口断言 | 非行为改动(验证面换代,B1) |
| `game/probe/ui_contrast_probe.gd` | charge 测点行退役+头注三墨 | 非行为改动(验证面换代,B5) |
| `tools/render_sample_sheet_v3.py` | 样张镜像同步 | 非行为改动(工具镜像,B7) |
| `game/probe/fx_probe.gd` | 分档字样注记两处改写;heavy 摇定用例保留 | 非行为改动(B8) |
| `game/tests/run_all.gd` | 套件清单行尾注记改写 | 非行为改动(B8) |
## 8. 任务卡
估时总计 ≈0.75 个工作日(区间 0.5–1.0);单轮无切分,超盒停卡呈报。
### T0 事实坐实(0.25d)
- 取用:§3 全部事实。
- [ ] 全仓检索 `CHARGE_SKILL_IDS`/`_intent_charge`/`play_intent_motion`/`GOLD_INK`,列消费面清单。判据:前三者消费面=§3 在册位;`GOLD_INK` 徽标岗仅 `standee_body.gd` 一处、标签岗 ≥1。清单外代码消费者=L3。
- [ ] 跑 `bash game/tests/static_scan.sh`,记录 `standee_body.gd`/`standee_motion.gd`/`ui_kit.gd` 三件 S13 现值。
- [ ] 直跑 `ui_contrast_probe.tscn`,记录现测点总数 N。
- 产出:消费面清单、S13 现值、测点数 N(写进实现报告)。
### T1 拆除收敛与验证面换代(0.5d)
- 取用:T0 消费面清单。
- [ ] `standee_body.gd`:删 `CHARGE_SKILL_IDS` 常量与 `_intent_charge` 成员;删 `set_pending()` 与 `mark_dead()` 内全部 `_intent_charge` 写句及 `if _intent_charge:` 金墨分支;末行改 `mo.play_intent_motion()`。三态选墨原样保留。
- [ ] `standee_body.gd` 头注:删「与源码锚承载成员(_intent_charge——……)」半句,只写现行模块事实(措辞避开 audit_file_headers 变更叙事黑名单与日期形态)。
- [ ] `standee_body.gd` `_draw_intent_badge()` 注记改三墨口径:atk 5.62/buf 5.10/debuff 4.97;删「charge 换 GOLD_INK」。
- [ ] `standee_motion.gd`:签名改 `func play_intent_motion() -> void`;删 `if charge:` 分支,二次弹跳两行升为无条件;上方注记改两形态口径(①普攻零表示=`set_pending` 早退;②特殊技=弹入+二次弹跳;强度档归本体准备动画)。
- [ ] `ui_kit.gd`:`GOLD_INK` 行尾注记改标签岗口径(结算 GP 行/价签/分组头/状态字;PANEL_DATA 上 5.21:1);常量值零动。
- [ ] `theme_projection_test.gd` `_smoke_contrast_inks()`:删旧「V4 意图蓄力档判据=分档布尔」断言;同位置加四条——
- 「V2 攻击系徽标墨=RED_MINE 原位」:`sb_src.contains("var col: Color = UiKit.RED_MINE")`;
- 「V2 standee_body 源码零 GOLD_INK 零 CHARGE_SKILL_IDS」:`not sb_src.contains("GOLD_INK") and not sb_src.contains("CHARGE_SKILL_IDS")`;
- 「V3 standee_motion 缓推分支清零」:读 `res://presentation/views/standee_motion.gd` 为 `motion_src`,判据 `not motion_src.contains("1.22") and motion_src.contains("func play_intent_motion() -> void")`;
- 「V4 意图徽标三墨对垫牌 ≥4.5」三条:`_theme_contrast(uikit_s.RED_MINE, uikit_s.PANEL_DATA) >= 4.5`,HERO_BLUE_DEEP、DEBUFF_PURPLE 同式;消息带 `%.2f` 读数。
- [ ] `standee_fx_sweep_test.gd` `_init()`:删「① 意图蓄力档可达」段与头注第 3 行;同位置加断言两条——`s1.set_pending("damage", "heavy")` 后「重击(heavy)徽标=攻击系 ⚔ 且可见〔徽标收敛 V1〕」:`s1.intent_probe().visible and s1.intent_probe().text == "⚔"`;`s1.set_pending("damage", "lunge")` 后「突刺(lunge)徽标=攻击系 ⚔ 且可见〔徽标收敛 V1〕」同判据。头注 ① 改为「① 意图徽标攻击系不分档(heavy 与 lunge 同呈现)」。
- [ ] `ui_contrast_probe.gd`:删「意图charge·垫牌」行;头注「意图徽标四墨」→「意图徽标三墨」。
- [ ] `tools/render_sample_sheet_v3.py`:删 `"charge"` 键;熊地精调用 `intent="charge"`→`intent="damage"`;摘要行「熊地精 蓄力(重击预告)」→「熊地精 攻击系预告」;注记「四色墨对牌 4.7–5.8:1」→「三色墨对牌 4.97–5.62:1」;尾部 S1b 自检段改三墨——墨表删「蓄力墨」行、断言名「四色墨」→「三色墨」、注记改「三墨=意图色表 damage/buff/debuff 三值」。
- [ ] 分档字样注记:`fx_probe.gd` 头注 `damage/buff/debuff/charge` → `damage/buff/debuff`,`_ready()` 内「与蓄力档(heavy)摇定」→「含重击(heavy)同属攻击系」;`run_all.gd` 行尾「d2 蓄力档」→「d2 意图徽标攻击系不分档」。
- [ ] 孤立验证:
- `godot --headless --path game --script res://tests/unit/presentation/theme_projection_test.gd`,期望 exit 0;
- `godot --headless --path game --script res://tests/unit/presentation/standee_fx_sweep_test.gd`,期望 exit 0;
- 工作目录 `game/` 下 `…console.exe --headless --path . res://probe/ui_contrast_probe.tscn`,期望 PASS 且测点数=N−1;
- 工作目录 `game/` 下直跑 `res://probe/fx_probe.tscn`,期望 PASS;
- `python tools/render_sample_sheet_v3.py` 全路径试车,期望零异常退出、产物落盘。
- [ ] 复跑 `static_scan.sh`,核对三件 S13 只降不升。
- 产出:收敛落地+验证面换代+孤立验证读数(写进本步提交信息)。
### T2 产出物落位(末卡,0.25d 内含于总估时)
- [ ] 里程碑步出口跑一次改动域全套闸:`bash tools/run_all_gates.sh --code`,期望回执 all_green;波内修复只做出红最小单元的最窄确认。
- [ ] 独立验收审计(未参与实现的会话或子代理),报告落 `reports/iter<N>-验收审计-<日期>.md`;未过不得合并。
- [ ] 合并前写齐 `reports/iter<N>-实现报告-<日期>.md`(卡状态+实机目检总清单〔徽标弹入单形态观感一项,登记不阻塞〕+实现决定记录)与 `reports/iter<N>-反哺点-<日期>.md`(同步面四行逐条交代落点:两份设计文档已落文无需同步、README 已增行、待办清单归收尾段删除)。
## 9. 验证闸(改动—验收对照表)
| # | 需求点(含判据出处锚) | 改动(文件/行为) | 验收测试(名称+落点+尾缀) | 层级 | 真实入口 | 判据绑定面 | 能力行 |
|---|---|---|---|---|---|---|---|
| B1 | 重击与其他伤害技徽标呈现相同——`design/gdd/systems/战斗循环/敌人系统.md「目标顺位与意图线索」攻击系内部不分档预告 | `standee_body.gd` `set_pending()` 分档退役 | 「重击(heavy)徽标=攻击系 ⚔ 且可见」「突刺(lunge)徽标=攻击系 ⚔ 且可见」`standee_fx_sweep_test.gd:_init`〔徽标收敛 V1〕 | 单元 | `StandeeBody.set_pending()` → `intent_probe()` | `intent_probe()` 返回 visible/text;观测面局限申报:墨色无运行期读出口,墨收敛由 B2 源码锚承载 | 新增:敌方意图徽标类型级预告 |
| B2 | 徽标墨只按三态选、金墨退出徽标——`design/gdd/systems/战斗循环/敌人系统.md「目标顺位与意图线索」攻击系内部不分档预告 | `standee_body.gd` 常量/成员退役+头注改写 | 「攻击系徽标墨=RED_MINE 原位」「standee_body 源码零 GOLD_INK 零 CHARGE_SKILL_IDS」`theme_projection_test.gd:_smoke_contrast_inks`〔徽标收敛 V2〕 | 单元 | theme_projection 套件(FileAccess 读源码) | 源码 contains/not contains;观测面局限申报:墨值进 draw 调用、无运行期读出面,库内源码锚先例同型 | 新增:敌方意图徽标类型级预告 |
| B3 | 徽标动画单形态、强度归本体——`design/gdd/systems/战斗循环/敌人系统.md「目标顺位与意图线索」强度差异的感知通道是敌人本体的准备动画 | `standee_motion.gd` 去参+删缓推分支 | 「standee_motion 缓推分支清零」`theme_projection_test.gd:_smoke_contrast_inks`〔徽标收敛 V3〕+`standee_fx_sweep_test.gd` 套件复跑(签名失配即红);弹入观感归实机目检(登记不阻塞) | 单元+目检登记 | theme_projection 套件;standee_fx_sweep 真实站桩实例链 | 源码 not contains "1.22" 且含无参签名;观测面局限申报:tween 时序无 headless 读出面 | 新增:敌方意图徽标类型级预告 |
| B4 | 三墨对垫牌达标——`design/art/art-bible.md「7.2 UI 色板细则」全局文字可读性硬指标 | `theme_projection_test.gd` 增三条常量对比断言 | 「意图徽标三墨对垫牌 ≥4.5」三条 `theme_projection_test.gd:_smoke_contrast_inks`〔徽标收敛 V4〕 | 单元 | UiKit 常量实时求值(`_theme_contrast`) | 对比度 ≥4.5(基线 5.62/5.10/4.97) | 既有:UI 全局主题与按钮五态(含对比度锚) |
| B5 | 探针测点随呈现面退役——`design/art/art-bible.md「7.2 UI 色板细则」全局文字可读性硬指标 | `ui_contrast_probe.gd` 删 charge 行+头注 | 探针直跑 PASS、测点数=N−1、`GOLD_INK` 标签岗行全绿〔徽标收敛 V5〕 | 探针 | `res://probe/ui_contrast_probe.tscn` headless 直跑 | 退出码 0+PASS 行测点计数 | 既有:UI 全局主题与按钮五态(含对比度锚) |
| B6 | `GOLD_INK` 转标签岗注记——`design/art/art-bible.md「7.2 UI 色板细则」全局文字可读性硬指标 | `ui_kit.gd` 注记改写(常量零动) | **非行为改动**(纯注释)——B5 同轮标签岗行复跑绿〔徽标收敛 V6〕 | 探针 | `res://probe/ui_contrast_probe.tscn` | 标签岗测点全绿 | 既有:UI 全局主题与按钮五态(含对比度锚) |
| B7 | 样张镜像同步——`design/art/character-design.md「意图准备动画三档」攻击系内部分档不作预告 | `render_sample_sheet_v3.py` 删键+改调用+改文案 | **非行为改动**(工具不入闸不入包)——全路径试车零异常+产物落盘〔徽标收敛 V7〕 | 工具试车 | `python tools/render_sample_sheet_v3.py` | 进程零异常退出(删键漏改调用即 KeyError) | 既有:站桩呈现定值与素材绑定 |
| B8 | 分档字样注记清零——`design/gdd/systems/战斗循环/敌人系统.md「目标顺位与意图线索」攻击系内部不分档预告 | `fx_probe.gd` 两处、`run_all.gd` 一处注释改写 | **非行为改动**(纯注释)——`fx_probe.tscn` 直跑 PASS(heavy 摇定徽标可见用例保留)+两单元套件选跑〔徽标收敛 V8〕 | 探针+套件 | `res://probe/fx_probe.tscn`;`run_all.gd -- --only=theme_projection,standee_fx_sweep` | 退出码 0;选跑命中两套件 | 新增:敌方意图徽标类型级预告 |
测试方式两分法:无调试接口注入面,全部机检自动化;目检仅「徽标弹入单形态观感」一项,登记实现报告目检总清单即完成义务(登记不阻塞)。
**测试削弱申报**(允许改动的旧断言全集,超出由独立审计判红):
1. `theme_projection_test.gd` 旧「V4 意图蓄力档判据=分档布尔」源码锚〔wd2〕退役——所绑成员随批删除,由 B2 双锚替代。
2. `standee_fx_sweep_test.gd` 蓄力判据表四条〔wd2〕退役——内部字段直读随成员退役,由 B1 `intent_probe()` 真实入口断言替代(test-conventions §8.2 触碰即换代款)。
3. `ui_contrast_probe.gd` charge 测点行删除——所绑呈现面退役,其余测点判据零动。
显式禁止:删其他旧断言、放宽 4.5 阈值、把 `intent_probe()` 断言换回内部字段直读。
**独立验收审计**:入口=未参与实现的会话或子代理;逐行核对照表两端、抽查判据绑定面、核削弱申报、确认全文无变异/撤销类取证;报告落 `reports/iter<N>-验收审计-<日期>.md`;未过不得合并。验收档=中(审计深度按 test-conventions §8.7 中档)。
**回归措辞**:里程碑步(T 段)出口跑一次全套闸;波内修复只做出红最小单元的最窄确认;新增断言先行孤立验证再并入全套。
## 10. 异常分级
- **L1 自救一次**:注记与断言消息措辞、检索形态、单件直跑命令拼装、读数插值格式。
- **L2 记录继续**(同一红连续三次升 L3):§3 位置描述与实读有出入但触面不变;S13 读数与预期不一致但键不升。
- **L3 停机呈报**:①拆除面发现 §3 清单外代码消费者;②`GOLD_INK` 标签岗零消费(常量去留变化);③为凑机检保留无效成员/别名,或 S13 键被迫升=机检预算互斥,上游缺陷停卡退回写卡段;④换代后窄测红且非本批触面成因。禁变异类测试与撤销类取证。
## 11. 代拍板白名单
1. 注记、头注与断言消息措辞(判据取值与断言内容卡内已定)。
2. 断言消息读数插值格式。
3. 检索形态(grep/编辑器全局搜索,判据等价)。
超出必呈报:判据取值、成员与常量去留、触面增减、能力行名字、测试函数落点。
## 12. 待裁点
零待裁点,开工门=U0(用户发令,经迭代编排段编入迭代)。
## 13. 落位与可复用性预检
- **新增面清点**:零新增文件、零新增函数/方法、零新增常量与数据件;新增断言 8 条落在两个既有测试函数内。
- **复用面**:徽标读出复用既有 `StandeeBody.intent_probe()`(全仓唯一徽标读出面,禁另造);对比度公式复用 `theme_projection_test.gd` `_theme_contrast`(禁复制公式);三墨锚落 `_smoke_contrast_inks()` 既有对比度锚段(能力清单在册代表用例);样张字典键集收敛,禁新增键。
- **唯一面**:徽标选墨只在 `set_pending()` 一处;徽标动画只在 `play_intent_motion()` 一处;三墨对比锚只落单元套件一处,样张工具 S1b 同批改三墨(镜像读数面,不另立第二锚——S1b 现状即在重复该判据,随批同口径换代)。新增断言 8 条(theme_projection 6+standee_fx_sweep 2)落在两个既有测试函数内。
- **分层与交互面**:只动 `standee_body` → `standee_motion` 的既有调用边(去参,调用关系不变);Core/RNG/数值表零触碰。
## 14. 实现规范预算
零新增文件,新件三查不适用。存量触面 S13 预期(较 T0 现值只降不升):
| 触面 | 预期 |
|---|---|
| `standee_body.gd` | 类变量 −1(`_intent_charge`);`set_pending()` 分支 −1 |
| `standee_motion.gd` | `play_intent_motion()` 分支 −1 |
| `ui_kit.gd` | 零变化(纯注释) |
S13 键被迫升=L3;禁手改 `tools/gdstyle_baseline.txt`。
## 15. 复核记录
| 轮次 | 复核者 | 发现 | 去向 | 处置结果 |
|---|---|---|---|---|
| 1 | 只读子代理(未参与撰写) | 核实为真合并记录:§3 现状 16 条逐条实读全对(file:line 与字面判据串逐字一致);对比度五比值独立复算吻合(5.62/5.10/4.97/5.21/5.84);无 §3 清单外代码消费者;T1 断言判据改动后均成立(RED_MINE 原位、GOLD_INK 仅两处均在拆除面、"1.22" 仅缓推一行);B1–B8 内容锚逐行实读在位且语义匹配(敌人系统 v2.1:206、art-bible「7.2 UI 色板细则」:458、character-design v1.0:81);能力行三行在场;削弱申报完备;预算/落位/结构图自洽;引擎面 Tween 用法无 NEVER/Gotcha 触碰;无旧卡残留、无行号锚 | 自判 | 核实为真,零改 |
| 1 | 同上 | 样张工具 S1b 自检段漏列——`render_sample_sheet_v3.py:1212-1223` 现有「意图徽标四色墨对 PANEL_DATA 垫牌 ≥4.5:1」断言(墨表含蓄力墨行、注记「四墨=…charge 四值」),删 charge 键后 S1b 原样保留=四墨分档字样在工具存活,完成定义 2 不闭合 | 补写 | §3 补 S1b 现状行;T1 render 步补「S1b 墨表删蓄力墨行、断言名与注记改三墨」;§13 唯一面改「S1b 同批改三墨,不另立第二锚」 |
| 1 | 同上 | 退役 v2 样张工具 `render_sample_sheet.py:638,663` 同含 `"charge"` 键与 `intent="charge"`——T0 四词检索不命中它,但实现期按白名单搜 "charge" 会撞见并误触 L3① | 补写 | §3 补退役旧版工具现状行(已被 v3 取代、本批不动、命中不判 L3),T0 判据同口径 |
| 1 | 同上 | §13「新增断言 7 条」计数不符——theme_projection 6(V2 两+V3 一+V4 三)+standee_fx_sweep 2=8 | 自判 | 改 8 条(theme_projection 6+standee_fx_sweep 2 口径) |
+11
View File
@@ -151,6 +151,17 @@
**状态**:文档设计已闭合+已写卡
#### 意图徽标类型级收敛批(2026-11-01 登记,来源=会话提及)
**实况**:敌方意图徽标收敛回类型级三态——拆除攻击系内部「重击档」呈现(金墨 GOLD_INK 覆盖+徽标「缓推+定格」动画分支),重击与其他伤害技徽标相同,强度感知归敌人本体准备动画(2026-11-01 用户裁:收敛不拆分、验证面与表现面同卡)。关联文档:
- [敌人系统](design/gdd/systems/战斗循环/敌人系统.md) v2.1(「目标顺位与意图线索」攻击系内部不分档预告)
- [角色设计](design/art/character-design.md) v1.0(§5.6 意图准备动画三档)
- [需求卡片-意图徽标类型级收敛批](reports/需求卡片-意图徽标类型级收敛批-2026-11-09.md)(已写卡凭据,复核记录在卡内)
**改动面**:文档+游戏代码+工具代码
**状态**:文档设计已闭合+已写卡
#### 敌方技能图鉴 / 学习呈现(2026-10-18 登记,来源=会话提及)
**实况**:池与权重不公开(D4/D5)口径下的进阶信息面——玩家侧技能知识系统(见过 → 认得 → 记谱);首发三池学习成本低,排 Beta、Alpha 阶段不排期。承接=[生涯](design/gdd/systems/跨局循环/生涯.md) 期三敌人图鉴,该期已列入 [08-Alpha版本标准](design/gdd/08-Alpha版本标准.md)「六 · Alpha 不含」。营地侧入口已落=场景图布告板命中(codex 占位壳挂起态——占位锁文锚定、零激活禁行);本条呈现设计义务不变。