From 3fb6bd2180681577a4e938c0bb4c4ea4dbeb5db4 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Fri, 18 Sep 2026 02:36:54 +0800 Subject: [PATCH] =?UTF-8?q?docs(meta):=20=E6=96=87=E6=A1=A3vs=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E4=B8=80=E8=87=B4=E6=80=A7=E5=AE=A1=E8=AE=A1=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E6=89=B9=E6=94=B6=E7=BC=96=EF=BC=88=E6=AD=A4=E5=89=8D?= =?UTF-8?q?=E4=BC=9A=E8=AF=9D=E9=81=97=E7=95=99=E6=9C=AA=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=EF=BC=89=E2=80=94=E2=80=94registry=20mvp=5Fcontent=20=E6=95=B0?= =?UTF-8?q?=E5=80=BC=E5=88=97=E6=8C=87=E8=B7=AF=E5=8C=96+=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E8=A1=8C=E5=90=8C=E6=AD=A5=E3=80=81ux/battle=20UI=20?= =?UTF-8?q?=E7=A4=BA=E6=84=8F=E6=96=87=E6=9C=AC=E9=9A=8F=E6=95=B0=E5=80=BC?= =?UTF-8?q?=E5=8E=8B=E7=BC=A9=E6=89=B9=E5=90=8C=E6=AD=A5=EF=BC=88atk=209?= =?UTF-8?q?=E2=86=923/=E4=BC=8F=E5=87=BB+3=E2=86=92+1=EF=BC=89=E3=80=81doc?= =?UTF-8?q?-conventions=20=C2=A75=20=E6=95=B0=E5=80=BC=E7=BA=AA=E5=BE=8B?= =?UTF-8?q?=E5=BC=BA=E5=88=B6=E6=94=B6=E5=8F=A3=E6=9D=A1=E6=AC=BE=E6=88=90?= =?UTF-8?q?=E6=96=87=EF=BC=88=E5=8F=8C=E5=86=99=E5=A4=B1=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E7=A6=81=E6=AD=A2+=E8=B0=83=E5=8F=82=E8=A1=A8=E5=88=A0?= =?UTF-8?q?=E7=8E=B0=E8=A1=8C=E5=80=BC=E5=88=97+=E4=BA=94=E6=AD=A5?= =?UTF-8?q?=E6=94=B6=E5=8F=A3=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- design/registry/entities.yaml | 59 ++++++++++++++++++----------------- design/ux/battle.md | 2 +- docs/doc-conventions.md | 2 +- 3 files changed, 32 insertions(+), 31 deletions(-) diff --git a/design/registry/entities.yaml b/design/registry/entities.yaml index 3e3b347d..38ab0585 100644 --- a/design/registry/entities.yaml +++ b/design/registry/entities.yaml @@ -124,17 +124,17 @@ entities: stack_policy: enum {stack, refresh, independent} max_stack: int [1,16](仅 stack 消费——refresh/independent 行内容约定恒 1,非校验项) mvp_content: - attack_up: { display_name: 增伤, target_side: hero, magnitude: "+50 percent", duration_settlements: 1, max_stack: 2, stack_policy: stack, source_class: safe_cell } # 2026-09-11 两级奖励批 D=2→1(当次结算语义) - ac_up: { display_name: 护甲强化, target_side: hero, magnitude: "+1 ac", duration_settlements: 1, max_stack: 2, stack_policy: stack, source_class: safe_cell } # 2026-09-16 护甲等级掷点批换装(原 defense_up 减伤 −30 percent ×2 层整行退役、无双轨——历史:2026-09-11 两级奖励批 D=2→1;2026-09-13 减伤墙批 −50→−30);unit=ac 新量纲(护甲等级阈值轴 [−20,20] 且非 0),不入 effect_pool_map 任何池,消费面 = 战斗结算掷点判定(AC10 基准 + 层数×幅度;EV 期望减免 AC10 21.25% / AC12 28.75%) - ambush: { display_name: 伏击(敌方增益), target_side: enemy, magnitude: "+3 flat", duration_settlements: 1, max_stack: 16, stack_policy: stack, source_class: mine_hit } - weaken: { display_name: 削弱(标中旗 debuff), target_side: enemy, magnitude: "-65 percent", duration_settlements: 1, max_stack: 16, stack_policy: stack, source_class: flag_hit } - enrage: { display_name: 暴走(敌方增伤), target_side: enemy, magnitude: "+25 percent", duration_settlements: 1, max_stack: 16, stack_policy: stack, source_class: flag_miss } # 2026-09-12 标错反噬批上线——三池之一(进 enemy_output 池) - off_guard: { display_name: 失衡(我方承伤加深), target_side: hero, magnitude: "+25 percent", duration_settlements: 1, max_stack: 16, stack_policy: stack, source_class: flag_miss } # 2026-09-12 标错反噬批上线——三池之一(进 hero_defense 池,承伤 ×1.25);2026-09-15 格面资源批起 = defense 型负向(标错 defense 型安全格 / 踩到 defense 型雷格兑付) - sapped: { display_name: 乏力(我方输出降低), target_side: hero, magnitude: "-25 percent", duration_settlements: 1, max_stack: 16, stack_policy: stack, source_class: flag_miss } # 2026-09-15 格面资源批新增——weaken 型负向(标错 weaken 型安全格 / 踩到 weaken 型雷格兑付),进 hero_offense 池(attack_up 镜像);值 provisional - empower: { display_name: 蓄力(敌方输出 ×2), target_side: enemy, magnitude: "+100 percent", duration_settlements: 2, max_stack: 1, stack_policy: refresh } # 2026-09-16 敌人技能池批新增——蓄力技载体(敌方增益技施放,source_class=enemy_action),进 enemy_output 池;duration 2 = 1 个有效增益拍(先兑付后衰减含施放当轮);值 provisional - fortify: { display_name: 硬化(敌方防御 +100), target_side: enemy, magnitude: "+100 percent", duration_settlements: 2, max_stack: 1, stack_policy: refresh } # 2026-09-16 敌人技能池批新增——硬化技载体(Boss 池独占),进 enemy_defense 新池(敌方防御池:主角攻击乘区消费面归 战斗结算);duration 2 = 1 个有效增益拍;值 provisional - value_status: 七行值全部 provisional(2026-09-15 四行→六行——标错反噬批 enrage/off_guard 两行收编;六行→七行——格面资源批 sapped 收编为 weaken 型负向;伏击复用为反噬第三池项〔现为 blast 型负向〕;**2026-09-16 护甲等级掷点批:defense_up 行退役换装 ac_up〔护甲强化 +1 ac ×2 层〕——行数不变、一行换装,ac 幅度暂定值随掷点批定稿),验收锚——weaken→行动经济 F1 条款 2(地图战斗资源/战斗结算)· ambush 量纲→敌人系统(条款 3,**量纲已定稿见 ambush_unit_definition**)· 对照表→战斗结算(条款 1)· **weaken 已按 战斗结算 F0 裁决修订 −25→−65(2026-09-10,值域 [60,85]、终值共裁 战斗结算 OQ2——见 anchor_warning 回执)** - ambush_unit_definition: **量纲已定稿(2026-09-09 敌人系统 GDD Rule 6/F2——registry OQ2 关闭条件兑现)**:+3 flat = 每层伏击为每次攻击类行为(attack/heavy)附加 3 点主角 HP 伤害(后置加法、不进倍乘);charge 拍零兑付(空拍蒸发);值仍 provisional(锚验收归 地图战斗资源/战斗结算——行动经济 F1 条款 3;敌人系统 供给 cap 表值与单结算自然边界口径见 clause3_supply 条目) + attack_up: { display_name: 增伤, target_side: hero, unit: percent, duration_settlements: 1, max_stack: 2, stack_policy: stack, source_class: safe_cell, magnitude_ref: data/tables/status_effects.tres } # 2026-09-17 数值压缩批·文档同步:magnitude 从现行值列改指路存根(数值事实源 = data/tables/status_effects.tres);schema 字段保留以承载元数据 + ac_up: { display_name: 护甲强化, target_side: hero, unit: ac, duration_settlements: 1, max_stack: 2, stack_policy: stack, source_class: safe_cell, magnitude_ref: data/tables/status_effects.tres } # 2026-09-16 护甲等级掷点批换装(原 defense_up 减伤 −30 percent ×2 层整行退役、无双轨——unit=ac 新量纲〔护甲等级阈值轴 [−20,20] 且非 0〕,不入 effect_pool_map 任何池,消费面 = 战斗结算掷点判定);2026-09-17 数值压缩批:magnitude 改指路存根 + ambush: { display_name: 伏击(敌方增益), target_side: enemy, unit: flat, duration_settlements: 1, max_stack: 16, stack_policy: stack, source_class: mine_hit, magnitude_ref: data/tables/status_effects.tres } # 2026-09-17 数值压缩批:magnitude +3 → +1 flat(量纲未变,参见 status_effects.tres ambush_unit_definition) + weaken: { display_name: 削弱(标中旗 debuff), target_side: enemy, unit: percent, duration_settlements: 1, max_stack: 16, stack_policy: stack, source_class: flag_hit, magnitude_ref: data/tables/status_effects.tres } # 2026-09-17 数值压缩批:magnitude 改指路存根 + enrage: { display_name: 暴走(敌方增伤), target_side: enemy, unit: percent, duration_settlements: 1, max_stack: 16, stack_policy: stack, source_class: flag_miss, magnitude_ref: data/tables/status_effects.tres } # 2026-09-12 标错反噬批上线——三池之一(进 enemy_output 池);2026-09-17 数值压缩批:magnitude 改指路存根 + off_guard: { display_name: 失衡(我方承伤加深), target_side: hero, unit: percent, duration_settlements: 1, max_stack: 16, stack_policy: stack, source_class: flag_miss, magnitude_ref: data/tables/status_effects.tres } # 2026-09-12 标错反噬批上线——三池之一(进 hero_defense 池);2026-09-15 格面资源批起 = defense 型负向;2026-09-17 数值压缩批:magnitude 改指路存根 + sapped: { display_name: 乏力(我方输出降低), target_side: hero, unit: percent, duration_settlements: 1, max_stack: 16, stack_policy: stack, source_class: flag_miss, magnitude_ref: data/tables/status_effects.tres } # 2026-09-15 格面资源批新增——weaken 型负向,进 hero_offense 池;2026-09-17 数值压缩批:magnitude 改指路存根 + empower: { display_name: 蓄力(敌方输出 ×2), target_side: enemy, unit: percent, duration_settlements: 2, max_stack: 1, stack_policy: refresh, source_class: enemy_action, magnitude_ref: data/tables/status_effects.tres } # 2026-09-16 敌人技能池批新增——蓄力技载体,进 enemy_output 池;duration 2 = 1 个有效增益拍;2026-09-17 数值压缩批:magnitude 改指路存根 + fortify: { display_name: 硬化(敌方防御 +100), target_side: enemy, unit: percent, duration_settlements: 2, max_stack: 1, stack_policy: refresh, source_class: enemy_action, magnitude_ref: data/tables/status_effects.tres } # 2026-09-16 敌人技能池批新增——硬化技载体(Boss 池独占),进 enemy_defense 新池;2026-09-17 数值压缩批:magnitude 改指路存根 + value_status: 九行值全部 provisional;**2026-09-17 数值压缩批·文档同步——mvp_content 数值列改指路存根(magnitude_ref 指向 data/tables/status_effects.tres)**,schema 字段(unit / duration_settlements / max_stack / stack_policy / source_class)保留以承载元数据;行值历史轨迹:六行→七行(格面资源批 sapped 收编为 weaken 型负向;2026-09-16 护甲等级掷点批:defense_up 行退役换装 ac_up〔行数不变、一行换装〕);七行→九行(2026-09-16 敌人技能池批:empower + fortify 收编);**2026-09-17 数值压缩批:ambush magnitude +3 → +1 flat(量纲未变——见 ambush_unit_definition)**。验收锚:weaken→行动经济 F1 条款 2(地图战斗资源/战斗结算)· ambush 量纲→敌人系统(条款 3,量纲已定稿见 ambush_unit_definition)· 对照表→战斗结算(条款 1)· weaken 已按 战斗结算 F0 裁决修订 −25→−65(2026-09-10,值域 [60,85]、终值共裁 战斗结算 OQ2——见 anchor_warning 回执) + ambush_unit_definition: **量纲已定稿(2026-09-09 敌人系统 GDD Rule 6/F2——registry OQ2 关闭条件兑现)**:每层伏击 = 每次攻击类行为(attack/heavy)附加 magnitude 主角 HP 伤害(后置加法、不进倍乘);charge 拍零兑付(空拍蒸发);**2026-09-17 数值压缩批——magnitude +3 → +1,量纲未变**;值仍 provisional(锚验收归 地图战斗资源/战斗结算——行动经济 F1 条款 3;敌人系统 供给 cap 表值与单结算自然边界口径见 clause3_supply 条目) anchor_warning: weaken 行 vs 行动经济 F1 条款 2 锚两独立线性代理同向预检不过(百分点·结算暴露 25 vs 100;原型战斗量级 ≈1 vs ≈4 当量)——战斗结算 对照验收优先裁决,登记 战斗结算 强制检查点输入。**修复空间不对称(2026-09-09 增补)**:每结算瞬时当量归一 m_w≥51 可行(F2 越域界随移 AP 界 −408%/表界 −816%);每 AP 总暴露归一 m_w>100 被 percent ∈ [-100,100] 域禁止(该分支不可行)——OQ1 前置步骤:战斗结算 先钉死归一口径,口径落定前禁止数值修订;落总暴露则现实解 = 地图战斗资源 重定最低档参照。**参照对象迁移注记(2026-09-09 地图战斗资源 评审;2026-09-11 回迁)**:最低档安全格 buff 当量的参照对象曾迁 defense_up 当量(attack_up 时为死行——地图战斗资源 F4 迁移)——**2026-09-11 用户裁决"基础攻击恒存在"(HeroTable.atk 域 [1,999]、0 加载拒绝、MVP=6)后 attack_up 复活,参照对象回迁 attack_up 当量**(消费面 = 主角战斗段先手攻击——战斗结算 GDD 同批;defense_up 迁移退役为历史记录,attack_up 入池时 tier_min_buff 重算);本条与 clause3_supply.direction_precheck 的 25 vs 100 预检算术系 attack_up 口径历史登记——defense_up |−50|×dur2 与 attack_up 数值巧合全等(100pp),今日结论不变;**迁移后预检未按新参照重跑**的义务已于 2026-09-14 战斗结算 重算批兑现(F0/F1 按 attack_up 当量重跑 + F1 锚对照实物改 attack_up 行——本迁移注记关闭)。**F0 裁决回执(2026-09-10 战斗结算 GDD——红警关闭)**:归一口径 = **每结算瞬时当量**(总暴露分支被 percent schema 域禁止 + 与"单结算自然边界"已锁事实冲突,排除);m_w 修订 −25 → **值域 [60,85]/默认 −65**(mvp_content.weaken 已同批改写——锚两腿 @D_ref=12:7.8 > 6.0 严格大于 ✓ / 7.8 ≥ E_dig 4.5 ✓〔E_dig 读数 2026-09-14 战斗结算 重算批按 难度曲线与Boss v3 曲线重推——原 7.2 随口径退役〕);地板 = 乘数零点 −100pp、交叉层数 = ⌈100/m_w⌉ = 2(原"7 层触地板"预读按 −400% 合成带估读,更正);defense_up 参照保持(总暴露分支的"重定参照"现实解未采纳);终值 = 地图战斗资源/战斗结算 共裁(战斗结算 OQ2);增益状态 GDD 正文不改以本条为准(收编先例) rule4_exemption: 定义表非进度成长表,键 = effect_id(数据配置 Rule 4 豁免,schema 注释承载) single_enemy_assumption: **回验结果 = 不成立——敌人系统 定多敌(用户 2026-09-09 拍板;同日 敌人系统 GDD 兑现 增益状态 预授权接口漂移条款)**:MVP 战斗 = 1–3 个同敌种敌单位(EnemyTable.unit_count);效果 side-wide 语义改"全体存活敌单位"(层数 = side 共享池,**增益状态 现接口零变更兼容**);target_ref(单体寻址)= 扩展位义务——首个单体效果上线时 增益状态 补列(随批:战斗结算 归集语义/HUD框架 呈现裁决);增益状态 GDD 正文不改,以本条为准(行动经济 OQ5 收编先例) @@ -157,7 +157,7 @@ entities: metrics: 生成期指标集四项 = 实际 inferability(metric_version)/实际雷数与实际 |S|(增益状态——先布后删漂移观测,|M|≤N)/attempts_used/降级标记(shortfall+非法产物) batch_assertions: F4 调参期(N=256/行默认,σ(L,D)=10^9+2^20·L+2^12·D——R4 修订防碰撞,版本库清单)——断言 A 可推理率**严格零**/A″ target ≥ 0.85 绝对下限(战斗结算)/A′ 非法产物零容忍/**B 达成区数=count 板占比 ≥ 0.95(B6 修订收紧——降级率上限)**/E 难度方向 advisory(R2,monotone_in_depth 标记字段);报告 C 按行 p10/p50/p90 inferability_vs_p_safe: "inferability 是盘面级免赌占比(生成侧);P(安全) 是单格认知概率(决策侧、经济口径)——免赌集内 P(安全)≡1,风险收缩到残余集(占比 ≤1−inferability);inferability 是 P(安全) 的生成端结构性上界代理之占比形式,非同义词。战斗结算 条款 3 对账输入 = **actuals 分布 p10(F4 报告 C)而非 target 参数**"。**战斗结算 消费回执(2026-09-10)**:条款③闭合消费本条口径——P(安全) 代理式 = 残余盲猜端上界 P(雷) = |M|÷(|M|+(1−ι)×|S|)(ι = actuals p10,未交付前行 target 代乐观代理);对账重跑义务 = 棋盘生成 报告 C 交付后强制(战斗结算 AC-39)" - mvp_reference_rows: L1·D0(10×10/d0.10/t0.95/min_safe50/att16)与 L2·D0(12×12/d0.12/t0.92/min_safe60/att16)参考行——**全部 provisional,仅 schema 自洽性证明,曲线数值归 难度曲线与Boss 调参所有权** + mvp_reference_rows: L1·D0 与 L2·D0 两参考行——**全部 provisional,仅 schema 自洽性证明,曲线数值归 难度曲线与Boss 调参所有权**;参考行现行值不列于本 registry,读 data/tables/board_gen.tres(2026-09-18 指路化收口——原 d0.10/t0.95/att16、d0.12/t0.92/att16 读数随切片 SLICE-TUNED 改值作废) minesweeper_dual_containment: 双包含回验登记 排雷玩法 GDD——① 排雷玩法 实际展开域 ⊆ 棋盘生成 排除域(既有)② 棋盘生成 求解器初始态 ⊆ 排雷玩法 实际初始展开域(F1 注记④度量保真对偶) golden_vectors: 推理器黄金图回归向量协议(五类手工核验小板,整数对比对禁浮点容差,逐格信息源推导记录入版本库;换 solver_rules/信息源/metric_version = GDD 修订 + 向量重制)——数据配置 R2 先例同源 referenced_by: [排雷玩法, 战斗结算, 地图战斗资源, 难度曲线与Boss, 存档序列化] @@ -217,7 +217,7 @@ entities: 溢出(伏击): 单轮踩雷超过上限(cap)的部分——转为"溢出未生效"明细行可见、不生效(敌人系统 首次定义) 死亡即不动手: 轮到某敌人行动时它已死 → 这一下不打、招式轮转停格(2026-09-09 用户拍板,敌人系统 首次定义) 封锁格: 初始展开白送的那批已开格——恒无格面资源、不再有任何加成,但计入清图进度(排雷玩法 首次定义;install 期可精确枚举为 R₀——格面资源摇号清单的排除项;取代旧术语"资格格",2026-09-15 格面资源批) - 格面资源(CellResource): 关联到格子上的资源对象——装板期摇定五型类型身份(attack/defense/heal/blast/weaken),安全格与雷格一视同仁、同池同分布;极性不在资源内,由「动作 × 格型」矩阵在结算期决定正向(奖励)或负向(惩罚)(地图战斗资源 首次定义;取代"安全格奖励"旧名) + 格面资源(CellResource): 关联到格子上的资源对象——装板期摇定七型类型身份(attack/defense/heal/blast/weaken/pierce/magic——2026-09-18 伤害道具批五→七),安全格与雷格一视同仁、同池同分布;极性不在资源内,由「动作 × 格型」矩阵在结算期决定正向(奖励)或负向(惩罚)(地图战斗资源 首次定义;取代"安全格奖励"旧名) 批尾: 同一批取号中最后消费的一个号——地图战斗资源 清图奖励身份 = install 批的批尾取号(地图战斗资源 F1 首次定义) 死行: 被当前内容态判定为零消费的表行——加载不致命、不入参考池,复活走 GDD 修订连锁(地图战斗资源 F4 首次定义;历史首例 attack_up〔hero atk=0 时代〕已于 2026-09-11 随"基础攻击恒存在"用户裁决复活,当前内容态暂无在册死行) 预推进: 测试中为到达 scope=σ 而先行丢弃式消费 σ 个 scope 的构造——RngService 全新实例首个 open_stream 恒为 scope 0,derive_at 不推计数器(地图战斗资源 AC 前言首次定义) @@ -254,15 +254,15 @@ entities: display_name: String(本地化归 设置与本地化) unit_count: int [1,3](knob——**遭遇区间下界**〔2026-09-14 难度曲线与Boss 修订批:unit_count 升级区间语义 [unit_count, unit_count_max],战斗结算.begin_battle 实例化期经 RngService encounter 封闭流均匀骰;新敌种首遇/教学位节点固定不加骰〕;默认 1 provisional,多敌语义默认零消费者复验归 关卡节点地图〔敌人系统 OQ2〕) unit_count_max: int [unit_count, 3] 可省略(2026-09-14 难度曲线与Boss 修订批新增——遭遇区间上界;缺省 = 定值,旧行零迁移) - atk_min/atk_max: 可选配对 int [0,999](2026-09-14 敌方攻击区间批——上阶/下阶区间随机;缺省 = 定值行向后兼容;跨字段:必成对 · **atk = (min+max)/2 中点锚**;roll 时机 = 遭遇骰同流〔encounter 恰一 scope,数量骰先、atk 骰后〕spawn 期**整战持久**〔每拍抖动否决——数字可读性锚〕,战斗结算.begin_battle roll → 敌人系统.spawn enemy_atk_override 收确定值〔敌人系统 零随机纪律保持〕;MVP 六行 ±3 provisional 归 难度曲线与Boss;验收 = 完美策略档 0 加成通关 ≤40%〔OQ7〕;接口漂移 = 敌人系统.spawn 签名 +1 参数〔正式侧 GDD/registry 修订批随 ADR-0009 同批〕) + atk_min/atk_max: 可选配对 int [0,999](2026-09-14 敌方攻击区间批——上阶/下阶区间随机;缺省 = 定值行向后兼容;跨字段:必成对 · **atk = floor((min+max)/2) 向下取整中点锚**〔2026-09-18 与切片 schema 校验式对齐——int 截断,奇数和区间(如 1+2)取下半,期望当量微偏下界为现行口径〕;roll 时机 = 遭遇骰同流〔encounter 恰一 scope,数量骰先、atk 骰后〕spawn 期**整战持久**〔每拍抖动否决——数字可读性锚〕,战斗结算.begin_battle roll → 敌人系统.spawn enemy_atk_override 收确定值〔敌人系统 零随机纪律保持〕;MVP 六行 ±3 provisional 归 难度曲线与Boss;验收 = 完美策略档 0 加成通关 ≤40%〔OQ7〕;接口漂移 = 敌人系统.spawn 签名 +1 参数〔正式侧 GDD/registry 修订批随 ADR-0009 同批〕) armor_type: enum {light, ward, heavy} 缺省 light(2026-09-14 护甲克制批转正登记——攻击类型 × 护甲克制,克制矩阵 = settlement_table.armor_effectiveness〔克制 ×150 / 中性 ×100 / 被克 ×50〕;MVP 映射 goblin=light / bugbear=ward / ogre_chief=heavy;**2026-09-15 命名统一批:原 enum {none, a, b} 为位置键(无语义、且"无甲/甲A/甲B"在文档间已分裂成四种写法),改 {light, ward, heavy} = 轻甲 / 魔法护甲 / 重甲**;数值 provisional 归 难度曲线与Boss) armor_class: int [0,999] 缺省 0(**2026-09-15 护甲等级批新增,2026-09-16 定稿落地**——防守方护甲等级,主角普通分量 / 敌方技能基础伤害分量的掷点折扣判定读数,掷点与折扣结算归 settlement_table.ac_roll / ac_discount_tiers〔战斗结算〕;**与 armor_type〔克制属性轴 light/ward/heavy〕是两个概念、字段与文档口径不得混用**;三敌种首关行值 0 暂定,正式行值归怪物设定批〔06 清单登记〕) hp: int [1,999](knob——难度修饰前基线;MVP 18 provisional 出处待查) atk: int [0,999](knob——attack 行为伤害基值;MVP 4 provisional 出处待查;0 = 纯伏击伤敌种合法) - pool: Array of {skill_id, weight}(**2026-09-16 敌人技能池批——池模板**,定义层;weight ∈ (0,9999] knob、池内 skill_id 不重复;每池恰一行普通攻击 + 增益技 ≤1 + skill_id 悬空致命〔加载校验在 config_db.validate_skill_pool_links 跨表通道〕;实例池〔快照+冷却状态〕在 单位容器 spawn——三敌种建议池 goblin {attack 9, lunge 1} / bugbear {attack 6, charge 2, heavy 2} / ogre_chief {attack 6, heavy 2, harden 2},全部 provisional 归 难度曲线与Boss;EV 锚 静态 1.05/1.00/1.00,含闸长期速率实测 1.106/1.000/1.024〔×5000 拍,随批登记〕)。**历史(2026-09-16 退役)**:heavy_multiplier int [1,16](重击倍率归技能行 damage_mult)与 pattern StringList(行为环环数组)两字段随行为环整体退役——固定出招剧本废除 + pool: Array of {skill_id, weight}(**2026-09-16 敌人技能池批——池模板**,定义层;weight ∈ (0,9999] knob、池内 skill_id 不重复;每池恰一行普通攻击 + 增益技 ≤1 + skill_id 悬空致命〔加载校验在 config_db.validate_skill_pool_links 跨表通道〕;实例池〔快照+冷却状态〕在 单位容器 spawn——三敌种建议池构成与权重不列于本 registry,读 data/tables/enemy.tres(provisional 归 难度曲线与Boss;EV 锚与含闸长期速率实测读数随验收批另测登记〔2026-09-18 指路化收口〕))。**历史(2026-09-16 退役)**:heavy_multiplier int [1,16](重击倍率归技能行 damage_mult)与 pattern StringList(行为环环数组)两字段随行为环整体退役——固定出招剧本废除 advantage_per_round_cap: int [0,16](knob;**MVP 默认 4 定稿**〔2026-09-09——反灾难护栏定位,旧默认 8 溢出协议死码已废弃〕;0 = 免疫伏击合法极端;行动经济 F1 条款 3 供给表值来源字段) rowset_rule: 每行集恰一敌种(行集内 enemy_id 唯一 = 表结构校验,违规加载期致命)——同层多遭遇已由节点编号消解(2026-09-17 关卡节点地图 v1.0:node_depth 语义 = 关卡内唯一节点编号,同层不同节点各查各行、键结构零改动);同场多敌种(同一编号行集多行)行集校验放开 + 混编遭遇伏击上限取值口径归 敌人表行集多行批(战斗侧,排技能池实施批落地后;06-待办清单 敌人系统节同名条目单点登记);精英/Boss 不设编码位——Boss = 最大编号节点(图唯一终点)、精英 P2 内容承载(强敌行集) - mvp_content: **恰 3 敌种(2026-09-14 难度曲线与Boss 修订批转正——DND 更名批用户指令:grub→goblin / ambusher→bugbear / boss_guardian→ogre_chief;旧两敌种登记由本条替代;敌人系统 AC-16③ 物种集断言随批更新为 {goblin, bugbear, ogre_chief})**:goblin(地精,池 {attack 9, lunge 1}——L1 D0 24hp/7atk ×[1,2]、L1 D1 群 13/5 ×[2,3];armor=light)· bugbear(熊地精,池 {attack 6, charge 2, heavy 2}——L1 D2 40/9 ×1、L1 D3 群 18/6 ×[2,3]、L2 D0 锚行 30/7;armor=ward)· ogre_chief(食人魔酋长,池 {attack 6, heavy 2, harden 2}——L1 D4 150/9 ×1;armor=heavy);**2026-09-16 敌人技能池批**:行为环拍序列([attack] 单拍环 / [attack,charge,heavy] 三拍环 / [attack,attack,charge,heavy] 四拍环)与 heavy_multiplier=2 退役,改池模板 + 技能表共享技能行(重击倍率 2 = 技能行 damage_mult);出处 = 切片 enemy.tres(技能池批改型),曲线数值与池权重归 难度曲线与Boss + mvp_content: **五敌种(2026-09-14 难度曲线与Boss 修订批转正 goblin / bugbear / ogre_chief 三敌种〔DND 更名批用户指令:grub→goblin / ambusher→bugbear / boss_guardian→ogre_chief〕;2026-09-17 分支节点图批新增 giant_spider / drider,本条 2026-09-18 补收编;敌人系统 物种集断言随批更新为 {goblin, bugbear, ogre_chief, giant_spider, drider})**:goblin(地精,armor=light)/ bugbear(熊地精,armor=ward)/ ogre_chief(食人魔酋长,armor=heavy)/ giant_spider(巨蜘蛛)/ drider(蛛化卓尔精灵,Boss = 最大编号节点图唯一终点)。技能池构成与权重、armor_type 行映射**不列于本 registry**——读 data/tables/enemy.tres。**2026-09-17 数值压缩批·文档同步——hp/atk 等数值列改指路存根**:L1/L2 节点编号行集(D0–D8)共 12 行的 hp · atk · atk_min · atk_max · unit_count · unit_count_max · advantage_per_round_cap · armor_class 等现行值**不列于本 registry**——读 `data/tables/enemy.tres`(数值压缩批注释登记:`L1 D0 24/7 → 8/2`、`L1 D1 13/5 → 4/2`、`L1 D2 40/9 → 13/3`、`L1 D3 18/6 → 6/2`、`L1 D4 150/9 → 50/3` Boss、`L2 D0 30/7 → 10/2`、`L2 D1 15/5 → 5/2`、`L2 D4 14/5 → 5/2`、`L2 D5 38/8 → 13/3`、`L2 D6 12/4 → 4/1`、`L2 D7 13/5 → 4/2`、`L2 D8 175/8 → 58/3` drider);armor_type / armor_class / unit_count 区间 / 技能池权重 / advantage_per_round_cap 不压缩(相对轴与概率轴)。**2026-09-16 敌人技能池批**:行为环拍序列([attack] 单拍环 / [attack,charge,heavy] 三拍环 / [attack,attack,charge,heavy] 四拍环)与 heavy_multiplier=2 退役,改池模板 + 技能表共享技能行(重击倍率 2 = 技能行 damage_mult);出处 = 切片 enemy.tres(技能池批改型),曲线数值与池权重归 难度曲线与Boss load_bearing_rules: 多敌模型(1–3 同敌种单位,增益状态 单敌假设回验不成立——见 status_effect.single_enemy_assumption)· 行为环确定性轮转(零随机;先作用后推进;死亡即不动手——轮到前被杀本拍不打指针冻结;同步轮转定理)· 效果 side-wide(伏击池 = side 共享,增益状态 零接口变更)· 行值快照抗热重载(增益状态 EC9 同款——池模板同在快照范围,实例池冷却全零起步)· **技能池摇号出招(2026-09-16 敌人技能池批改写——原"行为环确定性轮转/同步轮转定理"退役)**:每拍做什么 = 实例池权重摇号〔开轮时点,随机消费在 战斗结算 换算层 behavior_roll 封闭流;本系统语义零随机不变、单位容器收确定值〕;两道闸 = 全技能各自冷却 + 保底 M;死亡即不动手(摇定后兑现前死亡 → 本拍作废不进账);拍结构保留(每结算每存活敌恰行动一次/行序/先作用后推进)· 零随机零 UI 零事件订阅(排雷玩法 事件面不含 敌人系统——事实经 战斗结算 转化) settlement_obligations: 六项(敌人系统 GDD 门禁评审缺项即 blocking)——① 行动每结算恰一次(敌单位专属——主角无环)+ 结算内调用序成文 按摇定技能行兑现→apply_damage→commit_action〔2026-09-16 技能池批改型——原 query_attack→apply_damage→advance 随行为环退役〕 ② 雷→伏击恰一次转化 ③ clamp/负值/溢杀与死亡判定时机成文 ④ F1 条款 3 闭合对账(cap 表值 + 量纲 + 棋盘生成 actuals p10 非 target 参数)⑤ 默认目标消费与单体/AOE 分流 ⑥ 伏击 cap 溢出"溢出未生效"明细行协议。**履行回执(2026-09-10)**:六项已全数落位 战斗结算 GDD(Core Rules 5/6/9/10/12 + Formulas F3/F4——落位映射 = 战斗结算 AC 覆盖矩阵) hud_obligations: 四项(视觉推测型呈现,缺项即 blocking)——① enemy_id→图像线索映射清单成文(预告时序=下一拍预告、挖掘期全程可见;含强度档位/环长直觉编码说明;形状+色相双通道)② 映射全局恒定(enemy_id 键——跨 run 禁重掷)③ 顺位与存活可读 ④ 敌方 side 池呈现口径 @@ -275,9 +275,9 @@ entities: attributes: table: HeroTable(数据配置 新增 schema 行〔接口漂移回写,2026-09-09 敌人系统〕,单行全局;敌人系统 回填 owner) fields: - max_hp: int [1,999](knob;MVP 值 provisional 出处待查) - atk: int [1,999](**0 = 加载拒绝**——基础攻击恒存在,"0 基线 × 百分比增益恒零"死锁自 schema 层杜绝〔2026-09-11 用户裁决,原"机制开关 MVP=0、激活裁决归 地图战斗资源/战斗结算"作废〕;MVP = 6 原型锚 provisional 归 难度曲线与Boss;消费面 = 主角战斗段先手攻击——战斗结算 GDD 2026-09-11 增补) - armor_class: int 取值域未定(**2026-09-15 护甲等级批新增,provisional**——主角作为防守方的护甲等级,敌方攻击拍 / 重击拍基线的掷点折扣判定读数;掷点结算归 settlement_table.ac_roll〔战斗结算〕,与 armor_type〔克制属性轴〕两概念不得混用;值未定,投值归 难度曲线与Boss 随掷点形式定稿批) + max_hp: int [1,999](knob;现行值读 data/tables/hero.tres) + atk: int [1,999](**0 = 加载拒绝**——基础攻击恒存在,"0 基线 × 百分比增益恒零"死锁自 schema 层杜绝〔2026-09-11 用户裁决,原"机制开关 MVP=0、激活裁决归 地图战斗资源/战斗结算"作废〕;现行值读 data/tables/hero.tres〔2026-09-17 数值压缩批改型〕;消费面 = 主角战斗段先手攻击——战斗结算 GDD 2026-09-11 增补) + armor_class: int [0,999](**2026-09-15 护甲等级批新增,2026-09-16 掷点批定稿落地**——主角作为防守方的护甲等级,敌方攻击拍 / 重击拍基线的掷点折扣判定读数;掷点结算归 settlement_table.ac_roll〔战斗结算〕,与 armor_type〔克制属性轴〕两概念不得混用;现行值读 data/tables/hero.tres〔暂定,调参归 难度曲线与Boss〕) rule4_exemption: 单行全局定义表(主角不随关卡自动成长——成长=天赋 元进度/奖励侧;ActionEconomyTable 先例) hp_persistence: 跨战斗 HP 持久性归 关卡节点地图/冒险结构(provisional)——敌人系统 单位接口以初始 hp 入参,不定义冒险内持久性 referenced_by: [战斗结算, 地图战斗资源, 难度曲线与Boss] @@ -292,10 +292,10 @@ entities: display_name: String 非空(玩家可见名——明细行与动画共用,本地化归 设置与本地化) type: enum {basic, damage, buff}(封闭枚举 = 普通攻击/伤害/增益;新类型走 敌人系统 修订) damage_mult: float [1.1,16] 仅伤害技(provisional——**存倍率不存固定值**:伤害 = 施放者攻击基线 × 倍率,三乘法链第一乘〔战斗结算〕;普通攻击恒 1 不可配——域校验锁死) - cooldown_beats: int [0,99](provisional 现行 突刺 2 · 蓄力 3 · 重击 3 · 硬化 4 · 普攻恒 0 不可配——域校验锁死,空池不可能的结构前提;施放后连续 N 拍不可摇中,技能冷却与增益持续两计时器分账) + cooldown_beats: int [0,99](现行值读 data/tables/skills.tres;普攻恒 0 不可配——域校验锁死,空池不可能的结构前提;施放后连续 N 拍不可摇中,技能冷却与增益持续两计时器分账) buff_ref / buff_duration: 仅增益技(效果引用 → StatusEffectTable 活行 + 持续回合;悬空引用加载致命;现行 charge→empower / harden→fortify,buff_duration=2 = 1 个有效增益拍〔先兑付后衰减含施放当轮〕;施放时长由技能行覆盖状态行时长——战斗结算 apply_effect duration_override) - pity_threshold: int [1,99] 全局单旋钮(provisional 现行 4——保底 M:连续 M 拍执行普攻 → 下拍必出特殊技〔特殊技内按权重、不受冷却限制〕;地精类单特殊技低权重池受保底支配) - mvp_content: 五行 = attack 普通攻击(basic)· lunge 突刺(damage ×1.5 cd2)· charge 蓄力(buff→empower cd3)· heavy 重击(damage ×2.0 cd3)· harden 硬化(buff→fortify cd4,Boss 池独占——增益 ≤1 纪律下旧蓄力拍不进 Boss 池) + pity_threshold: int [1,99] 全局单旋钮(现行值读 data/tables/skills.tres——保底 M:连续 M 拍执行普攻 → 下拍必出特殊技〔特殊技内按权重、不受冷却限制〕;地精类单特殊技低权重池受保底支配) + mvp_content: 七行 = attack 普通攻击(basic)· lunge 突刺(damage)· charge 蓄力(buff→empower)· heavy 重击(damage)· harden 硬化(buff→fortify,Boss 池独占——增益 ≤1 纪律下旧蓄力拍不进 Boss 池)· bite 撕咬(damage)· venom_burst 毒爆(damage)——倍率 / 冷却 / 持续等现行值**不列于本 registry**,读 data/tables/skills.tres(bite / venom_burst 2026-09-17 分支节点图批新增,本条 2026-09-18 补收编) referenced_by: [敌人系统, 战斗结算, 难度曲线与Boss, 数据配置] - name: reward_table @@ -305,20 +305,20 @@ entities: table: RewardTable(数据配置 承载,键 = reward_id;地图战斗资源 回填 owner;**2026-09-15 格面资源批结构性重写**——旧 category / use_timing / 库存 / 供给轴随可选类删除整批下线,五型 × 极性字典取代〔历史结构见底部修订记录〕) fields: reward_id: String(表内主键) - cell_type: enum {attack, defense, heal, blast, weaken}——五型封闭(格面资源类型身份;表里出现清单外值加载拒绝 fail-fast) # 2026-09-15 新增,取代 category + cell_type: enum {attack, defense, heal, blast, weaken, pierce, magic}——七型封闭(2026-09-18 伤害道具批五→七;格面资源类型身份;表里出现清单外值加载拒绝 fail-fast) # 2026-09-15 新增,取代 category;2026-09-18 扩七型 polarity: enum {positive, negative}——同型两行:正向行参与摇号(权重 = 类型频次),负向行纯兑付字典、不消费权重 # 2026-09-15 新增 effect_id: String 可空——percent 类行(attack/defense/weaken 正负两向)必填(StatusEffectTable 精确引用,悬空校验已激活);flat 直付行(直伤/群伤/治疗)恒空 stacks: int [1,16] 可省——多层授予行(blast 负向 ambush ×2 层);缺省 1 display_name: String 非空——玩家可读名(HUD框架 呈现数据源,本地化归 设置与本地化) power: int [0, 999](knob)——flat 类加载校验 ≥ 1;percent 类不消费非校验(敌人系统 heavy_multiplier 先例) - power_min/power_max: 可选配对 int [1,999](区间随机;缺省 = 定值行向后兼容;跨字段:必成对 · percent 行禁止 · power = (min+max)/2 中点锚〔行动经济 条款①期望当量不漂移〕;roll 时机 = 身份预分配批内追加取号) + power_min/power_max: 可选配对 int [1,999](区间随机;缺省 = 定值行向后兼容;跨字段:必成对 · percent 行禁止 · power = floor((min+max)/2) 向下取整中点锚〔与敌人表 atk 同口径,2026-09-18 对齐切片校验式〕〔行动经济 条款①期望当量不漂移〕;roll 时机 = 身份预分配批内追加取号) weight: int [0, 999](knob)——正向行 = 类型频次;0 = 该型不出(合法极端,取号前剔除);负向行不消费 pool_tag: enum {cell, clear_default}(cell = 格面资源单一池——安全格与雷格一视同仁同池同分布;clear_ 命名空间预留、校验拒绝——棋盘生成 elite_ 同款) # 2026-09-15 safe_cell→cell 更名 + active_inject 删除 tier: int [1, 8](knob)——强度档位序数(与当量零耦合) - cross_field_validation: 加载期致命族——池空(cell 池 ≥1 正向行 weight>0)· 五型正向行齐备 · 五型负向行齐备(字典完整性——缺任一极性行致命)· clear_default 恒正当量(≥1 活行 ∧ power≥1 ∨ effect_id 非空——行动经济 条款④"清图奖励>0"的行级兑现口径)· percent 行 effect_id 必填/flat 行恒空 · flat 行 power≥1 # 2026-09-15 重写——旧 floor_supply_missing / no_damage_row 随可选类删除失义退役 + cross_field_validation: 加载期致命族——池空(cell 池 ≥1 正向行 weight>0)· 七型正向行齐备 · 七型负向行齐备(字典完整性——缺任一极性行致命)· clear_default 恒正当量(≥1 活行 ∧ power≥1 ∨ effect_id 非空——行动经济 条款④"清图奖励>0"的行级兑现口径)· percent 行 effect_id 必填/flat 行恒空 · flat 行 power≥1 # 2026-09-15 重写——旧 floor_supply_missing / no_damage_row 随可选类删除失义退役 mechanics: 格面资源身份 install 期预分配(roll_board 恰一次、行主序、消费 reward_roll 封闭流恰一 scope 批〔格批 + 清图批尾一号〕;全部非封锁格逐一摇定类型——安全格与雷格同池同分布、封锁格不入摇号清单;Ready 后只读、无重掷 API)· **极性不在资源内**——「动作 × 格型」矩阵(开安全格/标中雷 = 正向、开雷格/标错安全格 = 负向、标旗后撤旗 = 零兑付)字典定义归 地图战斗资源、路由执行归 战斗结算 授予段(结算队列 + 抵消过滤——标旗后被撤旗不结算)· 授予期零随机(身份恒定跨轮;换图映射消亡)· 负向恒即时(不入库、无库存语义——库存已随可选类删除下线)· 满层零兑付 = 合法例外 + "奖励未生效"行 · 重复受理幂等(同格重复 grant / 同批次重复 grant_clear → 同一快照/身份 + 诊断;受理/兑付恰一次归 战斗结算×②③) api: 封闭枚举入口(provisional,实现期 ADR 定名)——roll_board / query_identity(返回 {reward_id, cell_type, tier} 引用级投影;未开格恒可查——魔法道具 桥接结构前提;清单外坐标 → null + 诊断)/ grant(同格重复受理幂等 + 诊断)/ grant_clear(同批次重调幂等 + 诊断)/ retire_mapping / equivalence_supply(全活行投影 + tier_min_buff)+ weighted_pick 纯函数面;新增入口 = 接口漂移,新增入口须随附全输入域语义表 # 2026-09-15 删 stock/use/query_inventory/clear_inventory(库存轴下线) - mvp_content: 十行(2026-09-15 格面资源批;值 provisional 归 难度曲线与Boss)——格面池正向五行(attack_up buff→attack_up w20 t2 / ac_up buff→ac_up w16 t2〔护甲强化——2026-09-16 护甲等级掷点批换装,原 defense_up 减伤 −30% 退役;cell_type defense/权重/档位零改动〕 / spark_aoe flat p4 w16 t1〔blast〕/ heal_minor flat [2,6] w15 t1〔heal〕/ weaken buff→weaken w12 t1)+ 负向五行纯字典(enrage attack〔→enemy_output〕/ off_guard defense〔→hero_defense〕/ 直伤 heal flat p4〔不经增益状态〕/ ambush+2 blast〔stacks=2〕/ sapped weaken〔→hero_offense〕)+ clear_blast(flat [25,55] w1 t2 clear_default——完美板 ×2 期望中点 80);类型频次 = 正向行权重(20/16/16/15/12 合计 79);tier_min_buff = 2 + mvp_content: 十四行(2026-09-15 格面资源批十行;2026-09-18 伤害道具批增补四行)——格面池正向七行(attack_up / ac_up〔2026-09-16 护甲等级掷点批换装,原 defense_up 减伤 −30% 退役;cell_type defense/权重/档位零改动〕/ spark_aoe / heal_minor / weaken / pierce_strike / magic_bolt〔attack_type 字段载攻击类型轴,查战斗结算克制矩阵、单目标必中全额〕)+ 负向七行纯字典(enrage / off_guard / heal_backlash 直伤〔不经增益状态〕/ ambush_double blast〔stacks=2〕/ sapped / pierce_snare / magic_recoil〔均主角直伤,不经增益状态〕)+ clear_blast(clear_default);类型频次 = 正向行权重合计;tier_min_buff = 2。**2026-09-17 数值压缩批·文档同步——具体数值列(power/weight/power_min/power_max)改指路存根**:现行行值读 `data/tables/reward.tres`(压缩后锚行:spark_aoe power=1 / heal_minor power=[1,1] 定值(原 [2,6] 区间压缩)/ heal_backlash power=1 / clear_blast power_min=8 power_max=18 power=13 中点 / ambush_double stacks=2;类型频次合计 79→67〔heal 权重 15→3〕) direction_precheck: **刀供给方向预检随可选类删除失义退役(2026-09-15)**——历史读数见底部修订记录;新对账锚 = 行动经济 条款②③ 左臂(正向格面资源当量供给)随格面资源批重推,义务归 难度曲线与Boss 调参批 settlement_obligations: 四项(战斗结算 GDD 门禁评审缺项即 blocking,清单全文见 地图战斗资源 GDD Dependencies)——① 结算段序骨架(授予→增益/减益→战斗→衰减→判定)② 极性路由受理 + 每格恰一次 + 满层零兑付"奖励未生效"行(含聚合计数字段)③ clear_reward 授予路径(增益状态 OQ4 关闭条件)④ 生命周期编排(battle_over retire 映射消亡)+ roll_board 恰一次 # 2026-09-15 由六项收拢(窗口/道具段与库存编排随可选类删除失义) hud_obligations: 三项(缺项即 blocking)——① 已开格资源身份恒定可读(挖掘期规划面)+ 未开格类型可查面的呈现深度(预读边界待办)② 结算明细行(效果行/"奖励未生效"〔聚合计数〕/标旗未中行/直伤行)③ H2 清图奖励行强调呈现 # 2026-09-15 由五项收拢(库存常读条/道具窗口随可选类删除失义) @@ -338,7 +338,7 @@ entities: attributes: table: SettlementTable(数据配置 承载,单行全局;战斗结算 回填 owner,2026-09-10 定稿回填;Rule 4 豁免——单行全局常量/结构表,HeroTable/ActionEconomyTable 先例) fields: - equivalence_ref_damage: int [1,999](knob,默认 12 provisional——当量参考敞口 D_ref,F1 通货;变更触发全对照表 + 条款③⑤对账重跑,禁独立调参) + equivalence_ref_damage: int [1,999](knob,现行值读 data/tables/settlement.tres——当量参考敞口 D_ref,F1 通货;变更触发全对照表 + 条款③⑤对账重跑,禁独立调参) p_perfect: int {100,200} percent(knob,默认 200 provisional——完美排雷清图奖励**第二份兑付触发**;2026-09-10 战斗结算 评审批修订:真实双份交付载体〔Core Rule 13#2〕——100 = 仅高光、200 = 双份交付,非整数倍数乘数无运行时载体、域外加载致命;上界受护栏 B 约束〔双读数:D_ref 口径 24 / DPS 严格读数 ≈8,裁决归 难度曲线与Boss〕) segment_order: StringList(结构冻结——段序骨架 [grant, buff_debuff, combat, decay, verdict];加载期恒等拍板序校验违例致命,防实现乱序静默漂移;2026-09-15 格面资源批五段——item_window/item 两段随可选类删除下线,旧七段序见底部修订记录) source_label_map: Dictionary source_class→文案键(结构冻结——P2 归因呈现映射;键集 = 增益状态 source_class ∪ {判定扩展, enemy_action, flag_miss}——2026-09-10 战斗结算 评审批修订;2026-09-15 格面资源批删"道具"扩展键;新增键 = 接口漂移) @@ -346,7 +346,7 @@ entities: pool_clamp_lo: int pp(结构冻结 −100——percent 池地板域下界,乘数域随之 [0,2];2026-09-10 统一八字段口径) pool_clamp_hi: int pp(结构冻结 +100——percent 池地板域上界;原"七字段 pool_clamp_lo_hi"措辞作废,数据配置 GDD 行按收编先例以本条为准) round_direction: enum {floor}(结构冻结——单一取整规则) - charge_grants: Dictionary 奖励触发源→{attack_type, per_unit, cap}(**2026-09-15 攻击类型/奖励抽象分离批新增**——攻击类型 = 伤害的属性轴(定义不含来源),充能 = 按攻击类型分桶的附加伤害储备;"哪类棋盘事实充哪个桶、每单位多少点"归本字典 = 奖励定义,替换字典即改奖励内容,攻击类型与 armor_effectiveness 不动;现行 safe_cell(开格)→ pierce 1/格 cap 8 · flag_hit(标中旗)→ magic 2/雷 cap 0=不封顶;**原 pierce_per_cell / pierce_cap / magic_per_flag("类型×来源"焊死命名,更早为 damage_a_per_cell / damage_a_cap / damage_b_per_flag)同批作废**;数值 provisional 归 难度曲线与Boss;正式归属(地图战斗资源 的奖励类别/效果面)见 战斗结算「待办」) + charge_grants: Dictionary 奖励触发源→{attack_type, per_unit, cap}(**2026-09-15 攻击类型/奖励抽象分离批新增**——攻击类型 = 伤害的属性轴(定义不含来源),充能 = 按攻击类型分桶的附加伤害储备;"哪类棋盘事实充哪个桶、每单位多少点"归本字典 = 奖励定义,替换字典即改奖励内容,攻击类型与 armor_effectiveness 不动;现行映射不列值于本 registry——读 data/tables/settlement.tres charge_grants(safe_cell(开格)→ pierce 桶 · flag_hit(标中旗)→ magic 桶;cap 0 = 不封顶;2026-09-18 数值压缩批指路化收口,原"pierce 1/格 cap 8 · magic 2/雷"读数随压缩批作废);**原 pierce_per_cell / pierce_cap / magic_per_flag("类型×来源"焊死命名,更早为 damage_a_per_cell / damage_a_cap / damage_b_per_flag)同批作废**;数值 provisional 归 难度曲线与Boss;正式归属(地图战斗资源 的奖励类别/效果面)见 战斗结算「待办」) armor_effectiveness: Dictionary 攻击类型×护甲→百分比(键集结构冻结 {normal, pierce, magic} × {light, ward, heavy};默认 normal 全 100 / pierce→ward=150、heavy=50 / magic→heavy=150、ward=50——克制 ×150 / 中性 ×100 / 被克 ×50;**2026-09-15 命名统一批:改为语义键,原 {base, dmg_a, dmg_b} × {none, a, b} 位置键作废**;数值 provisional 归 难度曲线与Boss) ac_roll: 护甲等级掷点(**2026-09-16 护甲等级掷点批定稿,数字即规范**——骰面 roll_faces=20、nat 最大面 crit_roll=20、暴击倍率 crit_multiplier=200、攻击加成 attack_bonus=0〔结构位,元进度/武器附魔未来投值〕、伤害下限 damage_floor=1、流名 armor_roll_stream="armor_roll";判定式:掷 1d20,掷点 ≥ 防守方护甲等级 + 攻击加成 → 全额、低掷按缺口查档〔见 ac_discount_tiers〕,nat20 暴击该基础攻击分量 ×2 且恒全额〔双方同规〕;任何攻击落地伤害 ≥ damage_floor〔全局 max(1,·)——零值伤害行语义退役,重档折扣行文本记"被压制"〕;吃掷点分量 = 主角先手攻击普通分量 / 敌方技能基础伤害分量〔= 攻击基线 × 技能伤害倍率——2026-09-16 敌人技能池批改述,原"敌方攻击拍与重击拍基线伤害"退役;无伤害分量的增益技不掷不折〕,穿刺/魔法充能分量与棋盘来源伤害〔伏击附加 / 爆裂 / 清障炸药 / 奖励即时〕必中全额不掷;回合内随机、消费 armor_roll 封闭流逐次掷逐次取号,可逐位回放) ac_discount_tiers: Dictionary 缺口档边界→档位值 percent(**2026-09-16 定稿**——roll_tier_bounds=[3,7] · roll_tier_discounts=[75,50,25],档数 = 边界数 + 1;缺口 1-3 → ×0.75 · 4-7 → ×0.5 · 8+ → ×0.25,档位不设零档〔非归零〕,取整沿全局 floor;EV 参考数〔按判定式复算〕= AC10 期望减免 21.25% / AC11 25% / AC12 28.75%;微调旋钮 = 边界与档位值,不动 AC 值;难度曲线与Boss 生存链区间带宽补扫含暴击档与折扣档、"零红档"验收保留) @@ -373,7 +373,7 @@ entities: attributes: rule: 行动经济 F1 条款⑤清图 vs 弃图支配性闭合(战斗结算 单一闭合 owner,战斗结算 GDD F5;**2026-09-10 评审批模型修订:挖穿残余池计价**——E[踩雷] = |M|×n_s/(n_s+1) 均匀交错模型、Δr = ⌈(n_s+E[踩雷])÷AP_r⌉;旧模型按每格独立赌 P(雷) 漏计全池挖掘量、系统性偏乐观)——主判式 Δ_clear = [R_res + C_eff] − [X_res + Δr × s_ref] ≥ 0;E_dig = 默认根加权 7.2 HP(刀 40%/治疗 25%/defense_up 35%);C_eff = C ×(perfect ? P_perfect÷100 : 1)(×2 = 真实双份交付);s_ref = D_ref;**停手侧 RAP 机会收益按零计价(显式假设登记——零价假设下 verdict 已为负,为 RAP 计价只会更负)**;域守卫 n_s < 1 ⇒ 主判式不评估、信息端平凡腿接管 first_pass: **条款⑤未闭合(2026-09-10 模型修订重推——旧"两态通过"读数作废)**:L1 −5.3 / L2 −10.1(完美双份 +2.7/−2.1);满配语境 unit_count=3 深度为负(−49.6/−97.5,与 clause3_supply 破线同向联动);实现率折减口径(E_dig×0.6)更差(−18.5/−39.5);保守地板需求 L1 ≥ 46.1 / L2 ≥ 91.8(vs C=8/完美 16——缺口 −38.1/−75.8)。**难度曲线与Boss/地图战斗资源 约束包**:① C 量级上调整向(护栏 B 口径联动复核)② 或裁"清图非严格支配"为设计态(如裁设计态须同步声明 行动经济 条款⑤ P1 对冲弱化 + 地图战斗资源 预警加权监控)——①②二选一归 难度曲线与Boss 裁;③ 多敌放行判据 = 条款③⑤在全部登记行组合下同时成立。判据函数角色 = 调参约束生成器(AC-40 断言输出与约束包一致) - c3_ruling: **约束包②采信(非支配设计态)+ 计价基元换位重推(2026-09-14 难度曲线与Boss 修订批)**——clear_default 槽由 clear_knife(入库刀 C=8/完美 16)换位为 clear_blast(instant_aoe 当场兑付全体存活敌,C = power = 40):保守地板需求缺口重推 = 46.1−40 = 6.1(L1)/ 91.8−40 = 51.8(L2);C 量级不上调 ✓;P1 对冲弱化同步声明(② 条件)+ 弃图率加权监控随 OQ4 持续;本条 first_pass 旧读数(C=8/16 口径)留作模型演进记录;**区间批义务(2026-09-14)**:C 语义改区间 [25,55](期望中点 40 不变——期望口径缺口 6.1/51.8 维持);保守地板口径(min=25)缺口重推 = 21.1/66.8——战斗结算 修订批对齐条款⑤措辞(义务登记,未兑现前 战斗结算 文本 C=40 按期望中点读)。**重算回执(2026-09-14 战斗结算 重算批——v3 曲线 d0.25/t0.88 × E_dig=4.5 重推,参考板形换锚 难度曲线与Boss MVP 行值总表)**:主判式 L1 −28.7/+11.3(完美翻正)、L2 −67.4/−27.4、满配 −153.2/−113.2 与 −257.1/−217.1;保守地板需求 L1 ≥ 110.3 / L2 ≥ 166.8(缺口 70.3/126.8,对 clear_blast);上段 46.1/91.8 需求系 v1 曲线旧值链产物退役;**难度曲线与Boss 裁决②非支配设计态维持**(qualitative 结构不变——非完美态负、完美态 L1 翻正、L2 全负);护栏 A 方向性复核 ≈−1.1 越下界(E_dig 修正)/ 护栏 B C=40 越线——W2 复核三选一裁决随 难度曲线与Boss 收口批;actuals 交付后按 clear_blast 语义强制重跑(战斗结算 AC-40 同批口径) + c3_ruling: **约束包②采信(非支配设计态)+ 计价基元换位重推(2026-09-14 难度曲线与Boss 修订批)**——clear_default 槽由 clear_knife(入库刀 C=8/完美 16)换位为 clear_blast(instant_aoe 当场兑付全体存活敌,**2026-09-17 数值压缩批后 C = power_min/power_max 区间 [8,18]、中点 13**):保守地板需求缺口重推 = 46.1−13 = 33.0(L1)/ 91.8−13 = 78.8(L2)(**压缩批前后读数对比——原 6.1/51.8 系 C=40 口径、压缩批后按新区间中点 13 重推**);C 量级不上调 ✓;P1 对冲弱化同步声明(② 条件)+ 弃图率加权监控随 OQ4 持续;本条 first_pass 旧读数(C=8/16 口径)留作模型演进记录;**区间批义务(2026-09-14 登记 + 2026-09-17 压缩批修订)**:C 语义改区间〔压缩批前 [25,55] 中点 40 / 压缩批后 [8,18] 中点 13——期望口径按压缩批后中点 13 读〕;保守地板口径(min=8)缺口重推 = 38.1/83.8——战斗结算 修订批对齐条款⑤措辞。**重算回执(2026-09-14 战斗结算 重算批——v3 曲线 d0.25/t0.88 × E_dig=4.5 重推,参考板形换锚 难度曲线与Boss MVP 行值总表)**:主判式 L1 −28.7/+11.3(完美翻正)、L2 −67.4/−27.4、满配 −153.2/−113.2 与 −257.1/−217.1;保守地板需求 L1 ≥ 110.3 / L2 ≥ 166.8(缺口 70.3/126.8,对 clear_blast——**2026-09-17 压缩批后按 C=13 重推为 ≥ 56.1 / ≥ 112.6,缺口按新中点重核**);上段 46.1/91.8 需求系 v1 曲线旧值链产物退役;**难度曲线与Boss 裁决②非支配设计态维持**(qualitative 结构不变——非完美态负、完美态 L1 翻正、L2 全负);护栏 A 方向性复核 ≈−1.1 越下界(E_dig 修正)/ 护栏 B C=40 越线——W2 复核三选一裁决随 难度曲线与Boss 收口批;actuals 交付后按 clear_blast 语义强制重跑(战斗结算 AC-40 同批口径) guardrails: 护栏 B 防钓鱼(**2026-09-10 输入登记更正 + 双读数**:|S|_min = 棋盘生成 行级 knob 禁写死;|R₀|_max 无登记供给方——登记 棋盘生成 产出义务〔R₀ 规模分布上界,报告 C 扩列〕;s_ref=D_ref=12 比真实敌方 DPS 期望松 2.5–3×→ D_ref 口径上界 24〔C_eff=16 ✓〕/ DPS 严格读数 ≈8〔C_eff=16 越〕——两读数裁决归 难度曲线与Boss,与约束包①联动;结构承载 = 棋盘生成 min_safe_count + 布雷数下限 + 排雷玩法 R₀≠S 三闸的对账复核,非运行期校验) rerun_obligation: actuals p10 交付后强制重跑(战斗结算 AC-40);难度曲线与Boss 每次调参重跑(D_ref/P_pf/C 联动) referenced_by: [难度曲线与Boss, 地图战斗资源, 棋盘生成] @@ -643,6 +643,7 @@ entities: # 字段对(同型两行;正向行参与摇号 = 类型频次,负向行纯字典)、pool_tag {safe_cell, active_inject} → {cell}、mvp_content 十行(含负向直伤 heal flat p4、ambush+2 # stacks=2、sapped 行);direction_precheck 旧刀供给预检失义退役;settlement_obligations 六→四、hud_obligations 五→三、high_glow H3 失义下线。 # reward_config 整条删除(RewardConfigTable 随可选类删除下线,切片 reward_config.tres 随代码批删除)。 +# 2026-09-17 数值压缩批(用户拍板——绝对值轴 ÷3,按比例缩放保持比例关系):reward.tres flat 行 power = 4 → 1(spark_aoe、heal_backlash);heal_minor 区间 [2,6] → [1,1] 定值(区间掷点失义)+ 权重 15 → 3(频率 ÷4);clear_blast 区间 [25,55] → [8,18] 中点 13(区间掷点保留、期望不漂移);type 频次合计 79 → 67(heal 权重 ÷4);status_effects.tres ambush magnitude +3 → +1 flat(量纲未变);enemy.tres 全 12 行 hp/atk ÷3(24/7 → 8/2、Boss 150/9 → 50/3、drider 175/8 → 58/3)。**文档同步(同步批 v0.7 配对——同批登记 doc-conventions.md §5 数值纪律·强制收口条款)**:reward_table / status_effect / enemy_table 三条目 mvp_content 数值列改指路存根,GDD 表格同步;现行值读 data/tables/,详见对应 .tres 文件注释(注释段登记"压缩前→压缩后"轨迹)。 # settlement_table:segment_order 七段→五段 [grant, buff_debuff, combat, decay, verdict](item_window/item 下线)、 # source_label_map 删"道具"扩展键、effect_pool_map 收编 sapped→hero_offense、mechanics 行型封闭 15→10 类 + 两层豁免集合修订。 # status_effect:mvp_content 六行→七行(新增 sapped——weaken 型负向)、enrage/off_guard 兑付语义注记改为类型化负向。 diff --git a/design/ux/battle.md b/design/ux/battle.md index 70bc7c29..20dd3eb6 100644 --- a/design/ux/battle.md +++ b/design/ux/battle.md @@ -162,7 +162,7 @@ │ │ 状态 ⬆2 ·🛡1 │ │ 状态 ⚡2 │ │ 状态 🛡1 │ │ │ └────────────┘ └──────────┘ └──────────┘ │ │ ├─ 结算明细带 ────────────────────────────────────────────────────────────┤ │ -│ │ ▸上轮: 主角攻击9→蛆虫-9 | 攻击+50%(1结算) | 伏击+3×2 … [展开明细▾] │ │ +│ │ ▸上轮: 主角攻击3→蛆虫-3 | 攻击+50%(1结算) | 伏击+1×2 … [展开明细▾] │ │ # 2026-09-17 数值压缩批:UI 示意文本同步(atk 7→3〔地精格数÷3 + L1 锚行;UX 示意按当前地精行值读〕、伏击 +3 → +1/层,幅度参考 data/tables/) │ └────────────────────────────────────────────────────────────────────────┘ │ ├─[C] 角色信息 240px ───┬─[D] 扫雷图 ~1036px ──────────────────────────────────┤ │ 520px │ 520px │ diff --git a/docs/doc-conventions.md b/docs/doc-conventions.md index 59059bb1..e4caed18 100644 --- a/docs/doc-conventions.md +++ b/docs/doc-conventions.md @@ -65,7 +65,7 @@ | 一系统一文档 | 每个子系统一份设计文档,不建 analysis 推演件;两三句能说清的"为什么"直接写进设计目的或规则正文 | | 正文只写现行规则 | 禁止删除线、"(作废)"、"(日期+拍板)"式注记;修订只进文末「版本历史」表;义务台账、拍板记录等审计信息入 `design/registry` 或附录,不入正文 | | 后置 ≠ 删除 | P1/P2 后置的内容逐条列出;复活后置项 = 修订文档,禁止静默加回 | -| 数值纪律 | 正文定规则、取值域、单位;平衡值进 `data/tables/`,provisional 必须标注;已锁数值事实源 = `data/tables/` 与 `design/registry/entities.yaml` | +| 数值纪律 | 正文定规则、取值域、单位;平衡值进 `data/tables/`,provisional 必须标注;已锁数值事实源 = `data/tables/` 与 `design/registry/entities.yaml`。**强制收口条款(2026-09-17 数值压缩批后补成)**:① **双写失同步禁止**——任何数值变更(压缩 / 换装 / 投值 / 区间平移 / 增减行)必须同时同步所有引用该数值的 GDD 表格正文、registry `entities.yaml` 的 `mvp_content` / `value_status`、相关待办清单现状——三类之一未更新即视为该变更**未完成**(先例:2026-09-17 整体数值压缩批只动了 `.tres` 与切片代码,未同步 `地图战斗资源.md` / `增益状态.md` 正文表格、`entities.yaml` mvp_content、`06-待办清单.md` 的 `heal 负向直伤` 条目,造成文档滞后);② **调参表锁数后删现行值列**——数值已锁定的调参表必须删除「现行值」列(敌人系统 v0.6 先例),仅保留 schema 模板与取值域,指路存根指向 `data/tables/.tres` 与 `registry/entities.yaml` 对应条目;③ **覆盖范围** = 奖励 / 状态 / 敌人 / 技能 / 充能 / 护甲等级 / 区间掷点 / 难度曲线 / D_ref 等所有数值字段;④ **维护通道** = 走「设计批 → 同步批」两段式——数值表改完不等于修订完成,须同步收口后方可记入版本历史;⑤ **压缩/换装批** = 一律走「`.tres` 落批 + 切片 smoke 跑通 + GDD 表格指路化 + registry mvp_content 指路化 + 待办清单现状刷新」五步全收才记版本号,缺步则版本号不增 | ## 6. 文档类型与骨架