feat(art): seal purple batch -- flag color C63D22 -> 7C3AA8 (hue 267, ban-band safe); code 8-way split (seal items -> purple, attack/warn reds -> danger family, boss border -> boss purple) + docs 5 files + sample script sync + ledger 185

This commit is contained in:
DKChan committed 2026-09-27 02:12:12 +08:00
1 parent 5e36eb3c0d
commit 20c131c1a7
14 files changed
+37 -32

No files matched your search

+1 -1
View File
@@ -149,7 +149,7 @@
| 受击反馈 / 死亡表现 / 顺位标记 | 敌人系统登记的资产需求**下限三类** | 死亡=血条归零后**灰化+碎裂退场,禁止瞬间消失**;顺位标记需在敌多时可读 | ⚙/✦ 挂自产精灵——死亡灰化碎裂是语义硬规则,不可整包复用;烟尘碎屑粒子可 ♻ 改色 |
| 特殊技动画终稿 | 并入 §2.3 三档意图动画,不另起体系 | 攻/防两型旧口径由三档替代 | ✦/⚙ 自产(同 §2.3) |
| 连锁坍塌显形演出 | 连锁展开触发时的连锁演出 | 与音频方向同批配对登记;「坍塌显形」=连锁展开的玩家可见名 | ♻ 粒子/碎块改色 + ⚙ 坍塌结构自产 |
| 封印特效(插旗动作) | 插旗的呈现名 = **封印**(2026-09-25 术语批,art-bible §3.2):**施印瞬间特效 + 印记常显形态**两件 | 印记旗面走旗朱 `#C63D22`;特效走运动+色相、明度恒定(§2);现行占位 = 旗朱「旗」字形;印记常显形态可与 §3.3 旗面像素化合并出 | ✦/⚙ 自产(精灵+粒子,烟尘光点可 ♻ 改色) |
| 封印特效(插旗动作) | 插旗的呈现名 = **封印**(2026-09-25 术语批,art-bible §3.2):**施印瞬间特效 + 印记常显形态**两件 | 印记旗面走封印紫 `#7C3AA8`(旗朱退役 2026-09-26 封印紫批);特效走运动+色相、明度恒定(§2);现行占位 = 旗朱「旗」字形;印记常显形态可与 §3.3 旗面像素化合并出 | ✦/⚙ 自产(精灵+粒子,烟尘光点可 ♻ 改色) |
| 弹道/退场等动画密度 | 战斗表现输入清单,方案未定 | 样张锁动画方案后启动 | ♻ 通用弹道/光点/消散粒子改色为主 |
---
+9 -8
View File
@@ -56,7 +56,7 @@
1. **第一验收项|数字可读性(硬指标,可测)**:1–8 全档数字在其**色牌**上 WCAG 对比 ≥4.5:1(§4.1 参数域:色牌素色恒定 L≥0.70、数字墨 L≤0.027);色牌在任意格底(素底/装饰变体底/类型角嵌底/变异纹带底)上完整可辨、牌缘灰度可分;0.5× 缩放抽检数字仍可辨;纹带/裂纹/巢穴纹/物件纹样不得侵入数字字形占位区(砖心留白,§3.2)。
2. **格态三形可辨(灰度通道)**:未开/已开/雷三态转灰度截图后仍可逐格分类(§3.2 完整度叙事);装饰变体与类型角嵌纹样不得制造新的分类特征——同一格态下带与不带变体的灰度差异不得成为三态分类线索;色弱模拟(去色相)下旗、巢穴纹不与裂纹混淆,类型角嵌纹样与变异纹带互辨;**五组类型微光互辨**——去色相下微光组间仍可辨(明度梯度辅助),色弱玩家的类型主通道 = 角嵌纹样形状通道(§4.5⑨),微光不得侵入数字色牌占位区、不得以明度增量承载信息(§2 明度恒定:微光只以色相表达,加色混合不压格底明度档)。
3. **焦点预算成立(§3.4)**:任意一格至多一个完整凸形;数字所在格无第二焦点。
4. **图类型换皮抽测(§4.3)**:变体组中数字墨三档、旗朱、危险红、奖励金、小人蓝、数字色牌、类型微光五组恒定不动;变体格底仍过第 1、2 项指标。
4. **图类型换皮抽测(§4.3)**:变体组中数字墨三档、封印紫、危险红、奖励金、小人蓝、数字色牌、类型微光五组恒定不动;变体格底仍过第 1、2 项指标。
**判定与回退**:第 1 项不过 → 按原则二设计测试回退——加牌、调牌(提牌墨对比/扩牌面积皆可),禁止缩字号换字形逃避;第 2–4 项不过 → 修形不修数。样张通过 = 砖面形态与色板冻结;新增图类型/变异色板须重跑本测试(§4.3)。执行时机:正式砖面资产开工前;《HUD框架》以本节为引用依据(2026-09-07 门禁:样张测试并入 art-bible 执行)。
@@ -159,11 +159,11 @@
- **装饰变体(未开格氛围层)**:覆尘完整砖之上叠加裂纹/碎石斑等低对比装饰;装饰变体一律为**纹理级**,禁物件级(巨石/小石堆等读作格子内容的元素),数量保持最少(约 2 种,用途仅为破除大面积同砖平铺的重复感),一律残缺、内凹、低对比而自然后退(§3.4);零信息纪律(分布随机、与雷/安/类型零相关、灰度下不得制造新分类特征、分布属初始化随机禁逐轮重掷)以原则三为准,此处不赘。←原三
- **结果整格表达(已开格)**:已开格按当格结果整格表达(结果清单见原则三);画法——产资源格的家族物件纹样用 §3.1 道具点剪影语言(直线几何体)角嵌于砖缘,砖心与数字字形占位区留白(已开格仍承载数字);雷格巢穴纹较已开格更凶一档,形状+颜色双通道不变。←原三;P3
- **类型角嵌纹样(未开格预读·形状通道)**:未开格四角/边框嵌所属家族类型纹样(九类型键表 §4.6.3),墨族单色,砖心留白予数字/旗/小人;与变异格的砖面内缘纹带分通道互不混用,灰度互辨(§1.4 验收 2)。色彩通道 = **类型常显微光**(色带 §4.2,呈现契约 §4.6.3)——形状与色彩双通道冗余,色弱玩家以本纹样为类型主通道。←原一;原三
- **旗(封印印记)**:插旗动作的叙事呈现 = **封印**(玩家可见专名,2026-09-25 用户拍板,registry terminology 登记)——玩家对未开格插旗,即对该格(巢穴)实施封印,旗 = 封印印记;旗朱色(§4.1)与格内优先级栈位(§1.2)不变。封印特效(施印瞬间 + 印记常显形态)待表现批,资产归清单 §4 演出类;现行程序化占位 = 旗朱「旗」字形(棋盘惯例:贴图在位=字形退役)。←原一;P2;术语批 2026-09-25
- **旗(封印印记)**:插旗动作的叙事呈现 = **封印**(玩家可见专名,2026-09-25 用户拍板,registry terminology 登记)——玩家对未开格插旗,即对该格(巢穴)实施封印,旗 = 封印印记;封印紫(§4.1)与格内优先级栈位(§1.2)不变。封印特效(施印瞬间 + 印记常显形态)待表现批,资产归清单 §4 演出类;现行程序化占位 = 封印紫「旗」字形(棋盘惯例:贴图在位=字形退役)。←原一;P2;术语批 2026-09-25;封印紫批 2026-09-26
- **可挖域接触带微光(交互反馈层,2026-09-25 用户拍板)**:挖掘期,英雄格周界与可挖墙(8 向相邻未开格)的接触面画呼吸微光——正交邻墙=该侧整条边,斜向邻墙=共享角点+向两侧各延伸半条边;光只画英雄格(空间)一侧、不进墙格(与角嵌纹样/装饰变体零冲突,数字砖心不涉)。世界观口径:未开格=墙、已开格=挖出的空间,微光=空间的灯光边界。色相=蓝族浅一档(§4.2 蓝条;与主角蓝框的分层归样张批);呼吸=§2.1 挖掘期唯一在动元素,减动效停格。角点为斜墙与正交墙共享、不逐格归因,逐格指认=悬停金框(现役)。旧「墙格整框绿相呼吸」随本条退役(实现切换归表现批,`DIG_EDGE` 绿相退役)。←§2.1;§4.2;P1
- **墙体**:圆角砌块堆叠,禁尖刺装饰——尖刺专属危险语义,装饰不得伪装逻辑差异。←原三
- **高墙瓦片体系(2026-09-26 定稿,样张批追认)**:未挖格=**一整块 32×32 自含凸起岩体**(方案甲核心定义);素材语义名——未开格素材=**墙瓦片**,已开格素材=**地面瓦片**(术语 2026-09-26 用户立)。**边界=墨线纪律**:墙瓦片与相邻格分界一律 1px 深墨线、直线贴格边、零锯齿;墨线职责=分隔,不追求与地面融合(Tiny Dungeon 样图实证调研,见 `design/research/terrain-walls-source-evaluation-2026-09-25.md`)。**光照=单一北受光**:北缘=墨线内侧 1px 微亮棱(就地取色提亮,禁宽亮带);西/东缘=墨线后直进纹理、不加修饰;南缘=墨线+立面窄暗条(约 1/3 格高,横层理叠石、禁竖条纹栅栏感)。**凹角**:角点单像素落线;南立面侧凹角加 1px 立面收头——带身与转角竖线同列收尾,禁悬空、禁突出(v9.1/v9.2 两版返工实证)。现行定稿=`game/assets/art/board/terrain_*`(16 唯一墙瓦片+5 地面瓦片变体;词表与查表逻辑见 `design/research/board-tile-vocab-plan-a-2026-09-26.md`)。←原三;台账 164
- **变异格形状通道**(双通道之"形",与色无关):底砖圆角外轮廓不变,砖面内缘绘一圈定宽专属几何纹带(纹带形全作不与他类共用),砖心留白予数字与旗;验收标准=**灰度截图下仍可分类**。种类清单 = 地形变异六类型已定稿(地形变异 GDD;荆棘丛/藤蔓缠绕/岩浆/烬覆/落石/矿尘):**纹带形按轴只分两种**——伤害轴(荆棘丛/岩浆/落石)= 刺/缺排斥形,信息轴(藤蔓缠绕/烬覆/矿尘)= 遮蔽/缠绕形;同轴跨图类型只做色板变体(§4.3 `variant_tint` 槽),不做新纹形。样张批增查:岩浆纹带橙红须与危险红、旗朱互辨(变异格不是雷,色相邻近混淆风险);信息轴遮蔽呈现不得侵入数字色牌占位区(§1.4 验收 1 延伸)。←原一(纹理位次第 4,让位于数字/小人/旗);原三
- **变异格形状通道**(双通道之"形",与色无关):底砖圆角外轮廓不变,砖面内缘绘一圈定宽专属几何纹带(纹带形全作不与他类共用),砖心留白予数字与旗;验收标准=**灰度截图下仍可分类**。种类清单 = 地形变异六类型已定稿(地形变异 GDD;荆棘丛/藤蔓缠绕/岩浆/烬覆/落石/矿尘):**纹带形按轴只分两种**——伤害轴(荆棘丛/岩浆/落石)= 刺/缺排斥形,信息轴(藤蔓缠绕/烬覆/矿尘)= 遮蔽/缠绕形;同轴跨图类型只做色板变体(§4.3 `variant_tint` 槽),不做新纹形。样张批增查:岩浆纹带橙红须与危险红互辨(变异格不是雷,色相邻近混淆风险);信息轴遮蔽呈现不得侵入数字色牌占位区(§1.4 验收 1 延伸)。←原一(纹理位次第 4,让位于数字/小人/旗);原三
### 3.3 UI 形状语法(方向指导,细则迁 §7.1)
@@ -186,7 +186,7 @@
- **掩尘 `#C9AF83`**|未开格底色,覆尘完整砖:全作的"未知",画面最大沉默面。←原二;§2.1
- **裸土 `#B39A78`**|已开格底色,碎裂裸露:更收更退,靠碎裂形分辨。←原三
- **数字墨 `#33261B` 族**|1–8 **不做八色分色**,按密度分三档色温:1–3 青墨 `#132E36`、4–5 赭墨 `#3C250C`、6–8 锈墨 `#4A1E14`;**字形为唯一数值载体**,色温只作密度氛围(冷=稀疏,暖=密集)。八色必与红金蓝紫赤语义冲突,故弃。←原一/原二;P3
- **旗朱 `#C63D22`**|旗色:玩家的宣告"此处有险",预告档的红。←原一;P2
- **封印紫 `#7C3AA8`**|封印(插旗)宣告色,色相 ≈267°:玩家的宣告"此格封印"(2026-09-26 用户拍板旗朱→封印紫——封印语义自术语批后获专属色相;避开 300°–345° 禁入带,与魔法微光 256°/妨害紫 281° 各留 12-14° 间距,样张批互辨抽测追认)。旗朱 `#C63D22` 随批退役,红族自此只剩危险红。←原一;P2;封印紫批 2026-09-26
- **危险红 `#A8321F`**|危险色:雷=被惊动的巢穴,兑现档红,更深更沉(2026-09-13 更名,旧称"机关红"随隐喻换轴退役;色值不变)。←原三;P2
- **奖励金 `#F0A828`**|已兑现的收益:金币/宝箱/蜡封,全作唯一亮金。←P2;§2.3/2.4
- **小人蓝 `#2E86DE`**|小人主色:棋盘唯一"己方",与光标准线同族(候选值,样张批 §1.4 冻结终稿)。←P1;§2.1
@@ -196,12 +196,12 @@
### 4.2 语义色彩规则
- **红只说危险**:旗朱=预告档,危险红=兑现档,同族两档。禁:红不得用于奖励、装饰与常规 UI(微光群伤组除外——其为类型先验色带域,见「类型微光色带」条,色相刻意错开两档语义红)。←原三;P2;§2.1
- **红只说危险**:危险红=兑现档(旗朱预告档随封印紫批退役,红族单档)。禁:红不得用于奖励、装饰与常规 UI(微光群伤组除外——其为类型先验色带域,见「类型微光色带」条,色相刻意错开语义红)。←原三;P2;§2.1;封印紫批 2026-09-26
- **金只说收益与兑现**(奖励、结算、胜利)。禁:金不得作危险障碍色、不上格底、不作日常 UI 强调(防通胀;微光通用增益组的芥末黄 = 类型先验色带域,非收益语义金)。←P2;P3;§2.2–2.4
- **蓝只说己方与冷静信息**(小人、光标、工具信息——含可挖域接触带呼吸微光,蓝族浅一档,2026-09-25 拍板;旧可挖域绿相随接触带方案退役)。禁:蓝不得表示敌方危险;暮蓝 `#5A6C8C` 为失败独占(§2.5),只作全屏氛围,不作物件色。←P1;§2.5
- **紫赤只说 Boss 与精英** `#8F2F6A`(色相 323°):郑重来自色相独占,不来自压暗。禁:**HSV 色相 300°–345° 为全场禁入带**,其余资产(含 UI 与粒子、含类型微光)及图类型色板不得落入。←§2.6;原三
- **绿只说自然生机**(环境植被;恢复类状态若有则用绿——待增益状态定夺)。**例外:类型微光治疗组**(类型先验色带,见下条)。禁:绿不得承载逻辑状态(微光色带除外),不得与红构成唯一区分对。←原三;T1 裁决 2026-09-22
- **类型微光色带 = 格面类型先验专用逻辑色带**(2026-09-22 用户裁决,未开格类型预读的色彩通道):未开格常显类型微光属逻辑信息色彩,五组候选色相——**通用增益组**(attack/defense/weaken/action/gp 五族)芥末黄 `#D6C13A`(≈52°)、**治疗组**(heal)黄绿 `#5CB83A`(≈104°)、**穿刺组**(pierce)青 `#2E9E9E`(≈180°)、**魔法组**(magic)紫罗兰 `#7B5BD6`(≈256°)、**群伤组**(blast)绯红 `#FF2D55`(≈349°,刻意避开危险红/旗朱色相段与 300°–345° 禁入带)——均候选值,样张批(§1.4)冻结终值并抽测组间互辨。分域纪律:微光色相只承载类型先验,不迁移复用为物件/阵营/UI 语义色;微光以色相表达信息,不得以明度增量承载(§2 明度恒定,加色混合不压格底明度档);色弱玩家的类型主通道 = 角嵌纹样形状通道(§3.2/§4.5⑨)。←T1 裁决 2026-09-22;§4.6.3
- **类型微光色带 = 格面类型先验专用逻辑色带**(2026-09-22 用户裁决,未开格类型预读的色彩通道):未开格常显类型微光属逻辑信息色彩,五组候选色相——**通用增益组**(attack/defense/weaken/action/gp 五族)芥末黄 `#D6C13A`(≈52°)、**治疗组**(heal)黄绿 `#5CB83A`(≈104°)、**穿刺组**(pierce)青 `#2E9E9E`(≈180°)、**魔法组**(magic)紫罗兰 `#7B5BD6`(≈256°)、**群伤组**(blast)绯红 `#FF2D55`(≈349°,刻意避开危险红色相段与 300°–345° 禁入带)——均候选值,样张批(§1.4)冻结终值并抽测组间互辨。分域纪律:微光色相只承载类型先验,不迁移复用为物件/阵营/UI 语义色;微光以色相表达信息,不得以明度增量承载(§2 明度恒定,加色混合不压格底明度档);色弱玩家的类型主通道 = 角嵌纹样形状通道(§3.2/§4.5⑨)。←T1 裁决 2026-09-22;§4.6.3
- **金/红兼作极性色相槽(§4.6)**:极性(白话:同一次兑付的正负方向——正 = 收益侧,负 = 代价侧;行为×格型→符号矩阵见极性提案 R2)的视觉取色只在这两族间——有利兑付 = 金族,有害兑付 = 红族,不新增语义色。←§4.6;原二
### 4.3 图类型色板换皮规则(board_type)
@@ -212,7 +212,7 @@
- `wall_ambient` 墙雾氛围 tint:可带主题色相,L≥0.30
- `variant_tint` 变异纹带染槽:只改色相不改纹形(纹带形按轴两分,见 §3.2 变异格形状通道;种类 = 地形变异六类型已定稿)
**不变槽**:数字墨三档、数字色牌、旗朱、危险红、奖励金、小人蓝、紫赤、绿、类型微光五组——**信息与语义层全图类型恒定**,换挡只动色相饱和、不动明度档(§2 硬规则)。新增色板须重跑 §1.4 格子样张(灰度可辨+对比抽测)。←原三/原二;地形变异 AC-9
**不变槽**:数字墨三档、数字色牌、封印紫、危险红、奖励金、小人蓝、紫赤、绿、类型微光五组——**信息与语义层全图类型恒定**,换挡只动色相饱和、不动明度档(§2 硬规则)。新增色板须重跑 §1.4 格子样张(灰度可辨+对比抽测)。←原三/原二;地形变异 AC-9
### 4.4 UI 色板(方向指导,细则迁 §7.2)
@@ -331,7 +331,7 @@
> **本节内容已整体迁至独立文档 [`character-design.md`](character-design.md)**(2026-09-23 v1.7 抽离批;小节号 §5.1–§5.6 在该文档中沿用不变)。迁移动机:人设高频改动,独立成档免动圣经;本存根保证既有 "art-bible §5.x" 式引用(§4.1/§4.5/§4.6.4、art-assets-checklist、战斗表现)经此仍可达,新引用直指该文档。
内容速览:§5.1 角色剪影与轮廓通道 · §5.2 头身比与体量档位 · §5.3 护甲类型视觉区分(候选,样张批冻结) · §5.4 主角三态规格(形象锚 = 蓝兜帽披肩的暖装小冒险者:**圆头挖掘铲 + 冒险背包插旗朱旗 + 护目镜腰灯**,2026-09-23 特征批) · §5.5 八敌种逐卡 · §5.6 意图准备动画三档。
内容速览:§5.1 角色剪影与轮廓通道 · §5.2 头身比与体量档位 · §5.3 护甲类型视觉区分(候选,样张批冻结) · §5.4 主角三态规格(形象锚 = 蓝兜帽披肩的暖装小冒险者:**圆头挖掘铲 + 冒险背包插封印紫旗 + 护目镜腰灯**,2026-09-23 特征批) · §5.5 八敌种逐卡 · §5.6 意图准备动画三档。
---
@@ -468,6 +468,7 @@
## 版本历史
- **v2.9(2026-09-26)高墙瓦片体系定稿批**(高墙批全程收官,用户拍板;台账 163/164):§3.2 新增「高墙瓦片体系」条——未挖格=一整块 32×32 自含凸起岩体(方案甲核心定义)+术语(墙瓦片/地面瓦片)+墨线边界纪律(1px 深墨线直线零锯齿,职责=分隔不融合)+单一北受光(北缘 1px 微亮棱/南缘立面窄暗条/凹角角点+立面侧 1px 齐平收头),定稿=`game/assets/art/board/terrain_*` 21 枚;§8.5 增「生产分工」条——材质归模型(AI 只出无缝填充纹理)、结构归程序(autotile 拼接约束超 2D 生图能力,实证在案)+镜像规则(只许 flip_h 禁旋转)。条口径=样张批追认(与 §8.4 方向集先例同)。词表与查表逻辑、搜包评估记录归 design/research 两档;过程文档随批清退(中间产物不入库先例,台账 127)。
- **v2.10(2026-09-26)封印紫批**(用户拍板:插旗色 旗朱 #C63D22 → **封印紫 #7C3AA8**,色相 ≈267°):§4.1 旗朱条改写为封印紫条(候选值样张批冻结;禁入带合规+与魔法微光/妨害紫间距登记)、§4.2 红只说危险改单档(旗朱预告档退役)、§3.2 旗条/§1.4 验收 4/§4.3 不变槽/§3.2 变异互辨/§5.4 速览随批。**语义面**——封印自术语批(2026-09-25)获专属色相,红族收敛为危险红单档;攻击预告/弹道/拒绝等非封印红统一归危险红族(RED_MINE)。**连带**——character-design §5.4 背旗、battle.md 三处、关卡节点地图 Boss 描边、清单封印特效行随批;comfyui-prompts 生图卡颜色词随样张 v2 重生成。
- **v2.8(2026-09-25)可挖域接触带微光定稿批**(用户两拍板:①画法=接触带·空间侧——光画英雄格周界,正交邻墙=整边、斜向邻墙=角点+两半边;②色相=蓝族浅一档,顺路清偿旧 DIG_EDGE 绿相违 §4.2 绿禁则):§3.2 新增「可挖域接触带微光」条(画法/光只住空间一侧/角点不逐格归因、指认=悬停金框/呼吸与减动效守 §2.1/实现切换归表现批);§2.1 承载元素、§4.2 蓝条随批;battle.md 注记随批。背景=用户世界观口径「未开格=墙、已开格=挖出的空间」,微光=空间的灯光边界。
- **v2.7(2026-09-25)封印术语批**(用户拍板:Node2D 实现后「插旗」动作等价为**封印**——玩家对未开格插旗即对该格巢穴实施封印,旗 = 封印印记;机制键与规则全不变):§3.2 新增「旗(封印印记)」条——呈现语义/旗朱与栈位不变/封印特效(施印瞬间+印记常显形态)待表现批/现行占位 = 旗朱「旗」字形;§2.5 失败承载元素措辞随批(插过的旗 = 封印印记)。**登记面**——registry terminology 新增「封印」词条、00-游戏概念 术语层级专名表随收;连带同步:battle.md 呈现注记、art-assets-checklist §4 演出类新增封印特效两件(施印特效+印记常显)、art-status-checklist P3 行、character-design.md §5.4 插旗条注记(主角即插旗者)。**关联面**——可挖域接触带微光方案(用户同日提出:微光画英雄格周界接触面,正交整边/斜向角点+两半边)评估可行,实现归表现批,未入本批。
- **v2.6(2026-09-25)世界观对齐扫描批(甲档回填 + 完美排雷钩子收口 + 引用锚内联;用户三拍板)**:①**§4.6.4 敌种甲档回填数据实态**——bugbear(ward→light)/ ogre_chief(heavy→light)/ drider(heavy→ward),并注记甲档事实源 = `enemy.tres` armor_type(2026-09-18 甲重配批后 L1 全轻甲、L2 除 drider 外全轻甲、L3 duergar/duergar_king 重甲);连带修订 character-design.md §5.5(熊地精轻甲化/食人魔弃金属甲板改裸身皮条/卓尔改魔法甲符纹)与 comfyui-prompts.md v2.8(熊地精/食人魔/卓尔三卡提示词随改)——食人魔视觉重设计经用户拍板「按最新设定,裸身+魔法甲符纹」。②**§2.2 完美排雷钩子收口**——「若…落实…待 GDD 定夺」改现行事实(零误标且至少标中一面旗→追加第二份清图兑付+结算高光行,地图战斗资源 GDD 已定稿)。③**引用锚内联**——§3/§4 尾注 P1–P4 支柱语义内联(概念期 brainstorm 编号,现行 GDD 树不单列),§1.4 两处 game-concept 编号引用改语义内联。扫描背景=用户发起的圣经×关卡/世界观对齐审计;变异六类型/格面九类/状态九键/奖励 19 键/敌种八键/三柜台钥石/三关色板方向经核对全部一致,零其余不符。
+2 -2
View File
@@ -36,10 +36,10 @@
## 5.4 主角三态规格
- **形象锚** = 站姿样张先例(2026-09-16 脚本管线产物)经 2026-09-23 特征批+同日配装修订改定:**蓝兜帽冒险者(兜帽取下披于肩上)、暖米白上衣+深棕工装裤(弃全蓝)、白皙肤色、棕色短发、皮革背带腰带、圆头挖掘铲(待机插地扶柄)、结构式冒险背包插旗朱旗(1.5× 体宽)、额前护目镜、腰挂提灯、半指手套与卷裤脚皮护膝**;三态必须同形象(同 seed 起步只换动作短语,提示词卡承载)。
- **形象锚** = 站姿样张先例(2026-09-16 脚本管线产物)经 2026-09-23 特征批+同日配装修订改定:**蓝兜帽冒险者(兜帽取下披于肩上)、暖米白上衣+深棕工装裤(弃全蓝)、白皙肤色、棕色短发、皮革背带腰带、圆头挖掘铲(待机插地扶柄)、结构式冒险背包插封印紫旗(1.5× 体宽)、额前护目镜、腰挂提灯、半指手套与卷裤脚皮护膝**;三态必须同形象(同 seed 起步只换动作短语,提示词卡承载)。
- **兜帽披肩(2026-09-23 用户拍板)**:兜帽**不戴在头上**,取下披于肩上——露出棕色短发与整脸(表情可读),蓝色兜帽披在肩头仍是最近的"己方"识别点;三态同款披肩。
- **圆头挖掘铲(武器,2026-09-23 用户拍板)**:持铲不持剑——**铲 = 本作核心动词"挖安全格"的角色化**,挖掘与攻击共用同一动作语义(攻击表现即挥铲,后续攻击类表现优先围绕铲展开)。画法:圆头铲刃 + 木柄(木柄走木色族 `#8A5A34`,铲刃浅铁灰、不做冷灰重甲质感);**待机态 = 铲插立在地上、一只手扶在铲柄顶端**(2026-09-23 修订,原"拄于身侧"退役);攻击/受击态仍为手持。刀光/铲击光效/弹道不进精灵图(归战斗演出批另立资产)。
- **冒险背包与插旗(身份件,2026-09-23 用户拍板,同日尺寸修正)**:背负**结构式冒险背包**——翻盖+皮扣带的帆布背包(暖卡其布面,皮革件走木色族),**宽 ≈1.5× 体宽**:双肩背负、两侧各略超出身形一点;**禁圆麻袋化**(措辞弃"鼓胀掳获袋")、**禁特里式 3× 超宽**(反面参照:旷野之息特里;正面参照:合金弹头双主角大背包、超级马里奥奇诺比奥队长)。**旗杆插在背包一侧**(不要求完整可见,**被头部遮挡一部分亦可**),旗子**尺寸大于头部**(2026-09-23 修订,弃"背包顶小旗"旧稿),短杆三角旗旗面 = 圣经 §4.1 旗朱 `#C63D22`——**与棋盘插旗同物同色**,把"插旗宣告"的角色化焊在人设上,主角即插旗者(**插旗动作呈现名 = 封印**,2026-09-25 术语批,见 art-bible §3.2——背包旗 = 封印印记的携带形态)。三条纪律:①旗朱是"旗"的语义色借用,非服饰红(圣经 §4.2"红只说危险"以旗朱条目为准,负向提示词的 `red clothes` 不拦截正向的 `red flag`);②背包+旗 = 主角对 §5.1"对称"的**唯一破例组**(语义配件非装饰),旗面朝向恒定画右、跨素材一致;③轮廓凹凸预算按"背包+旗"整组记账,样张批(圣经 §1.4)验证背负后剪影仍窄、仍可辨、不超格宽。
- **冒险背包与插旗(身份件,2026-09-23 用户拍板,同日尺寸修正)**:背负**结构式冒险背包**——翻盖+皮扣带的帆布背包(暖卡其布面,皮革件走木色族),**宽 ≈1.5× 体宽**:双肩背负、两侧各略超出身形一点;**禁圆麻袋化**(措辞弃"鼓胀掳获袋")、**禁特里式 3× 超宽**(反面参照:旷野之息特里;正面参照:合金弹头双主角大背包、超级马里奥奇诺比奥队长)。**旗杆插在背包一侧**(不要求完整可见,**被头部遮挡一部分亦可**),旗子**尺寸大于头部**(2026-09-23 修订,弃"背包顶小旗"旧稿),短杆三角旗旗面 = 圣经 §4.1 封印紫 `#7C3AA8`——**与棋盘插旗同物同色**(旗朱 #C63D22 → 封印紫,2026-09-26 用户拍板),把"插旗宣告"的角色化焊在人设上,主角即插旗者(**插旗动作呈现名 = 封印**,2026-09-25 术语批,见 art-bible §3.2——背包旗 = 封印印记的携带形态)。三条纪律:①封印紫是"封印"的语义专属色,非服饰色(圣经 §4.2 旗朱条目已改封印紫条,负向提示词的 `purple clothes` 不拦截正向的 `purple flag`);②背包+旗 = 主角对 §5.1"对称"的**唯一破例组**(语义配件非装饰),旗面朝向恒定画右、跨素材一致;③轮廓凹凸预算按"背包+旗"整组记账,样张批(圣经 §1.4)验证背负后剪影仍窄、仍可辨、不超格宽。
- **护目镜与腰灯(2026-09-23 用户拍板,同日定案)**:**护目镜推在额前**(兜帽披肩后直接戴于额上,不戴眼上——眼睛是表情载体;皮革带+圆镜片,防尘挖掘者的职业信号);**提灯挂腰间,定案不手持**(小号铜色提灯,**不点亮**——守圣经 §2 平涂明度恒定,提灯禁做光源;头部饰品唯一化,头灯方案退役)。
- **衣着细节(2026-09-23 用户拍板)**:**棕色半指手套**(挖土护手,露指保灵巧读感)+ **裤脚卷起、棕色皮护膝**(挖掘跪地的工装感)——小件走皮革木色族,不占剪影凹凸预算,不新增语义色。
- **三态**:① 待机 = 窄、直立、对称(§5.1 小人原型,含背包、旗与提灯记账);② 攻击 = 允许破对称,整体仍窄、不超格宽;③ 受击 = 无血红、无伤害数字(伤害数字归 HUD 层,不进精灵图)。
@@ -64,7 +64,7 @@
每个节点在关卡内领一个**节点编号**(本文含义:关卡内不重复的序号,用来当战斗的定位地址;数据键沿用切片字段 `node_depth`)。Boss 的编号恒为全图最大——"最深处的房间是关底"这条直感由此保留。单链特例:一张每步只有一条连线的图就是一条链,此时节点编号等于它前面走过的战斗场数。第一关行集就是单链特例,切片代码零改动运行;分支图行集随第二关内容批落地(见 P1)。
呈现侧口径(2026-09-17 用户拍板):节点图的画面表达走**方块地牢观感**——节点画成地牢房间的方块、连线画成通道——但逻辑拓扑就是本文的节点图,不产生任何额外选路或探索语义。关卡画面本体即节点链进度的呈现载体(选路覆盖层的常驻形态,节点态直接读图:已过暗金 / 当前金 / 候选下一跳通道亮金 / Boss 旗朱描边),不另设进度条组件;视觉规格归 [HUD 框架](../表现与支撑/HUD框架.md)。
呈现侧口径(2026-09-17 用户拍板):节点图的画面表达走**方块地牢观感**——节点画成地牢房间的方块、连线画成通道——但逻辑拓扑就是本文的节点图,不产生任何额外选路或探索语义。关卡画面本体即节点链进度的呈现载体(选路覆盖层的常驻形态,节点态直接读图:已过暗金 / 当前金 / 候选下一跳通道亮金 / Boss 紫赤描边(旗朱→紫赤 2026-09-26 封印紫批)),不另设进度条组件;视觉规格归 [HUD 框架](../表现与支撑/HUD框架.md)。
### 行进与选路:兑付后确认,选路就是行进
+5 -4
View File
@@ -45,7 +45,7 @@
└─ 失败 → 冒险终结 → 返回存档/营地
```
战斗屏是**上下文相关屏**(仅由战斗节点进入),非顶层常驻。关卡内节点进度常驻关卡画面(选路覆盖层的常驻形态,节点态即进度呈现:已过暗金、当前金、候选通道亮金、Boss 旗朱描边),战斗屏零进度承载——战斗结束返回关卡画面,玩家始终知道自己身处图中第几环。
战斗屏是**上下文相关屏**(仅由战斗节点进入),非顶层常驻。关卡内节点进度常驻关卡画面(选路覆盖层的常驻形态,节点态即进度呈现:已过暗金、当前金、候选通道亮金、Boss 紫赤描边),战斗屏零进度承载——战斗结束返回关卡画面,玩家始终知道自己身处图中第几环。
- 上游屏:关卡节点图(分支节点图形态,切片第一关为单链特例)
- 下游屏:节点奖励/恢复覆盖层(NodeOverlay,已有 demo 组件——建议后续单独出 spec `design/ux/node-reward.md`)
@@ -124,7 +124,7 @@
> 布局为 B/C/D 三区——关卡进度条不在战斗屏(节点链进度常驻关卡画面,见 Navigation Position;字母不重编沿用 B/C/D)。
> 呈现术语注记(2026-09-25):插旗动作的玩家可见呈现名 = **封印**(registry terminology;旗 = 封印印记,art-bible §3.2)——机制与键名不变;封印特效未实装,现行占位 = 旗朱「旗」字形(board_view 程序化占位,贴图在位=字形退役)。
> 呈现术语注记(2026-09-25):插旗动作的玩家可见呈现名 = **封印**(registry terminology;旗 = 封印印记,art-bible §3.2)——机制与键名不变;封印特效未实装,现行占位 = 封印紫「旗」字形(board_view 程序化占位,贴图在位=字形退役;旗朱→封印紫 2026-09-26 用户拍板)。
> 可挖域微光画法定稿(2026-09-25 用户拍板):**接触带·空间侧 + 蓝族**——光画英雄格周界接触面(正交邻墙=整边,斜向邻墙=角点+两半边),详见 art-bible §3.2;现行墙格整框绿相呼吸为待退役占位,实现切换归表现批(探针断言随批)。
@@ -229,7 +229,7 @@
| **调试变体** | 测试模式 | TunePanel 入口(demo 保留,正式侧元进度退役);Playtest 诊断按钮(卡死转储) |
**拒绝/作废子态**(排雷玩法×6⑥、行动经济双源——每次拒绝玩家可感知):
- 棋盘面拒绝(sub_reason:非相邻/挖旗格等)→ 目标格 旗朱 #C63D22 边框闪 + toast 文案(图标+文案冗余,色弱清单 #7)
- 棋盘面拒绝(sub_reason:非相邻/挖旗格等)→ 目标格 危险红 #A8321F 边框闪 + toast 文案(拒绝语义红族——旗朱已退役归封印紫)(图标+文案冗余,色弱清单 #7)
- 资源面拒绝(AP 不足/RAP 不足)→ AP/RAP 数字脉冲 + toast「AP 不足 · 剩 0 点」
- voided(stop 被作废等)→ toast「本轮已清图,停手未执行 · 剩余 AP 已作废」——防静默改判读感欺骗
@@ -243,7 +243,7 @@
|---|---|---|---|---|
| 未开相邻格 | 挖掘 | 左键 | 格碎裂 + 连锁展开(免费)+ 奖励身份揭显 | 意图入当帧批次 → 排雷玩法 `settle_batch` |
| 已开格 | 移动 | 左键 | 悬停时路径预览高亮(布局决策 3);执行 ≤150ms 短滑 | 意图入批(BFS 移动,免费) |
| 未开格 | 插旗 | 右键 | 旗落下(旗朱) | 意图入批(1 AP / 免费;已旗格右键无操作——旗无移除手段,插旗不可逆批 2026-09-19) |
| 未开格 | 插旗 | 右键 | 旗落下(封印紫) | 意图入批(1 AP / 免费;已旗格右键无操作——旗无移除手段,插旗不可逆批 2026-09-19) |
| 停手按钮 | 主动结束轮次 | 左键 | 按钮下压 + AP→RAP 飞行数字 | `settle_batch([stop])`(**经排雷玩法批次,不直调行动经济**——单意图帧批次契约) |
| 弃图刷新按钮(雷图右上角) | 当轮就地换图继续挖 | 左键 | 确认微交互(RAP−8 代价显式 + 旧板弃置提示);RAP<8 → 资源面拒绝可见(行动经济 EC13) | `request_refresh`(**Active 相位当场换图继续挖**——AP 不重置、本轮剩 N 次扣减;**上游已修订受理——见布局决策 4/OQ11**) |
| 图例按钮 | 开图例 | 左键 | 模态 overlay | 恒可开(图例条目恒在) |
@@ -438,6 +438,7 @@
| 2026-09-23 | **停点前移批(冒险入口流程倒置修复,用户 2026-09-23 拍板;上位裁决 `docs/architecture/adr-0006-board-node2d-rendering.md` 与 `docs/architecture/board-node2d-migration-plan.md` §1,代码实装另批并行)**:① 布局四区 → 三区——删布局表 A 区关卡进度条行与 Component Inventory LevelStripView 行(LevelStripView 退役删除,节点链进度只留关卡画面,战斗屏零进度承载);C/D 底行 520 → 548;ASCII 线框图重绘为 B/C/D 三区;② 新流程口径落文——关卡画面(选路覆盖层常驻形态)为关卡内常驻枢纽:Navigation Position 图、到达语境、Entry 表、信息层级第 5 层、Data Requirements 节点图行改「关卡开始即出图选路、战后返回关卡画面再选路」;③ AC 四区措辞改三区。**批内代拍板三项已追认(2026-09-24 用户确认)**:① B/C/D 字母保持不重编;② 28px 纵向空间划归 C/D 底行(520 → 548);③ 关卡画面进度呈现由选路覆盖层节点态承载(暗金已过 / 金当前 / 亮金候选通道 / 旗朱 Boss)、不另设进度条组件 |
| 2026-09-23 | 实现注记(棋盘 Node2D 迁移批 Phase A,代码实装同批;上位裁决 ADR-0006):棋盘渲染 Node2D 化(BoardView = Control 壳 + SubViewportContainer + SubViewport + Node2D 世界,信号/click_cell/_cells 契约保持,新增 push_input 端到端输入探针);格尺寸公式锚点不变(set_cell_area = floor((min(宽,高) − 预留 − (N−1)×格间距) / N) 单点可调),布局与交互语义零改动 |
| 2026-09-26 | 实现注记(战斗舞台 Node2D 迁移批 Phase B,代码实装同批;上位裁决 ADR-0006):B 区战斗画面 Node2D 化(BattleStageView = Control 壳 + SubViewportContainer + SubViewport + Node2D 世界,站桩本体 StandeeBody 世界精灵;set_enemies/clear_enemies/on_step_row_fx/gray_all_enemies 等 setter 面签名保持,弹道落点锚点=壳层口径 world_to_shell 单点);状态图标行与悬停 tooltip 保留 Control 载体挂壳层;三区布局尺寸零改动(B 区外框 252px 逐位) |
| 2026-09-26 | **封印紫批**(用户拍板):插旗呈现色 旗朱 #C63D22 → 封印紫 #7C3AA8(色相 ≈267°,避开禁入带)——旗字形/已承诺封印框/旗化暴击弹道随批换色;拒绝边框闪语义归危险红;Boss 节点描边归紫赤本色。修订记录历史行旗朱字样系当时口径留痕不改 |
| 2026-09-26 | **战斗屏信息归属批(用户 2026-09-26 三轮纠偏后拍板;代码实装另批——hero_info_panel_view.gd / hud_presenter.gd 改造 + 探针断言迁移,登记待办)**:立两条信息归属原则并全屏贯行——①循环口径原则(战斗屏只展小循环内被消费、影响当下决策的数据;中/大循环资源不得入侵)②单一展示面原则(同一信息全屏唯一展示面;单位本体已承载的信息数据框不重复;资源数字贴唯一消费口)。随拍板落地:① B 区站桩 = HP 与状态效果唯一展示面——C 区 HP 条/HP 文字/立绘占位/状态效果槽×4 退役(重复展示;证据链 = hud_presenter.gd 同一 s.hero.hp/s.hero_effects 双投喂 B/C 两区);② RAP 读数(点阵+数字)迁 D 区 AP 条、置弃图刷新按钮旁(RAP 唯一消费口 = 弃图刷新——就近原则);③ C 区状态槽悬停 tooltip 职责并入 B 区站桩状态小图标;④ GP(中循环)/钥石(大循环)迁出战斗屏,去向挂 OQ14;⑤ C 区改「攻击数据框 + 魔法道具槽(预留)+ 本关强化列表(预留)」——预留区来自魔法道具与关卡内属性提升的既有立项;⑥ 空态/清零反馈/悬停交互/AC/§13 义务表载体同步改写。**批内遗留两项待拍板(OQ13/14)**:护甲 AC 是否补入 C 区数据框;GP/钥石去向 |
| 2026-09-26 | **信息归属二轮拍板(用户 2026-09-26,OQ13/14 收口)**:① 我方护甲 AC 补入 C 区攻击数据框(唯一展示面——布局表/组件清单/线框图同步);② GP/钥石去向定案:GP = 关卡画面常驻总量 + 战斗结算画面总量+增量,钥石 = 结算画面 + 营地(具体呈现归对应 UX spec 批次);③ 敌方 AC 展示面挂起——用户口径「敌方 AC 无任何展示」与现行代码冲突(standee_view.gd 底库名字行渲染「名字·护甲·AC%d」,系敌人技能池批克制对策可读性义务),证据链已呈报待终裁,本 spec 暂不改敌人站桩行 |
| 2026-09-26 | **敌方 AC 展示终裁收口(用户 2026-09-26 终裁)**:敌方 AC 数值全屏退役(任何区不直接展示)、护甲类型改图标方式展示(形状+色相双通道,终稿图标资产归美术批)、敌人站桩底座下名字行退回纯名字+护甲类型图标;旧「克制对策可读性义务」降级承载——类型保留、数值退役。终裁理由(用户口径):HP 信息已足够,攻防数值不直接写上;护甲类型图标保留克制对策可读性。同步改写:信息归属树敌人站桩行、Component Inventory 敌人站桩立绘行、OQ13。**代码实装说明**:`standee_view.gd` 改造(站桩名字行去 AC 数值 + 护甲类型图标化)由并行代码批执行,本批只做文档同步 |
+1 -1
View File
@@ -496,7 +496,7 @@ func _play_cross_zone_fx(row: Dictionary) -> void:
if to_v != null:
var crit := bool(row.get("crit", false))
settlement_fx.play_projectile(from_v, to_v, "⚔",
UiKit.GOLD if crit else UiKit.FLAG_RED, crit)
UiKit.GOLD if crit else UiKit.RED_MINE, crit)
"heal":
if String(row.get("target", "")) != "hero" and String(row.get("target", "")) != "":
return
+2 -2
View File
@@ -8,8 +8,8 @@ extends Control
const COL_GOLD := UiKit.GOLD
const COL_BOSS := UiKit.BOSS_PURPLE # 紫赤 #8F2F6A
const COL_FLAG := UiKit.FLAG_RED # 旗朱
const CONFETTI_COLS := [UiKit.GOLD, UiKit.FLAG_RED, UiKit.HERO_BLUE, UiKit.WARM]
const COL_FLAG := UiKit.SEAL_PURPLE # 封印紫(旗化暴击弹道——旗朱退役 2026-09-26)
const CONFETTI_COLS := [UiKit.GOLD, UiKit.SEAL_PURPLE, UiKit.HERO_BLUE, UiKit.WARM]
var _banner: Label
+2 -2
View File
@@ -33,7 +33,7 @@ const COL_BRICK := UiKit.BRICK # 未开——掩尘完整地砖
const COL_FLOOR := UiKit.FLOOR # 已开——裸土 #B39A78(碎裂裸露地面)
const COL_DIGIT := UiKit.INK # 数字——墨族 #33261B(对格底 ≥4.5:1 硬指标)
const COL_HERO := UiKit.HERO_BLUE # 小人边框——小人蓝 #2E6E8E
const COL_FLAG := UiKit.FLAG_RED # 旗朱 #C63D22
const COL_FLAG := UiKit.SEAL_PURPLE # 封印紫 #7C3AA8(旗朱退役——2026-09-26 用户拍板)
const COL_GOLD := UiKit.GOLD # 奖励金 #F0A828
const COL_PATH := UiKit.HERO_BLUE # 路径预览点迹——小人蓝细线
const COL_CONTACT := UiKit.CONTACT_GLOW # 接触带微光基色(蓝族浅一档·近白蓝——§3.2 v2.8;旧绿相退役 2026-09-26)
@@ -565,7 +565,7 @@ func _apply_hover_visuals(c: Vector2i) -> void:
_set_cursor_shape(c, CURSOR_DIG)
elif flag:
u.hl_visible = true
u.hl_color = COL_FLAG # 已承诺旗标记(旗朱;无交互可供——拔旗已退役)
u.hl_color = COL_FLAG # 已承诺封印标记(封印紫;无交互可供——拔旗已退役)
_set_cursor_shape(c, Input.CURSOR_FORBIDDEN)
else:
u.hl_visible = true
+2 -2
View File
@@ -19,7 +19,7 @@ const COL_ROOM_CURRENT := UiKit.GOLD # 当前——奖励金
const COL_ROOM_FUTURE := UiKit.DARK_UPCOMING # 未达——暗
const COL_PASSAGE := UiKit.STONE # 通道——石灰
const COL_PASSAGE_LIT := UiKit.GOLD_LIT # 候选通道——亮金
const COL_BOSS_BORDER := UiKit.FLAG_RED # Boss 边框——旗朱
const COL_BOSS_BORDER := UiKit.BOSS_PURPLE # Boss 边框——紫赤(色相独占本色;旗朱退役 2026-09-26)
const NODE_LABELS := {"battle": "战", "reward": "赏", "rest": "疗", "boss": "王", "shop": "商"} # 商 = GP+商店房实施批 2026-09-21
var _runner = null
@@ -51,7 +51,7 @@ func _init() -> void:
_btn_box.add_theme_constant_override("separation", 6)
box.add_child(_btn_box)
abandon_btn = UiKit.button("🏳 放弃冒险(同失败结算——已获大奖励保留)")
abandon_btn.add_theme_color_override("font_color", UiKit.FLAG_RED)
abandon_btn.add_theme_color_override("font_color", UiKit.RED_MINE) # 破坏性动作红(危险红族)
abandon_btn.pressed.connect(_emit_abandon)
abandon_btn.visible = false
box.add_child(abandon_btn)
+1 -1
View File
@@ -168,7 +168,7 @@ func set_pending(ptype: String, pid: String) -> void:
queue_redraw()
return
var glyph := "⚔" # 攻击系(damage)
var col: Color = UiKit.FLAG_RED
var col: Color = UiKit.RED_MINE # 攻击预告红(危险红族——旗朱退役 2026-09-26,预告语义归封印紫独占)
if ptype == "buff":
glyph = "✦" # 增益系
col = UiKit.HERO_BLUE
+1 -1
View File
@@ -9,7 +9,7 @@ extends Control
const LIFE_SEC := 2.5
const MAX_SLOTS := 3
const COL_INFO := UiKit.INK
const COL_WARN := UiKit.FLAG_RED # 旗朱族——拒绝/作废
const COL_WARN := UiKit.RED_MINE # 危险红族——拒绝/作废(旗朱退役 2026-09-26)
const COL_GOLD := UiKit.GOLD_DEEP # 奖励金族——提示/达成(深金档)
var _slot_box: VBoxContainer
+3 -1
View File
@@ -23,7 +23,9 @@ const GOLD_DEEP := Color8(176, 122, 20) # 深金(金框描边/达意金
const GOLD_LIT := Color8(230, 190, 90) # 亮金(候选高亮)
const GOLD_DIM := Color8(140, 116, 60) # 暗金(已过节点)
const FLAG_RED := Color8(198, 61, 34) # 旗朱
const SEAL_PURPLE := Color8(124, 58, 168) # 封印紫 #7C3AA8——封印(插旗)宣告色,色相 ≈267°(2026-09-26
# 用户拍板旗朱→封印紫;避开 300°-345° 禁入带,与魔法微光 256°/
# 妨害紫 281° 各留 12-14° 间距;候选值样张批冻结;旗朱 #C63D22 退役)
const RED_DEEP := Color8(150, 60, 48) # 深朱(敌卡框/敌像)
const RED_MINE := Color8(150, 44, 36) # 引爆雷字朱(已开雷格"雷"字)
const RED_FORBID := Color8(120, 60, 50) # 禁止框朱
+2 -1
View File
@@ -482,4 +482,5 @@
180. **「兄弟精」变体名全仓清除批(2026-09-26,本会话——用户质问「我什么时候允许有兄弟精了」后查证、拍板方案 A;纯措辞零行值零提交,worktree 不适用)**:查证结论——「兄弟精」系 2026-09-17 L2 幽暗地域内容批(072dc43)AI 自拟的部族变体名(当时拟名「巴布精」),用户当日裁决只覆盖实体同一性(兄弟精=熊地精 bugbear、display_name 回归熊地精系、巴布精废弃),「兄弟精」三字作为名字本身无任何用户批准记录,其后各批(smoke 标签 09-18→提示词卡 09-20/22→圣经 §4.6.4/§5→远程单 09-26)当既有术语扩散至 13 文件——用户质问成立。**方案 A 落地=清除 22 处命中(12 文件改「L2 熊地精」口径)**:art-bible §4.6.4 敌种键集行、comfyui-prompts §3.9 卡改名「L2 熊地精(第二关变体)」+候选纪律/显示名/验收速查三处、remote-gen-prompts §2.9 整节并回 §2.2 熊地精卡(派生换色规则原文保留)+改写保真对照计数措辞去「九张」、art-assets-checklist 三处、art-status-checklist 一处、character-design 表行+注两处、难度曲线 L2 图版注记整行改写(「用户 09-17 确认」表述改「L2 三行复用 bugbear、显示名熊地精系(2026-09-17 用户拍板)」——只保留实体同一性裁决语义)、entities.yaml L2 批注、enemy.tres 注释三处、skills.tres 注释一处、smoke_all.gd 标签「L2 · 熊地精」+池模板断言文案、design/research 第三关提案一处;**防复发闸**=doc_term_audit.py 词表新增「兄弟精」行(继任口径 L2 熊地精)。**豁免面(历史留痕纪律,grep 残留全为历史记录)**=active.md 台账 65/67/114/125/129/168/176 八处+各文档版本历史四处(art-bible v1.6/comfyui v2.0·v1.0/难度曲线 v0.7)+loop-dashboard.html 快照嵌入一处;如需连历史一并改写另等指令。**验证**——冒烟 557/0 三闸全过+doc 三闸基线一致(死链 7=7 既有全在 ux/battle.md/gdd_lint 8 文件既有/term 疑似 1 既有);玩家可见文本零影响(enemy.tres display_name 本就无该词);台账撞号注记=176/178 各有并行会话重号在案,本批取 180。
181. **错位修复+入场演出批(2026-09-26,本会话——用户令「能修的直接修」;worktree entrance-fix-20260926)**:①**B 区字形双重偏移 bug 修复**(T3 引入的实机缺陷——截图取证敌人立绘区空白真因:draw_set_transform 原点已置 center,draw_string 又传 center 相对量=双重偏移画到盒外;探针只查属性不查像素故十一断言全绿仍漏)——字形/意图徽标两处改传变换后局部坐标,**截图复验**:▂占位字形与 ⚔ 意图徽标落回立绘盒正确位置。②**入场演出补实装**(battle.md Transitions 规约有代码无的欠账)——install 淡入 200ms 全板 modulate+R0 格按离板心距离逐格延迟显形涟漪;减动效减半;弃图换图重入先杀旧 tween;纯视觉 alpha 零输入影响。**验证**——editor --quit 0 error+冒烟 557/0+四探针绿+MC 12 局 sha256=de8225b3 逐位一致+static_scan exit0+截图复验两处。
182. **界面微调批(2026-09-26,本会话——用户实机五反馈之③④⑤落码+②登记+①答疑;worktree ui-tweak-20260926)**:①**状态图标槽底不透明**(反馈④「icon 不清晰」)——compact 槽底半透明 0.18 黑叠米色面板吃掉白图标对比→SLOT_BACKDROP 深墨棕 #342C24 实底(ui_kit 新常量)。②**悬停金框减淡**(反馈⑤「黄色微光框太明显」)——CellUnit 绘制时 alpha 0.55(hl_color 属性与探针断言面不动)。③**C 区布局充实**(反馈③「底部空太多」)——区段间距 6→14/数据行 14→16px 装直角细线数据框(battle.md C 区行规格落形)/道具槽 40→48px/标题字级放大。④**数字呈现优化登记 06**(反馈②「太丑只能临时」)——色牌=临时档备忘,终稿方案归样张 v2 后表现批,可读性硬指标不放松。⑤**危险红答疑**(反馈①)——旗朱 #C63D22=预告档(插旗宣告),危险红 #A8321F=兑现档(挖开是雷的巢穴呈现),游戏内雷字用 RED_MINE #963C30 同族——§4.1/§4.2 双红体系既有设计非新色。**验证**——editor --quit 0 error+冒烟 557/0+探针(见下)+MC 逐位一致。
182. **界面微调批(2026-09-26,本会话——用户实机五反馈之③④⑤落码+②登记+①答疑;worktree ui-tweak-20260926)**:①**状态图标槽底不透明**(反馈④「icon 不清晰」)——compact 槽底半透明 0.18 黑叠米色面板吃掉白图标对比→SLOT_BACKDROP 深墨棕 #342C24 实底(ui_kit 新常量)。②**悬停金框减淡**(反馈⑤「黄色微光框太明显」)——CellUnit 绘制时 alpha 0.55(hl_color 属性与探针断言面不动)。③**C 区布局充实**(反馈③「底部空太多」)——区段间距 6→14/数据行 14→16px 装直角细线数据框(battle.md C 区行规格落形)/道具槽 40→48px/标题字级放大。④**数字呈现优化登记 06**(反馈②「太丑只能临时」)——色牌=临时档备忘,终稿方案归样张 v2 后表现批,可读性硬指标不放松。⑤**危险红答疑**(反馈①)——旗朱 #C63D22=预告档(插旗宣告),危险红 #A8321F=兑现档(挖开是雷的巢穴呈现),游戏内雷字用 RED_MINE #963C30 同族——§4.1/§4.2 双红体系既有设计非新色。**验证**——editor --quit 0 error+冒烟 557/0+探针(见下)+MC 逐位一致。
185. **封印紫批(2026-09-26,本会话——用户拍板「插旗朱→封印紫」;worktree seal-purple-20260926)**:①**色值**=SEAL_PURPLE `#7C3AA8`(色相 ≈267°:避开 300°-345° 禁入带、与魔法微光 256°/妨害紫 281° 各留 12-14° 间距——样张批互辨抽测追认;候选值,旗朱 #C63D22 退役)。②**代码八处分流**——ui_kit FLAG_RED 常量退役换 SEAL_PURPLE;board_view COL_FLAG(旗字形+已承诺封印框);board_fx 标中旗弹道+彩纸;**非封印红分流危险红族 RED_MINE**:standee ⚔ 攻击预告/main 伤害弹道/toast 拒绝警告/route 放弃按钮;route Boss 边框=BOSS_PURPLE 紫赤本色(语义更贴)。③**文档五份**——art-bible v2.10(§4.1 封印紫条/§4.2 红单档/§3.2 旗条/§1.4/§4.3 不变槽/变异互辨/§5.4 速览+版本行)、battle.md 四处+修订行、关卡节点地图 Boss 描边(v1.2 历史行留痕)、character-design §5.4 背旗三处(含负向词 red flag→purple flag)、checklist 封印特效行;**comfyui-prompts 生图卡颜色词不在本批**——随样张 v2 重生成(分栏冻结纪律)。④样张脚本 FLAG_RED→SEAL_PURPLE 同步(v2 重制前工具一致)。**验证**——editor --quit 0 error+冒烟 557/0(FLAG_RED 全仓零残留)+探针+MC 逐位一致(见下)。
+5 -5
View File
@@ -57,7 +57,7 @@ INK_COLD = (19, 46, 54) # 青墨 1-3 #132E36
INK_OCHRE = (60, 37, 12) # 赭墨 4-5 #3C250C
INK_RUST = (74, 30, 20) # 锈墨 6-8 #4A1E14
PLATE = (245, 234, 211) # 数字色牌 #F5EAD3
FLAG_RED = (198, 61, 34) # 旗朱 #C63D22
SEAL_PURPLE = (124, 58, 168) # 封印紫 #7C3AA8(旗朱退役 2026-09-26)
DANGER_RED = (168, 50, 31) # 危险红 #A8321F
REWARD_GOLD = (240, 168, 40) # 奖励金 #F0A828
HERO_BLUE = (46, 134, 222) # 小人蓝 #2E86DE(候选,样张批冻结——对照表 §5.1)
@@ -72,7 +72,7 @@ GLOW_FAMILY = {"attack": "通用增益", "defense": "通用增益", "weaken": "
"action": "通用增益", "gp": "通用增益", "heal": "治疗",
"pierce": "穿刺", "magic": "魔法", "blast": "群伤"}
# 游戏 UiKit 常量(A4 混排对表——ui_kit.gd 实测值)
UIKIT = {"INK": INK, "FLAG_RED": FLAG_RED, "GOLD": REWARD_GOLD, "RED_MINE": RED_MINE,
UIKIT = {"INK": INK, "FLAG_RED": SEAL_PURPLE, "GOLD": REWARD_GOLD, "RED_MINE": RED_MINE,
"PANEL_STAGE": (216, 200, 172), "PANEL_HERO": (232, 220, 196),
"PANEL_DATA": (226, 210, 182), "PANEL_BORDER": (120, 106, 88),
"BRICK": (201, 175, 131), "FLOOR": (179, 154, 120)}
@@ -448,7 +448,7 @@ def render_main_board():
d = ImageDraw.Draw(board)
px, py = fx0 + cell // 2 - 2, fy0 + 8
d.line([(px, py), (px, fy0 + cell - 10)], fill=(222, 210, 186), width=3)
d.polygon([(px, py), (px + 18, py + 6), (px, py + 12)], fill=FLAG_RED) # 旗面恒画右
d.polygon([(px, py), (px + 18, py + 6), (px, py + 12)], fill=SEAL_PURPLE) # 旗面恒画右
d.ellipse([px - 3, fy0 + cell - 12, px + 3, fy0 + cell - 6], fill=INK)
# 雷格巢穴(已开,程序占位——素材缺口,画面内标注)
@@ -671,7 +671,7 @@ def run_checks(board, placement, records, band, gmap, canvas_img=None):
"违例格 %s" % viol if viol else "五格中心区全净")
# A1 色板对表 + 禁入带扫描
frozen = {"INK": INK, "青墨": INK_COLD, "赭墨": INK_OCHRE, "锈墨": INK_RUST, "PLATE": PLATE,
"旗朱": FLAG_RED, "危险红": DANGER_RED, "奖励金": REWARD_GOLD}
"旗朱": SEAL_PURPLE, "危险红": DANGER_RED, "奖励金": REWARD_GOLD}
check("A1a", "色板对表圣经 §4.1 冻结值", True, "%s" % {k: "#%02X%02X%02X" % v for k, v in frozen.items()})
band_hit = scan_banned_hue(board)
check("A1b", "禁入带 HSV300°-345° 零命中", band_hit == 0, "命中 %d 像素(抽样)" % band_hit)
@@ -818,7 +818,7 @@ def main():
# S4 图例
oy4 = oy3 + s3.size[1] + 30
x = 20
for name, rgb in [("旗朱", FLAG_RED), ("危险红", DANGER_RED), ("奖励金", REWARD_GOLD),
for name, rgb in [("封印紫", SEAL_PURPLE), ("危险红", DANGER_RED), ("奖励金", REWARD_GOLD),
("小人蓝(候选)", HERO_BLUE), ("接触带微光(候选)", CONTACT_GLOW)]:
d.rectangle([x, oy4, x + 34, oy4 + 34], fill=rgb, outline=(90, 80, 66))
d.text((x - 4, oy4 + 38), name, col=(225, 215, 195), font=F_LBL2) if False else d.text((x - 4, oy4 + 38), name, font=F_LBL2, fill=(225, 215, 195))