From 8dfb4514bbb28698930a8820b93497d0bdf499b3 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Mon, 9 Nov 2026 23:51:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=99=E5=8D=A1(=E6=84=8F=E5=9B=BE=E5=BE=BD?= =?UTF-8?q?=E6=A0=87=E7=B1=BB=E5=9E=8B=E7=BA=A7=E6=94=B6=E6=95=9B=E6=89=B9?= =?UTF-8?q?=C2=B7=E6=96=87=E6=A1=A3=E9=97=AD=E5=90=88+=E5=8D=A1=E6=88=90?= =?UTF-8?q?=E7=AB=8B):=20=E6=95=8C=E6=96=B9=E6=84=8F=E5=9B=BE=E5=BE=BD?= =?UTF-8?q?=E6=A0=87=E6=94=B6=E6=95=9B=E5=9B=9E=E7=B1=BB=E5=9E=8B=E7=BA=A7?= =?UTF-8?q?=E4=B8=89=E6=80=81=E8=90=BD=E6=96=87=E4=B8=8E=E5=8D=A1=E7=89=87?= =?UTF-8?q?=E9=87=8D=E7=AB=8B=E2=80=94=E2=80=94=E6=95=8C=E4=BA=BA=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F.md=20v2.0=E2=86=92v2.1(=E3=80=8C=E7=9B=AE=E6=A0=87?= =?UTF-8?q?=E9=A1=BA=E4=BD=8D=E4=B8=8E=E6=84=8F=E5=9B=BE=E7=BA=BF=E7=B4=A2?= =?UTF-8?q?=E3=80=8D=E8=A1=A5=E8=A7=84=E5=88=99=E5=8F=A5:=20=E6=94=BB?= =?UTF-8?q?=E5=87=BB=E7=B3=BB=E5=86=85=E9=83=A8=E4=B8=8D=E5=88=86=E6=A1=A3?= =?UTF-8?q?=E9=A2=84=E5=91=8A,=E9=87=8D=E5=87=BB=E4=B8=8E=E6=99=AE?= =?UTF-8?q?=E9=80=9A=E4=BC=A4=E5=AE=B3=E6=8A=80=E9=A2=84=E5=91=8A=E5=91=88?= =?UTF-8?q?=E7=8E=B0=E5=AE=8C=E5=85=A8=E7=9B=B8=E5=90=8C,=E5=BC=BA?= =?UTF-8?q?=E5=BA=A6=E6=84=9F=E7=9F=A5=E5=BD=92=E6=9C=AC=E4=BD=93=E5=87=86?= =?UTF-8?q?=E5=A4=87=E5=8A=A8=E7=94=BB)+character-design=20v1.0=20?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E8=A1=8C/=C2=A75.2=20=E5=BC=BA=E5=BA=A6?= =?UTF-8?q?=E5=85=88=E9=AA=8C=E6=94=B9=E7=94=B1=E6=84=8F=E5=9B=BE=E5=87=86?= =?UTF-8?q?=E5=A4=87=E5=8A=A8=E7=94=BB=E6=89=BF=E6=8B=85/=C2=A75.6=20?= =?UTF-8?q?=E5=8D=A0=E4=BD=8D=E7=AC=A6=E5=8F=B7=E4=B8=89=E6=97=8F=E5=8F=A3?= =?UTF-8?q?=E5=BE=84+=E8=B5=84=E4=BA=A7=E6=B8=85=E5=8D=95=20v1.0=20?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E8=A1=8C=E4=B8=8E=E6=84=8F=E5=9B=BE=E5=BE=BD?= =?UTF-8?q?=E6=A0=87=E7=8E=B0=E7=8A=B6=E8=A1=8C=E6=8D=A2=E4=BB=A3;=20?= =?UTF-8?q?=E9=9C=80=E6=B1=82=E5=8D=A1=E7=89=87=E9=87=8D=E7=AB=8B(2026-11-?= =?UTF-8?q?09,=20=E5=8E=9F2026-11-01=E5=8D=A1=E4=BD=9C=E5=BA=9F=E4=B8=8D?= =?UTF-8?q?=E8=90=BD=E7=9B=98=E2=80=94=E2=80=94master=E5=B7=B2=E5=89=8D?= =?UTF-8?q?=E8=A1=8C=E5=8F=B7=E6=BC=82=E7=A7=BB+=E8=A1=8C=E5=8F=B7?= =?UTF-8?q?=E9=94=9A=E5=BA=9F=E6=AD=A2):=20=E6=8B=86CHARGE=5FSKILL=5FIDS/?= =?UTF-8?q?=5Fintent=5Fcharge=E4=B8=8E=E7=BC=93=E6=8E=A8=E5=8A=A8=E7=94=BB?= =?UTF-8?q?=E5=88=86=E6=94=AF=E3=80=81GOLD=5FINK=E8=BD=AC=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E5=B2=97=E6=B3=A8=E8=AE=B0=E3=80=81=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E9=9D=A2=E6=8D=A2=E4=BB=A3(=E6=97=A7=E3=80=94wd2=E3=80=95?= =?UTF-8?q?=E4=B8=A4=E5=A4=84=E9=80=80=E5=BD=B9+=E6=96=B0V1-V8=E6=96=AD?= =?UTF-8?q?=E8=A8=80)=E3=80=81=E6=A0=B7=E5=BC=A0=E9=95=9C=E5=83=8F?= =?UTF-8?q?=E4=B8=8ES1b=E8=87=AA=E6=A3=80=E6=AE=B5=E5=90=8C=E6=89=B9?= =?UTF-8?q?=E4=B8=89=E5=A2=A8=E3=80=81=E4=BC=B0=E6=97=B60.75=E6=97=A5?= =?UTF-8?q?=E3=80=81=E9=AA=8C=E6=94=B6=E6=A1=A3=E4=B8=AD=E3=80=81=E9=9B=B6?= =?UTF-8?q?=E5=BE=85=E8=A3=81=E7=82=B9;=20=E5=AF=B9=E6=8A=97=E5=A4=8D?= =?UTF-8?q?=E6=A0=B81=E8=BD=AE4=E5=8F=91=E7=8E=B0(3=E8=A1=A5=E5=86=991?= =?UTF-8?q?=E8=87=AA=E5=88=A4)=E5=85=A8=E8=90=BD=E5=8D=A1=E5=86=85?= =?UTF-8?q?=E5=A4=8D=E6=A0=B8=E8=AE=B0=E5=BD=95=E8=8A=82;=20=E5=BE=85?= =?UTF-8?q?=E5=8A=9E=E6=B8=85=E5=8D=95=E6=9D=A1=E7=9B=AE=E6=8E=A8=E8=BF=9B?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E8=AE=BE=E8=AE=A1=E5=B7=B2=E9=97=AD=E5=90=88?= =?UTF-8?q?+=E5=B7=B2=E5=86=99=E5=8D=A1;=20README=E8=83=BD=E5=8A=9B?= =?UTF-8?q?=E8=A1=A8=E5=A2=9E=E8=A1=8C=E3=80=8C=E6=95=8C=E6=96=B9=E6=84=8F?= =?UTF-8?q?=E5=9B=BE=E5=BE=BD=E6=A0=87=E7=B1=BB=E5=9E=8B=E7=BA=A7=E9=A2=84?= =?UTF-8?q?=E5=91=8A=E3=80=8D+=E8=A6=86=E7=9B=96=E5=9F=9F=E8=A1=A8?= =?UTF-8?q?=E6=88=98=E6=96=97=E8=A1=A8=E7=8E=B0=E8=A1=8C=E8=A1=A5=E5=90=8D?= =?UTF-8?q?.=20=E5=8C=BA=E5=86=85=E5=87=AD=E6=8D=AE:=20=E6=B5=81=E6=B0=B4?= =?UTF-8?q?=E7=BA=BF=E9=97=B8=20PASS(35=E6=9D=A1=E7=9B=AE/57=E8=A1=8C/2?= =?UTF-8?q?=E9=93=BE/7=E5=8D=A1=E5=85=A8=E8=BF=87)+=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E5=9F=9F=E9=97=B8=E3=80=90=E9=AA=8C=E6=94=B6=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E3=80=91=E5=85=AB=E9=97=B8=E5=85=A8=E7=BB=BF(gdd=5Flint/?= =?UTF-8?q?=E5=8F=98=E6=9B=B4=E8=AE=B0=E5=BD=95=E8=8A=82/doc=5Flink/doc=5F?= =?UTF-8?q?term/=E6=B5=81=E6=B0=B4=E7=BA=BF=E9=97=B8/=E5=BC=95=E7=94=A8?= =?UTF-8?q?=E5=8F=AF=E6=A0=B8/=E8=83=BD=E5=8A=9B=E5=AE=A1=E8=AE=A1/?= =?UTF-8?q?=E7=86=B5=E5=A2=9E=E9=97=B8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- design/art/art-assets-checklist.md | 3 +- design/art/character-design.md | 5 +- design/gdd/systems/战斗循环/敌人系统.md | 4 +- game/tests/README.md | 3 +- ...œ€求卡片-意图徽标类型级收敛批-2026-11-09.md | 196 ++++++++++++++++++ 待办清单.md | 11 + 6 files changed, 216 insertions(+), 6 deletions(-) create mode 100644 reports/需求卡片-意图徽标类型级收敛批-2026-11-09.md diff --git a/design/art/art-assets-checklist.md b/design/art/art-assets-checklist.md index a6a724f1..57b5cafe 100644 --- a/design/art/art-assets-checklist.md +++ b/design/art/art-assets-checklist.md @@ -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 意图姿态行。 - **来源**:✦/⚙ 自产——三档表演层挂在我们自己的精灵图上,动画本体不可复用;通用蓄力/施法光效素材(♻)仅可作参考与粒子底料,过复用闸。 -- **现状**:占位符号已落地(普通攻击「—」/ ⚔ / ✦ / 重击类「蓄力」,技能名退出徽标);终稿动画待样张后开工。 +- **现状**:占位符号已落地(普通攻击「—」/ 伤害技 ⚔ / 增益技 ✦ / 妨害技 ☠——攻击系内部分档不作预告,重击与普通伤害技同呈现,技能名退出徽标);终稿动画待样张后开工。 --- diff --git a/design/art/character-design.md b/design/art/character-design.md index dcae2584..0c780013 100644 --- a/design/art/character-design.md +++ b/design/art/character-design.md @@ -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);占位符号(—/伤害技 ⚔/增益技 ✦/妨害技 ☠——攻击系内部分档不作预告)现行使用,动画到位后原位替换。 --- diff --git a/design/gdd/systems/战斗循环/敌人系统.md b/design/gdd/systems/战斗循环/敌人系统.md index 15bb0b54..55dd744c 100644 --- a/design/gdd/systems/战斗循环/敌人系统.md +++ b/design/gdd/systems/战斗循环/敌人系统.md @@ -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 全站桩拍板),本系统只锁上面这张三档规格。 diff --git a/game/tests/README.md b/game/tests/README.md index 12811f42..07a0d01e 100644 --- a/game/tests/README.md +++ b/game/tests/README.md @@ -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 | 装板与开局免费展开(封锁格无资源、计入清图);挖/封印合法性与可辨拒绝(拒绝零副作用、挖封印格被拒);封印受理即揭示(身份可查、受理零事件);清图口径换代(挖开∪封印、封印可完成清图) | 已覆盖 | — | diff --git a/reports/需求卡片-意图徽标类型级收敛批-2026-11-09.md b/reports/需求卡片-意图徽标类型级收敛批-2026-11-09.md new file mode 100644 index 00000000..86e183d2 --- /dev/null +++ b/reports/需求卡片-意图徽标类型级收敛批-2026-11-09.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-反哺点-<日期>.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-验收审计-<日期>.md`;未过不得合并。 +- [ ] 合并前写齐 `reports/iter-实现报告-<日期>.md`(卡状态+实机目检总清单〔徽标弹入单形态观感一项,登记不阻塞〕+实现决定记录)与 `reports/iter-反哺点-<日期>.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-验收审计-<日期>.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 口径) | diff --git a/待办清单.md b/待办清单.md index cc9d4104..e677cae9 100644 --- a/待办清单.md +++ b/待办清单.md @@ -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 占位壳挂起态——占位锁文锚定、零激活禁行);本条呈现设计义务不变。