merge(master): S9 类型闸修复批与两条工程条目出账 并入 iter37(收口前最后一次并源)

三处冲突全部按「取我方结构+确认对方注解已落新址」处置,零丢弃对方改动:
- main.gd:四解析函数体已由卡② r1-2 搬入 board_resolvers.gd,master 给 _identity_lookup 补的 -> Variant 在新件 identity_lookup:28 同形在位;build_adventure_params 的 SaveManagerCore/MetaProgressionCore 注解经自动合并落住(main.gd:367)
- views/battle_stage_view.gd:卡① d12 已改 (target_id: String, display_name: String) -> Variant,master 对旧一参形态的注解属同址更新,取我方
- views/board_view.gd:查表族/明度归一族已由卡③ r2-1 搬入 tile_palette.gd,master 的 lumas_out: Variant 注解在 tile_palette.gd:134 同形在位
待办清单.md:我方 P0 条目与 master 删两条已完成工程条目自动合并(64 条,S9/S13 条目出账)

合并后复核:13 个触及脚本 --check-only 零 Parse Error;master 修好的 S9 类型闸 PASS(其 26 处补注解零丢失、本批九新件零命中);gdstyle 216/216 基线内、新违规 0、恶化 0
This commit is contained in:
DKChan committed 2026-10-25 18:59:27 +08:00
commit 2dd3ec5640
18 files changed
+53 -99

No files matched your search

@@ -70,7 +70,7 @@
### 明细流水:每一行都能指回你刚才的哪一步棋
结算过程中每一件事都写一行明细,每行标注来源——哪个安全格、哪处封印、哪颗雷、清图奖励。这份流水是结算明细屏(玩家逐行查看决策兑现结果的界面)的数据源,也是回放对账与数据导出共读的唯一契约。行型封闭为 9 类(2026-09-20 伏击上限删除批下线溢出未生效行),不允许私自增加;新增或下线行型属于行协议变更,必须走本文修订,并同步呈现层的行格式化。
结算过程中每一件事都写一行明细,每行标注来源——哪个安全格、哪处封印、哪颗雷、清图奖励。这份流水是结算明细屏(玩家逐行查看决策兑现结果的界面)的数据源,也是回放对账与数据导出共读的唯一契约。行型分两层:**基础行型**封闭 9 类(下表),**扩展行** 1 类(专长经效果引擎插入的结算效果,见下节)。行型词表不允许私自增加;新增或下线行型属于行协议变更,必须走本文修订,并同步呈现层的行格式化。
| 行型 | 什么时候写 |
|---|---|
@@ -90,12 +90,20 @@
第一层按行型豁免两类:衰减行(到期移除本就是段级动作,不属于任何一格)、判定行(它是胜负出口的结论,不是棋盘事实)。这两类连来源类别都不必填。
第二层按来源类别豁免三类:主角攻击行的来源是主角单位本身,敌方行动行的来源是当时动手的那个敌人单位,清图奖励行的来源是"这张板被清掉"这一整板事实——它们都不指向某个棋盘格,来源格校验因此跳过。
第二层按来源类别豁免,封闭清单五类:主角攻击行(来源是主角单位本身)、敌方行动行(来源是当时动手的那个敌人单位)、清图奖励行(来源是"这张板被清掉"这一整板事实)、专长揭示掷格行(落空行没有真实棋盘格可指)、专长 GP 入账行(来源是钱包面而非棋盘面)——它们都不指向某个棋盘格,来源格校验因此跳过。
豁免不等于免检:按行型豁免的行仍要带齐公共字段、守住各自的语义约束(如衰减行的数值必须是本次移除的读数),按来源类别豁免的行仍必须写明来源类别,其余行必须指回一个真实存在的棋盘格。豁免只是免掉"来源格必须有效"这一条校验,不是免掉整份行协议。
举证:本节为行协议约定,无计算。
### 扩展行:专长插入的结算效果
基础 9 类写的是裸机制的账:玩家没有任何专长时,结算流水的每一行都出得了这九类。有了专长之后,效果引擎会在段内挂点插入额外的结算效果,这类效果写**扩展行**。扩展行是**一个**行型,不是每种专长效果各占一个行型——具体插的是哪种效果,由行携带的效果身份(effect_id 载荷)说明,呈现层按身份取各自的行文案。专长会不断增加、效果种类不可穷举,行型词表因此对扩展类封口:新增专长效果只新增载荷身份,不再新增行型。
扩展行与基础行共用同一套行协议:公共字段、来源归因、两层豁免、无来源即炸,全部照常生效。发射时点由段序骨架的挂点决定(时序与挂点施加面归架构文档「模块归属·战斗域装配现状」节),本节只管这行是什么、带什么字段。现行实现的扩展行型值以专长实名串承载,效果身份清单与发射点以实现侧 `battle_orchestrator.gd` 文件头注为准;收敛为单一扩展行型+效果载荷的条目在 [待办清单](../../../../待办清单.md) 在册。
举证:本节为行协议约定,无计算。
### 收益对照表:所有收益共用同一把尺子
开安全格给正向、封印标中给正向、踩雷与标错给负向、清图给清图奖励对象——来源不同、形态不同,但玩家必须能回答"挖这一格值不值",所以全部收益用一张效果档位对照表归一换算。折算单位是当量:1 当量等于 1 点主角生命的期望净变化。这张表是[行动经济](../排雷循环/行动经济.md)五条经济契约第一条"单一当量"的载体;本系统是全部五条契约的唯一对账责任方(契约本体见该文档,对账现状登记 [待办清单](../../../../待办清单.md))。
@@ -350,7 +358,7 @@ EV 参考数不入正文(派生读数,需要时按判定式与现行表值
- 关卡收束:关卡结束清空秘宝背包(关卡域库存——现行恒空的机械惰性承载,见「轮次生命周期」节注)恰一次并返回清空前计数;战斗结束不清背包。
- 可回放(封闭随机流口径):同种子同输入两遍步骤流逐位复现;随机消费仅限七处封闭随机流——开战掷骰(初始化随机)、技能摇号 `behavior_roll`(回合内、开轮时点、步骤流之外)、护甲等级掷点 `armor_roll`(回合内、步骤流之内)、奖励格摇号 `reward_roll`(初始化、装板期)、变异布置 `variant_place`(初始化、装板与资源预分配之后)、换板棋盘生成 `board_gen`(初始化、清图轮换板时点)、战斗结束掉落掷定 `gp_drop`(出口随机、战斗结束分支),无未登记随机源、零界面等待;单敌出招轨迹可独立复放、互不穿插。
- 无来源即炸:每行明细都能指回一个来源事实(棋盘格、单位、清图或段级结论);找不到来源即断言失败,行型与来源类别两层豁免清单见明细流水一节,豁免行仍受其它契约约束。
- 行型封闭:流水只出现本文登记的 9 类行型;新增或下线行型必须走本文修订并同步呈现层行格式化,未登记行型禁止落行。
- 行型封闭:流水行型只出现本文登记的基础 9 类与扩展行;行型词表改动必须走本文修订并同步呈现层行格式化,未登记行型禁止落行。
- 伤害单据管线(2026-09-24):全部伤害(主角先手、敌方伤害技、棋盘克制直伤、群伤、反噬、地形变异)经伤害控制器单据管线兑现,兑付配方封闭五种;目标在结账时刻照规则解析;死亡事件由单位自行宣布——怪死其未结单据作废(零行、不进冷却不进保底计数)、主角死兑付终止;段界结账为现行口径、开单即结为回切结构位,两模式各自同种子同输入逐位复现。
- 条款3 对账(2026-10-05 判式换代批 T3——与行动经济 F1 条款3 重立同步):①聚合健康式 (1−ρ̂)·E_dig(u) − ρ̂·V_mine(u) ≥ 0 与 β 比值带 [1.2, 2.5] 判读逐 u 检算(常设重跑入口 `tools/clear_dominance_audit.py`,读数快照归 registry clause3 重立条);②封印溢价兑付正确:封印标中正向兑付 = 同型正向 ×(1+δ)(δ 读 `settlement.tres` flag_hit_premium,100=无溢价直通零扰动),三类形态全覆盖(flat power / percent 幅度 / gp 缓冲)、标空与挖格兑付不乘溢价、危险格与安全格同池结构零触碰。