diff --git a/design/art/art-assets-checklist.md b/design/art/art-assets-checklist.md index 1924aad5..fc17a9de 100644 --- a/design/art/art-assets-checklist.md +++ b/design/art/art-assets-checklist.md @@ -117,7 +117,7 @@ ### 3.3 雷 / 封印印记 / 数字格面像素化 ⚙ -- **封印印记已换代**:形 = 环+十字法阵、纯黑 32×32,形与定值见 art-bible §3.2 与 §8.2「封印印记源档」;本节余下面 = 雷格纹样与数字格面。 +- **封印印记改为参数化绘制**:形 = 环+十字法阵,由着色器按格边实时画(环径 82% 格宽+环外一圈压暗光),形与定值见 art-bible §3.2 与 §8.2「封印印记参数表」;贴图件仅战末金蜡封徽记继续使用。本节余下面 = 雷格纹样与数字格面。 - **要什么**:格子样张通过后按冻结参数出全套砖面资产(含图类型换色板组)。 - **来源**:⚙ 脚本管线自产——未开/已开/危险格/变异纹带是扫雷专属语义(角嵌纹样已不存在),素材站没有对的;砖面**纹理底噪**可 ♻ 用 CC0 无缝石/土纹理作脚本管线的纹理输入,量化到色板(混合路线)。 @@ -164,7 +164,7 @@ | 站桩石板地台件 `scene_stage_plaza.png` | 近景地台独立件(art-bible §6.1/§8.2) | 源 48×12、九宫格横向拉伸、顶缘受光线 2px 不随拉伸变形;跨三关恒定,不吃 `wall_ambient` tint;连续地面层在其下方,先保留 | ⚙/✦ 自产 | | 特殊技动画终稿 | 并入 §2.3 三档意图动画,不另起体系 | 攻/防两型旧口径由三档替代 | ✦/⚙ 自产(同 §2.3) | | 连锁坍塌显形演出 | 连锁展开触发时的连锁演出 | 与音频方向同批配对登记;「坍塌显形」=连锁展开的玩家可见名 | ♻ 粒子/碎块改色 + ⚙ 坍塌结构自产 | -| 封印特效 | 该动作的呈现名 = **封印**(art-bible §3.2):**施印瞬间特效 + 印记常显形态**两件 | 印记常显形态**已落位**——`seal_mark.png`(32×32 纯黑,环+十字法阵;形与定值见 art-bible §3.2/§8.2);施印瞬间特效**未实装**,仍缺(走运动+色相,明度分层不动) | ✦/⚙ 自产(精灵+粒子,烟尘光点可 ♻ 改色) | +| 封印特效 | 该动作的呈现名 = **封印**(art-bible §3.2):**施印瞬间特效 + 印记常显形态**两件 | 印记常显形态=**参数化绘制件**(着色器画环+十字+环外压暗光,形与参数见 art-bible §3.2/§8.2);施印瞬间特效**未实装**,仍缺(走运动+色相,明度分层不动) | ✦/⚙ 自产(精灵+粒子,烟尘光点可 ♻ 改色) | | 弹道/退场等动画密度 | 战斗表现输入清单,方案未定 | 样张锁动画方案后启动 | ♻ 通用弹道/光点/消散粒子改色为主 | **现状**:三关舞台背景层与连续地面层已交付(2026-10-31 入包 `game/assets/art/scene/`:dungeon v10c / underdark v10c / deep_underdark v10c,均 1280×252;共用地面 v12b,1280×100,按作者裁保留原亮度 L≈0.132);小石台件已在役。 diff --git a/design/art/art-bible.md b/design/art/art-bible.md index 0e1ba0e4..80c28c7e 100644 --- a/design/art/art-bible.md +++ b/design/art/art-bible.md @@ -1,6 +1,6 @@ # 美术圣经(Art Bible)— Dungeon Sweeper -> 项目:Dungeon Sweeper(扫雷 × 自动战斗 闯关 Roguelike)· 状态:**第 1–9 节定稿**;现行为 v3.40,历次修订明细见 git 提交史 +> 项目:Dungeon Sweeper(扫雷 × 自动战斗 闯关 Roguelike)· 状态:**第 1–9 节定稿**;现行为 v3.41,历次修订明细见 git 提交史 > > **Art Director Sign-Off(AD-ART-BIBLE)**:历次批均未签核——此为 Lean/Solo 模式(非 PHASE-GATE)下的现行治理状态;full 门禁签核时机待用户表态。 > 风格基调:地牢题材但**非暗黑风**——轻快明亮的幻想冒险风,全年龄;像素风;角色 2~3 头身。 @@ -164,7 +164,7 @@ - **装饰变体(未开格氛围层)**:覆尘完整砖之上叠加裂纹/碎石斑/物件级点缀等装饰。物件级装饰(小石块/陶片/骨殖等)须走**专属装饰形状家族**(与信息元素形状语言隔离、灰度下不与任何逻辑元素同形),数量配额按图类型定(候选 3–5 种,样张已冻结,§1.4),一律残缺、内凹、低对比而自然后退(§3.4);零信息纪律(分布随机、与雷/安/类型零相关、灰度下禁止制造新分类特征、分布每板一次跨轮不复掷)以原则三为准,此处不赘。验收:目检〈物件级装饰不与任何逻辑元素同形;装饰残缺低对比后退〉 ←原三 - **结果整格表达(已开格)**:已开格按当格结果整格表达(结果清单见原则三);画法——产资源格的家族物件纹样用 §3.1 道具点剪影语言(直线几何体)角嵌于砖缘,砖心与数字字形占位区留白(已开格仍承载数字);危险格巢穴纹较已开格更凶一档,形状+颜色双通道。验收:目检〈产资源格嵌家族纹样且砖心留白;巢穴纹更凶一档〉 ←原三;P3 - **未开格预读通道(微光单通道)**:类型预读 = 类型微光单通道(色相+明度双码,色带 §4.2);色弱类型主通道 = 微光明度梯度(组粒度——组间互辨;§2 微光明度例外);格内零角嵌/箭头/加号类附加形(微光格只留微光)。验收:目检〈微光格内零角嵌/箭头/加号类附加形〉 ←原一;原三 -- **封印印记**:封印动作的叙事呈现 = **封印**(玩家可见专名,术语定义见 [术语表](../gdd/术语表.md)「封印」条;动作面见《排雷玩法》)——封印动作落在格上的印记称封印印记。**形 = 法阵**:一圈外环+环内一个十字,十字四端顶到环内沿、与环连成一体——两层构成取法阵通用骨架(外环=圈定范围,环内图形=力量图形,非指特定作品):环=封印圈定,十字=钉住此格。**画法纪律**:纯黑实心剪影,禁细线描边、禁符文字形——32px 下细线会断成碎点,阵纹一律做成实心块面。**尺寸**见 §8.2「封印印记源档」条(本处不复述数值)。**色** = 封印黑 `#000000`(§4.1),无发光、无描边、无渐变。**占位**:印记居格心,最外沿不越格缘空带(见 §8.2);封印印记只出现在未开格,不与数字同格。格内栈位见 §1.2。封印特效(施印瞬间 + 印记常显形态)资产归清单 §4 演出类——常显形态即本件,施印瞬间特效未实装。封印印记纹理已落位(现行件 = `seal_mark.png`)。验收:目检〈印记为环+十字、四端与环相接;无发光与描边;最外沿不越格缘空带〉 ←原一;P2 +- **封印印记**:封印动作的叙事呈现 = **封印**(玩家可见专名,术语定义见 [术语表](../gdd/术语表.md)「封印」条;动作面见《排雷玩法》)——封印动作落在格上的印记称封印印记。**形 = 法阵**:一圈外环+环内一个十字,十字四端顶到环内沿、与环连成一体——两层构成取法阵通用骨架(外环=圈定范围,环内图形=力量图形,非指特定作品):环=封印圈定,十字=钉住此格。**画法 = 参数化绘制**(着色器按格边实时画环与十字,不出贴图):格边 26–46px 连续可变,任何贴图源都得非整数缩放(32px 源在 28 格缩到 0.875、在 46 格放到 1.44),像素必宽窄不均;参数化按比例画,任意格边清晰。**环外光圈**:印记外面一圈**压暗光**(纯黑只加透明度)——自环外缘起、向外衰减到格边为止、**不外溢邻格**,作用 =「此格被罩住」;禁中心亮、禁色相、禁呼吸。**尺寸定值**见 §8.2「封印印记参数表」(本处不复述数值)。**色** = 封印黑 `#000000`(§4.1),光圈只改 alpha、不新增色。**占位**:印记居格心,环外留 9% 格宽给光圈(见 §8.2);封印印记只出现在未开格,不与数字同格。格内栈位见 §1.2;层序纪律——印记层低于小人,且迷雾态(区外全黑/记忆态)隐藏(§6.5「封印随格隐没」)。封印特效两件:常显形态即本件,施印瞬间未实装。战末金蜡封徽记仍取贴图 `seal_mark.png`(与棋盘侧参数化绘制并存,两处互不依赖)。验收:目检〈环径占格宽 82%±1px;光圈只在环外且不出格;纯黑无色相〉 ←原一;P2 - **可挖域接触带微光(交互反馈层)**:挖掘期,英雄格周界与可挖域(概念见《排雷玩法》动作合法性节;呈现义务见《HUD框架》可挖域指示)的接触面画呼吸微光——正交邻墙 = 该侧整条边,斜向邻墙 = 共享角点 + 向两侧各延伸半条边;光只画英雄格(空间)一侧、不进墙格(与装饰变体零冲突,数字砖心不涉);微光 = 空间的灯光边界(画法规则)。色相 = 蓝族浅一档(§4.2 蓝条;与主角蓝框的分层由样张测试定,§1.4);呼吸 = §2.1 挖掘期唯一在动元素,减动效停格。角点为斜墙与正交墙共享、不逐格归因,逐格指认 = 悬停金框(呈现交互归《HUD框架》悬停指示域)。验收:目检〈微光只画英雄格一侧接触面:正交邻墙整条边、斜向邻墙角点 + 半边〉 ←§2.1;§4.2;P1 - **墙体**:圆角砌块堆叠,禁尖刺装饰——尖刺专属危险语义,装饰禁止伪装逻辑差异。验收:目检〈墙体无尖刺装饰〉 ←原三 - **高墙瓦片体系|术语与定义**:未挖格 = **一整块 32×32 自含凸起岩体**;素材语义名——未开格素材 = **墙瓦片**,已开格素材 = **地面瓦片**。瓦片以自含岩体为单位,Tiny Dungeon 拼块套不进自含岩体定义,不作瓦片参考。验收:目检〈未开格为整块凸起岩体,无拼块接缝感〉 ←原三 @@ -513,7 +513,7 @@ ### 8.2 像素基准与画布 - **缩放纪律(硬规则,按资产两类分级;不做个案豁免)**: - - **甲类·文本与语义件**(数字、图标、封印印记、格面纹样):维持严格整数倍缩放硬规则——可读性与语义精确性优先,**禁非整数缩放不变**。砖面 tile 不属本类,随格边长整格铺满(见 §8.1)。验收:机检〈甲类件显示尺寸为源整数倍〉 + - **甲类·文本与语义件**(数字、图标、格面纹样):维持严格整数倍缩放硬规则——可读性与语义精确性优先,**禁非整数缩放不变**。封印印记不属本类(参数化绘制件,见本条末「封印印记参数表」)。砖面 tile 亦不属本类,随格边长整格铺满(见 §8.1)。验收:机检〈甲类件显示尺寸为源整数倍〉 - **全局纹理过滤与平滑渐变件例外**:`project.godot` `default_texture_filter=0`(Nearest)全局——像素风 UI 皮(九宫格/主题石纹样式盒/滑轨抓子/勾选/箭头图标)翻 Nearest=意图面;**显式 LINEAR 豁免清单(有意例外)= vignette / gradient_base / beams 三件程序化平滑渐变件**——保平滑连续 alpha 的程序化氛围件(§7.6 三已裁);新增平滑件须同批入册本清单,禁静默挂 LINEAR。翻转面枚举与冒烟断言(6 条)在闸。验收:机检〈过滤面枚举与 LINEAR 清单逐项一致〉 - **显示档登记例外(64 源 0.5×,待素材批消除)**:柜台四枚 `icon_forge/workshop/atlas/keystone`(64×64 源)显示档统一 **32px = 0.5×**;状态九枚(32×32 源)mini(站桩)档 **16px = 0.5×**。两处均系「显示尺寸侧唯一可调、素材一字节禁改」红线下的人工检整数半倍档,登记为**待消除例外**——素材设计出 32px 源后回归 1×。常规档显示一律 1×(状态九枚 32px、手绘十枚 20px/40px 双档、BCard 图标槽 40px=2×、**护甲类型图标三枚 24px=1×**——源 24×24,归甲类整数倍纪律)。验收:机检〈显示档与登记表一致〉 - **乙类·角色与单位精灵**(有机形体、非文字):允许运行时非整数倍缩放(NEAREST 过滤不变),容忍轻度像素宽窄不均;判据 = 实机目检,可感不适即回整数档。乙类免逐案豁免。验收:目检〈立绘无可感拉花〉 @@ -522,7 +522,7 @@ - **画布基准(暂定值)**: - **主角人设原图 = 48×72**(1× 基准,暂定;与站姿降采样可读性验证一致); - **棋盘小人 = 32×32 二头身派生版(暂定,允许更小)**——独立资产,自人设定稿压缩派生(character-design §5.4),不吞数字位、占位 ≤ 0.75× 格边长;板越小占比摩擦越大(13×13 / 14×14 更小,算例见 [battle.md](../gdd/ux/battle.md)「棋盘格尺寸公式」),32px 源档的去留已定终值 = **保留 32×32 源档**(沿「独立小源档」路线;N=12 板下显示占位上限 27px = 0.84 倍,正落本节乙类非整数缩放许可范围,**连豁免都不用再办**),待决标注注销; - - **封印印记源档 = 32×32、显示 1×**(甲类整数倍纪律):形 = 外环+十字(形与画法见 §3.2)。定值——**外环外径 23px(半径 11.6px)、环壁厚 2.6px;十字两臂各宽 3.2px、四端止于环内沿半径 9px(与环相接);圆心=格心;最外沿距格边 ≥4px**(该 4px 空带归变异纹带,§3.2 变异格形状通道)。纯黑实心剪影,单图像素域色数 = 1(底色透明)。改形须本节与 §3.2 同批修订。验收:目检〈件为 32×32 单色;外沿距格边 ≥4px;十字四端与环相接〉 + - **封印印记参数表(绘制件,非贴图件)**:形与画法见 §3.2。定值——**环外径 = 0.82 × 格边**(26 格 21.3px/46 格 37.7px);**环壁厚 = 0.11 × 环径**(≈2.3/4.1px);**十字臂宽 = 0.156 × 环径**(≈3.3/5.9px);**环外光圈宽 = 0.09 × 格边**(≈2.3/4.1px),向外衰减指数 1.6、峰值 alpha 0.50;圆心 = 格心。色 = 封印黑单色(光圈只改 alpha)。本件随格边连续缩放,**不适用甲类整数倍纪律**(非贴图件,见上条清单)。参数单点 = `ui_kit.gd` 五枚常量 `SEAL_RING_FRAC`/`SEAL_WALL_FRAC`/`SEAL_ARM_FRAC`/`SEAL_HALO_ALPHA`/`SEAL_HALO_GAMMA`,本节为条款侧对照值。改值须本节与 §3.2 同批修订。验收:机检〈ui_kit 五常量与本表逐值一致〉+目检〈渲染帧量环径落 82%±1px、光圈不越格边〉 - **站桩立绘显示档 = 三档绝对高**:小型 96 / 中型 144 / 大型 188。逐件归档——小:地精、巨蜘蛛、灰矮人;中:主角、钩爪恐魔、熊地精;大:食人魔酋长、蛛化卓尔、灰矮人石君王。**源 = 原稿像素网格**(八敌 `pixel-1`、主角手修 2× 三态稿),紧裁后原样入包,**禁再降采样**;显示倍率 = 档高 ÷ 源高,NEAREST,宽度随源图比例(高定宽随不变,见上条)。定档依据 = 生物体型(体量=物种体型,非强度线性映射,见 character-design §5.2),**顺序由显示档承载、不由源高承载**。已接受项:中型三件与地精/巨蜘蛛的源高(92/94/123/90/81)低于档高,属放大显示;食人魔酋长显示宽 157 超桩盒 150。验收:机检〈standee_asset_check 逐件显示档高与归档一致、纵横倍率恒等〉+目检〈同屏体量顺序成立〉 - **站桩立绘排版**:① 区高 B 区 ≈1/3 屏 / C 区 ≈2/3 屏,**扫雷盘原尺寸不缩、格子不变**(区高事实源 = 布局表 `battle_layout.tres`;压缩由 C 区面板空档吸收);② 站桩内部重排——立绘双脚落石台上缘(弃盒内居中)、**血条+状态/名字行落底排**(立绘→血条→状态 顺序,全场血条对齐一线;血条嵌石板位、台缘线留作地面线、落影保留接地感),状态空时该行退化为名字行;③ 大体档(显示 >150px 级:食人魔酋长/蛛化卓尔/灰矮人石君王)**允许向上溢出盒顶 N px**(N 由实装批按实测尺寸算定,**与背景/光柱无关**——现行溢出区恰为临时光柱氛围层〔§6.1 方向稿四柱,x 基准 110/900/1055/1210@1280,`battle_stage_view.gd:47-56`〕,正式舞台背景插画(三关变体)到位后该层直接退役(背景不画光柱),**溢出判定不随之变更**;横向禁止压到顶部中央轮次·阶段指示,溢出上限由实装批用真图复算 x 区间定),血条仍落底(落底排的第二个收益=头部探顶不带出血条);意图徽标悬浮头顶上方(探顶档压胸);④ 「血条悬浮头顶+立绘盒内居中」排式已弃——盒顶固定 y 与盒内居中在高盒下拉开血条-立绘空洞。验收:目检〈血条一线对齐、大体档溢出不压轮次指示〉 - **站桩石板地台件**:`scene_stage_plaza.png`,源 48×12、九宫格横向拉伸、顶缘受光线 2px 不随拉伸变形;跨三关恒定、不吃 §4.3 `wall_ambient` tint(独立理由见 §6.1 近景地台独立件条)。验收:机检〈地台件按九宫格拉伸后顶缘受光线宽度恒为 2px〉 diff --git a/design/art/art-status-checklist.md b/design/art/art-status-checklist.md index 3f8ed430..8c203361 100644 --- a/design/art/art-status-checklist.md +++ b/design/art/art-status-checklist.md @@ -27,7 +27,7 @@ |---|---|---| | 格面资源徽章 19 枚 | ◐ | [art-bible](art-bible.md) §4.6 | | 关卡节点图图标组 | ◐ | [art-assets-checklist](art-assets-checklist.md) §3.2(正式 UI 设计未成文) | -| 雷/封印印记/数字砖面全套 | ◐ 封印印记已换代(环+十字法阵);雷与数字砖面仍待格子样张前置 | [art-bible](art-bible.md) §1.4/§3.2 | +| 雷/封印印记/数字砖面全套 | ◐ 封印印记已换代(环+十字法阵,参数化绘制);雷与数字砖面仍待格子样张前置 | [art-bible](art-bible.md) §1.4/§3.2 | | 增益状态效果图标 9 枚 | ✅ 已接入(2026-09-24) | [art-bible](art-bible.md) §4.6.1(候选原稿:状态图标批 2026-09-23 远程出图,归 candidates 档——路径描述性引用,归档纪律见 art-bible §8.3) | | 营地场景图 | ◐ | [art-bible](art-bible.md) §6.2 | | 字体(全局 UI 像素字,Fusion Pixel 单套单字重) | ✅ 已定稿在役(2026-09-27 接入;2026-10-24 用户裁现状即终稿——不另接拉丁专件、不上第二字重) | [art-bible](art-bible.md) §7.4 | @@ -38,7 +38,7 @@ |---|---|---| | 受击反馈 / 死亡表现 / 顺位标记 | ◐ 程序化演出在役(受击闪白+打击火花、灰化+碎裂退场〔禁瞬消〕、顺位徽标 ①②③ 程序绘制;帧级素材未产,§8.4 帧数规格候选) | [战斗表现](../gdd/systems/战斗循环/战斗表现.md) | | 连锁坍塌显形演出 | ⬜ | [art-assets-checklist](art-assets-checklist.md) §4 | -| 封印特效(动作=封印,两件:施印特效+印记常显) | ◐ 印记常显已落位(`seal_mark.png` 环+十字);施印瞬间特效缺 | [art-bible](art-bible.md) §3.2 + [art-assets-checklist](art-assets-checklist.md) §4 | +| 封印特效(动作=封印,两件:施印特效+印记常显) | ◐ 印记常显已落位(着色器绘制);施印瞬间特效缺 | [art-bible](art-bible.md) §3.2 + [art-assets-checklist](art-assets-checklist.md) §4 | | 弹道 / 退场等动画密度 | ◐ 程序化弹道在役(play_projectile 0.16s+0.19s 到达拍调度;密度终稿归战斗表现) | [art-assets-checklist](art-assets-checklist.md) §4(战斗表现输入清单) | | B 区舞台背景三关变体+共用连续地面层(场景件) | ✅ 已交付(2026-10-31 入包 `game/assets/art/scene/`:三张背景 1280×252、共用地面 1280×100;地面按作者裁保留候选 v12b 原亮度 L≈0.132) | [art-bible](art-bible.md) §6.1 · [battle-stage-prompts](battle-stage-prompts.md) §2 | diff --git a/game/tests/README.md b/game/tests/README.md index 88a00411..50156660 100644 --- a/game/tests/README.md +++ b/game/tests/README.md @@ -119,6 +119,7 @@ tests/ | 挖/封印合法性与可辨拒绝(拒绝零副作用) | 排雷玩法 | `MinesweeperRules.settle_batch()` | `minesweeper_rules_test.gd:_test_dig_face_rules`;`minesweeper_rules_test.gd:_test_seal_place`;`minesweeper_rules_test.gd:_test_reject_out_of_catalog` | | 棋盘揭示预览只读口(零状态写入/与实挖揭示集同口径) | 排雷玩法 | `MinesweeperRules.preview_reveal()` | `minesweeper_rules_test.gd:_test_preview_reveal_readonly`〔架构整改 V14〕 | | 封印不可逆与挖开封印格放行(兑付改判四情况) | 排雷玩法 | `MinesweeperRules.settle_batch()` | `seal_polarity_test.gd:_smoke_seal_irreversible_quadrants`;`minesweeper_rules_test.gd:_test_seal_place` | +| 棋盘封印印记呈现 | 排雷玩法 | `BoardCellUnit.edge` → `SealMarkLayer.setup()` | `seal_mark_params_test.gd:_test_param_values`;`seal_mark_params_test.gd:_test_fog_gate` | | AP 扣费、末点耗尽即收轮与战斗收束清零 | 行动经济 | `MinesweeperRules.settle_batch()`(→`ActionEconomy.try_spend()`/`ActionEconomy.notify_combat_end()`) | `seal_polarity_test.gd:_smoke_seal_ap_exhausted`;`round_flow_skill_pool_test.gd:_smoke_full_battle`;`round_flow_skill_pool_test.gd:_smoke_active_refresh` | | 停手转存储备与轮内刷新(上限/AP 不重置/刷新图零清图奖励) | 行动经济 | `BattleOrchestrator.player_request_refresh()`/`MinesweeperRules.settle_batch()` | `round_flow_skill_pool_test.gd:_smoke_active_refresh`;`seal_polarity_test.gd:_smoke_refresh_provenance_guard`;`refresh_feats_test.gd:test_no_feats_baseline` | | 换图系刷新链路与效果词表接线 | 行动经济×战斗结算×奇物 | `MinesweeperRules.settle_batch()`/`BattleOrchestrator.player_request_refresh()` | `effect_words_t1_test.gd:_init`;`forge_table_test.gd:_test_effect_kinds_closed`;`refresh_feats_test.gd:test_board_refresh_fact_only_on_success` | diff --git a/reports/需求卡片-封印印记法阵化批-2026-11-04.md b/reports/需求卡片-封印印记法阵化批-2026-11-04.md new file mode 100644 index 00000000..b9001962 --- /dev/null +++ b/reports/需求卡片-封印印记法阵化批-2026-11-04.md @@ -0,0 +1,194 @@ +# 需求卡片:封印印记法阵化批(2026-11-04) + +来源:待办清单「棋盘封印印记图形换代——现件仍是扫雷旗形,改法阵或锁链待设计」条目(**唯一事实源**:`design/art/art-bible.md` v3.41 §3.2「封印印记」条+§8.2「封印印记参数表」;设计闭合凭据=art-bible v3.41 落文+2026-11-04 用户点头 82% 档样张)。验收档:**中**(纯呈现层——零持久状态、零 RNG、零数值;做错的后果=棋盘观感错,玩家可见但不损存档)。状态:已写卡(v1.0,2026-11-04)。改动面:游戏代码(含随逻辑改的测试代码)。 + +## 1. 目标与完成定义 + +**这批做什么**:把棋盘侧封印印记从「32×32 贴图铺满整格」改为「着色器按格边参数化绘制」——环+十字+环外一圈压暗光,环径 82% 格宽,随格边 26–46px 连续缩放;贴图件仅战末金蜡封徽记继续使用。 + +| 面 | 现状 | 终态 | +|---|---|---| +| 绘制手段 | `draw_texture_rect(tex_seal, rect)` 铺满整格(28 格缩 0.875、46 格放 1.4375,均非整数) | 着色器按格边实时画(无缩放、任意格边清晰) | +| 形 | 环+十字(32px 贴图) | 环+十字(参数化:环径 82% 格宽/壁厚 11% 环径/臂宽 15.6% 环径) | +| 底光 | 无 | 环外一圈压暗光(宽 9% 格边、峰值 α0.50、衰减 1.6、不出格) | +| 贴图 | 棋盘与战末蜡封共用 `seal_mark.png` | 棋盘侧不再引用;蜡封继续用该贴图(`battle_end_overlay.gd:84`) | + +**什么状态算完**:五枚参数常量落 `ui_kit` 且有单元断言守门;着色器与层件落码并被 CellUnit 按格挂载;棋盘侧贴图引用路径全部退役且全仓零残留;三关渲染取证帧量出环径 82%±1px、光圈不越格边;迷雾态隐藏与小人层级两条不断;既有套件零转红;代码域闸全绿;`reports/` 三份产出物写齐。 + +## 2. 设计事实源 + +- **唯一事实源**:`design/art/art-bible.md` v3.41 §3.2「封印印记」条(形/画法/光圈/层序纪律)+ §8.2「封印印记参数表」(五枚定值+衰减+参数单点声明)。 +- **格边口径**:`design/gdd/ux/battle.md:137-143`「棋盘格尺寸公式」——`clampi(..., 26, 46)`,基座档 14×14=28px、小板最大 46px。 +- 该文件与待办清单条目状态里的闭合凭据一致(美术设计已闭合=art-bible v3.41+样张过审);T1 首步复核两者一致,冲突即 L3 停卡。 + +## 3. 现状事实(2026-11-04 worktree seal-shader 实查,基点 7b5308c1,开工自行复核) + +- `game/presentation/views/board_view.gd:539-541` 封印槽维护——`u.face.tex_seal = _palette.seal_tex if (seal and not revealed and _palette.seal_tex != null) else null`;`:542-545` 移除格清槽;`:70 var _cell := 46.0`;`:582` 缺图回落 `glyph = "封"`。 +- `game/presentation/views/cell_mark_overlay.gd:33` `var tex_seal: Texture2D`;`:95-96` `canvas.draw_texture_rect(tex_seal, rect, false)`——整格铺满,非整数缩放根源在此。 +- `game/presentation/views/tile_palette.gd:19` `const TILE_SEAL_MARK := "res://assets/art/board/seal_mark.png"`;`:111` `seal_tex = UiKit.load_tex(TILE_SEAL_MARK)`。 +- `game/presentation/views/board_cell_unit.gd:10` preload 微光层件;`:46 var _glow_layer`;`:58-63 _draw` 六步时序(`_draw_fog_layer` 在 `:69`,退色层在 `:64` 之后);`:90-100 _sync_glow_layer()` 是子件生命周期样板。 +- `game/presentation/views/cell_type_glow_layer.gd` 全件——子件模板:材质独占、`draw_rect` 全幅、`Color(1,1,1,1.0/255.0)` 非零 alpha 触发着色器、参数全取 ui_kit。 +- `game/presentation/views/ui_kit.gd:33` `SEAL_BLACK`;`:90-93` `TYPE_GLOW_ALPHA/BAND_FRAC/SOFT/CORNER`(参数单点先例)。 +- 取证面:`tools/render_gate.sh:107-114` 已挂 `board_shot_probe` L1–L3 棋盘抓帧;`game/probe/type_glow_shot_probe.gd` 是同类「单要素呈现」取证先例。 +- `game/presentation/views/battle_end_overlay.gd:84` 战末金蜡封印记直接读 `res://assets/art/board/seal_mark.png`(不走 `tile_palette` 常量)——本批不动它。 + +## 4. 设计契约(违反即返工红线) + +- 🔴 **参数五值**:环外径 `0.82`×格边、壁厚 `0.11`×环径、臂宽 `0.156`×环径、光圈宽 `0.09`×格边、光圈峰值 alpha `0.50`、衰减指数 `1.6`;单点=`ui_kit.gd` 五枚常量,着色器只读注入,代码内禁第二处字面值。 +- 🔴 **光圈不出格**:着色器内半径上限夹到 `cell_px/2`,禁越界到邻格。 +- 🔴 **色只用一枚**:印记与光圈都取 `SEAL_BLACK`(光圈只改 alpha);禁新增色、禁 ui_kit 之外裸 `Color8`(既有守卫)。 +- 🔴 **层序**:印记层挂 CellUnit 之下(低于 BoardView 层的小人精灵),且 `fog_state != 0`(区外全黑/记忆态)时整层隐藏——§6.5「封印随格隐没」。 +- 🔴 **禁动效**:不呼吸、不脉冲(§2.1 挖掘期唯一在动=接触带微光)。 +- 🔴 **贴图退役面**:棋盘侧三处引用(`tile_palette.gd:19/:111`、`cell_mark_overlay.gd:33/:95-96`、`board_view.gd:539-541/:582`)全部退役后,`game/` 内 `seal_mark` 只剩 `battle_end_overlay.gd:84` 一处引用,链上禁留旧常量别名或死槽。 +- 🔴 **测试纪律**:禁变异类测试、禁撤销类取证、禁删断言换绿(第 8 节申报之外零删改)。 + +## 5. 范围边界 + +**收件**:着色器文件、层件、CellUnit 挂载与生命周期、BoardView 下发、棋盘侧贴图三处退役、五枚常量、参数与雾门控断言、三关渲染取证。 + +**不收件**(去向已指认): +- 施印瞬间特效(清单 §4 两件中的第一件)——未实装,另立演出类条目时再做;本批只做常显形态。 +- 战末金蜡封徽记形制——继续用现有贴图,零改动。 +- 色板、其它格面元素(数字/徽章/变异纹带/类型微光)——零触碰。 +- `game/tests/README.md` 能力行——**新增一行「棋盘封印印记呈现(参数化绘制)」**(写卡段已随卡落,代表用例 `seal_mark_params_test.gd` 两函数;实现批禁写该文件)。 +- 数值表、MC、模拟——零跑(零数值改动)。 + +## 6. 关联文档同步面 + +实现批禁写 `design/` 与根规则文件;下表每条落文义务进 `reports/iter-反哺点-<日期>.md`,由用户裁决后归文档批落文: + +| 文档 | 关联点(本批实现会改变它的哪条陈述) | 同步义务(反哺点清单逐条承载) | +|---|---|---| +| design/art/art-bible.md §3.2/§8.2 | 已随美术设计闭合批落文(v3.41,条款即本批规格) | 实现期只核不改;若要改值=文档批,不在实现批 | +| 体验验证清单.md 第 4 条 | 判据现为「`seal_mark.png` 三关加载、非字形回退」,贴图退役后该判据失去对象 | 反哺点列改判据:「三关封印格呈环+十字、环径 82%±1px」 | +| design/art/asset-path-map.md | `seal_mark.png` 用途由「棋盘封印印记」改为「战末蜡封徽记专用」 | 反哺点列行号与改后表述 | +| game/tests/README.md | 能力行已由写卡段新增「棋盘封印印记呈现(参数化绘制)」一行 | 批末核对代表用例名与实现落地函数逐字一致(不一致则反哺点提出) | +| 术语表 | 零新增术语(环/十字/光圈均为现有词或本次条款已释义) | 确认行「零新增术语」 | + +(机检口径:本表同步义务格无一条写「随批」。) + +## 7. 任务卡 T1..T6 + +### 卡前·文件结构图 + +``` +新增 + game/presentation/views/seal_mark.gdshader 【行为改动 R1/R2/R3】环+十字+环外光圈,参数只读注入 + game/presentation/views/seal_mark_layer.gd 【行为改动 R1/R3/R4】子件承载(仿 cell_type_glow_layer) + game/tests/unit/presentation/seal_mark_params_test.gd 【非行为·新增】五常量与注入面断言 +改动 + game/presentation/views/ui_kit.gd 【非行为 R1】+五常量(值同 art-bible §8.2) + game/presentation/views/board_cell_unit.gd 【行为改动 R1/R4/R5】+封印子件挂载/生命周期/雾门控/edge 联动 + game/presentation/views/board_view.gd 【行为改动 R4】:539-541 槽位维护改下发封印层;:582 回退分支退役 + game/presentation/views/cell_mark_overlay.gd 【行为改动 R6】删 tex_seal 成员与 :95-96 绘制、头注改写 + game/presentation/views/tile_palette.gd 【行为改动 R6】删 TILE_SEAL_MARK 与 seal_tex + game/tests/run_all.gd 【非行为】注册新单元件 + game/probe/board_shot_probe.gd 或新增探针 【行为改动 R1/R3/R5】三关封印格取证帧 +不动 + game/presentation/views/battle_end_overlay.gd:84 战末蜡封继续读同一张 PNG + game/assets/art/board/seal_mark.png 素材在库保留(蜡封专用) +``` + +### T1 常量与参数断言(估时 0.25 工作日;区间 0.25–0.5) + +取用:无。产出:`UiKit.SEAL_RING_FRAC/SEAL_WALL_FRAC/SEAL_ARM_FRAC/SEAL_HALO_ALPHA/SEAL_HALO_GAMMA`(float 常量)+`seal_mark_params_test.gd`。 + +- [ ] 复核 art-bible v3.41 §8.2 参数表与本卡第 4 节五值逐字一致(不一致=L3 停卡) +- [ ] `ui_kit.gd` 邻近 `SEAL_BLACK`(:33) 处新增五常量,值 = `0.82 / 0.11 / 0.156 / 0.50 / 1.6`,各带一行来源注(引 §8.2) +- [ ] 新增 `tests/unit/presentation/seal_mark_params_test.gd`:断言五常量取值;断言 `seal_mark.gdshader` 文件存在且文本含 `cell_px/ring_frac/wall_frac/arm_frac/halo_frac/halo_alpha/halo_gamma/mark_col` 七个 uniform 名 +- [ ] `tests/run_all.gd` 注册该件(仿既有 `{"path": ..., "expect": 0}` 行) + +### T2 着色器本体(估时 1.0 工作日;区间 0.75–1.5) + +取用:T1 五常量。产出:`seal_mark.gdshader`(`shader_type canvas_item`),uniform 名单见 T1。 + +- [ ] 写 `seal_mark.gdshader`:以格中心为原点算半径 `r`;环体 = `ring_r-wall/2 ≤ r ≤ ring_r`(`ring_r = 0.5*cell_px*ring_frac`,`wall = 0.11*2*ring_r`);十字 = `(|dx| < arm/2 或 |dy| < arm/2) 且 r < ring_r`(`arm = arm_frac*2*ring_r`);光圈 = `r > ring_r` 区间按 `(1 - t)^halo_gamma * halo_alpha` 混黑,`t = (r-ring_r)/halo_w`,`halo_w = 0.5*cell_px*halo_frac`,并夹 `r ≤ 0.5*cell_px` +- [ ] 隔离验证:最小场景(单 32px/46px/28px 三个方块)直跑抓帧,确认三档格边下环径比例一致、光圈不越格(截图落 `artwork/` 在途目录,不入 git) +- [ ] 参数默认值仅作兜底(与 §8.2 同值),实际由 gd 侧逐次注入;代码内注释写明「禁在此改值」 + +### T3 层件与接入(估时 1.0 工作日;区间 0.75–1.5) + +取用:T1 常量、T2 着色器。产出:`seal_mark_layer.gd`+`BoardCellUnit` 挂载接口。 + +- [ ] 新增 `seal_mark_layer.gd`:`extends Node2D`;`setup(edge: float, on: bool) -> void` 内建 `ShaderMaterial` 并注入七参数(`mark_col = UiKit.SEAL_BLACK`);`_draw()` 用 `draw_rect(Rect2(Vector2.ZERO, Vector2(edge, edge)), Color(1,1,1,1.0/255.0))`(同微光层非零 alpha 手法) +- [ ] `board_cell_unit.gd`:`const _SEAL_LAYER := preload(...)`;`var _seal_layer: Node2D`;`func _sync_seal_layer() -> void`(on 才建、off 撤、edge 变更重注入);`edge` setter 与 `fog_state` setter 各追加一行联动 +- [ ] `board_view.gd:539-541` 改为写 CellUnit 的新公开属性 `seal_on: bool`(替代 `u.face.tex_seal` 赋值),`:542-545` 移除格同置 false +- [ ] 断言:单元件内新增 `_test_fog_gate`——造 CellUnit、置 `seal_on = true`、置 `fog_state = 1` → 断言封印子件不可见;`fog_state = 0` → 可见 + +### T4 棋盘侧贴图路径退役(估时 0.5 工作日;区间 0.25–0.75) + +取用:T3 接入完成(封印不再依赖贴图)。产出:三处引用清零。 + +- [ ] `cell_mark_overlay.gd`:删 `:33 tex_seal` 成员与其 setter、删 `:95-96` 绘制块、头注「④ 封印」段改写为「封印由 seal_mark_layer 子件绘制」 +- [ ] `tile_palette.gd`:删 `:19 TILE_SEAL_MARK` 与 `:111 seal_tex` 赋载;确认无第二消费者(`grep -rn "TILE_SEAL_MARK\|seal_tex" game/`) +- [ ] `board_view.gd`:删 `:539-541` 槽位维护语句与 `:582` 缺图回退分支,注释改写;确认 `battle_end_overlay.gd:84` 仍以字面路径读图(不受影响) +- [ ] 全仓 sweep:`grep -rn "seal_mark" game/ --include=*.gd` 只余 `battle_end_overlay.gd:84` 一处;把该 grep 结果写进实现报告作结构性证据 + +### T5 渲染取证与回归(估时 0.75 工作日;区间 0.5–1.0) + +取用:T3/T4 完成态。产出:三关封印格取证帧与读数表。 + +- [ ] 在 `board_shot_probe.gd` 增「封印格抓帧」分支(或新增 `seal_mark_shot_probe`):每关放一枚封印后抓整板帧,落盘带关名标签 +- [ ] 读数脚本(放 `tools/` 或探针内直算):从帧里量环外径像素 ÷ 格边长,输出三关读数 +- [ ] 判据落读数表:环径落 82%±1px;光圈外缘不超过格边(邻格边缘亮度与无封印帧一致) +- [ ] 回归:既有冒烟/单元/探针/渲染套件零转红(改前改后各一次,记录读数) + +### T6 产出物落位(估时 0.25 工作日;区间 0.25–0.5) + +- [ ] `reports/iter-实现报告-<日期>.md`:各卡状态+实机目检总清单(三关封印格观感、蜡封观感、封印格与变异纹带同格观感)+变异验证记录表(T1–T5 各条:变异点 file:行、跑的闸、红输出、还原结论)+遗留读数义务 +- [ ] `reports/iter-反哺点-<日期>.md`:第 6 节四条同步面逐条落(体验验证清单第 4 条改判据、asset-path-map 用途改述、能力清单零新增确认、术语零新增确认) +- [ ] `reports/iter-代拍板-<日期>.md`:按第 10 节白名单记录,全按卡执行则写「零拍板」 +- [ ] 轻闸全绿后、合并前复核三份齐备 + +**估时汇总**:0.25+1.0+1.0+0.5+0.75+0.25=**3.75 工作日**(区间 2.75–5.75)。低于 5 个工作日冻结线——编入迭代时按冻结制处理(凑批后转待开工)。 + +## 8. 验证闸(改动—验收对照表) + +| # | 需求点 | 改动(文件:行/行为) | 验收测试(名称+落点+尾缀) | 层级 | 真实入口 | 判据绑定面 | 能力行 | +|---|---|---|---|---|---|---|---| +| R1 | 环径 = 82% 格边,随格边连续 | `seal_mark.gdshader`(ring_frac 算环半径)+`ui_kit.gd` 五常量 | `seal_mark_params_test.gd:_test_param_values`(unit/presentation,尾缀 `_test`)+T5 三关帧量读数 | 单元+探针 | `BoardCellUnit.edge` → 层件 `setup()` → ShaderMaterial 参数 | 常量值逐项相等;三关帧读数「环外径像素 ÷ 格边」落 0.82±0.01 | 新增:棋盘封印印记呈现 | +| R2 | 壁厚 11% 环径、臂宽 15.6% 环径 | 同上 shader | `seal_mark_params_test.gd:_test_shape_ratios`+T5 帧量 | 单元+探针 | 同 R1 | 两常量逐值相等;帧上「环壁像素宽 ÷ 环外径」落 0.11±0.02 | 新增:棋盘封印印记呈现 | +| R3 | 光圈只在环外、不出格 | shader `halo_frac` 与 `r ≤ cell/2` 夹取 | `seal_mark_params_test.gd:_test_halo_clamp_present`+T5 邻格边缘亮度比对 | 单元+探针 | 同 R1 | shader 文本含夹取行;封印帧邻格边缘亮度与无封印帧差 ≤1/255 | 新增:棋盘封印印记呈现 | +| R4 | 迷雾态隐藏 | `board_cell_unit.gd` `fog_state` setter 联动 | `seal_mark_params_test.gd:_test_fog_gate` | 单元 | `BoardCellUnit.fog_state` 属性写入面 | `fog_state=1` 时封印子件 `visible == false`;`=0` 时 `true` | 新增:棋盘封印印记呈现 | +| R5 | 印记在小人之下 | 子件挂 CellUnit(BoardView 层 hero 精灵天然在上) | T5 帧取证 | 探针 | `board_view._place_hero` | 小人格中心像素 = 小人体色(非封印黑) | 新增:棋盘封印印记呈现 | +| R6 | 蜡封仍用贴图 | `battle_end_overlay.gd:84` 不动 | 既有战末弹层探针/单元零转红+`grep` sweep | 单元+sweep | 战末结算弹层构建 | `grep -rn "seal_mark" game/ --include=*.gd` 命中数 = 1 | 新增:棋盘封印印记呈现 | +| R7 | 零新增色 | shader 只用 `SEAL_BLACK`+alpha | `seal_mark_params_test.gd:_test_single_color`+渲染闸有效色数 | 单元+闸 | 材质注入点 | shader 文本零 `Color8` 且无第二色常量;该屏有效色数不超既有读数 | 新增:棋盘封印印记呈现 | + +**测试削弱申报**:本批不删改任何既有断言。`board_view.gd:582` 的缺图回退分支是**行为退役**(回退对象消失),不属「删断言」。 + +## 9. 异常分级 + +- **L1 自救**:着色器编译报错、参数注入拼写错、探针抓帧目录缺失——就地修,重跑最小单元。 +- **L2 记录继续**:取证帧读数轻微偏离(≤2px)且目检无感——记入实现报告「读数偏差」节,继续推进。 +- **L3 停机呈报**:参数与本卡第 4 节冲突、layer 挂载位置被迫改动、贴图退役引发图外消费者(白名单外)、渲染闸对新增着色器报红且无法定性。 + +## 10. 代拍板白名单 + +1. 常量与 uniform 的命名拼写(须含 `SEAL_` 前缀)、注释措辞。 +2. 探针文件名与抓帧文件命名(T5)。 +3. commit 拆分粒度与提交信息措辞。 +4. 单元件内断言函数命名与内部辅助函数拆分。 +5. 隔离验证用的最小场景形态(方块数、摆放)。 + +**超清单必呈报**:任何参数取值改动、层挂载层级改动、贴图退役范围扩大(例如顺手删 `seal_mark.png`)、动 `battle_end_overlay`、动其它格面元素。 + +## 11. 待裁点 + +**零待裁点**。开工门=U0(用户指定迭代号发令)。设计权归用户;本卡内所有取值均来自 art-bible v3.41 §8.2,实现期禁自改。 + +## 12. 落位与可复用性预检 + +| 新增件 | 复用面(盘上是否已有同类) | 唯一面 | 分层与交互 | +|---|---|---|---| +| `seal_mark.gdshader` | 复用 `cell_type_glow.gdshader` 的 canvas_item+距离场写法与「参数全由 gd 注入」纪律;不新建框架 | 只此一件承担封印图形;不与微光着色器合并(两者生命周期与挂载面不同:微光按组、封印按格态) | presentation 层;无 core 依赖;不读写存档/RNG | +| `seal_mark_layer.gd` | 复用 `cell_type_glow_layer.gd` 的子件模式(材质独占、全幅 draw_rect、非零 alpha 触发);不复制其函数体 | 只此一件承载封印子件;微光层件零改动 | 挂 `BoardCellUnit` 之下;受 `edge`/`seal_on`/`fog_state` 三输入驱动 | +| 五枚常量 | 复用 `ui_kit.gd` 既有常量区与 `TYPE_GLOW_*` 命名先例 | 全仓唯一定义点,着色器只读注入;代码内禁第二处字面值 | 参数单点,与 art-bible §8.2 对照 | +| `seal_mark_params_test.gd` | 复用 `tests/unit/presentation/` 目录约定与 `run_all.gd` 注册表 | 只此一件守封印参数与门控 | 单元层,不触渲染 | + +**无新增 core 件、无新增数据表、无新增场景**;`game/tests/README.md` 判定零新增(理由见第 5 节)。 + +## 13. 独立验收审计 + +- **入口**:`reports/iter-验收审计-<日期>.md`;由未参与实现的会话或子代理执行(test-conventions §9.7)。 +- **审计面**:第 8 节七行逐行核「真实入口是否绕过改动点」+代码域闸真跑回执+第 5 节退役面 sweep 结果。 +- **未过不得合并**;审计结论进实现报告收尾节。 diff --git a/待办清单.md b/待办清单.md index 2f0424ed..e6758455 100644 --- a/待办清单.md +++ b/待办清单.md @@ -190,17 +190,11 @@ #### 棋盘封印印记图形换代——现件仍是扫雷旗形,改法阵或锁链待设计(2026-10-30 登记,来源=会话提及) -**实况**:2026-11-04 讨论定案——形=**环+十字法阵**(外环=圈定,环内十字=钉住此格,四端顶到环内沿连成一体);色=封印黑 `#000000` 纯黑无光效(封印紫在封印黑批已退役、不并存);画法=纯黑实心块面、禁细线(32px 下细线断成碎点)。尺寸定值落 [美术圣经](design/art/art-bible.md) v3.38 §8.2「封印印记源档」(外径 23px/环壁 2.6px/十字臂 3.2px/外沿距格边 ≥4px),形与画法落 §3.2。终稿已同名替换 `game/assets/art/board/seal_mark.png`(32×32)。连带件=战末金蜡封徽记沿用同图(零代码改动);特效两件只做常显。消费面 `tile_palette.gd:19`、`board_view.gd:539`/`:582`、`battle_end_overlay.gd:84`。同批清圣经四处「旗」与 §4.1 旧形前提,[美术资源依赖清单](design/art/art-assets-checklist.md) §3.3/§4 与 [美术素材状态清单](design/art/art-status-checklist.md) 同步;圣经 :370/:540 两处「背包旗」属 character-design 命名,未动。 +**实况**:2026-11-04 定案——形=环+十字法阵;色=封印黑 `#000000`(光圈只加 alpha,不加色相);**画法改参数化绘制**:格边 26–46px 连续可变,贴图必非整数缩放,故由着色器按格边画环+十字。定值:环外径 82% 格宽、壁厚 11% 环径、臂宽 15.6% 环径、环外光圈宽 9% 格边(峰值 α0.50、不外溢邻格)。条款落 [美术圣经](design/art/art-bible.md) v3.41 §3.2 与 §8.2「封印印记参数表」,样张过审=2026-11-04 用户点头 82% 档。贴图 `seal_mark.png`(现为环+十字)退为战末金蜡封徽记专用;棋盘侧贴图绘制路径待实现批退役(`tile_palette.gd:19`、`cell_mark_overlay.gd:95-96`、`board_view.gd:541`)。[美术资源依赖清单](design/art/art-assets-checklist.md) §3.3/§4 与 [美术素材状态清单](design/art/art-status-checklist.md) 两行同步。需求卡片 reports/需求卡片-封印印记法阵化批-2026-11-04.md(实现批输入合同,3.75 工作日)。 -**缺口**:还差两件:①实机目检(三关封印印记形状可读、与巢穴纹/变异纹带不同格混淆、战末蜡封观感);②施印瞬间特效未实装(清单 §4 两件中的第一件)。 +**改动面**:文档+美术素材+游戏代码 -**改动面**:文档+美术素材 - -**状态**:美术设计中 - -### 教学引导 - -> **节头注记(2026-10-04 用户拍板)**:教学引导定稿批整体改排 **Beta 阶段**——当前 Alpha 版不做教学相关工作,本节五条全部随之改排(2026-09-19 的 Alpha 排期拍板被本拍板取代)。同日五问讨论已形成初裁与设计提案,提案已归档 `archive/` 目录(磁盘留存、不入 git,Beta 批立项底稿,引用以其「归档状态与初裁记录」节为准)。初裁摘要:①教学形态=丙1 混合(首次冒险编排式首遇提示〔挂 first_script 锚、不锁操作〕+其余全程情景触发);②「因果教学顺序」问题**注销**——只教扫雷操作,结算读法不设教学(用户裁:结算只是表达、展现、演出,无策略内容;展示层每行带来源标注已自带归因;教学引导.md 旧前提〔设计目的句/P0 候选归因提示/验收第 2 条〕随 Beta 批文档定稿清除);③图例面板按循环段落分组、无结算段;④不做「再教一次」——改走独立「帮助」手册面(全部内容放一个文档);⑤教学文案内容权归设置与本地化(两文档负责表对齐随 Beta 批)。**未裁三疑点**(Beta 立项时先裁):增益叠层节奏条目去留/帮助入口位置(设置面为推荐)/图例面板与帮助手册的内容分工。 +**状态**:美术设计已闭合+已写卡 #### 教学形态未定(2026-10-04 登记,来源=审计发现)