merge: 判式换代批T0-T5全落(迭代14②号卡;冒烟750/0+run_all 15套+探针绿+doc三闸零新增)
This commit is contained in:
commit
3e2c564b59
16 files changed
+416
-91
No files matched your search
@@ -59,7 +59,7 @@
|
|||||||
|
|
||||||
**归属**:[难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md)提案,战斗结算闭合共裁
|
**归属**:[难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md)提案,战斗结算闭合共裁
|
||||||
|
|
||||||
**状态**:对账复跑出讫(2026-09-29 迭代 8 卡⑧——投值后风险端当量 ×1.9,破线缓解未闭合;全量复算见 git 提交 d70f6c3 §二;结构性修订维持 Alpha 批归属)。**2026-10-04 判读收官+修订立项**:结构性修订已全裁(用户两轮「按推荐的来」+grill 七问——甲+丙先行/形态(a)兑付溢价 δ=1.25/β 带 [1.2,2.5]/条件二落文登记已知破·机制小批转绿,裁决回执=方案报告 §九,`design/research/方案-挖掘风险不等式修订-2026-10-04.md`);**判式换代批编入 roadmap 迭代 14(②号卡)**,任务书=`.zcode/plans/mine-inequality-revision-miniloop-plan-2026-10-04.md`(T0-T5≈2.5d,待 U0)——**原「Alpha 批归属」作废**(M-3 已关闭);本条正式收口随该批 T3 判式落文执行
|
**状态**:对账复跑出讫(2026-09-29 迭代 8 卡⑧——投值后风险端当量 ×1.9,破线缓解未闭合;全量复算见 git 提交 d70f6c3 §二;结构性修订维持 Alpha 批归属)。**2026-10-04 判读收官+修订立项**:结构性修订已全裁(用户两轮「按推荐的来」+grill 七问——甲+丙先行/形态(a)兑付溢价 δ=1.25/β 带 [1.2,2.5]/条件二落文登记已知破·机制小批转绿,裁决回执=方案报告 §九,`design/research/方案-挖掘风险不等式修订-2026-10-04.md`);**判式换代批编入 roadmap 迭代 14(②号卡)**,任务书=`.zcode/plans/mine-inequality-revision-miniloop-plan-2026-10-04.md`(T0-T5≈2.5d,待 U0)——**原「Alpha 批归属」作废**(M-3 已关闭)。**本条正式收口(2026-10-05 判式换代批 T3 落文=兑现条件)**:判式三层已重立落文(行动经济 F1 条款3 v0.8——聚合健康式只留下限 0 / 旗边际引理 / 条件二旗溢价 δ=0.25 provisional 形态 a,登记已知破·本批 T4 机制闭合)、β 带 [1.2,2.5] 判读制度化(u=3 β=1.17 微破下限=登记态)、registry `clause3_inequality` 重立条+改前静态锚+P7 两点修正注记落位、runsum 五字段(η 读数面)落码。**残留转登记面**:①u=3 微破下限与条件二等号压线不强制回滚(方案 §九 点名);②δ 敏感度判读(≥5pp 判据)随本批出口报告;③后续调参按 β 带逐 u 检算(难度曲线与Boss 调参联动表 +6 行)——不再立独立重跑批
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -119,6 +119,14 @@
|
|||||||
|
|
||||||
**局后随手记**(一句话):Boss 图这层"攻击多、回血少"的体感成不成立;有没有觉得 Boss 图突然变难/变容易。读数核对归模拟批(off/on 双档,只测不判),你的体感只做方向参考——不会当场改数值。
|
**局后随手记**(一句话):Boss 图这层"攻击多、回血少"的体感成不成立;有没有觉得 Boss 图突然变难/变容易。读数核对归模拟批(off/on 双档,只测不判),你的体感只做方向参考——不会当场改数值。
|
||||||
|
|
||||||
|
### ⑫ 旗溢价兑付与标旗激励(2026-10-05 挖掘风险不等式判式换代批随批登记——迭代14②号卡)
|
||||||
|
|
||||||
|
- **机制一句**:标中旗的正向兑付现在按同型正向 ×1.25 兑付(`settlement.tres` flag_hit_premium=125 provisional——条款3 条件二旗溢价形态 a),标空与挖格兑付不变;雷安同池结构零触碰。
|
||||||
|
- **看什么(实机目检,约 5 分钟)**:①插旗标中一面旗,结算明细的兑付数值应比改前同类行略大(增伤 50→63 / 削弱 65→81 / 急救 2→3 / 金币袋 3→4;护甲强化与行动点 1 点量纲不变=整数粒度地板);②挖安全格与标空惩罚行数值应与改前逐位相同;③战斗结算帮助文案如有旗相关行,无自造词。
|
||||||
|
- **行为读数(改前改后 MC 锚已采,判读随批出口报告)**:η=标中÷插旗 与 标旗率 位移 ≥5pp 判「有感」;行为无效 δ 仍保留+登记「行为无感」(判式诚实性不依赖行为弹性——2026-10-04 grill Q4 裁)。
|
||||||
|
- **红灯信号**:标旗 rush 复发(首轮全标旗不挖——δ 与完美排雷 ×2 叠加通胀是既有联动面:旗溢价三件套 δ↔p_perfect↔ap_per_round 同窗检算,难度曲线与Boss 调参联动表在册)。
|
||||||
|
- **结论回流**:体感 → 本条目记录;数值终值(δ 值与 ×1.5 档留后手)归调参批,不在试玩现场改数。**判式换代文本(行动经济 F1 条款3/战斗结算 验收标准/难度曲线与Boss 联动表三处修订稿)随批呈用户人闸**——追认单随出口报告。
|
||||||
|
|
||||||
## 验收读数重测义务(履行留痕 + 现行义务)
|
## 验收读数重测义务(履行留痕 + 现行义务)
|
||||||
|
|
||||||
**已履行**(按序换代,旧读数各随其批作废留痕不入本单):①验收读数重测批(2026-09-19——Boss 单独出列/承伤带/通关率基线全量重测,硬化翻倍期·乏力死效果期·充能期旧读数作废);②迭代 5 基线重测(统一随机流后 MC+verifier 双窗);③**数值修复批新尺重测(2026-10-01)**——模拟档位重构后全量重测,新锚 `sim-data/runsum_numfix_final_n200_20261001.jsonl`,全旧带作废只测不判([numfix 报告](../qa/numfix-newruler-readings-2026-10-01.md));④**迭代 10 奖励重构批重锚(2026-10-01)**——四代锚 77000/78000/79000/80000(改前/重构后/共享池后/掷定前置后,各 400 局),普通 L1 41.8%/L2 10.2% 带内([读数报告](../qa/m3-iter10-clear-rate-readings-2026-10-01.md));⑤**T19 真人标定局收口(2026-10-03 用户裁)**——有效局 2(1 通关 1 死于 L3 首战,[读数报告](../qa/t19-real-playtest-readings-2026-10-02.md)),用户裁定**佐证级收口不再补局**;k 预期带同日立(**正常 >0.5、预警 <0.3**),字段随 81000 重锚入库后补算终值。
|
**已履行**(按序换代,旧读数各随其批作废留痕不入本单):①验收读数重测批(2026-09-19——Boss 单独出列/承伤带/通关率基线全量重测,硬化翻倍期·乏力死效果期·充能期旧读数作废);②迭代 5 基线重测(统一随机流后 MC+verifier 双窗);③**数值修复批新尺重测(2026-10-01)**——模拟档位重构后全量重测,新锚 `sim-data/runsum_numfix_final_n200_20261001.jsonl`,全旧带作废只测不判([numfix 报告](../qa/numfix-newruler-readings-2026-10-01.md));④**迭代 10 奖励重构批重锚(2026-10-01)**——四代锚 77000/78000/79000/80000(改前/重构后/共享池后/掷定前置后,各 400 局),普通 L1 41.8%/L2 10.2% 带内([读数报告](../qa/m3-iter10-clear-rate-readings-2026-10-01.md));⑤**T19 真人标定局收口(2026-10-03 用户裁)**——有效局 2(1 通关 1 死于 L3 首战,[读数报告](../qa/t19-real-playtest-readings-2026-10-02.md)),用户裁定**佐证级收口不再补局**;k 预期带同日立(**正常 >0.5、预警 <0.3**),字段随 81000 重锚入库后补算终值。
|
||||||
|
|||||||
@@ -214,8 +214,14 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
|
|||||||
| 护甲类型 ↔ 克制矩阵 | [战斗结算](../战斗循环/战斗结算.md) | 敌种护甲变更须复算击杀区间(2026-09-19 充能退役——原"充能投桶与量"联动半边废止) |
|
| 护甲类型 ↔ 克制矩阵 | [战斗结算](../战斗循环/战斗结算.md) | 敌种护甲变更须复算击杀区间(2026-09-19 充能退役——原"充能投桶与量"联动半边废止) |
|
||||||
| 护甲等级 ↔ 攻击基线 ↔ 区间带宽 | [战斗结算](../战斗循环/战斗结算.md) | 敌种与主角的护甲等级行值变更须复算生存链区间(掷点带宽随折扣档位与攻击基线同向放大);掷点形式与档位已定稿(d20 三档——档位读 `settlement.tres`;nat20 暴击形式留档,倍率同表),护甲等级行值变更仍须复算生存链区间并同步 registry——现行行值读 `hero.tres` / `enemy.tres` 的 armor_class 列(均暂定),敌方正式行值随怪物设定批投值、与加难杠杆扫描合并调 |
|
| 护甲等级 ↔ 攻击基线 ↔ 区间带宽 | [战斗结算](../战斗循环/战斗结算.md) | 敌种与主角的护甲等级行值变更须复算生存链区间(掷点带宽随折扣档位与攻击基线同向放大);掷点形式与档位已定稿(d20 三档——档位读 `settlement.tres`;nat20 暴击形式留档,倍率同表),护甲等级行值变更仍须复算生存链区间并同步 registry——现行行值读 `hero.tres` / `enemy.tres` 的 armor_class 列(均暂定),敌方正式行值随怪物设定批投值、与加难杠杆扫描合并调 |
|
||||||
| GP 供给 ↔ 商品定价 | [冒险结构](冒险结构.md)、[关卡节点地图](关卡节点地图.md) | 供给 × 定价 = 入关属性参数,单边移动须复算分层通关率带(商店与 GP 经济杠杆节)——动供给必复算分层带,禁独立调参 |
|
| GP 供给 ↔ 商品定价 | [冒险结构](冒险结构.md)、[关卡节点地图](关卡节点地图.md) | 供给 × 定价 = 入关属性参数,单边移动须复算分层通关率带(商店与 GP 经济杠杆节)——动供给必复算分层带,禁独立调参 |
|
||||||
|
| 旗溢价系数 δ ↔ 完美乘数 p_perfect ↔ ap_per_round | [战斗结算](../战斗循环/战斗结算.md)、[行动经济](../排雷循环/行动经济.md) | 旗激励三件套同窗检算(防标旗 rush 复发:δ 与 ×2 叠加通胀、AP 吞吐上限)——任一变动须重跑双画像标旗率读数(2026-10-05 判式换代批新增) |
|
||||||
|
| η 读数 ↔ 模拟画像定义 ↔ 可推理率 ι ↔ min_safe_count/生成尝试上限 | sim 档位、[棋盘生成](../排雷循环/棋盘生成.md) | η 是画像条件量:画像重构即锚漂移,重锚随批;可推理率三元组既有联动扩一员(2026-10-05 判式换代批新增) |
|
||||||
|
| β 带端点 β_lo/β_hi ↔ D_ref ↔ hero max_hp ↔ AC 折算档(5pp 系数) | [战斗结算](../战斗循环/战斗结算.md) | 带是 D_ref 的函数:换锚(D_ref/max_hp)须全带重推;AC 档值变更改 5pp 系数,同罪(2026-10-05 判式换代批新增) |
|
||||||
|
| 直伤雷三行(6/8/8) ↔ 正向同轴行(heal_minor/pierce_strike/magic_bolt) | [地图战斗资源](../战斗循环/地图战斗资源.md) | **同轴镜像比入对账面**:负向/正向比超出 β 带内推导区间即越带;单边动负向三行今后必须带正向镜像行联合检算(2026-10-05 判式换代批新增——d70f6c3/数值修复批两先例的单边动教训成文) |
|
||||||
|
| clear_blast 区间(24/40/32) ↔ p_perfect | [地图战斗资源](../战斗循环/地图战斗资源.md) | 完美排雷第二份的补贴基数进旗激励对账;单边动清图奖励 = 变相动旗(2026-10-05 判式换代批新增) |
|
||||||
|
| 标中强化池权重 ↔ 正向池权重(77 分母) ↔ 关级恒等式奖励占比 [15,40%] | [地图战斗资源](../战斗循环/地图战斗资源.md) | 形态 (b) 专属池重摇启用时生效(现行不启):双池分布变动 = E_dig 与 W 同时漂移,须联合检算 + 恒等式占比复核(2026-10-05 判式换代批新增,条件生效行) |
|
||||||
|
|
||||||
五条经济契约的对账由[战斗结算](../战斗循环/战斗结算.md)闭合验收,其中挖掘风险不等式现行验算破线(现状见其「待办」);清图支配性已于 2026-09-19 按现行值链重跑、裁决②"非支配设计态"维持(回执见 git 提交 2ca3e20,报告已退役)——两型的重跑义务都落在本系统的下一次调参批随批执行,这是本系统当前最优先的调参义务。完美排雷乘数的调参权在本系统。
|
五条经济契约的对账由[战斗结算](../战斗循环/战斗结算.md)闭合验收;挖掘风险不等式已于 2026-10-05 判式换代批重立(三层口径+β 带+条件二旗溢价——结构层接替与数值层带判读详见行动经济 F1 条款3 推导节),本系统的对账义务转为按 β 带逐 u 检算(常设重跑入口 `tools/clear_dominance_audit.py`,现行 u=3 β=1.17 微破下限登记态);清图支配性已于 2026-09-19 按现行值链重跑、裁决②"非支配设计态"维持(回执见 git 提交 2ca3e20,报告已退役)——判式换代后的全套判值重跑随本系统下一次调参批随批执行。完美排雷乘数的调参权在本系统。
|
||||||
|
|
||||||
元进度接口预留:**结论——元进度解锁对难度的影响,以生存链区间的平移换算率接入;接口启用形态已定稿(2026-09-18 元进度定稿批,用户拍板):永久强化影响折算为通关率带平移量,判读口径不变;换算率表首版三行(生命上限 / 基础攻击 / 护甲等级——护甲行强条目,验收读数须按解锁后参数重测)与键结构登记见 registry `meta_progression_conversion_table`,数值行读 `data/tables/`、标定随元进度设计批。** 元进度数值行落地前,本系统不为它预留任何数值行。
|
元进度接口预留:**结论——元进度解锁对难度的影响,以生存链区间的平移换算率接入;接口启用形态已定稿(2026-09-18 元进度定稿批,用户拍板):永久强化影响折算为通关率带平移量,判读口径不变;换算率表首版三行(生命上限 / 基础攻击 / 护甲等级——护甲行强条目,验收读数须按解锁后参数重测)与键结构登记见 registry `meta_progression_conversion_table`,数值行读 `data/tables/`、标定随元进度设计批。** 元进度数值行落地前,本系统不为它预留任何数值行。
|
||||||
|
|
||||||
@@ -251,7 +257,7 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
|
|||||||
| 优先级 | 内容 | 后置原因 |
|
| 优先级 | 内容 | 后置原因 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| P1 | 加难杠杆扫描落带 | 候选杠杆已登记(血量锚走廊、群战上探、注入衰减上调候选),扫描未执行;护甲等级换装点锚定(基准护甲等级自带敌方输出期望的结构性削减 + 减伤墙退役 + 伤害下限)的方向性偏移并入本扫描一并调带(带宽补扫含暴击档与折扣档);落带前现行行值维持 provisional-pending-scan。第二关行集随分支节点图批落地后并入本扫描(L2 读数基线/加成档已随批实测,见 v0.7) |
|
| P1 | 加难杠杆扫描落带 | 候选杠杆已登记(血量锚走廊、群战上探、注入衰减上调候选),扫描未执行;护甲等级换装点锚定(基准护甲等级自带敌方输出期望的结构性削减 + 减伤墙退役 + 伤害下限)的方向性偏移并入本扫描一并调带(带宽补扫含暴击档与折扣档);落带前现行行值维持 provisional-pending-scan。第二关行集随分支节点图批落地后并入本扫描(L2 读数基线/加成档已随批实测,见 v0.7) |
|
||||||
| P1 | 挖掘风险不等式与清图支配性对账重跑 | 两条对账:清图支配性已于 2026-09-19 按现行值链重跑(裁决②"非支配设计态"维持——缺口收窄主读数 L1≈24/L2≈45 当量〔u=1〕,设计权威回执=git 提交 2ca3e20,重跑入口 tools/clear_dominance_audit.py);调参批执行时按当期行值随批重跑。挖掘风险不等式现行破线,义务仍落本文调参批(现状见[战斗结算](../战斗循环/战斗结算.md)「待办」) |
|
| P1 | 挖掘风险不等式与清图支配性对账重跑 | **挖掘风险不等式半边已收口(2026-10-05 判式换代批,迭代14②号卡)**——判式三层重立落文+条件二旗溢价机制闭合+β 带判读制度化(残留=u=3 β=1.17 微破下限登记态,不强制回滚;δ 敏感度判读随批出口报告),本行对挖掘风险不等式的「重跑义务」改判读回执:后续调参按 β 带检算执行,不再立独立重跑批。清图支配性已于 2026-09-19 按现行值链重跑(裁决②"非支配设计态"维持——缺口收窄主读数 L1≈24/L2≈45 当量〔u=1〕,设计权威回执=git 提交 2ca3e20,重跑入口 tools/clear_dominance_audit.py);调参批执行时按当期行值随批重跑 |
|
||||||
| P1 | 真人通关率修正系数标定 | 带按模拟口径定义;试玩批次实测真人显著强于模拟者,系数待后续试玩批次定量 |
|
| P1 | 真人通关率修正系数标定 | 带按模拟口径定义;试玩批次实测真人显著强于模拟者,系数待后续试玩批次定量 |
|
||||||
| P1 | 迭代 10 奖励重构带重扫义务 | 恢复经济收紧(通关血回满→部分回血 20%,难度上压方向)+ 局内成长节奏变动(三选一件值/权重/次数上限 knob 全读冒险表;AP 件 = 每场战斗开始首轮 +1 AP 的强度敏感轴)——通关率带重扫随曲线调参批现行窗执行;Boss 钥石掉落重锚(首杀 3/复杀 2)连带元进度产出标定义务重开(归元进度设计批) |
|
| P1 | 迭代 10 奖励重构带重扫义务 | 恢复经济收紧(通关血回满→部分回血 20%,难度上压方向)+ 局内成长节奏变动(三选一件值/权重/次数上限 knob 全读冒险表;AP 件 = 每场战斗开始首轮 +1 AP 的强度敏感轴)——通关率带重扫随曲线调参批现行窗执行;Boss 钥石掉落重锚(首杀 3/复杀 2)连带元进度产出标定义务重开(归元进度设计批) |
|
||||||
| P1 | 完美策略档的结构性加难杠杆 | 数值杠杆对完美档已被实测证伪,结构候选未裁决(见「待办」) |
|
| P1 | 完美策略档的结构性加难杠杆 | 数值杠杆对完美档已被实测证伪,结构候选未裁决(见「待办」) |
|
||||||
@@ -351,3 +357,4 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
|
|||||||
| v0.20 | 2026-09-28 | 判读口径落档+回滚阶梯收编+Boss 锚漂移登记 |
|
| v0.20 | 2026-09-28 | 判读口径落档+回滚阶梯收编+Boss 锚漂移登记 |
|
||||||
| v0.21 | 2026-09-30 | 普通档改带 L1 [35,55]/L2 [10,15]+带表与验收标准回写现行口径 |
|
| v0.21 | 2026-09-30 | 普通档改带 L1 [35,55]/L2 [10,15]+带表与验收标准回写现行口径 |
|
||||||
| v0.22 | 2026-10-03 | **商店定价公式换代(迭代 11 第②批 GP 商店房重构批——任务书 v1.3 P1 共享池/P4 ceil/P5 甲;06 条 2026-10-02 用户裁决)**:商店与 GP 经济杠杆节公式换代 = ceil(基价 × b^(关序−1) × A^(进店已购次数)),A/b provisional 投值 1.8/1.1(原 P5 甲 game-balancer 研究拍板改后置追认——零人工令);杠杆位表换货架基价四行+价格因子 A/b 两行;分层验收 defer 节补 v0.22 注记(shop=off=legacy 对照 off_n60 逐位 / shop=on 首锚 N=60 双策略带平移归调参批/终局池读数只测不判)。行值零结构改动(shop.tres 扩列不退役) |
|
| v0.22 | 2026-10-03 | **商店定价公式换代(迭代 11 第②批 GP 商店房重构批——任务书 v1.3 P1 共享池/P4 ceil/P5 甲;06 条 2026-10-02 用户裁决)**:商店与 GP 经济杠杆节公式换代 = ceil(基价 × b^(关序−1) × A^(进店已购次数)),A/b provisional 投值 1.8/1.1(原 P5 甲 game-balancer 研究拍板改后置追认——零人工令);杠杆位表换货架基价四行+价格因子 A/b 两行;分层验收 defer 节补 v0.22 注记(shop=off=legacy 对照 off_n60 逐位 / shop=on 首锚 N=60 双策略带平移归调参批/终局池读数只测不判)。行值零结构改动(shop.tres 扩列不退役) |
|
||||||
|
| v0.23 | 2026-10-05 | **挖掘风险不等式判式换代(迭代14②号卡 T3——与行动经济/战斗结算/registry 同批)**:调参联动表 +6 新增行(旗溢价三件套 δ↔p_perfect↔ap_per_round / η 读数画像联动扩员 / β 带端点↔D_ref↔max_hp↔AC 折算 / 直伤雷三行↔正向同轴行〔同轴镜像比入对账面〕/ clear_blast 区间↔p_perfect / 标中强化池权重〔形态 b 条件生效行〕);P1 后置「挖掘风险不等式与清图支配性对账重跑」行改判读回执(不等式半边收口=判式重立+β 带检算接替,残留 u=3 β=1.17 登记态;清图支配性维持);五条经济契约对账段换代 |
|
||||||
@@ -116,6 +116,8 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 ×
|
|||||||
| 层数 × 行值 | 单条效果的叠层数与行值,读[增益状态](增益状态.md)的实例数据 | 行值归该系统 |
|
| 层数 × 行值 | 单条效果的叠层数与行值,读[增益状态](增益状态.md)的实例数据 | 行值归该系统 |
|
||||||
| 完美乘数 | 完美排雷给清图奖励的乘数,配置值 | 读 `settlement.tres` p_perfect(现行值读表) |
|
| 完美乘数 | 完美排雷给清图奖励的乘数,配置值 | 读 `settlement.tres` p_perfect(现行值读表) |
|
||||||
|
|
||||||
|
**gp / ap 当量口径注记(2026-10-05 判式换代批 T3——口径空白登记)**:上式 flat 类枚举(直伤、治疗、行动点)不含 gp——现行对账按 **gp 当量 = flat power 代理**计(金币袋 3 / 破财 2,方案报告假设 A5);ap 当量 = flat 表值 1,机会成本口径(+1AP ≈ 多挖一格 ≈ E_dig + 进度 + 信息价值)更高,差异仅登记不进主算(假设 A6)。gp 的精确口径应经商店定价换算(1 GP 的边际属性当量),归状态层/商店批复核后换代。旗溢价兑付(条款3 条件二形态 a,`settlement.tres` flag_hit_premium=125 provisional)按同型正向 ×(1+δ) 兑付——当量换算随同型行口径同步放大,整数量级取整四舍五入(与伤害管线 round_direction=floor 分域,registry 随批登记)。
|
||||||
|
|
||||||
### 授予段兑付:极性路由,四类动作各归各账
|
### 授予段兑付:极性路由,四类动作各归各账
|
||||||
|
|
||||||
授予段消费结算队列。**队列与判定基线**:挖掘期玩家对格子的动作——开格、标旗——都进入结算队列;结算逐批兑付,不走逐动作出栈直算。旗判定以轮末在场旗位为基线:被直接挖开的旗已随挖掘消失、不在基线(零兑付——标中 / 标空让位于挖掘本体结局,见下文插旗不可逆四情况);开格事实不可撤(已开格无法回退)。过滤后按触发源分三批兑换,每格受理、每旗判定恰好一次。
|
授予段消费结算队列。**队列与判定基线**:挖掘期玩家对格子的动作——开格、标旗——都进入结算队列;结算逐批兑付,不走逐动作出栈直算。旗判定以轮末在场旗位为基线:被直接挖开的旗已随挖掘消失、不在基线(零兑付——标中 / 标空让位于挖掘本体结局,见下文插旗不可逆四情况);开格事实不可撤(已开格无法回退)。过滤后按触发源分三批兑换,每格受理、每旗判定恰好一次。
|
||||||
@@ -352,6 +354,7 @@ EV 参考数不入正文(派生读数,需要时按判定式与现行表值
|
|||||||
- 无来源即炸:每行明细都能指回一个来源事实(棋盘格、单位、清图或段级结论);找不到来源即断言失败,行型与来源类别两层豁免清单见明细流水一节,豁免行仍受其它契约约束。
|
- 无来源即炸:每行明细都能指回一个来源事实(棋盘格、单位、清图或段级结论);找不到来源即断言失败,行型与来源类别两层豁免清单见明细流水一节,豁免行仍受其它契约约束。
|
||||||
- 行型封闭:流水只出现本文登记的 9 类行型;新增或下线行型必须走本文修订并同步呈现层行格式化,未登记行型不得落行。
|
- 行型封闭:流水只出现本文登记的 9 类行型;新增或下线行型必须走本文修订并同步呈现层行格式化,未登记行型不得落行。
|
||||||
- 伤害单据管线(2026-09-24):全部伤害(主角先手、敌方伤害技、棋盘克制直伤、群伤、反噬、地形变异)经伤害控制器单据管线兑现,兑付配方封闭五种;目标在结账时刻照规则解析;死亡事件由单位自行宣布——怪死其未结单据作废(零行、不进冷却不进保底计数)、主角死兑付终止;段界结账为现行口径、开单即结为回切结构位,两模式各自同种子同输入逐位复现。
|
- 伤害单据管线(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 缓冲)、标空与挖格兑付不乘溢价、雷安同池结构零触碰。
|
||||||
|
|
||||||
## 待办
|
## 待办
|
||||||
|
|
||||||
@@ -385,3 +388,4 @@ EV 参考数不入正文(派生读数,需要时按判定式与现行表值
|
|||||||
| v0.22 | 2026-09-19 | **充能退役批(版本号避让注记:原登 v0.16 与甲效矩阵加法核换装批撞号——2026-09-20 R10 版本号唯一性规则上线发现,后落籍者顺延;用户拍板,与切片代码 / registry / 07 清单 / README 同批)**:主角攻击三分量模型(普通 + 穿刺/魔法充能)整体退役,回归单分量——量 = 攻击基线、类型 = 主角表 attack_type;挖格批/旗判定批的充能计数条款删除、充能供给表与 charge_grants 调参行删除、乘区公式与粒度口径改"攻击合计";退役理由 = 克制策略归冒险前配置(营地换型/未来冒险前参数面),局内不再有挖掘攒弹药的第二伤害供给;保留面 = 攻击类型属性轴与棋盘奖励触发源的抽象分离、奖励直伤道具(穿刺弹/魔法矢)的克制直伤消费不变。切片同批:battle_orchestrator 攻击段单分量化 + _charge_points/_charge_counts/round_facts 充能键删除、DamageMath.charge_component → counter_component 改名(奖励直伤唯一消费方)、settlement.tres charge_grants 键与 schema 校验删除、冒烟充能断言组退役改形(乘区接线单分量基线 100、标中正向兑付行断言、恢复点探针换种子 42)、冒烟 293 项 0 失败 |
|
| v0.22 | 2026-09-19 | **充能退役批(版本号避让注记:原登 v0.16 与甲效矩阵加法核换装批撞号——2026-09-20 R10 版本号唯一性规则上线发现,后落籍者顺延;用户拍板,与切片代码 / registry / 07 清单 / README 同批)**:主角攻击三分量模型(普通 + 穿刺/魔法充能)整体退役,回归单分量——量 = 攻击基线、类型 = 主角表 attack_type;挖格批/旗判定批的充能计数条款删除、充能供给表与 charge_grants 调参行删除、乘区公式与粒度口径改"攻击合计";退役理由 = 克制策略归冒险前配置(营地换型/未来冒险前参数面),局内不再有挖掘攒弹药的第二伤害供给;保留面 = 攻击类型属性轴与棋盘奖励触发源的抽象分离、奖励直伤道具(穿刺弹/魔法矢)的克制直伤消费不变。切片同批:battle_orchestrator 攻击段单分量化 + _charge_points/_charge_counts/round_facts 充能键删除、DamageMath.charge_component → counter_component 改名(奖励直伤唯一消费方)、settlement.tres charge_grants 键与 schema 校验删除、冒烟充能断言组退役改形(乘区接线单分量基线 100、标中正向兑付行断言、恢复点探针换种子 42)、冒烟 293 项 0 失败 |
|
||||||
| v0.23 | 2026-09-20 | **GP+商店房批(用户拍板——与 关卡节点地图 v1.1 / 冒险结构 v0.5 / 地图战斗资源 v0.15 / 难度曲线与Boss v0.18 / registry / 切片代码同批;版本号注记:v0.22 已被充能退役批占用,表尾顺延)**:① 呈现只读面表 battle_finished 载荷 +gp_dropped(掉落掷定 + 关级加值 + 战斗内缓冲的合计——字段增删走本文修订条款兑现);② 授予段兑付形态表新增 GP 缓冲行:gp 正/负向(金币袋 / 破财——九型批)兑付 = 战斗内 GP 缓冲 ±power,战斗完成统一上抛入钱包账本(账本归冒险结构),战斗域零钱包状态;③ 随机口径六处→七处:战斗结束掉落掷定消费 `gp_drop` 封闭流(出口随机、步骤流之外);九型字典措辞与验收标准可回放条目同步 |
|
| v0.23 | 2026-09-20 | **GP+商店房批(用户拍板——与 关卡节点地图 v1.1 / 冒险结构 v0.5 / 地图战斗资源 v0.15 / 难度曲线与Boss v0.18 / registry / 切片代码同批;版本号注记:v0.22 已被充能退役批占用,表尾顺延)**:① 呈现只读面表 battle_finished 载荷 +gp_dropped(掉落掷定 + 关级加值 + 战斗内缓冲的合计——字段增删走本文修订条款兑现);② 授予段兑付形态表新增 GP 缓冲行:gp 正/负向(金币袋 / 破财——九型批)兑付 = 战斗内 GP 缓冲 ±power,战斗完成统一上抛入钱包账本(账本归冒险结构),战斗域零钱包状态;③ 随机口径六处→七处:战斗结束掉落掷定消费 `gp_drop` 封闭流(出口随机、步骤流之外);九型字典措辞与验收标准可回放条目同步 |
|
||||||
| v0.24 | 2026-09-24 | **伤害管线单据化批(用户三裁决——与切片代码同批,06 台账 148)**:新增「伤害单据与伤害控制器」一节——伤害对象抽象补全:五族伤害来源收口伤害控制器单点管线、兑付配方封闭五种;三裁决落文——①结账时机双模式(现行 = 段界结账:授予段尾 / 清图批同步点 / 战斗段尾;开单即结保留为回切结构位,切换走代码不走调参)②目标结账时刻照规则解析③死亡事件由单位自行宣布(怪死其未结单据作废、主角死兑付终止);授予段兑付与战斗段两节补结账时点句;验收标准 +伤害单据管线条目。切片同批:`core/damage_controller.gd` 新建(单据构造/开单/结账/死亡事件消费/管线算术收口)、battle_orchestrator 六调用点改开单、掷点/折扣/克制/池乘/攻击行文本助手迁出(`_defender_ac`/`_clamped_pool` 留薄委托)、unit_container 增 `unit_died` 信号;冒烟 557 项 0 失败双模式全绿 + A/B 对拍四配置全确定且真实分岔(行数恒等、纯次序位移);历史基线读数自本批起以段界结账口径为准(重测归曲线调参批) |
|
| v0.24 | 2026-09-24 | **伤害管线单据化批(用户三裁决——与切片代码同批,06 台账 148)**:新增「伤害单据与伤害控制器」一节——伤害对象抽象补全:五族伤害来源收口伤害控制器单点管线、兑付配方封闭五种;三裁决落文——①结账时机双模式(现行 = 段界结账:授予段尾 / 清图批同步点 / 战斗段尾;开单即结保留为回切结构位,切换走代码不走调参)②目标结账时刻照规则解析③死亡事件由单位自行宣布(怪死其未结单据作废、主角死兑付终止);授予段兑付与战斗段两节补结账时点句;验收标准 +伤害单据管线条目。切片同批:`core/damage_controller.gd` 新建(单据构造/开单/结账/死亡事件消费/管线算术收口)、battle_orchestrator 六调用点改开单、掷点/折扣/克制/池乘/攻击行文本助手迁出(`_defender_ac`/`_clamped_pool` 留薄委托)、unit_container 增 `unit_died` 信号;冒烟 557 项 0 失败双模式全绿 + A/B 对拍四配置全确定且真实分岔(行数恒等、纯次序位移);历史基线读数自本批起以段界结账口径为准(重测归曲线调参批) |
|
||||||
|
| v0.25 | 2026-10-05 | **挖掘风险不等式判式换代(迭代14②号卡 T3/T4——与行动经济/难度曲线与Boss/registry 同批)**:①收益对照表补 gp/ap 当量口径注记(gp=flat power 代理 3/2 假设 A5 口径空白登记、ap=flat 表值 1 机会成本口径仅登记假设 A6,精确口径归商店批复核);②验收标准 +条款3 对账条(聚合健康式+β 带逐 u 检算 / 旗溢价兑付三形态覆盖·标空与挖格不乘·同池零触碰);③T4 机制载体 = settlement.tres 新键 flag_hit_premium=125(percent 域 provisional)——标中旗正向兑付 ×(1+δ),整数四舍五入取整与伤害管线 floor 分域(registry 随批登记);DamageController 零改、雷安同池冻结不动、直伤雷 6/8/8 与 p_perfect 不动 |
|
||||||
@@ -127,30 +127,65 @@
|
|||||||
|
|
||||||
1. **单一当量**:所有收益来源用同一张效果对照表归一换算,不允许分源改率。
|
1. **单一当量**:所有收益来源用同一张效果对照表归一换算,不允许分源改率。
|
||||||
2. **标中旗锚**:标中旗的减益档位必须严格高于最低档安全格增益——否则没人愿意插旗。
|
2. **标中旗锚**:标中旗的减益档位必须严格高于最低档安全格增益——否则没人愿意插旗。
|
||||||
3. **挖掘风险不等式**(2026-09-20 八型批改写):原"敌方伏击暴露不等式"随伏击机制退役作废——blast 负向现况 = 警觉(敌方护甲等级 +1,掷点折扣分布型惩罚),惩罚当量对账模型归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)调参批重立。
|
3. **挖掘风险不等式**(2026-10-05 判式换代批重立——迭代14②号卡;原"敌方伏击暴露不等式"2026-09-20 随伏击机制退役作废,惩罚当量对账模型由本条重立承接,详细推导见下方推导节):聚合健康式 + 旗溢价条件二 + β 比值带判读,三层口径并行立(2026-10-04 用户裁 P2)。
|
||||||
4. **清图奖励大于零**,并预留按图类型差异化分支的结构位。
|
4. **清图奖励大于零**,并预留按图类型差异化分支的结构位。
|
||||||
5. **清图支配性**:推到底清图的期望收益,不低于"确定格挖完就弃图刷新"的期望收益——否则清图玩法会被刷新策略淘汰。
|
5. **清图支配性**:推到底清图的期望收益,不低于"确定格挖完就弃图刷新"的期望收益——否则清图玩法会被刷新策略淘汰。
|
||||||
|
|
||||||
**结论**:五条契约由战斗结算作为唯一对账责任方闭合验收;概率侧由棋盘生成的可推理率参数锚定,惩罚侧现由 blast 型负向警觉承载(2026-09-20 八型批伏击退役换装),当量对账模型归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)调参批重立。
|
**结论**:五条契约由战斗结算作为唯一对账责任方闭合验收;概率侧由棋盘生成的可推理率参数锚定;条款3 数值层由 β 比值带 [1.2, 2.5] 判读看护(常设重跑入口 `tools/clear_dominance_audit.py`),旗边际结构层由条件二旗溢价接替(机制载体 settlement.flag_hit_premium)。
|
||||||
|
|
||||||
推导:
|
推导:
|
||||||
|
|
||||||
```
|
```
|
||||||
条款 3(2026-09-20 八型批改写):
|
条款 3(2026-10-05 判式换代批重立——三层口径并行立,2026-10-04 用户裁 P2;
|
||||||
原"敌方伏击暴露不等式"随伏击机制退役作废——
|
设计权威 = design/research/方案-挖掘风险不等式修订-2026-10-04.md §四/§九)
|
||||||
blast 负向现况 = 警觉(敌方护甲等级 +1,掷点折扣分布型惩罚),
|
|
||||||
惩罚当量对账模型归 难度曲线与Boss 调参批重立
|
|
||||||
|
|
||||||
条款 5(清图支配性):
|
条款 2(标中旗锚,既有不动):标中旗的减益档位必须严格高于最低档安全格增益。
|
||||||
|
|
||||||
|
条款 3(聚合健康式,接替旧界形式)——盲挖净期望非负:
|
||||||
|
(1−ρ̂)·E_dig(u) − ρ̂·V_mine(u) ≥ 0 对全部参考板形 × u ∈ {1,2,3}
|
||||||
|
下限 0 = 盲挖不为负;上限不设(旧 U_band 删,2026-10-04 grill Q3 裁)——
|
||||||
|
收益端通胀防护由 β 比值带的 β_hi 独家承载(同一约束单一承载)。
|
||||||
|
|
||||||
|
旗边际引理(同池结构定理):雷安同池 + 极性矩阵同字典 ⇒ 标中旗兑付分布 ≡ 安全格
|
||||||
|
兑付分布,EV_flag − EV_blind = (q + ρ̂ − 1)·(E_dig + V_mine),符号只由 q + ρ̂ − 1
|
||||||
|
决定 ⇒ 「旗优于盲挖 ⇔ q > 1−ρ̂」,与全部当量表值无关(风险端定价动不了这一支);
|
||||||
|
标中旗对「挖已知安全格」的边际恒 ≤ 0(= −(1−q)(E_dig+V_mine))——L2 结构破线层,
|
||||||
|
由条件二接替。
|
||||||
|
|
||||||
|
条件二(旗溢价式)——L2 结构破线的正当化条款:
|
||||||
|
E[标中兑付当量] ≥ (1+δ)·E_dig(u)
|
||||||
|
δ = 旗溢价系数,现行 0.25(provisional,2026-10-04 用户裁 P3);实施形态 =
|
||||||
|
(a) 兑付溢价——标中兑付按同型正向 ×(1+δ)(改战斗结算兑付公式一处,机制载体
|
||||||
|
settlement.tres flag_hit_premium = 125,percent 域);(b) 专属池重摇不启
|
||||||
|
(雷安同池结构冻结不动,留给异池后备案一并裁)。
|
||||||
|
登记态(落文时点):δ 落地前现行值已知破(E[标中] = E_dig < 1.25·E_dig 恒假)——
|
||||||
|
按「登记已知破·限期闭合」纪律落文,本批 T4 机制小批闭合;δ=1.25 时条件二以
|
||||||
|
等号压线成立(严格大于须 δ>0.25,×1.5 档留后手)。
|
||||||
|
|
||||||
|
β 比值带(数值层看护,2026-10-04 用户裁 P4):
|
||||||
|
β(u) = V_mine(u) ÷ E_dig(u) ∈ [1.2, 2.5]
|
||||||
|
β_lo = 风险端定价下限(旗的避险价值为真);β_hi < (1−ρ̂)÷ρ̂ 蕴含条款3 恒成立。
|
||||||
|
现行读数 β = 1.71 / 1.37 / 1.17(u=1/2/3,名义 ρ)——u=1/2 带内,u=3(1.17)
|
||||||
|
微破下限 = 登记态点名,不强制回滚。直伤雷行值/ρ 每次提案逐档检算落带
|
||||||
|
(2026-10-04 grill Q3 裁:删「≤15pp·S 形」装饰条款)。
|
||||||
|
|
||||||
|
η 读数(行为面,非判式——2026-10-04 用户裁 P1 乙降格读数):
|
||||||
|
η = flag_hit ÷ flag_placed(分母 = 全部插旗数,2026-10-04 grill Q5 裁),
|
||||||
|
标空率 = flag_miss ÷ flag_placed 次读数分列。字段随 runsum 五字段承载
|
||||||
|
(flag_placed/flag_hit/flag_miss/标中兑付合计/标空惩罚合计——结算流水聚合)。
|
||||||
|
|
||||||
|
条款 5(清图支配性,不动):
|
||||||
清图奖励当量 ≥ 弃图节省的期望雷险当量 + 轮数差 × 敌方结算强度当量
|
清图奖励当量 ≥ 弃图节省的期望雷险当量 + 轮数差 × 敌方结算强度当量
|
||||||
```
|
```
|
||||||
|
|
||||||
| 变量 | 含义 | 锚定来源 |
|
| 变量 | 含义 | 锚定来源 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| P(安全) / P(雷) | 挖掘目标格为安全格 / 为雷的概率 | 实测可推理率分布 p10(registry inferability_vs_p_safe 口径——非 target 参数) |
|
| E_dig(u) | 单安全格期望收益当量(77 权重池加权,随敌方单位数 u 缩放 side-wide 项) | 战斗结算的效果对照表 + `tools/clear_dominance_audit.py` |
|
||||||
| 增益当量下界 | 最低档安全格增益换算值 | 战斗结算的效果对照表 |
|
| V_mine(u) | 单雷期望惩罚当量(九型负向字典同池加权) | 同上 |
|
||||||
| 敌方增益当量上界 | 踩雷惩罚的换算上限(原伏击惩罚上限表随 2026-09-20 八型批伏击退役,对账模型归 难度曲线与Boss 调参批重立) | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
| ρ̂ | 雷率:名义 0.25 与实测幸存雷率(10×10 ≈ 0.129 / 12×12 ≈ 0.157)双口径并报,主表用名义(保守) | board_gen.tres + board_stat_probe 读数 |
|
||||||
| 清图奖励当量 | 清图奖励的换算值 | [地图战斗资源](../战斗循环/地图战斗资源.md) |
|
| q | 玩家对目标格为雷的置信 | 玩家侧行为量(可推理格 q ∈ {0,1}) |
|
||||||
|
| β 带 | V_mine/E_dig 判读带 [1.2, 2.5] | registry clause3 重立条(本批登记) |
|
||||||
|
| δ | 旗溢价系数 0.25 provisional | settlement.tres flag_hit_premium = 125 |
|
||||||
|
|
||||||
### 配置纪律
|
### 配置纪律
|
||||||
|
|
||||||
@@ -234,3 +269,4 @@
|
|||||||
| v0.5 | 2026-09-20 | **格面资源八型批同步(用户拍板——与敌人系统 / 战斗结算 / 地图战斗资源 / registry / 切片代码同批)**:① F1 条款 3 改写——原"敌方伏击暴露不等式"随伏击机制退役作废,惩罚当量对账模型归难度曲线与Boss 调参批重立;② 新增「下轮行动点修正」节——action 型格面资源经 queue_ap_delta 排队、下一轮开始兑现(基线 ap_per_round + 净值、下限 0、兑现后清零),跨轮携带量口径改写(RAP 唯一显式携带资源 + 一次性修正队列);③ 节拍不变式(满停一轮 = 恰好一刷)补扰动注记 |
|
| v0.5 | 2026-09-20 | **格面资源八型批同步(用户拍板——与敌人系统 / 战斗结算 / 地图战斗资源 / registry / 切片代码同批)**:① F1 条款 3 改写——原"敌方伏击暴露不等式"随伏击机制退役作废,惩罚当量对账模型归难度曲线与Boss 调参批重立;② 新增「下轮行动点修正」节——action 型格面资源经 queue_ap_delta 排队、下一轮开始兑现(基线 ap_per_round + 净值、下限 0、兑现后清零),跨轮携带量口径改写(RAP 唯一显式携带资源 + 一次性修正队列);③ 节拍不变式(满停一轮 = 恰好一刷)补扰动注记 |
|
||||||
| v0.6 | 2026-10-01 | **失同步清偿 + 跨冒险行动点加成轴节(迭代 10 奖励重构批——与冒险结构 / registry 同批)**:①失同步欠账清偿——ap_per_round 真实配置 = **8**(action_economy.tres,Package B 2026-09-22 批 6→8 回调,表内批注在案);v0.2 批 8→6 系最后一次文档面记录,此后配置面单独回调未回写本文,本批补记(rap_refresh_cost 与 ap_per_round 的「满预算停手 = 恰好一刷」节拍耦合以现行 8/8 维持);②新增「跨冒险行动点加成轴」节——统一冒险加算区扩第四轴(行动点),经战斗开始入参覆盖值通道、只在每场战斗开轮首轮兑现一次;价值锚 = 冒险表 bonus_ap_flat / bonus_cap_ap(迭代 10 三选一 AP 件,全冒险 2 次上限),调参表补跨表行 |
|
| v0.6 | 2026-10-01 | **失同步清偿 + 跨冒险行动点加成轴节(迭代 10 奖励重构批——与冒险结构 / registry 同批)**:①失同步欠账清偿——ap_per_round 真实配置 = **8**(action_economy.tres,Package B 2026-09-22 批 6→8 回调,表内批注在案);v0.2 批 8→6 系最后一次文档面记录,此后配置面单独回调未回写本文,本批补记(rap_refresh_cost 与 ap_per_round 的「满预算停手 = 恰好一刷」节拍耦合以现行 8/8 维持);②新增「跨冒险行动点加成轴」节——统一冒险加算区扩第四轴(行动点),经战斗开始入参覆盖值通道、只在每场战斗开轮首轮兑现一次;价值锚 = 冒险表 bonus_ap_flat / bonus_cap_ap(迭代 10 三选一 AP 件,全冒险 2 次上限),调参表补跨表行 |
|
||||||
| v0.7 | 2026-10-03 | **两 AP 件兑现通道注记(迭代 11 第①批同调实施批——任务书 §十连带)**:同调目录两 AP 件兑现通道落位——①工兵晨令(被动·限时)=战斗开始首轮 queue_ap_delta 入队 + 轮始段续队(前 effective_rounds 轮每轮 +1,表值化 P4 甲),复用「跨冒险行动点加成轴」同族排队通道;②掘进蓄能(主动·充能)=grant_ap 当轮加量(同挖掘期 ap_grant 通道),受理闸=战斗域安全开格积点(charge_n 格/点);账本零新机制(queue_ap_delta/grant_ap 两既有原语),充能扣减经共享账本(attune_charges)同引用直改 |
|
| v0.7 | 2026-10-03 | **两 AP 件兑现通道注记(迭代 11 第①批同调实施批——任务书 §十连带)**:同调目录两 AP 件兑现通道落位——①工兵晨令(被动·限时)=战斗开始首轮 queue_ap_delta 入队 + 轮始段续队(前 effective_rounds 轮每轮 +1,表值化 P4 甲),复用「跨冒险行动点加成轴」同族排队通道;②掘进蓄能(主动·充能)=grant_ap 当轮加量(同挖掘期 ap_grant 通道),受理闸=战斗域安全开格积点(charge_n 格/点);账本零新机制(queue_ap_delta/grant_ap 两既有原语),充能扣减经共享账本(attune_charges)同引用直改 |
|
||||||
|
| v0.8 | 2026-10-05 | **挖掘风险不等式判式换代(迭代14②号卡 T3——与战斗结算/难度曲线与Boss/registry 同批)**:F1 条款3 重立——三层口径并行立(条款2 标中旗锚不动/条款3 聚合健康式「(1−ρ̂)E_dig−ρ̂V_mine≥0」只留下限 0/旗边际引理+条件二旗溢价「E[标中兑付]≥(1+δ)·E_dig」δ=0.25 provisional 形态 a 兑付溢价);条件二落文按登记已知破·T4 机制闭合;β 比值带 [1.2,2.5] 判读入文(u=3 登记态微破下限);η 降格读数入文(分母=全部插旗数);推导节变量表换代(E_dig/V_mine/ρ̂/β/δ 五锚);旧界形式与「惩罚当量对账模型归调参批重立」挂账句全部清偿 |
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
# 出口报告:挖掘风险不等式判式换代批(迭代14②号卡)
|
||||||
|
|
||||||
|
> 日期:2026-10-05 · worktree `g-plan2-m4iter14-mineq` / 分支 `m4iter14-mineq-20261005`
|
||||||
|
> 任务书:`.zcode/plans/mine-inequality-revision-miniloop-plan-2026-10-04.md`(T0-T5;本 prompt 即 U0 批准)
|
||||||
|
> 设计权威:`design/research/方案-挖掘风险不等式修订-2026-10-04.md` §九(裁决回填)
|
||||||
|
> 基线:master 912dcb2(冒烟 747/0)· 出口冒烟 **750/0**(+3 旗溢价断言)
|
||||||
|
|
||||||
|
## 一、执行摘要(T0-T5 全落)
|
||||||
|
|
||||||
|
| 卡 | 内容 | 终态 |
|
||||||
|
|---|---|---|
|
||||||
|
| T0 | audit 工具常量刷新(池67→77/直伤负向6-8-8/heal2/清图24-40/AP8/off_guard ac−1 0.2u模型/伏击口径甲退役/九型字典/β带+逐型输出) | ✓ 判值与方案报告 §四/附录A 逐位吻合(E_dig 1.442/1.948/2.455 · V_mine 2.460/2.670/2.881 · β 1.71/1.37/1.17)——改前静态锚 |
|
||||||
|
| T1 | runsum 五字段(flag_placed/flag_hit/flag_miss/flag_hit_gain/flag_miss_penalty) | ✓ 落码 `level_autoplay.gd`+`adventure_monte_carlo.gd`;接缝核证=step_row 行族可达(collect_rows 无关),聚合零新随机源。**行侧判据考证**:结算段对存续增益实例每轮复发行 effect 行且复用实例 source_class——标中事件行唯一判据=授予行专带 highlight="flag_hit"(实测 87 行==87 受理插旗 1:1 精确);雷区图谱追加分grant 以 display_name 后缀补捕;满层拒收行不入 |
|
||||||
|
| T2 | 改前行为锚:MC N=200/策略(种子窗 76000-76399,与 iter8 同窗)+ verifier 双窗(na=150/k=100/hp_first,seed0=8000 缺省) | ✓ `sim-data/runsum_m4iter14mineq_pre_n200_20261005.jsonl` + `_raw_verifier_mineq_pre.txt`;η 基线首次到手 |
|
||||||
|
| T3 | 判式落文五面 | ✓ 行动经济 F1 条款3 重立 v0.8(三层口径:条款2 锚不动/条款3 聚合健康式只留下限 0〔U_band 删〕/旗边际引理+条件二旗溢价 δ=0.25 登记已知破·T4 闭合)+β 带 [1.2,2.5] 与 η 读数入文;战斗结算 v0.25(gp/ap 当量口径注记 A5/A6+验收条款3 对账条);难度曲线与Boss v0.23(联动表+6 行、P1 改判读回执);registry `clause3_inequality` 重立条(改前锚+P7 两点修正:d70f6c3 池 76→77 混计、直伤 4/5/5→6/8/8 时效化);06 破线条正式收口;07⑫ 旗溢价目检项 |
|
||||||
|
| T4 | 标中兑付溢价机制 | ✓ settlement 新键 `flag_hit_premium=125`(percent 域 [100,999] 域校验;100=无溢价直通零扰动)+ 兑付公式一处(`_grant_routed` 只挂 flag_hit 正向:flat power 乘后入单据/治疗/排队;percent 幅度经 premium_pct 贯穿 `_apply_percent_row` 应用与呈现同乘 + 容器 `magnitude_override` 同快照);标空/挖格/清图不乘;DamageController 零改、雷安同池冻结、直伤雷 6/8/8 与 p_perfect 不动;smoke 断言 +3 |
|
||||||
|
| T5 | 改后锚+判读+出口包 | ✓ 本报告;锚换代声明见 §五 |
|
||||||
|
|
||||||
|
## 二、判读三件(T5 义务)
|
||||||
|
|
||||||
|
**① β 带判读**:β = 1.71 / 1.37 / 1.17(u=1/2/3,名义 ρ)——u=1/2 带内、u=3 微破下限(登记态点名,2026-10-04 P4 裁不强制回滚)。值链零表值变动(溢价只挂兑付侧不入 E_dig/V_mine),改前改后同值。
|
||||||
|
|
||||||
|
**② δ 敏感度判读(判据 ≥5pp,grill Q4)**:**行为无感 → δ 保留 + 登记「行为无感」**。
|
||||||
|
|
||||||
|
| 指标 | normal(改前→改后) | perfect(改前→改后) |
|
||||||
|
|---|---|---|
|
||||||
|
| η=标中÷插旗 | 0.8360 → 0.8445(**+0.85pp**) | 0.9921 → 0.9784(**−1.36pp**) |
|
||||||
|
| 标空率 | 0.1194 → 0.1154(−0.40pp) | 0 → 0(恒 0) |
|
||||||
|
| 插旗/局 | 53.0 → 57.3 | 244.4 → 255.8 |
|
||||||
|
| 全通关 | 1/200 → 0/200(个位数噪声) | 119/200 → 152/200(+16.5%) |
|
||||||
|
| 承伤/局 | 14.5 → 16.2 | 87.5 → 86.6 |
|
||||||
|
| 踩雷/局 | 6.78 → 7.13 | **0 → 0(硬不变量 ✓)** |
|
||||||
|
| 标中兑付合计 | 29,805 → 39,649(≈×1.33=×1.25 兑付+旗数微增,机制在位证据) | 170,606 → 233,745(≈×1.37 同上) |
|
||||||
|
|
||||||
|
η/标空率两位移均 <5pp → 判式诚实性不依赖行为弹性(Q4 裁),δ=1.25 provisional 维持。**只测不判随报面**:perfect 全通关 +16.5% / verifier perfect 冒险通关 65.3%→72.0%(增强向位移,与方案 §五 预测的「完美排雷达成率↑难度下行」腿同向)——四带判读归 M-4。
|
||||||
|
|
||||||
|
**③ 条件二转绿确认**:
|
||||||
|
- 判式口径(连续当量):E[标中]=1.25·E_dig ≥ 1.25·E_dig 等号压线成立(严格大于须 δ>0.25,×1.5 档留后手——§九 数学注记兑现)。
|
||||||
|
- **整数量级实现(audit 工具 `w_flag_hit` 按机制同式实算)**:W(1)=1.888 ≥ 1.802 ✓转绿 / W(2)=2.461 ≥ 2.435 ✓转绿 / **W(3)=3.034 < 3.068 微欠 −1.1%(登记面)**——成因=1 点量纲行(ac_up/action/spark)四舍五入取整地板 ×1.0 + u 缩放型在 u=3 占比上升。精化归调参批(后手=δ×1.5 档或取整规则进位);不构成回滚理由(登记已知破的限期闭合在 u=1/2 已兑现,u=3 欠口 <β_hi 裕度)。
|
||||||
|
|
||||||
|
## 三、verifier 双窗对照(na=150/k=100/hp_first,只测不判)
|
||||||
|
|
||||||
|
| 指标 | 改前 | 改后 |
|
||||||
|
|---|---|---|
|
||||||
|
| 冒险全通关 perfect | 98/150(65.3%) | 108/150(72.0%) |
|
||||||
|
| 冒险全通关 normal | 0/150 | 0/150 |
|
||||||
|
| 条件通关 L1 normal | 6.0%(9/150) | 16.7%(25/150) |
|
||||||
|
| 条件通关 L2 normal | 11.1%(1/9) | 4.0%(1/25)(小样本) |
|
||||||
|
| 条件通关 L1/L2/L3 perfect | 99.3% / 75.2% / 87.5% | 100.0% / 82.0% / 87.8% |
|
||||||
|
| 战役 perfect | 91/100 | 97/100 |
|
||||||
|
| 战役 normal | 0/100 | 0/100 |
|
||||||
|
|
||||||
|
注:verifier 窗与 MC 窗异种子域(8000 缺省 unique),条件通关率口径与 MC 历史带不可直比;配对差值才是本批读数。改后窗首跑曾在 campaign 段 14/100 处静默死亡(并发跑批互踩——与当日冒烟两连中断同签名,机器空闲后全窗重跑 exit 0),首跑残档已被重跑覆盖。
|
||||||
|
|
||||||
|
## 四、provisional / 追认单(随批呈用户)
|
||||||
|
|
||||||
|
| # | 项 | 状态 |
|
||||||
|
|---|---|---|
|
||||||
|
| 1 | δ=1.25(形态 a 兑付溢价,percent 域 flag_hit_premium=125) | provisional 归调参;×1.5 档留后手 |
|
||||||
|
| 2 | 取整规则=四舍五入(与伤害管线 round_direction=floor 分域) | registry clause3_inequality 已登记;**整数量级 u=3 条件二微欠 −1.1%** 连带登记 |
|
||||||
|
| 3 | 1 点量纲行整数粒度地板(ac_up/action 取整后 ×1.0 不变) | 登记面(07⑫ 目检注记同步) |
|
||||||
|
| 4 | δ 行为无感(η/标空率 <5pp) | 保留+登记(Q4 裁) |
|
||||||
|
| 5 | 条件一上限承载=β_hi 独家(U_band 删) | 已落文(grill Q3) |
|
||||||
|
| 6 | smoke max 路径存储种子 42→43 重采 | δ 换代战局位移(败于路径终点);断言注释既定程序,临时重采脚本用后即删 |
|
||||||
|
| 7 | damage_probe A1 红灯 | **改前既有**(26374ac 复跑同败,非本批新增)——「fresh 池 Boss 21 拍攻击链」断言在现行 master 即红,归独立 mini-loop 处置(本批零新增登记) |
|
||||||
|
| 8 | 判式换代文本三处(行动经济 F1 条款3 / 战斗结算 验收标准 / 难度曲线与Boss 联动表) | 人闸=呈用户追认(07⑫ 结论回流面) |
|
||||||
|
|
||||||
|
## 五、闸绿记录与锚换代
|
||||||
|
|
||||||
|
- 冒烟 **750/0**(747 基线 + 3 旗溢价断言);run_all 15 套全 PASS;ui_input_probe 十六断言全绿;damage_probe 7 项 6 绿 1 既有红(§四.7)。
|
||||||
|
- doc 三闸对基线零新增(gdd_lint 失败集与基线同;term 同集;link worktree +2 系 gitignored 路径环境性死链——`.zcode/plans`/`archive/` 在主区实文件在盘 0 死链)。
|
||||||
|
- **锚换代声明**:对拍正主换代 → `sim-data/runsum_m4iter14mineq_post_n200_20261005.jsonl`(改后现行锚;改前锚 pre_n200 同窗留档);旧结构读数(m4iter12_t7off_n20 正主等)只测不判。audit 工具=条款3 常设重跑入口(条件二面板已随批升级为机制同式实算)。
|
||||||
|
- 07 新增人工项:⑫ 旗溢价兑付与标旗激励(实机目检约 5 分钟 + δ 行为读数判读回执)。
|
||||||
|
|
||||||
|
## 六、红线遵守声明
|
||||||
|
|
||||||
|
DamageController 零改动 ✓ · 雷安同池结构冻结不动 ✓ · mine_density 0.25 不动 ✓ · 直伤雷 6/8/8 不动 ✓ · p_perfect 不动 ✓ · 主区脏文件零接触 ✓ · 昂贵跑批=任务书 T2/T5 既定义务(静态推算先行为锚后跑批,MC 缓存层纪律:runsum 锚落 sim-data 留盘)。
|
||||||
@@ -384,9 +384,20 @@ entities:
|
|||||||
variables: [cap, m_amb, unit_count, k_r, L_r](2026-09-20 八型批:m_amb/k_r/L_r 随伏击退役悬空,条目待曲线调参批重立后重登记)
|
variables: [cap, m_amb, unit_count, k_r, L_r](2026-09-20 八型批:m_amb/k_r/L_r 随伏击退役悬空,条目待曲线调参批重立后重登记)
|
||||||
output_range: 单结算结构上界 ∈ [0, unit_count×min(AP, cap)×m_amb](式随 2026-09-20 八型批伏击退役作废、留档历史)(满配语境 3×min(8,4)×3=36;cap≥8 时真可达上界 72 而非 144;默认行值 unit_count=1 下 12)
|
output_range: 单结算结构上界 ∈ [0, unit_count×min(AP, cap)×m_amb](式随 2026-09-20 八型批伏击退役作废、留档历史)(满配语境 3×min(8,4)×3=36;cap≥8 时真可达上界 72 而非 144;默认行值 unit_count=1 下 12)
|
||||||
account_input: 对账输入 = 棋盘生成 actuals p10(F4 报告 C)非 target 参数(棋盘生成 登记口径);闭合 owner = 战斗结算 单一签字人;左臂(安全格 buff 当量)载体 = **地图战斗资源 F6 当量供给**(2026-09-09 地图战斗资源 定稿——部分缓解非闭合:窗口使用次数是战斗轨迹量,敌人系统 OQ3 扩项保持;2026-09-11 起基础攻击恒在为左臂提供恒定伤害基底,原"当前内容态结构性不可通关"事实退役——敌人系统 Overview 2026-09-11 改写)
|
account_input: 对账输入 = 棋盘生成 actuals p10(F4 报告 C)非 target 参数(棋盘生成 登记口径);闭合 owner = 战斗结算 单一签字人;左臂(安全格 buff 当量)载体 = **地图战斗资源 F6 当量供给**(2026-09-09 地图战斗资源 定稿——部分缓解非闭合:窗口使用次数是战斗轨迹量,敌人系统 OQ3 扩项保持;2026-09-11 起基础攻击恒在为左臂提供恒定伤害基底,原"当前内容态结构性不可通关"事实退役——敌人系统 Overview 2026-09-11 改写)
|
||||||
direction_precheck: cap=4 下右臂 ≈7.7;左臂按条款 2 最低档锚(+50pp)计 = 0.36×50 = 18——裕度 ≈2.3×(1:1 百分点代理,provisional;2026-09-09 敌人系统 full 评审更正原 4.7×——该值按 +100 两层叠满取值、与"最低档下界"语言矛盾);量级注记:atk=4 时 attack 拍 L≥2 伏击分量过半(heavy 拍过半点后移、按拍别读取;常态支配修正入口 = 难度曲线与Boss atk 曲线 / 地图战斗资源·战斗结算 m_amb 锚,敌人系统 权限外)。**参照迁移注记(2026-09-09 地图战斗资源 评审;2026-09-11 回迁)**:左臂参照对象曾迁 defense_up 当量(地图战斗资源 F4)——**2026-09-11 用户裁决"基础攻击恒存在"后 attack_up 复活,参照对象回迁 attack_up 当量**(上式 +50pp 系 attack_up 口径,迁移期结束;复算义务随 战斗结算 对照表落定,见 status_effect.anchor_warning 回迁注记)。**闭合回执(2026-09-10 战斗结算 GDD F4——条款③闭合完成;同日评审批双口径更正)**:统一 HP 当量 + 边际配对重算 → 默认 unit_count=1 下 L1 裕度 ≈2.0× / L2 ≈2.6× **通过**(锚行口径;**跨行期望口径 ≈1.2×/1.5× 同向通过——双口径登记,难度曲线与Boss 不得以锚行读数放行 unit_count=2**);**满配语境(unit_count=3)最坏盲点破线 → 难度曲线与Boss 调参约束登记**(unit_count 轴 + 密度×可推理率轴——unit_count>1 行须降密度或降 m_amb);本条 pp 代理预检(2.3×)退役为历史记录(量纲混用 + 右臂聚合上界与单格决策单位错配)。**重算回执(2026-09-14 战斗结算 重算批——按现行三输入重推:duration=1 × m_d=−30 × 难度曲线与Boss v3 曲线 d0.25/t0.88)**:L1 裕度 ≈0.48× / L2 ≈0.47× **破线**(锚行口径;跨行期望口径 E_dig=4.5 → ≈0.60×/0.58× 同向破线——双口径登记);满配语境(unit_count=3)≈0.16× 深度破线;**破线升格为默认曲线级约束——V_safe 侧杠杆(m_d/duration/D_ref)× 板形侧杠杆(密度×ι 联动对)× m_amb 全处"禁独立调参"联动网络(m_w↔D_ref↔m_d↔duration_d),修正方向须 难度曲线与Boss 提案 + 战斗结算 闭合对账共裁**;上段 ≈2.0×/2.6× 读数系 duration=2 × m_d=−50 × v1 曲线旧值链产物,退役为历史记录;actuals p10 交付后强制重跑(战斗结算 AC-39;ι 判式面保守代理 = 行 target 代,总暴露面无效)
|
direction_precheck: cap=4 下右臂 ≈7.7;左臂按条款 2 最低档锚(+50pp)计 = 0.36×50 = 18——裕度 ≈2.3×(1:1 百分点代理,provisional;2026-09-09 敌人系统 full 评审更正原 4.7×——该值按 +100 两层叠满取值、与"最低档下界"语言矛盾);量级注记:atk=4 时 attack 拍 L≥2 伏击分量过半(heavy 拍过半点后移、按拍别读取;常态支配修正入口 = 难度曲线与Boss atk 曲线 / 地图战斗资源·战斗结算 m_amb 锚,敌人系统 权限外)。**参照迁移注记(2026-09-09 地图战斗资源 评审;2026-09-11 回迁)**:左臂参照对象曾迁 defense_up 当量(地图战斗资源 F4)——**2026-09-11 用户裁决"基础攻击恒存在"后 attack_up 复活,参照对象回迁 attack_up 当量**(上式 +50pp 系 attack_up 口径,迁移期结束;复算义务随 战斗结算 对照表落定,见 status_effect.anchor_warning 回迁注记)。**闭合回执(2026-09-10 战斗结算 GDD F4——条款③闭合完成;同日评审批双口径更正)**:统一 HP 当量 + 边际配对重算 → 默认 unit_count=1 下 L1 裕度 ≈2.0× / L2 ≈2.6× **通过**(锚行口径;**跨行期望口径 ≈1.2×/1.5× 同向通过——双口径登记,难度曲线与Boss 不得以锚行读数放行 unit_count=2**);**满配语境(unit_count=3)最坏盲点破线 → 难度曲线与Boss 调参约束登记**(unit_count 轴 + 密度×可推理率轴——unit_count>1 行须降密度或降 m_amb);本条 pp 代理预检(2.3×)退役为历史记录(量纲混用 + 右臂聚合上界与单格决策单位错配)。**重算回执(2026-09-14 战斗结算 重算批——按现行三输入重推:duration=1 × m_d=−30 × 难度曲线与Boss v3 曲线 d0.25/t0.88)**:L1 裕度 ≈0.48× / L2 ≈0.47× **破线**(锚行口径;跨行期望口径 E_dig=4.5 → ≈0.60×/0.58× 同向破线——双口径登记);满配语境(unit_count=3)≈0.16× 深度破线;**破线升格为默认曲线级约束——V_safe 侧杠杆(m_d/duration/D_ref)× 板形侧杠杆(密度×ι 联动对)× m_amb 全处"禁独立调参"联动网络(m_w↔D_ref↔m_d↔duration_d),修正方向须 难度曲线与Boss 提案 + 战斗结算 闭合对账共裁**;上段 ≈2.0×/2.6× 读数系 duration=2 × m_d=−50 × v1 曲线旧值链产物,退役为历史记录;actuals p10 交付后强制重跑(战斗结算 AC-39;ι 判式面保守代理 = 行 target 代,总暴露面无效)。**换代收口(2026-10-05 判式换代批——clause3_inequality 重立承接)**:本条伏击口径悬空变量(m_amb/k_r/L_r)的重立义务由 clause3_inequality 承接销项;本条 unit_count 满配语境约束(unit_count>1 行须降密度或降 m_amb)由 β 带逐 u 检算(u=1/2/3)接替看护,留档历史
|
||||||
referenced_by: [战斗结算]
|
referenced_by: [战斗结算]
|
||||||
|
|
||||||
|
- name: clause3_inequality
|
||||||
|
type: formula
|
||||||
|
owner: design/gdd/systems/排雷循环/行动经济.md
|
||||||
|
attributes:
|
||||||
|
rule: (2026-10-05 判式换代批重立——迭代14②号卡 T3,2026-10-04 用户两轮拍板+grill 七问全裁,设计权威=design/research/方案-挖掘风险不等式修订-2026-10-04.md §九)行动经济 F1 条款3 三层口径并行立——**条款3 聚合健康式**:(1−ρ̂)·E_dig(u) − ρ̂·V_mine(u) ≥ 0 对全部参考板形 × u ∈ {1,2,3}(下限 0 唯一保留,上限 U_band 删〔grill Q3〕由 β_hi 独家承载);**旗边际引理**(同池结构定理):EV_flag−EV_blind = (q+ρ̂−1)(E_dig+V_mine),旗优于盲挖 ⇔ q > 1−ρ̂,与全部当量表值无关;旗对已知安全格边际恒 ≤ 0(L2 结构破线层);**条件二旗溢价式**:E[标中兑付] ≥ (1+δ)·E_dig(u),δ=0.25 provisional(形态 a 兑付溢价 settlement.flag_hit_premium=125 percent 域;形态 b 专属池不启——雷安同池冻结);**β 比值带**:β(u)=V_mine(u)÷E_dig(u) ∈ [1.2, 2.5](2026-10-04 用户裁 P4);**η 读数**(非判式):η=flag_hit÷flag_placed,分母=全部插旗数〔grill Q5〕,标空率次读数——承载=MC runsum 五字段(flag_placed/flag_hit/flag_miss/flag_hit_gain/flag_miss_penalty,2026-10-05 T1 落码)
|
||||||
|
mechanism_carrier: settlement.tres flag_hit_premium = 125(percent 域 provisional,2026-10-05 T4 落地)——标中旗正向兑付按同型正向 ×(1+δ):flat 行乘 power、percent 行乘幅度(apply_effect magnitude_override 通道)、gp 行乘 power;取整=四舍五入(与伤害管线 round_direction=floor **分域**——溢价系兑付构造非伤害管线取整,登记注记);标空/挖格/清图兑付不乘溢价;DamageController 零改、雷安同池冻结不动、直伤雷 6/8/8 与 p_perfect 不动(契约红线)
|
||||||
|
prechange_snapshot: **改前静态锚(2026-10-05 T0,audit 工具常量刷新后跑出,改后判读的基准)**——池 77 权重(attack14/defense11/blast16/heal4/weaken8/pierce8/magic8/action6/gp2,clear_blast 不入格池):E_dig(1/2/3)=1.442/1.948/2.455,V_mine(1/2/3)=2.460/2.670/2.881(九型负向字典口径乙=唯一口径,伏击口径甲退役删除),β=1.71/1.37/1.17(u=1/2 带内、u=3 微破下限=登记态点名不强制回滚),盲挖净期望(名义ρ)=+0.47/+0.79/+1.12 恒正(条款3 聚合健康式现行即绿),逐型净期望破线残留=pierce −1.25 / magic −0.50 / heal 0 踩线(名义ρ;实测ρ̂ 10×10 下 pierce −0.16 唯一实测也破、magic/heal 转正),条件二改前恒假(E[标中]=E_dig < 1.25·E_dig——登记已知破,T4 机制闭合);改前行为锚=MC n400 种子窗 76000 系+verifier 双窗(T2,读数随批出口报告)
|
||||||
|
p7_corrections: **P7 口径修正注记(2026-10-04 用户裁随批登记)**:①d70f6c3 §二(迭代8 卡⑧全量复算)池 76 系历史混计——clear_blast(清图槽对象)不该入格池,现行口径=77;②同读数直伤雷 4/5/5 已时效化——2026-10-01 数值修复批 6/8/8 + 2026-10-03 带换代转正,现行单雷期望直伤 ≈1.97 HP(×2.2);heal 权重 2→4(Package B 第 2 轮)同链时效
|
||||||
|
rerun_obligation: 难度曲线与Boss 每次调参逐 u 检算落 β 带(常设重跑入口 tools/clear_dominance_audit.py,2026-10-05 已刷新=池77/直伤6-8-8/heal2/清图24-40/AP8/off_guard −1/伏击退役/β+逐型输出);直伤雷/ρ 提案逐档检算落带(grill Q3 裁);δ 敏感度判据 ≥5pp(grill Q4),行为无效 δ 仍保留+登记「行为无感」
|
||||||
|
referenced_by: [行动经济, 战斗结算, 难度曲线与Boss]
|
||||||
|
|
||||||
- name: clause5_dominance
|
- name: clause5_dominance
|
||||||
type: formula
|
type: formula
|
||||||
owner: design/gdd/systems/战斗循环/战斗结算.md
|
owner: design/gdd/systems/战斗循环/战斗结算.md
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ var _enemy_system: UnitContainer
|
|||||||
var _status_effects: StatusContainer
|
var _status_effects: StatusContainer
|
||||||
var _reward_economy: RewardEconomy
|
var _reward_economy: RewardEconomy
|
||||||
var aux_inventory: AuxItems # 迭代 7 T3——LevelRunner 注入的关卡域库存引用;
|
var aux_inventory: AuxItems # 迭代 7 T3——LevelRunner 注入的关卡域库存引用;
|
||||||
# 每战新建本类,库存不归本类所有——注入面
|
# 每战新建本类,库存不归本类所有——注入面
|
||||||
var _damage: DamageController # 伤害控制器(伤害管线单据化批 2026-09-24——单据唯一兑付管线)
|
var _damage: DamageController # 伤害控制器(伤害管线单据化批 2026-09-24——单据唯一兑付管线)
|
||||||
|
|
||||||
var encounter: Dictionary[String, Variant] = {}
|
var encounter: Dictionary[String, Variant] = {}
|
||||||
@@ -687,6 +687,17 @@ func _grant_routed(snap: Dictionary, polarity: String, source_class: String, cel
|
|||||||
return false
|
return false
|
||||||
if polarity == "positive":
|
if polarity == "positive":
|
||||||
row["power"] = int(snap.get("power", int(row.power))) # 区间行快照 power(身份批 roll 值)覆盖表值——授予期零随机口径(E14)
|
row["power"] = int(snap.get("power", int(row.power))) # 区间行快照 power(身份批 roll 值)覆盖表值——授予期零随机口径(E14)
|
||||||
|
# 标中兑付溢价(迭代14②判式换代批 T4——条款3 条件二旗溢价形态 a,2026-10-04 用户裁 P3):
|
||||||
|
# δ 读 settlement.flag_hit_premium(percent 域 125=×1.25 provisional);100=无溢价直通零扰动。
|
||||||
|
# 兑付公式一处=本块:只乘标中旗正向(flat power 乘后入单据/治疗/排队;percent 幅度经
|
||||||
|
# premium_pct 贯穿 _apply_percent_row 应用与呈现同乘)——标空/挖格/清图不乘,雷安同池冻结不动。
|
||||||
|
# 取整=四舍五入(与伤害管线 round_direction=floor 分域——registry clause3_inequality 随批登记;
|
||||||
|
# 1 点量纲行 ac_up/action 取整后不变=整数粒度地板)。
|
||||||
|
if source_class == "flag_hit" and int(db.settlement.flag_hit_premium) != 100:
|
||||||
|
var prem_pct: int = int(db.settlement.flag_hit_premium)
|
||||||
|
row = row.duplicate()
|
||||||
|
row["power"] = int(round(int(row.power) * prem_pct / 100.0))
|
||||||
|
row["premium_pct"] = prem_pct
|
||||||
# 惊巢反制(迭代 11 同调批 T5——底稿 §3:挖开雷格该次惩罚减半 + 反弹 N;duplicate 隔离——减半
|
# 惊巢反制(迭代 11 同调批 T5——底稿 §3:挖开雷格该次惩罚减半 + 反弹 N;duplicate 隔离——减半
|
||||||
# 不回写极性字典;仅 source_class=mine_hit 受理,标错旗/负向字典行走原通道)
|
# 不回写极性字典;仅 source_class=mine_hit 受理,标错旗/负向字典行走原通道)
|
||||||
if polarity == "negative" and source_class == "mine_hit" and _attune_has("nest_counter"):
|
if polarity == "negative" and source_class == "mine_hit" and _attune_has("nest_counter"):
|
||||||
@@ -717,10 +728,18 @@ func _apply_percent_row(row: Dictionary, source_class: String, cell: Vector2i, r
|
|||||||
var eff := String(row.effect_id)
|
var eff := String(row.effect_id)
|
||||||
if eff == "gp_gain" or eff == "gp_loss":
|
if eff == "gp_gain" or eff == "gp_loss":
|
||||||
return _apply_gp_row(row, source_class, cell, ri, highlight, label_suffix)
|
return _apply_gp_row(row, source_class, cell, ri, highlight, label_suffix)
|
||||||
var ok: bool = _status_effects.apply_effect(eff, {"source_class": source_class, "origin_cell": cell, "round_index": ri})
|
var srow: Dictionary = db.status_effect_row(eff)
|
||||||
|
# 旗溢价贯穿(迭代14② T4——仅标中旗正向行携带 premium_pct;其余授予路径缺省 100 零扰动):
|
||||||
|
# 应用幅度与呈现行值同乘,容器经 magnitude_override 拿同一快照(抗表重载口径保持)。
|
||||||
|
var prem_pct: int = int(row.get("premium_pct", 100))
|
||||||
|
var eff_mag: int = int(srow.magnitude)
|
||||||
|
var src := {"source_class": source_class, "origin_cell": cell, "round_index": ri}
|
||||||
|
if prem_pct != 100:
|
||||||
|
eff_mag = int(round(eff_mag * prem_pct / 100.0))
|
||||||
|
src["magnitude_override"] = eff_mag
|
||||||
|
var ok: bool = _status_effects.apply_effect(eff, src)
|
||||||
if ok:
|
if ok:
|
||||||
var srow: Dictionary = db.status_effect_row(eff)
|
_emit_row("effect", source_class, cell, ri, String(srow.display_name) + label_suffix, eff_mag, {"effect_id": eff, "pool_value": _pool_effective(eff)}, highlight)
|
||||||
_emit_row("effect", source_class, cell, ri, String(srow.display_name) + label_suffix, int(srow.magnitude), {"effect_id": eff, "pool_value": _pool_effective(eff)}, highlight)
|
|
||||||
return true
|
return true
|
||||||
_emit_row("reward_ineffective", source_class, cell, ri, "奖励未生效(满层)%s" % label_suffix, 0, {"batch_key": eff}, highlight)
|
_emit_row("reward_ineffective", source_class, cell, ri, "奖励未生效(满层)%s" % label_suffix, 0, {"batch_key": eff}, highlight)
|
||||||
return false
|
return false
|
||||||
|
|||||||
@@ -42,6 +42,8 @@ func apply_effect(effect_id: String, source: Dictionary, duration_override: int
|
|||||||
var max_stack: int = int(row.max_stack)
|
var max_stack: int = int(row.max_stack)
|
||||||
# 授予时快照(抗表重载——EC9)
|
# 授予时快照(抗表重载——EC9)
|
||||||
var snap_m: int = int(row.magnitude)
|
var snap_m: int = int(row.magnitude)
|
||||||
|
if source.has("magnitude_override"):
|
||||||
|
snap_m = int(source["magnitude_override"]) # 旗溢价贯穿(迭代14② T4——标中旗 percent 形态同乘快照;缺省路径零扰动)
|
||||||
var snap_unit: String = String(row.unit)
|
var snap_unit: String = String(row.unit)
|
||||||
var snap_display: String = String(row.display_name)
|
var snap_display: String = String(row.display_name)
|
||||||
match policy:
|
match policy:
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ extends Resource
|
|||||||
|
|
||||||
@export var equivalence_ref_damage: int = 12 # [1,999] knob——当量参考敞口 D_ref
|
@export var equivalence_ref_damage: int = 12 # [1,999] knob——当量参考敞口 D_ref
|
||||||
@export var p_perfect: int = 200 # {100,200} percent——完美排雷第二份兑付触发(载体域)
|
@export var p_perfect: int = 200 # {100,200} percent——完美排雷第二份兑付触发(载体域)
|
||||||
|
@export var flag_hit_premium: int = 100 # [100,999] percent knob——标中旗兑付溢价 ×(1+(n−100)/100):125=×1.25(条款3 条件二旗溢价形态 a,2026-10-05 判式换代批 provisional);100=无溢价直通零扰动。只乘标中旗正向兑付(flat power/percent 幅度/gp 缓冲三形态),标空/挖格/清图不乘;雷安同池冻结不动
|
||||||
@export var segment_order: PackedStringArray = [] # 结构冻结——恒等拍板段序校验违例致命
|
@export var segment_order: PackedStringArray = [] # 结构冻结——恒等拍板段序校验违例致命
|
||||||
@export var source_label_map: Dictionary[String, Variant] = {} # 结构冻结——source_class→文案键
|
@export var source_label_map: Dictionary[String, Variant] = {} # 结构冻结——source_class→文案键
|
||||||
@export var effect_pool_map: Dictionary[String, Variant] = {} # 结构冻结——effect_id→pool(悬空加载致命)
|
@export var effect_pool_map: Dictionary[String, Variant] = {} # 结构冻结——effect_id→pool(悬空加载致命)
|
||||||
@@ -48,6 +49,8 @@ func validate() -> Array:
|
|||||||
errs.append({"category": "domain", "message": "equivalence_ref_damage 越域 [1,999]: %d" % equivalence_ref_damage})
|
errs.append({"category": "domain", "message": "equivalence_ref_damage 越域 [1,999]: %d" % equivalence_ref_damage})
|
||||||
if not P_PERFECT_DOMAIN.has(p_perfect):
|
if not P_PERFECT_DOMAIN.has(p_perfect):
|
||||||
errs.append({"category": "pperfect_oob", "message": "p_perfect 载体域 {100,200}: %d" % p_perfect})
|
errs.append({"category": "pperfect_oob", "message": "p_perfect 载体域 {100,200}: %d" % p_perfect})
|
||||||
|
if flag_hit_premium < 100 or flag_hit_premium > 999:
|
||||||
|
errs.append({"category": "domain", "message": "flag_hit_premium 越域 [100,999](100=无溢价): %d" % flag_hit_premium})
|
||||||
var seg := Array(segment_order)
|
var seg := Array(segment_order)
|
||||||
if seg != FROZEN_SEGMENT_ORDER:
|
if seg != FROZEN_SEGMENT_ORDER:
|
||||||
errs.append({"category": "segorder_violation", "message": "segment_order 违例——恒等拍板段序校验失败: %s" % str(seg)})
|
errs.append({"category": "segorder_violation", "message": "segment_order 违例——恒等拍板段序校验失败: %s" % str(seg)})
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
script = ExtResource("1")
|
script = ExtResource("1")
|
||||||
equivalence_ref_damage = 4
|
equivalence_ref_damage = 4
|
||||||
p_perfect = 200
|
p_perfect = 200
|
||||||
|
flag_hit_premium = 125
|
||||||
segment_order = PackedStringArray("grant", "buff_debuff", "combat", "decay", "verdict")
|
segment_order = PackedStringArray("grant", "buff_debuff", "combat", "decay", "verdict")
|
||||||
source_label_map = {
|
source_label_map = {
|
||||||
"safe_cell": "安全格",
|
"safe_cell": "安全格",
|
||||||
|
|||||||
@@ -119,6 +119,12 @@ func _initialize() -> void:
|
|||||||
"mine_dmg": int(st.get("mine_dmg", 0)),
|
"mine_dmg": int(st.get("mine_dmg", 0)),
|
||||||
"taken": int(st["hero_dmg"]) + int(st.get("mine_dmg", 0)),
|
"taken": int(st["hero_dmg"]) + int(st.get("mine_dmg", 0)),
|
||||||
"refreshes": int(st["refreshes"]), "choices": int(st["choices"]),
|
"refreshes": int(st["refreshes"]), "choices": int(st["choices"]),
|
||||||
|
# 旗经济五字段(迭代14②判式换代批 T1——η=flag_hit÷flag_placed、标空率=flag_miss÷flag_placed
|
||||||
|
# 派生归分析侧;gain/penalty=结算流水行值合计(原始行值口径,等价换算归判读侧——登记))
|
||||||
|
"flag_placed": int(st.get("flag_placed", 0)), "flag_hit": int(st.get("flag_hit", 0)),
|
||||||
|
"flag_miss": int(st.get("flag_miss", 0)),
|
||||||
|
"flag_hit_gain": int(st.get("flag_hit_gain", 0)),
|
||||||
|
"flag_miss_penalty": int(st.get("flag_miss_penalty", 0)),
|
||||||
"relics": st.get("relics", []),
|
"relics": st.get("relics", []),
|
||||||
"visited_count": (st["visited_ids"] as Array).size(),
|
"visited_count": (st["visited_ids"] as Array).size(),
|
||||||
"encounter_max_hp_seq": st["encounter_max_hp_seq"],
|
"encounter_max_hp_seq": st["encounter_max_hp_seq"],
|
||||||
|
|||||||
@@ -57,6 +57,9 @@ static func run_level(db, seed_val: int, level_index: int, atk_pct: int, hp_pct:
|
|||||||
"boss_depth": -1, "hp_at_boss": -1, "rows": [], "timeout": false,
|
"boss_depth": -1, "hp_at_boss": -1, "rows": [], "timeout": false,
|
||||||
"log_path": "", "policy": policy, "refreshes": 0, "mine_hits": 0, "mine_dmg": 0,
|
"log_path": "", "policy": policy, "refreshes": 0, "mine_hits": 0, "mine_dmg": 0,
|
||||||
"visited_ids": [], "choices": 0, "last_battle_enemies": [],
|
"visited_ids": [], "choices": 0, "last_battle_enemies": [],
|
||||||
|
# 旗经济五字段(迭代14②判式换代批 T1——runsum 读数面;聚合自结算流水 source_class,
|
||||||
|
# 零新随机源零核心改动;η=flag_hit÷flag_placed 与标空率派生归分析侧)
|
||||||
|
"flag_placed": 0, "flag_hit": 0, "flag_miss": 0, "flag_hit_gain": 0, "flag_miss_penalty": 0,
|
||||||
"prng": _policy_rng(seed_val), "mine_slips": 0, "skip_digs": 0, "shop_buys": 0,
|
"prng": _policy_rng(seed_val), "mine_slips": 0, "skip_digs": 0, "shop_buys": 0,
|
||||||
}
|
}
|
||||||
runner.step_row.connect(_on_step_row.bind(runner, st, collect_rows))
|
runner.step_row.connect(_on_step_row.bind(runner, st, collect_rows))
|
||||||
@@ -136,6 +139,8 @@ static func run_adventure(db, seed_val: int, atk_pct: int, hp_pct: int, collect_
|
|||||||
"summary": {}, "wallet_events": [], "encounter_max_hp_seq": [], "reward_events": [],
|
"summary": {}, "wallet_events": [], "encounter_max_hp_seq": [], "reward_events": [],
|
||||||
"relic_mode": String(relic.get("mode", "off")), # 流派件分层开关(迭代 12 T7——off=316-f 通用竞争/on=成型画像优先捕捞 relic)
|
"relic_mode": String(relic.get("mode", "off")), # 流派件分层开关(迭代 12 T7——off=316-f 通用竞争/on=成型画像优先捕捞 relic)
|
||||||
"shop_gp_seq": [], # 商店房到达余额序(逐关 1 次——GP 跨关延续验收取数面)
|
"shop_gp_seq": [], # 商店房到达余额序(逐关 1 次——GP 跨关延续验收取数面)
|
||||||
|
# 旗经济五字段(迭代14②判式换代批 T1——与 run_level 同口径,见彼处注释)
|
||||||
|
"flag_placed": 0, "flag_hit": 0, "flag_miss": 0, "flag_hit_gain": 0, "flag_miss_penalty": 0,
|
||||||
"prng": _policy_rng(seed_val), "mine_slips": 0, "skip_digs": 0, "shop_buys": 0,
|
"prng": _policy_rng(seed_val), "mine_slips": 0, "skip_digs": 0, "shop_buys": 0,
|
||||||
"adv": true, # v3 档位行为开关(选路评分/失误注入/商店购买只挂冒险测量面——单关夹具保持旧语义零扰动)
|
"adv": true, # v3 档位行为开关(选路评分/失误注入/商店购买只挂冒险测量面——单关夹具保持旧语义零扰动)
|
||||||
|
|
||||||
@@ -435,6 +440,24 @@ static func _on_step_row(row: Dictionary, _runner, st: Dictionary, collect_rows:
|
|||||||
_note_enemy(String(row.get("text", "")), st) # 施放行(毒爆挂毒等——伤害行可能缺席的死亡遭遇仍可归因)
|
_note_enemy(String(row.get("text", "")), st) # 施放行(毒爆挂毒等——伤害行可能缺席的死亡遭遇仍可归因)
|
||||||
if row.source_class == "mine_hit":
|
if row.source_class == "mine_hit":
|
||||||
st.mine_hits += 1 # 踩雷证据行(负向兑付——完美档断言恒 0;盲挖惩罚链埋点)
|
st.mine_hits += 1 # 踩雷证据行(负向兑付——完美档断言恒 0;盲挖惩罚链埋点)
|
||||||
|
# 旗经济聚合(迭代14②判式换代批 T1——自结算流水聚合,零新随机源):
|
||||||
|
# ⚠ 行侧判据考证实录:结算段对存续增益实例每轮复发行 effect 行且复用实例 source_class
|
||||||
|
#(battle_orchestrator 状态列举行)——source_class=flag_hit 的行 ≠ 标中事件。事件行唯一判据
|
||||||
|
# = 授予行专带 highlight="flag_hit"(实测 87 行 == 受理插旗 87 动作,1:1 精确);
|
||||||
|
# 雷区图谱追加分grant 无高光,以 display_name 后缀补捕(计入事件与合计——同旗第二份兑付)。
|
||||||
|
# 满层拒收行(reward_ineffective)零兑付不入。标空事件=归因行(type=flag_miss 每格恰一次);
|
||||||
|
# 标空惩罚合计只入一次性兑付行(flat 直伤 damage/heal + gp_loss escrow 行)——sapped 授予行
|
||||||
|
# 与其状态复发行行侧不可区分不入合计(登记注记,判读侧按事件数补算)。
|
||||||
|
if row.source_class == "flag_hit" and row.type != "reward_ineffective":
|
||||||
|
if String(row.get("highlight", "")) == "flag_hit" \
|
||||||
|
or String(row.get("display_name", "")).contains("雷区图谱"):
|
||||||
|
st.flag_hit += 1
|
||||||
|
st.flag_hit_gain += int(row.value)
|
||||||
|
if row.type == "flag_miss":
|
||||||
|
st.flag_miss += 1
|
||||||
|
elif row.source_class == "flag_miss" and (row.type == "damage" or row.type == "heal" \
|
||||||
|
or String(row.get("effect_id", "")) == "gp_loss"):
|
||||||
|
st.flag_miss_penalty += int(row.value)
|
||||||
if collect_rows:
|
if collect_rows:
|
||||||
st.rows.append(row)
|
st.rows.append(row)
|
||||||
|
|
||||||
@@ -525,6 +548,8 @@ static func _autoplay_battle(runner, settlement, st: Dictionary, logger) -> void
|
|||||||
if ok:
|
if ok:
|
||||||
if kind == "refresh":
|
if kind == "refresh":
|
||||||
st.refreshes = int(st.refreshes) + 1
|
st.refreshes = int(st.refreshes) + 1
|
||||||
|
elif kind == "flag":
|
||||||
|
st.flag_placed = int(st.get("flag_placed", 0)) + 1 # 插旗数(η 分母=全部插旗数——迭代14② Q5 裁决;失误注入转化旗不计数=转化后实为挖)
|
||||||
rejects = 0
|
rejects = 0
|
||||||
else:
|
else:
|
||||||
rejects += 1
|
rejects += 1
|
||||||
|
|||||||
+41
-1
@@ -2420,6 +2420,46 @@ func _smoke_polarity_routing() -> void:
|
|||||||
if eff != "" and not POSITIVE_EFFECTS.has(eff):
|
if eff != "" and not POSITIVE_EFFECTS.has(eff):
|
||||||
hit_ok = false
|
hit_ok = false
|
||||||
check(hit_ok, "标中旗 → 该雷格资源的正向兑付行(origin 指回雷格,效果 ∈ 正向字典)")
|
check(hit_ok, "标中旗 → 该雷格资源的正向兑付行(origin 指回雷格,效果 ∈ 正向字典)")
|
||||||
|
# 条款3 条件二旗溢价断言(迭代14② T4——标中兑付行数值 = 同型正向 ×(1+δ)):
|
||||||
|
# δ 读 settlement.flag_hit_premium(125 provisional);九型正向行值全固定(唯一区间行 clear_blast
|
||||||
|
# 系清图槽不入格池)⇒ 逐型期望全确定。整数量级四舍五入域注记:ac_up/action 1 点量纲取整后不变
|
||||||
|
# =整数粒度地板——等号压线判读在当量聚合面(audit 工具/registry clause3_inequality),非断言面。
|
||||||
|
var prem_pct: int = int(_db.settlement.flag_hit_premium)
|
||||||
|
check(prem_pct == 125, "旗溢价配置在位(flag_hit_premium=125 provisional——形态 a 兑付溢价)")
|
||||||
|
var prem_rows := 0
|
||||||
|
var prem_ok := true
|
||||||
|
for r in probe["rows"]:
|
||||||
|
if String(r.get("source_class", "")) != "flag_hit" or String(r.get("highlight", "")) != "flag_hit":
|
||||||
|
continue
|
||||||
|
prem_rows += 1
|
||||||
|
var rtype := String(r.get("type", ""))
|
||||||
|
var v := int(r.get("value", 0))
|
||||||
|
var eff := String(r.get("effect_id", ""))
|
||||||
|
if rtype == "effect":
|
||||||
|
if eff == "gp_gain":
|
||||||
|
prem_ok = prem_ok and v == int(round(3 * prem_pct / 100.0)) # 金币袋 3→4
|
||||||
|
elif eff == "ap_delta":
|
||||||
|
prem_ok = prem_ok and v == 1 # +1AP:1 点量纲(round(1.25)=1——整数粒度地板)
|
||||||
|
else:
|
||||||
|
var mag: int = int(_db.status_effect_row(eff).get("magnitude", -999))
|
||||||
|
prem_ok = prem_ok and v == int(round(mag * prem_pct / 100.0)) # 增伤50→63/削弱65→81/护甲1→1
|
||||||
|
elif rtype == "heal":
|
||||||
|
# 急救 2→3(clamp 封顶只降不升:满血走 reward_ineffective 不入本行——区间断言)
|
||||||
|
prem_ok = prem_ok and v >= 1 and v <= int(round(2 * prem_pct / 100.0))
|
||||||
|
elif rtype == "damage":
|
||||||
|
var at := String(r.get("attack_type", ""))
|
||||||
|
if at == "":
|
||||||
|
prem_ok = prem_ok and v == int(round(1 * prem_pct / 100.0)) # 爆裂粉尘 1→1(群伤行值=表值直付)
|
||||||
|
else:
|
||||||
|
# 穿刺/魔法 2→3(行值=落地伤=基准+克制点数——反推基准核对;damage_floor 兜底下成立)
|
||||||
|
prem_ok = prem_ok and (v - int(r.get("effectiveness", 0))) == int(round(2 * prem_pct / 100.0))
|
||||||
|
check(prem_rows >= 1 and prem_ok, "标中兑付溢价(×%d 行逐型=同型正向 ×%d/100——等号压线注记:δ=1.25 时条件二 E[标中]=1.25·E_dig 恰等成立)" % [prem_rows, prem_pct])
|
||||||
|
# 标空不乘溢价:负向直伤行(反噬6/陷阱8/魔法反噬8 固定表值)零溢价污染——溢价值挂标中正向单点
|
||||||
|
var miss_flat_ok := true
|
||||||
|
for r in _rows_at(probe["rows"], "flag_miss", probe["miss_cell"]):
|
||||||
|
if String(r.get("type", "")) == "damage":
|
||||||
|
miss_flat_ok = miss_flat_ok and int(r.get("value", 0)) in [6, 8]
|
||||||
|
check(miss_flat_ok, "标空惩罚零溢价(负向直伤行=固定表值原值——溢价只挂标中正向)")
|
||||||
# 标空旗:归因行 + 该安全格负向兑付行(flag_miss 来源)
|
# 标空旗:归因行 + 该安全格负向兑付行(flag_miss 来源)
|
||||||
var miss_rows := _rows_at(probe["rows"], "flag_miss", probe["miss_cell"])
|
var miss_rows := _rows_at(probe["rows"], "flag_miss", probe["miss_cell"])
|
||||||
var miss_neg_ok := false
|
var miss_neg_ok := false
|
||||||
@@ -3223,7 +3263,7 @@ func _smoke_level_graph() -> void:
|
|||||||
# 逐种子全关卡通关扫描找命中,期望路径过期时 258 次模拟撞 180s 闸(台账 257 + 2026-10-02
|
# 逐种子全关卡通关扫描找命中,期望路径过期时 258 次模拟撞 180s 闸(台账 257 + 2026-10-02
|
||||||
# 出度≤2 重建两次实证)。存储种子常态一次跑完;图表/数值有意变更致本断言红=快速失败(一次
|
# 出度≤2 重建两次实证)。存储种子常态一次跑完;图表/数值有意变更致本断言红=快速失败(一次
|
||||||
# 即红非扫描超时),重采=临时脚本跑同款 run_level 循环取首命中种子回填(离线一次性)。
|
# 即红非扫描超时),重采=临时脚本跑同款 run_level 循环取首命中种子回填(离线一次性)。
|
||||||
const MAX_PATH_SEED := 42
|
const MAX_PATH_SEED := 43 # 2026-10-05 判式换代批重采(旗溢价 δ=1.25 落地致种子 42 战局位移=败于终点;同款循环首命中——断言注释既定程序,临时脚本用后即删)
|
||||||
var win_max: Dictionary = autoplay.run_level(_db, MAX_PATH_SEED, 2, 200, 100, false, null, "normal", "max", 0)
|
var win_max: Dictionary = autoplay.run_level(_db, MAX_PATH_SEED, 2, 200, 100, false, null, "normal", "max", 0)
|
||||||
check(win_max.result == "victory" and win_max.visited_ids == [0, 2, 6, 7, 8, 9],
|
check(win_max.result == "victory" and win_max.visited_ids == [0, 2, 6, 7, 8, 9],
|
||||||
"L2·满配 max 路径(max 取最大编号候选)通关 = 0→2(奖励)→6→7→8(商店零购离开)→9(存储种子 %d——T17 出度≤2 拍板模板 0 重建)" % MAX_PATH_SEED)
|
"L2·满配 max 路径(max 取最大编号候选)通关 = 0→2(奖励)→6→7→8(商店零购离开)→9(存储种子 %d——T17 出度≤2 拍板模板 0 重建)" % MAX_PATH_SEED)
|
||||||
|
|||||||
+1
-2
@@ -59,9 +59,8 @@
|
|||||||
| 迭代 11+ | **✅ 三批已落籍(2026-10-03,台账 323-325)**:①魔法道具同调实施批 bc17b66(冒烟 645/0→671/0 基线演进)→ ②GP 商店房重构批 395b2ab(共享池账本+抽 3 买 1 全重抽+A=1.8/b=1.1 provisional+MC off 对拍逐位 PASS+on 新锚 N=60)→ ④视野迷雾实施批 e6260a5(菱形灯光区 R8+区外全黑+暗淡记忆态+探针 case⑮;纯呈现 MC 零跑)——各批合并后主区全量冒烟复跑全绿;**迭代 11 门=待出口人闸关闭(人闸材料包=design/qa/m4-iter11-exit-package-2026-10-03.md:三批检查单+追认清单 18 项+迷雾目检指引+读数报告)**。原登记:**2026-10-03 用户裁迭代 11 范围(三批,推荐序)**:①魔法道具同调实施批 → ②GP 商店房重构批 → ④视野迷雾实施批(各批独立出口闸;同调批先行——商店批共享池账本与通关率复测建在 aux 卡退役后的终局池上,读数只锚一次;迷雾批纯呈现不扰读数,序位可穿插);**反制批移迭代 12**(前置=双层 BD 外部调研+仲裁后重新立项;2026-10-03 用户终裁=同调位反制道具层级错配失败设计废弃,「每变异≥1反制道具」契约作废——地形变异.md v0.6/魔法道具.md v0.8 同批落文(06 条目已收口移除));**Beta 方向立项撤出本窗口**(待 Alpha 内容填充+试玩轮次后再议);关卡内容扩展留讨论位(世界观设定待用户补正主——摩索不达城 repo 无载)。↓ 原登记:反制批 Alpha · **魔法道具同调实施批**(任务书 v1.1 全裁 P1-P8=`design/research/任务书-魔法道具同调实施批-2026-10-02.md`,2026-10-02 用户裁 P7 乙归本窗口,发令即开工——任务书含 T0-T10 可升 loop 计划书)· **GP 商店房重构批**(2026-10-02 用户裁三选一同构化:买一全重抽/重抽绑购买/价格=基价×b^(关序−1)×A^(进店已购次数)〔系数归 game-balancer 研究〕,取代 09-20 无刷新裁决——06「GP 商店房重构」条在册待立项)· 关卡内容扩展 · Beta 方向立项(原迭代 10+ 三主题顺延——迭代 10 位已由奖励结构重构批占用,2026-09-30 用户拍板 P-E;各批顺序按 Alpha 读数定;含营地 2D 画面议题——2026-09-29 裁缓至此再议) | M-3 出口闸(**已解**——2026-10-03 迭代 9 出口闸收官:M-3 关闭、Alpha 到手) | 立项时按「迭代粒度界定」拆任务卡 |
|
| 迭代 11+ | **✅ 三批已落籍(2026-10-03,台账 323-325)**:①魔法道具同调实施批 bc17b66(冒烟 645/0→671/0 基线演进)→ ②GP 商店房重构批 395b2ab(共享池账本+抽 3 买 1 全重抽+A=1.8/b=1.1 provisional+MC off 对拍逐位 PASS+on 新锚 N=60)→ ④视野迷雾实施批 e6260a5(菱形灯光区 R8+区外全黑+暗淡记忆态+探针 case⑮;纯呈现 MC 零跑)——各批合并后主区全量冒烟复跑全绿;**迭代 11 门=待出口人闸关闭(人闸材料包=design/qa/m4-iter11-exit-package-2026-10-03.md:三批检查单+追认清单 18 项+迷雾目检指引+读数报告)**。原登记:**2026-10-03 用户裁迭代 11 范围(三批,推荐序)**:①魔法道具同调实施批 → ②GP 商店房重构批 → ④视野迷雾实施批(各批独立出口闸;同调批先行——商店批共享池账本与通关率复测建在 aux 卡退役后的终局池上,读数只锚一次;迷雾批纯呈现不扰读数,序位可穿插);**反制批移迭代 12**(前置=双层 BD 外部调研+仲裁后重新立项;2026-10-03 用户终裁=同调位反制道具层级错配失败设计废弃,「每变异≥1反制道具」契约作废——地形变异.md v0.6/魔法道具.md v0.8 同批落文(06 条目已收口移除));**Beta 方向立项撤出本窗口**(待 Alpha 内容填充+试玩轮次后再议);关卡内容扩展留讨论位(世界观设定待用户补正主——摩索不达城 repo 无载)。↓ 原登记:反制批 Alpha · **魔法道具同调实施批**(任务书 v1.1 全裁 P1-P8=`design/research/任务书-魔法道具同调实施批-2026-10-02.md`,2026-10-02 用户裁 P7 乙归本窗口,发令即开工——任务书含 T0-T10 可升 loop 计划书)· **GP 商店房重构批**(2026-10-02 用户裁三选一同构化:买一全重抽/重抽绑购买/价格=基价×b^(关序−1)×A^(进店已购次数)〔系数归 game-balancer 研究〕,取代 09-20 无刷新裁决——06「GP 商店房重构」条在册待立项)· 关卡内容扩展 · Beta 方向立项(原迭代 10+ 三主题顺延——迭代 10 位已由奖励结构重构批占用,2026-09-30 用户拍板 P-E;各批顺序按 Alpha 读数定;含营地 2D 画面议题——2026-09-29 裁缓至此再议) | M-3 出口闸(**已解**——2026-10-03 迭代 9 出口闸收官:M-3 关闭、Alpha 到手) | 立项时按「迭代粒度界定」拆任务卡 |
|
||||||
| 迭代 12 | **双层 BD 实施批(反制批位移承接——变异应对局内化在本批落地)**:**2026-10-03 用户五裁全落**=R1 甲(树形态融合案:主干脊柱 row-gating+三脉+彩蛋 ≤3+A/B 集中同调脉)/R2 乙(**两层全入本迭代**:批次一 T0-T7=机制件基建+七流派全量铺〔R3 乙〕+地形转化件+商店保底+MC 锚;批次二 T8-T10=天赋树+存档 v4+营地 UI 重构;超软时间盒切 12/12b,切分点=批次一出口)/R3 乙(七流派批次一全量铺)/R4 甲(**信息型永不对冲**+复查闸=T10 呈报信息型真人读数仅呈报不提案;净化工兵仅限伤害型、清除工具件族不做、深挖钻头改非信息税设计)/R5 甲(喂雷流不做,06 留正式待办+kill-switch 判据)。未落地备选内容已自包含迁 06「双层 BD 延期与备选内容总登记」。设计事实源=`design/research/双层BD体系-整合定稿-2026-10-03.md`(双模型并行调研仲裁版),任务书=`design/research/任务书-双层BD实施批-2026-10-03.md`(已定稿)。**✅ 已全批落籍(2026-10-04,台账 328-333)**:TP0 令牌池先行(normal 重锚)→批次一 T0-T7(27 件七流派+MC 成型锚 L1 5%→75% 分岔+红线自检①过)→批次二 T8-T10(天赋树 33 节点+存档 v5+营地树 UI+A/B 面 0.0pp)一次合并 e780063;试玩反馈四连修复(钻头 AP 锁死/v2 收益重投/流派件呈现双界面/清图奖励 toast)至 c43276d;批末冒烟 718/0+run_all 15+探针绿+doc 三闸基线同款+熵增 PASS;**出口人闸待用户**(人工检查清单=台账 328-333+design/qa/m4iter12 两报告);前置=迭代 11 三批出口+M-4 数值批令牌池落地+商店批共享池 | 迭代 11 出口 | T0-T10 两段式(任务书 §四) |
|
| 迭代 12 | **双层 BD 实施批(反制批位移承接——变异应对局内化在本批落地)**:**2026-10-03 用户五裁全落**=R1 甲(树形态融合案:主干脊柱 row-gating+三脉+彩蛋 ≤3+A/B 集中同调脉)/R2 乙(**两层全入本迭代**:批次一 T0-T7=机制件基建+七流派全量铺〔R3 乙〕+地形转化件+商店保底+MC 锚;批次二 T8-T10=天赋树+存档 v4+营地 UI 重构;超软时间盒切 12/12b,切分点=批次一出口)/R3 乙(七流派批次一全量铺)/R4 甲(**信息型永不对冲**+复查闸=T10 呈报信息型真人读数仅呈报不提案;净化工兵仅限伤害型、清除工具件族不做、深挖钻头改非信息税设计)/R5 甲(喂雷流不做,06 留正式待办+kill-switch 判据)。未落地备选内容已自包含迁 06「双层 BD 延期与备选内容总登记」。设计事实源=`design/research/双层BD体系-整合定稿-2026-10-03.md`(双模型并行调研仲裁版),任务书=`design/research/任务书-双层BD实施批-2026-10-03.md`(已定稿)。**✅ 已全批落籍(2026-10-04,台账 328-333)**:TP0 令牌池先行(normal 重锚)→批次一 T0-T7(27 件七流派+MC 成型锚 L1 5%→75% 分岔+红线自检①过)→批次二 T8-T10(天赋树 33 节点+存档 v5+营地树 UI+A/B 面 0.0pp)一次合并 e780063;试玩反馈四连修复(钻头 AP 锁死/v2 收益重投/流派件呈现双界面/清图奖励 toast)至 c43276d;批末冒烟 718/0+run_all 15+探针绿+doc 三闸基线同款+熵增 PASS;**出口人闸待用户**(人工检查清单=台账 328-333+design/qa/m4iter12 两报告);前置=迭代 11 三批出口+M-4 数值批令牌池落地+商店批共享池 | 迭代 11 出口 | T0-T10 两段式(任务书 §四) |
|
||||||
| 迭代 13 | **工程债与测试基建批(含 D6 爆破工兵包实施)**:六条目=ui_click_probe 完整局适配(D1——分派链序修正+停点/锁期/重放三态断言)/探针只读出口(D2——六出口 26 直入清零)/ArmedTimer helper(D3——P4 乙三处计时收口缝零动)/main.gd 二期瘦身(D4——bonus_interact_controller+camp_shop_presenter 拆件 1370→1119,家族②契约3绑定面留置;~900±50 锚差=族级清单上限不自洽已归因)/aux 二期合并(T5 判不合收口)/杂项尾差四件(D5)/爆破工兵包中立移除雷格(D6——P1 甲邻接冻结/P2 甲退色降档,判定逻辑零改动,充能表驱动零新码)。**✅ 已落籍(2026-10-04,台账 342)**:worktree m4iter13-debt-20261004 八提交 cd7d3ea…2402877 合并 eff8cb8;闸=冒烟 718/0(断言数持平基线)+run_all 15+click 三种子绿+全探针绿+doc 三闸零新增+熵增 PASS+MC 零跑(静态零漂移证明);合并后主区全量复跑同绿 | 迭代 12 出口 | T0-T9 ≈4.8-5.3d(知情超限单批,实际单会话) |
|
| 迭代 13 | **工程债与测试基建批(含 D6 爆破工兵包实施)**:六条目=ui_click_probe 完整局适配(D1——分派链序修正+停点/锁期/重放三态断言)/探针只读出口(D2——六出口 26 直入清零)/ArmedTimer helper(D3——P4 乙三处计时收口缝零动)/main.gd 二期瘦身(D4——bonus_interact_controller+camp_shop_presenter 拆件 1370→1119,家族②契约3绑定面留置;~900±50 锚差=族级清单上限不自洽已归因)/aux 二期合并(T5 判不合收口)/杂项尾差四件(D5)/爆破工兵包中立移除雷格(D6——P1 甲邻接冻结/P2 甲退色降档,判定逻辑零改动,充能表驱动零新码)。**✅ 已落籍(2026-10-04,台账 342)**:worktree m4iter13-debt-20261004 八提交 cd7d3ea…2402877 合并 eff8cb8;闸=冒烟 718/0(断言数持平基线)+run_all 15+click 三种子绿+全探针绿+doc 三闸零新增+熵增 PASS+MC 零跑(静态零漂移证明);合并后主区全量复跑同绿 | 迭代 12 出口 | T0-T9 ≈4.8-5.3d(知情超限单批,实际单会话) |
|
||||||
| 迭代 14 | **初始展开收窄批(2026-10-04 用户拍板甲乙混合立项)**:甲=先布后删剃雷域收窄至出生 3×3∪外扩 r 环(参数化半径,现值 r=1——开阔地均值从板面 66.5% 根因性降至约三成)+乙=生成重掷闸 R₀≤cap(合法性门序列、cap=板面 30% 锚〔10×10=30/12×12=43/13×13=51〕、重试耗尽走既有三分出口);**玩法侧零改动路线**(排雷玩法「初始展开恰等」验收原样为真,minesweeper_rules.gd 零 diff);裸数字截断路否决退役(可见 0 格+未开邻居=扫雷不可能态)。可行性报告=`design/research/研究-初始展开收窄可行性-2026-10-04.md`,任务书=`design/research/任务书-初始展开收窄批-2026-10-04.md`(T0-T8≈5.25d,读数批 T5-T6 可切独立后批;拍板点 P1-P3 全读数后置;停机点 S1 相变警戒/S2 带越界回调)。**②挖掘风险不等式判式换代批(2026-10-04 用户裁编入本迭代,作为迭代内需求)**:判式三层换代(条款2 标中旗锚/条款3 聚合健康式「(1−ρ̂)E_dig−ρ̂V_mine≥0」/旗边际引理+条件二旗溢价)+β 比值带判读 [1.2,2.5](u=3 登记态)+标中兑付溢价 δ=1.25(形态 a 兑付公式一处·雷安同池冻结不动)+runsum 旗行为五字段+audit 工具常量刷新(池 77/直伤 6-8-8/AP 8);裁决全落零新拍板点(方案报告=`design/research/方案-挖掘风险不等式修订-2026-10-04.md` §九),任务书=`.zcode/plans/mine-inequality-revision-miniloop-plan-2026-10-04.md`(T0-T5≈2.5d;条件二 T3 落文按登记已知破·T4 机制转绿;契约红线=DamageController 零改/直伤雷 6-8-8 与 p_perfect 不动——iter8 缺口四选一解绑独立在案;开工门=U0)。**③全局作用域变异首发批(2026-10-04 用户拍板立项——调研报告 P1-P8+盘问 Q1-Q4 全按推荐案落,批内序位待排)**:L2/L3 Boss 图恒定一型 scope=global 变异,首发型=**案A 资源面·微贫向偏斜**(正向格面池合计不变、进攻族 attack/blast/pierce/magic 权重上浮/生存族 heal/defense 明显下调、EV 微降 3-5% provisional、gp/action 白名单不动;v1.0「沃土+雷密对冲」形勘误作废——雷数为生成器事实、布置段不可加,改生成端=踩结构面否决理由);**替换制**(Boss 图不再布 region 片——L2 完美 Boss 承伤 55.8% 已越带不叠加;迭代 12 四件地形应对件在 Boss 图失效=知情代价,registry/调参日志随批登记);L1 Boss 免疫(带B [50,85] 教学保护);三层预告(开战横幅+HUD 常驻角标+帮助手册行);带A 判读后置 M-4(落地 off/on 对拍只测不判;off 基线=替换制后零变异 Boss 图,与现行带 region 片 Boss 图语义不同须注明);偏运硬币合成序=图级先件级后(代拍随批锚登记)。调研报告(事实源,v1.1 裁决落盘)=`design/research/调研-全局作用域变异设计空间-2026-10-04.md`,任务书=`design/research/任务书-全局作用域变异首发批-2026-10-04.md`(T0-T8≈5.75d,读数批 T7 可切独立后批→主体≈5.25d;零新拍板点·provisional 追认单随批;停机点 S1 普通图逐位漂移/S2 读数越带只呈报/S3 互锁误伤;开工门=U0;**⑥A4 批开工门含本批出口——本批落地图级偏斜投影点为⑥合成链中段**〔2026-10-05 注:⑥已移出迭代 14 挂起,此依赖句冻结待其重启〕)。与①②互不撞(收窄=普通图初始展开轴/判式=不等式判读口径/全局变异=Boss 图资源面轴),出口读数各自分开归因。**✅ 实施批落地(2026-10-04,worktree m4iter14-gvar-20261004 台账 345)**:T1-T8 实施批全落(T7b MC 读数批按切分预案切独立后批,跑批待用户批准)——skewed_veins 贫矿脉行+互锁三条+effect_value [0,50]/门控第三维节点身份/替换制+兜底回落/装板序全局决议前置(数据依赖调和,出口报告在册)/资源面偏斜投影(整数最大余数守恒 77+合成序图级先件级后)/三层预告三层全接/七正主落文+06 收口;闸=冒烟 747/0(+29)+run_all 15+golden 普通图逐位 12/12 全等+六探针+三闸熵增终录见批报告 design/qa/m4iter14-gvar-exit-report-2026-10-04.md(Q3 四件应对件知情代价登记+静态推演+provisional 追认单+人闸目检清单);**③出口成立——⑥A4 开工门解一半**(另半=②出口);off/on 双档读数待 T7b(带 A 判读归 M-4 只测不判)。**④技能池执行批(2026-10-04 用户点名入列——调研+四裁+任务书全齐,06 Alpha 验证条目随之收口)**:文档五件(敌人系统.md 池构成表补 L2/L3 五敌种行/护甲列改读表口径/Boss 三代错峰句/意图呈现节补解锁弹出规格/版本 v0.13+EV 锚整数口径重登记+enemy.tres 批注消歧)+**新机制一件=Boss 半血解锁新独占伤害技**(三 Boss 血量 ≤50%〔用Line truncated
|
| 迭代 14 | **初始展开收窄批(2026-10-04 用户拍板甲乙混合立项)**:甲=先布后删剃雷域收窄至出生 3×3∪外扩 r 环(参数化半径,现值 r=1——开阔地均值从板面 66.5% 根因性降至约三成)+乙=生成重掷闸 R₀≤cap(合法性门序列、cap=板面 30% 锚〔10×10=30/12×12=43/13×13=51〕、重试耗尽走既有三分出口);**玩法侧零改动路线**(排雷玩法「初始展开恰等」验收原样为真,minesweeper_rules.gd 零 diff);裸数字截断路否决退役(可见 0 格+未开邻居=扫雷不可能态)。可行性报告=`design/research/研究-初始展开收窄可行性-2026-10-04.md`,任务书=`design/research/任务书-初始展开收窄批-2026-10-04.md`(T0-T8≈5.25d,读数批 T5-T6 可切独立后批;拍板点 P1-P3 全读数后置;停机点 S1 相变警戒/S2 带越界回调)。**②挖掘风险不等式判式换代批(2026-10-04 用户裁编入本迭代,作为迭代内需求)**:判式三层换代(条款2 标中旗锚/条款3 聚合健康式「(1−ρ̂)E_dig−ρ̂V_mine≥0」/旗边际引理+条件二旗溢价)+β 比值带判读 [1.2,2.5](u=3 登记态)+标中兑付溢价 δ=1.25(形态 a 兑付公式一处·雷安同池冻结不动)+runsum 旗行为五字段+audit 工具常量刷新(池 77/直伤 6-8-8/AP 8);裁决全落零新拍板点(方案报告=`design/research/方案-挖掘风险不等式修订-2026-10-04.md` §九),任务书=`.zcode/plans/mine-inequality-revision-miniloop-plan-2026-10-04.md`(T0-T5≈2.5d;条件二 T3 落文按登记已知破·T4 机制转绿;契约红线=DamageController 零改/直伤雷 6-8-8 与 p_perfect 不动——iter8 缺口四选一解绑独立在案;开工门=U0)。**✅ 实施批落地(2026-10-05,worktree m4iter14-mineq-20261005 台账 354)**:T0-T5 全落——audit 工具常量刷新(改前静态锚与方案报告 §四 逐位吻合)+runsum 五字段(行侧判据考证=授予行专带 highlight,87行==87插旗1:1)+F1 条款3 重立三层口径(v0.8)+战斗结算 v0.25+难度联动表+6 行+registry clause3_inequality 重立条(改前锚+P7 修正注记)+06 破线条收口+**T4 标中兑付溢价机制**(settlement.flag_hit_premium=125 provisional,grant 单点只挂 flag_hit 正向·percent 幅度贯穿应用与呈现,标空/挖格不乘,DamageController 零改/同池冻结)+smoke 750/0(+3 断言;max 路径种子 42→43 重采);判读三件=β 带 u=1/2 带内 u=3 登记态/δ 敏感度行为无感(η 位移 <1.4pp<5pp,保留+登记)/条件二判式口径等号压线转绿(整数量级实现 u=1/2 绿·u=3 微欠 −1.1% 登记面);改后锚换代 runsum_m4iter14mineq_post_n200_20261005(perfect 冒险通关 65.3%→72.0% 增强向位移,四带判读归 M-4);出口报告=design/qa/m4iter14-mineq-exit-report-2026-10-05.md(provisional 追认单 8 项+07⑫ 人工项);damage_probe A1 红灯=改前既有非本批新增(在册)。**③全局作用域变异首发批(2026-10-04 用户拍板立项——调研报告 P1-P8+盘问 Q1-Q4 全按推荐案落,批内序位待排)**:L2/L3 Boss 图恒定一型 scope=global 变异,首发型=**案A 资源面·微贫向偏斜**(正向格面池合计不变、进攻族 attack/blast/pierce/magic 权重上浮/生存族 heal/defense 明显下调、EV 微降 3-5% provisional、gp/action 白名单不动;v1.0「沃土+雷密对冲」形勘误作废——雷数为生成器事实、布置段不可加,改生成端=踩结构面否决理由);**替换制**(Boss 图不再布 region 片——L2 完美 Boss 承伤 55.8% 已越带不叠加;迭代 12 四件地形应对件在 Boss 图失效=知情代价,registry/调参日志随批登记);L1 Boss 免疫(带B [50,85] 教学保护);三层预告(开战横幅+HUD 常驻角标+帮助手册行);带A 判读后置 M-4(落地 off/on 对拍只测不判;off 基线=替换制后零变异 Boss 图,与现行带 region 片 Boss 图语义不同须注明);偏运硬币合成序=图级先件级后(代拍随批锚登记)。调研报告(事实源,v1.1 裁决落盘)=`design/research/调研-全局作用域变异设计空间-2026-10-04.md`,任务书=`design/research/任务书-全局作用域变异首发批-2026-10-04.md`(T0-T8≈5.75d,读数批 T7 可切独立后批→主体≈5.25d;零新拍板点·provisional 追认单随批;停机点 S1 普通图逐位漂移/S2 读数越带只呈报/S3 互锁误伤;开工门=U0;**⑥A4 批开工门含本批出口——本批落地图级偏斜投影点为⑥合成链中段**〔2026-10-05 注:⑥已移出迭代 14 挂起,此依赖句冻结待其重启〕)。与①②互不撞(收窄=普通图初始展开轴/判式=不等式判读口径/全局变异=Boss 图资源面轴),出口读数各自分开归因。**✅ 实施批落地(2026-10-04,worktree m4iter14-gvar-20261004 台账 345)**:T1-T8Line truncated
|
||||||
| 迭代 15 | **调试功能整合批(2026-10-05 用户令自「14.5」临时卡改编入册——原周期外 0.5 卡,落地事实与验证读数零变化,只改编号归属)**:主菜单三调试散件(随机种子输入框/角色数值调整板/两层调试入口)收一张调试浮窗 DebugOverlay——入口=开始覆盖层右下角「调试」角标(与主按钮组非平级,DS_DEBUG=1 环境变量门控沿用迭代 8 卡④口径);浮窗=悬浮菜单之上 Dialog(不隐藏开始层,同确认弹窗形态;旧 TunePanel「与开始层互斥」形态与类整体吸收退役含 .uid);可扩展滚动列表页四区块(随机种子/数值调整/批量模拟/两层调试入口——后续调试项往下追加滚轮下探)。四拍板全落(2026-10-04 用户裁)=P1 甲 DS_DEBUG 门控/P2 乙全摊平/P3 仅开始菜单可开·对局不可达(_show_debug_overlay 门禁护栏+对局发起随开随收)/P4 可扩展列表。**✅ 已全批落籍(2026-10-05,worktree iter145-debug-hub 两提交 48c0b34/46dadbb,主区 merge --no-ff d0a3c6b/10c301b,台账 352)**:闸=冒烟 747/0+探针 ui_tune/ui_click/ui 三绿(worktree+主区双跑,主区跑前 --import 重刷类名缓存在册坑);遗留=实机目检归用户(DS_DEBUG=1 启动→右下角角标→浮窗四区块→两层调试入口) | 迭代 14 出口(注:本卡先于迭代 14 出口落籍——编入时点迭代 14 ③已闭/①②④⑤在飞/⑥挂起,门列仅记编入时点状态,不构成追溯闸) | 单批已落地(原估 0.5d,实际一次会话);后续扩调试项=debug_overlay.gd _build() 列表区追加区块(P4 扩展口径) |
|
| 迭代 15 | **调试功能整合批(2026-10-05 用户令自「14.5」临时卡改编入册——原周期外 0.5 卡,落地事实与验证读数零变化,只改编号归属)**:主菜单三调试散件(随机种子输入框/角色数值调整板/两层调试入口)收一张调试浮窗 DebugOverlay——入口=开始覆盖层右下角「调试」角标(与主按钮组非平级,DS_DEBUG=1 环境变量门控沿用迭代 8 卡④口径);浮窗=悬浮菜单之上 Dialog(不隐藏开始层,同确认弹窗形态;旧 TunePanel「与开始层互斥」形态与类整体吸收退役含 .uid);可扩展滚动列表页四区块(随机种子/数值调整/批量模拟/两层调试入口——后续调试项往下追加滚轮下探)。四拍板全落(2026-10-04 用户裁)=P1 甲 DS_DEBUG 门控/P2 乙全摊平/P3 仅开始菜单可开·对局不可达(_show_debug_overlay 门禁护栏+对局发起随开随收)/P4 可扩展列表。**✅ 已全批落籍(2026-10-05,worktree iter145-debug-hub 两提交 48c0b34/46dadbb,主区 merge --no-ff d0a3c6b/10c301b,台账 352)**:闸=冒烟 747/0+探针 ui_tune/ui_click/ui 三绿(worktree+主区双跑,主区跑前 --import 重刷类名缓存在册坑);遗留=实机目检归用户(DS_DEBUG=1 启动→右下角角标→浮窗四区块→两层调试入口) | 迭代 14 出口(注:本卡先于迭代 14 出口落籍——编入时点迭代 14 ③已闭/①②④⑤在飞/⑥挂起,门列仅记编入时点状态,不构成追溯闸) | 单批已落地(原估 0.5d,实际一次会话);后续扩调试项=debug_overlay.gd _build() 列表区追加区块(P4 扩展口径) |
|
||||||
|
|
||||||
## 执行纪律(2026-09-27 用户立规)
|
## 执行纪律(2026-09-27 用户立规)
|
||||||
|
|
||||||
1. **一迭代一 loop**:所有更改任务(功能/文档/数值/素材接线)一律进本路线图的迭代,每迭代先立计划书再开工,一个迭代一次合并登记——**零散并行会话退场**(多会话并行 = 冲突源+介入成本;2026-09-27 起单迭代串行执行)。台账记「批」= 本文件记「迭代」,同物异名。
|
1. **一迭代一 loop**:所有更改任务(功能/文档/数值/素材接线)一律进本路线图的迭代,每迭代先立计划书再开工,一个迭代一次合并登记——**零散并行会话退场**(多会话并行 = 冲突源+介入成本;2026-09-27 起单迭代串行执行)。台账记「批」= 本文件记「迭代」,同物异名。
|
||||||
|
|||||||
+156
-69
@@ -11,50 +11,60 @@
|
|||||||
s_ref = D_ref;停手侧 RAP 机会收益按零计价(显式假设)。
|
s_ref = D_ref;停手侧 RAP 机会收益按零计价(显式假设)。
|
||||||
|
|
||||||
本工具 2026-09-19 随对账重跑批建立,是难度曲线调参批的常设重跑入口:
|
本工具 2026-09-19 随对账重跑批建立,是难度曲线调参批的常设重跑入口:
|
||||||
所有输入可经命令行覆盖(--d-ref --c-clear --ap-r --iota --m-amb --u ...),
|
所有输入可经命令行覆盖(--d-ref --c-clear --ap-r --iota ...),
|
||||||
重跑时按当期 .tres 行值更新默认值即可,公式本体不动。
|
重跑时按当期 .tres 行值更新默认值即可,公式本体不动。
|
||||||
|
|
||||||
单雷代价 / 单格收益的当量换算严格走 战斗结算「效果档位对照表」单一口径:
|
单雷代价 / 单格收益的当量换算严格走 战斗结算「效果档位对照表」单一口径:
|
||||||
flat 类 E = 表值;percent 类 E = |层数×行值|÷100 × D_ref(每结算每层);
|
flat 类 E = 表值;percent 类 E = |层数×行值|÷100 × D_ref(每结算每层);
|
||||||
AC 轴换算 = AC 点数 × 5pp(d20 线性)× D_ref(假设登记,见审计报告)。
|
AC 轴换算 = AC 点数 × 5pp(d20 线性)× D_ref(假设登记,见审计报告)。
|
||||||
2026-09-19 起极性矩阵下踩雷惩罚按格型路由(不再固定伏击),故 V_mine 双口径:
|
|
||||||
甲 = 注册模型连续口径 V_mine = unit_count × m_amb(m_amb = 伏击行 magnitude);
|
【2026-10-05 判式换代批口径(迭代14②号卡 T0)】
|
||||||
乙 = 现行矩阵加权口径 V_mine = 负向字典按 67 权重池加权(主流读数)。
|
- 池 67→77(补 action 6 / gp 2;clear_blast 系清图槽对象不入格池)。
|
||||||
|
- 直伤雷负向三行 6/8/8(backlash/snare/recoil,2026-10-01 数值修复+10-03 转正);
|
||||||
|
正向 pierce_strike/magic_bolt 维持 flat 2;heal_minor 2(Package B 第 2 轮)。
|
||||||
|
- 清图槽 C_MIN/MAX 8/18→24/40(中点 32);AP_r 6→8(2026-09-16 压速批 8→6 后回摆)。
|
||||||
|
- off_guard 换 ac 轴 −1(0.2u 模型:点数×5pp×D_ref=0.2 当量/每敌拍)。
|
||||||
|
- 伏击历史口径(口径甲 u×m_amb / AMBUSH_MAG/STACKS)退役删除——伏击机制已退役,
|
||||||
|
V_mine 只保留现行矩阵加权口径(原口径乙升为主口径)。
|
||||||
|
- V_mine 换现行九型负向字典(enrage/off_guard/警觉/backlash/sapped/snare/recoil/
|
||||||
|
ap_drain/gp_lose——ap_drain 按 A6 flat 1、gp_lose 按 A5 代理 2 计)。
|
||||||
|
- 新增 β 比值带判读与逐型净期望输出(方案-挖掘风险不等式修订-2026-10-04 §四/§九):
|
||||||
|
β(u)=V_mine/E_dig ∈ [1.2, 2.5];条件一 (1−ρ̂)E_dig−ρ̂V_mine ≥ 0(下限 0,上限归 β_hi);
|
||||||
|
条件二 E[标中兑付] ≥ (1+δ)·E_dig(δ=1.25 provisional,兑付溢价形态 a)。
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import math
|
import math
|
||||||
|
|
||||||
# ============ 现行值链(2026-09-19 快照,出处见各注释;重跑批按当期 .tres 更新) ============
|
# ============ 现行值链(2026-10-05 判式换代批快照,出处见各注释;重跑批按当期 .tres 更新) ============
|
||||||
|
|
||||||
D_REF = 4 # settlement.tres equivalence_ref_damage(2026-09-17 压缩批 12→4)
|
D_REF = 4 # settlement.tres equivalence_ref_damage(2026-09-17 压缩批 12→4)
|
||||||
P_PERFECT = 200 # settlement.tres(percent,÷100 = ×2 双份交付)
|
P_PERFECT = 200 # settlement.tres(percent,÷100 = ×2 双份交付)
|
||||||
C_MIN, C_MAX = 8, 18 # reward.tres clear_blast power_min/max;期望口径 = 中点 13
|
C_MIN, C_MAX = 24, 40 # reward.tres clear_blast power_min/max(2026-10-01 数值修复批 8/18→24/40);期望口径 = 中点 32
|
||||||
AP_R = 6 # action_economy.tres ap_per_round(2026-09-16 压速批 8→6)
|
AP_R = 8 # action_economy.tres ap_per_round(2026-09-16 压速批 8→6 后回摆 8)
|
||||||
DIG_COST = 1 # action_economy.tres dig_ap_cost
|
DIG_COST = 1 # action_economy.tres dig_ap_cost
|
||||||
IOTA = 0.88 # board_gen.tres inferability_target(判式 ι 代理)
|
IOTA = 0.88 # board_gen.tres inferability_target(判式 ι 代理)
|
||||||
|
|
||||||
# 效果行值(status_effects.tres,2026-09-19 快照)
|
# 效果行值(status_effects.tres,2026-10-05 快照)
|
||||||
ATTACK_UP_PCT = 50 # 增伤 +50%,duration 1,hero 侧
|
ATTACK_UP_PCT = 50 # 增伤 +50%,duration 1,hero 侧
|
||||||
AC_UP_POINT = 1 # 护甲强化 +1 AC,duration 1
|
AC_UP_POINT = 1 # 护甲强化 +1 AC,duration 1
|
||||||
WEAKEN_PCT = 65 # 削弱 −65%(有效拍 1:duration 2 先兑付后衰减)
|
WEAKEN_PCT = 65 # 削弱 −65%(有效拍 1:duration 2 先兑付后衰减)
|
||||||
ENRAGE_PCT = 25 # 暴走 +25%,enemy 侧 side-wide
|
ENRAGE_PCT = 25 # 暴走 +25%,enemy 侧 side-wide
|
||||||
SAPPED_PCT = 25 # 乏力 −25%,hero 侧
|
SAPPED_PCT = 25 # 乏力 −25%,hero 侧
|
||||||
# 【2026-09-20 八型批口径注记】伏击机制退役,blast 负向现况 = 警觉(敌方 AC +1,掷点折扣分布型惩罚)——
|
OFF_GUARD_AC = 1 # 失衡 AC −1(0.2u 模型:1 点 × 5pp × D_ref = 0.2 当量/每敌拍)
|
||||||
# 本脚本的伏击暴露当量模型(AMBUSH_MAG/AMBUSH_STACKS)转为历史口径,仅用于旧读数复算;
|
ALERT_EQUIV = 0.2 # 警觉(敌 AC+1×1拍):主角每拍恰 1 攻 × 1 拍寿命 ⇒ 0.2 当量,u 无关(假设 A4)
|
||||||
# 新口径(掷点折扣期望建模)归曲线调参批重立后再改模型。
|
|
||||||
AMBUSH_MAG = 1 # 历史口径:伏击 +1 flat/层(2026-09-17 压缩批 3→1)
|
|
||||||
AMBUSH_STACKS = 2 # reward.tres ambush_double stacks(每雷伏击层数)
|
|
||||||
OFF_GUARD_AC = 2 # 失衡 AC −2(2026-09-18 换装)
|
|
||||||
|
|
||||||
# 直伤/群伤 flat 值(reward.tres,2026-09-17 ÷3 后)
|
# 直伤/群伤 flat 值(reward.tres,2026-10-05 快照)
|
||||||
SPARK_AOE = 1 # 爆裂粉尘(全体存活敌)
|
SPARK_AOE = 1 # 爆裂粉尘(全体存活敌)
|
||||||
HEAL_MINOR = 1 # 急救敷料
|
HEAL_MINOR = 2 # 急救敷料(Package B 第 2 轮 1→2)
|
||||||
HEAL_BACKLASH = 1 # 反噬震荡(主角直伤)
|
HEAL_BACKLASH = 6 # 反噬震荡(主角直伤,2026-10-01 4→6 / 10-03 转正)
|
||||||
PIERCE_STRIKE = 2 # 穿刺弹(单目标克制直伤,必中全额)
|
PIERCE_STRIKE = 2 # 穿刺弹(单目标克制直伤,必中全额)
|
||||||
MAGIC_BOLT = 2 # 魔法矢(同上)
|
MAGIC_BOLT = 2 # 魔法矢(同上)
|
||||||
PIERCE_SNARE = 2 # 穿刺陷阱(主角直伤)
|
PIERCE_SNARE = 8 # 穿刺陷阱(主角直伤,2026-10-01 5→8 / 10-03 转正)
|
||||||
MAGIC_RECOIL = 2 # 魔法反噬(主角直伤)
|
MAGIC_RECOIL = 8 # 魔法反噬(主角直伤,2026-10-01 5→8 / 10-03 转正)
|
||||||
|
AP_UP = 1 # 行动点 +1(当量 = flat 表值 1,机会成本口径更高仅登记——假设 A6)
|
||||||
|
GP_COIN = 3 # 金币袋 +3GP(gp 当量 = flat power 代理——假设 A5,口径空白登记)
|
||||||
|
GP_LOSE = 2 # 破财 −2GP(同上代理)
|
||||||
|
|
||||||
# 甲效矩阵(settlement.tres,加法核点数):基础值 + 点数,damage_floor=1
|
# 甲效矩阵(settlement.tres,加法核点数):基础值 + 点数,damage_floor=1
|
||||||
ARMOR_EFFECT = { # attack_type → {armor_type: 点数};切片 L1 全轻甲 / L2 除 Boss 全轻甲
|
ARMOR_EFFECT = { # attack_type → {armor_type: 点数};切片 L1 全轻甲 / L2 除 Boss 全轻甲
|
||||||
@@ -63,14 +73,21 @@ ARMOR_EFFECT = { # attack_type → {armor_type: 点数};切片 L1 全轻
|
|||||||
"normal": {"light": 0, "ward": 1, "heavy": -1},
|
"normal": {"light": 0, "ward": 1, "heavy": -1},
|
||||||
}
|
}
|
||||||
|
|
||||||
# 格面资源池正向权重(reward.tres,2026-09-18 伤害道具批后,合计 67)
|
# 格面资源池正向权重(reward.tres,2026-10-05 快照,合计 77)
|
||||||
# 类型 → (权重);负向行 weight=0 不参与摇号,类型分布 = 正向权重
|
# 类型 → (权重);负向行 weight=0 不参与摇号,类型分布 = 正向权重
|
||||||
POOL_WEIGHTS = {"attack": 14, "defense": 11, "blast": 16, "heal": 2,
|
# clear_blast pool_tag=clear_default 系清图槽对象,不入格池(地图战斗资源.md §清图槽)。
|
||||||
"weaken": 8, "pierce": 8, "magic": 8}
|
POOL_WEIGHTS = {"attack": 14, "defense": 11, "blast": 16, "heal": 4,
|
||||||
|
"weaken": 8, "pierce": 8, "magic": 8, "action": 6, "gp": 2}
|
||||||
|
|
||||||
|
# β 比值带(2026-10-04 用户裁 P4:[1.2, 2.5];u=3 登记态 1.17 微破下限=点名不强制回滚)
|
||||||
|
BETA_LO, BETA_HI = 1.2, 2.5
|
||||||
|
# δ 旗溢价(2026-10-04 用户裁 P3:形态 a 兑付溢价,δ=1.25 provisional ⇒ 兑付按同型正向 ×(1+δ))
|
||||||
|
DELTA = 0.25
|
||||||
|
|
||||||
# 板形(|M| 幸存雷 / |S| 安全格)双口径
|
# 板形(|M| 幸存雷 / |S| 安全格)双口径
|
||||||
# 名义 = density×(W×H−9) 初布值(2026-09-14 重算批参考板形口径,连续性参照)
|
# 名义 = density×(W×H−9) 初布值(2026-09-14 重算批参考板形口径,连续性参照)
|
||||||
# 实测 = smoke/board_stat_probe.gd 200 样本/行均值("先布后删"落地值,主流读数)
|
# 实测 = smoke/board_stat_probe.gd 200 样本/行均值("先布后删"落地值,主流读数)
|
||||||
|
# (实测值沿用 2026-09-19 board_stat_probe 读数;板形行值此后未变,不强制复跑)
|
||||||
BOARDS = {
|
BOARDS = {
|
||||||
"L1前段·名义(10x10)": {"M": 23, "S": 77},
|
"L1前段·名义(10x10)": {"M": 23, "S": 77},
|
||||||
"L1后段·名义(12x12)": {"M": 34, "S": 110},
|
"L1后段·名义(12x12)": {"M": 34, "S": 110},
|
||||||
@@ -82,7 +99,7 @@ BOARDS = {
|
|||||||
|
|
||||||
|
|
||||||
def e_dig(u: float, d_ref: float, aoe_per_unit: bool = True) -> float:
|
def e_dig(u: float, d_ref: float, aoe_per_unit: bool = True) -> float:
|
||||||
"""单安全格期望收益(当量),格子池 67 权重加权。
|
"""单安全格期望收益(当量),格子池 77 权重加权。
|
||||||
|
|
||||||
u = 敌方单位数。hero 侧单目标效果不随 u 缩放(主角每轮出手一次);
|
u = 敌方单位数。hero 侧单目标效果不随 u 缩放(主角每轮出手一次);
|
||||||
enemy 侧 side-wide 效果(ac_up 承伤面 / spark_aoe 群伤 / weaken 全体减伤)随 u 缩放。
|
enemy 侧 side-wide 效果(ac_up 承伤面 / spark_aoe 群伤 / weaken 全体减伤)随 u 缩放。
|
||||||
@@ -96,42 +113,83 @@ def e_dig(u: float, d_ref: float, aoe_per_unit: bool = True) -> float:
|
|||||||
weaken = w["weaken"] * WEAKEN_PCT / 100 * d_ref * u # 全体敌拍 ×0.35
|
weaken = w["weaken"] * WEAKEN_PCT / 100 * d_ref * u # 全体敌拍 ×0.35
|
||||||
pierce = w["pierce"] * max(1, PIERCE_STRIKE + ARMOR_EFFECT["pierce"]["light"]) # 轻甲口径
|
pierce = w["pierce"] * max(1, PIERCE_STRIKE + ARMOR_EFFECT["pierce"]["light"]) # 轻甲口径
|
||||||
magic = w["magic"] * max(1, MAGIC_BOLT + ARMOR_EFFECT["magic"]["light"])
|
magic = w["magic"] * max(1, MAGIC_BOLT + ARMOR_EFFECT["magic"]["light"])
|
||||||
return (attack + ac_up + spark + heal + weaken + pierce + magic) / total
|
action = w["action"] * AP_UP
|
||||||
|
gp = w["gp"] * GP_COIN
|
||||||
|
return (attack + ac_up + spark + heal + weaken + pierce + magic + action + gp) / total
|
||||||
|
|
||||||
|
|
||||||
def v_mine_a(u: float, m_amb: float) -> float:
|
def v_mine(u: float, d_ref: float) -> float:
|
||||||
"""口径甲:注册模型连续口径 V_mine = unit_count × m_amb(registry 公式字面执行)。"""
|
"""现行极性矩阵加权口径(九型负向字典)——踩雷兑付 = 该格类型负向行,按 77 权重池加权。
|
||||||
return u * m_amb
|
|
||||||
|
|
||||||
|
hero 侧固定(直伤三类 heal_backlash/snare/recoil + 乏力 sapped + ap_drain + gp_lose);
|
||||||
def v_mine_b(u: float, d_ref: float) -> float:
|
enemy 侧 side-wide(enrage 每敌拍 / off_guard 每敌拍命中上浮)随 u 缩放;
|
||||||
"""口径乙:现行极性矩阵加权口径——踩雷兑付 = 该格类型负向行,按 67 权重池加权。
|
警觉按 0.2 当量固定(假设 A4)。
|
||||||
|
|
||||||
hero 侧固定(直伤三类 heal_backlash/snare/recoil + 乏力 sapped);
|
|
||||||
enemy 侧 side-wide(enrage 每敌拍 / off_guard 每敌拍命中上浮 / ambush_double 每敌拍 +2 flat)随 u 缩放。
|
|
||||||
"""
|
"""
|
||||||
w = POOL_WEIGHTS
|
w = POOL_WEIGHTS
|
||||||
total = sum(w.values())
|
total = sum(w.values())
|
||||||
enrage = w["attack"] * ENRAGE_PCT / 100 * d_ref * u
|
enrage = w["attack"] * ENRAGE_PCT / 100 * d_ref * u
|
||||||
off_guard = w["defense"] * OFF_GUARD_AC * 0.05 * d_ref * u # AC−2 → 每敌拍 +10pp 命中
|
off_guard = w["defense"] * OFF_GUARD_AC * 0.05 * d_ref * u # AC−1 → 每敌拍 +5pp 命中
|
||||||
|
alert = w["blast"] * ALERT_EQUIV
|
||||||
backlash = w["heal"] * HEAL_BACKLASH
|
backlash = w["heal"] * HEAL_BACKLASH
|
||||||
ambush = w["blast"] * AMBUSH_STACKS * AMBUSH_MAG * u
|
|
||||||
sapped = w["weaken"] * SAPPED_PCT / 100 * d_ref # 主角下一拍 −25%
|
sapped = w["weaken"] * SAPPED_PCT / 100 * d_ref # 主角下一拍 −25%
|
||||||
snare = w["pierce"] * PIERCE_SNARE
|
snare = w["pierce"] * PIERCE_SNARE
|
||||||
recoil = w["magic"] * MAGIC_RECOIL
|
recoil = w["magic"] * MAGIC_RECOIL
|
||||||
return (enrage + off_guard + backlash + ambush + sapped + snare + recoil) / total
|
ap_drain = w["action"] * AP_UP
|
||||||
|
gp_lose = w["gp"] * GP_LOSE
|
||||||
|
return (enrage + off_guard + alert + backlash + sapped + snare + recoil
|
||||||
|
+ ap_drain + gp_lose) / total
|
||||||
|
|
||||||
|
|
||||||
|
def w_flag_hit(u: float, d_ref: float, prem_pct: int = 125) -> float:
|
||||||
|
"""标中旗兑付聚合当量 W(u)——整数量级实现口径(与机制同式:各型四舍五入取整后折算)。
|
||||||
|
|
||||||
|
迭代14② T4 起为条件二常设判读式:条件二 = W(u) ≥ (1+δ)·E_dig(u)。
|
||||||
|
取整跟随机制(GDScript round=半分远离零),非 Python banker's rounding。
|
||||||
|
1 点量纲行(ac_up/action/spark)取整地板=×1.0——u=3 聚合微欠的成因(登记面)。
|
||||||
|
"""
|
||||||
|
w = POOL_WEIGHTS
|
||||||
|
total = sum(w.values())
|
||||||
|
|
||||||
|
def sc(x: float) -> int:
|
||||||
|
return int(math.floor(x * prem_pct / 100.0 + 0.5))
|
||||||
|
|
||||||
|
attack = w["attack"] * sc(ATTACK_UP_PCT) / 100 * d_ref
|
||||||
|
ac_up = w["defense"] * sc(AC_UP_POINT) * 0.05 * d_ref * u
|
||||||
|
spark = w["blast"] * (sc(SPARK_AOE) * u)
|
||||||
|
heal = w["heal"] * sc(HEAL_MINOR)
|
||||||
|
weaken = w["weaken"] * sc(WEAKEN_PCT) / 100 * d_ref * u
|
||||||
|
pierce = w["pierce"] * max(1, sc(PIERCE_STRIKE) + ARMOR_EFFECT["pierce"]["light"])
|
||||||
|
magic = w["magic"] * max(1, sc(MAGIC_BOLT) + ARMOR_EFFECT["magic"]["light"])
|
||||||
|
action = w["action"] * sc(AP_UP)
|
||||||
|
gp = w["gp"] * sc(GP_COIN)
|
||||||
|
return (attack + ac_up + spark + heal + weaken + pierce + magic + action + gp) / total
|
||||||
|
|
||||||
|
|
||||||
|
def per_type_table(u: float, d_ref: float) -> list:
|
||||||
|
"""逐型 P_t/N_t 明细(当量),供条件净期望计算。返回 [(型, P_t, N_t)]。"""
|
||||||
|
return [
|
||||||
|
("attack", ATTACK_UP_PCT / 100 * d_ref, ENRAGE_PCT / 100 * d_ref * u),
|
||||||
|
("defense", AC_UP_POINT * 0.05 * d_ref * u, OFF_GUARD_AC * 0.05 * d_ref * u),
|
||||||
|
("blast", float(SPARK_AOE * u), ALERT_EQUIV),
|
||||||
|
("heal", float(HEAL_MINOR), float(HEAL_BACKLASH)),
|
||||||
|
("weaken", WEAKEN_PCT / 100 * d_ref * u, SAPPED_PCT / 100 * d_ref),
|
||||||
|
("pierce", float(max(1, PIERCE_STRIKE + ARMOR_EFFECT["pierce"]["light"])), float(PIERCE_SNARE)),
|
||||||
|
("magic", float(max(1, MAGIC_BOLT + ARMOR_EFFECT["magic"]["light"])), float(MAGIC_RECOIL)),
|
||||||
|
("action", float(AP_UP), float(AP_UP)),
|
||||||
|
("gp", float(GP_COIN), float(GP_LOSE)),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
def audit_shape(name: str, m: float, s: float, u: float, c_clear: float,
|
def audit_shape(name: str, m: float, s: float, u: float, c_clear: float,
|
||||||
d_ref: float, ap_r: int, iota: float, v_mine: float,
|
d_ref: float, ap_r: int, iota: float, v_mine_v: float,
|
||||||
e_dig: float, dig_cost: int) -> dict:
|
e_dig_v: float, dig_cost: int) -> dict:
|
||||||
"""单板形单语境全量计算,返回判式各腿与判定。"""
|
"""单板形单语境全量计算,返回判式各腿与判定。"""
|
||||||
n_s = (1 - iota) * s
|
n_s = (1 - iota) * s
|
||||||
if n_s < 1:
|
if n_s < 1:
|
||||||
return {"name": name, "skip": True}
|
return {"name": name, "skip": True}
|
||||||
e_mine = m * n_s / (n_s + 1)
|
e_mine = m * n_s / (n_s + 1)
|
||||||
r_res = n_s * e_dig
|
r_res = n_s * e_dig_v
|
||||||
x_res = e_mine * v_mine
|
x_res = e_mine * v_mine_v
|
||||||
dr = math.ceil((n_s + e_mine * dig_cost) / ap_r)
|
dr = math.ceil((n_s + e_mine * dig_cost) / ap_r)
|
||||||
c_eff_normal = c_clear
|
c_eff_normal = c_clear
|
||||||
c_eff_perfect = c_clear * P_PERFECT / 100
|
c_eff_perfect = c_clear * P_PERFECT / 100
|
||||||
@@ -148,14 +206,15 @@ def audit_shape(name: str, m: float, s: float, u: float, c_clear: float,
|
|||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
ap = argparse.ArgumentParser(description="清图支配性(条款⑤)对账重算")
|
ap = argparse.ArgumentParser(description="清图支配性(条款⑤)对账重算 + 判式换代面板(条款3)")
|
||||||
ap.add_argument("--d-ref", type=float, default=D_REF)
|
ap.add_argument("--d-ref", type=float, default=D_REF)
|
||||||
ap.add_argument("--c-clear", type=float, default=None,
|
ap.add_argument("--c-clear", type=float, default=None,
|
||||||
help="清图奖励当量 C(默认 = (C_MIN+C_MAX)/2 = 13;传 8 得保守地板口径)")
|
help="清图奖励当量 C(默认 = (C_MIN+C_MAX)/2 = 32;传 24 得保守地板口径)")
|
||||||
ap.add_argument("--ap-r", type=int, default=AP_R)
|
ap.add_argument("--ap-r", type=int, default=AP_R)
|
||||||
ap.add_argument("--iota", type=float, default=IOTA)
|
ap.add_argument("--iota", type=float, default=IOTA)
|
||||||
ap.add_argument("--m-amb", type=float, default=float(AMBUSH_MAG),
|
ap.add_argument("--rho-nominal", type=float, default=0.25, help="名义雷率(判式主口径)")
|
||||||
help="口径甲的伏击行 magnitude(默认 1;传 2 = ambush_double 双层口径)")
|
ap.add_argument("--rho-measured", type=float, default=0.129, help="实测幸存雷率(10×10 包络口径)")
|
||||||
|
ap.add_argument("--delta", type=float, default=DELTA, help="旗溢价系数 δ(兑付溢价形态 a)")
|
||||||
ap.add_argument("--e-dig-discount", type=float, default=1.0,
|
ap.add_argument("--e-dig-discount", type=float, default=1.0,
|
||||||
help="E_dig 实现率折减(legacy 敏感性口径传 0.6)")
|
help="E_dig 实现率折减(legacy 敏感性口径传 0.6)")
|
||||||
args = ap.parse_args()
|
args = ap.parse_args()
|
||||||
@@ -163,41 +222,69 @@ def main() -> None:
|
|||||||
|
|
||||||
print(f"现行值链快照:D_ref={args.d_ref:g} C={c_clear:g}(min {C_MIN}/max {C_MAX}) "
|
print(f"现行值链快照:D_ref={args.d_ref:g} C={c_clear:g}(min {C_MIN}/max {C_MAX}) "
|
||||||
f"AP_r={args.ap_r} ι={args.iota} p_perfect={P_PERFECT} RAP零价假设照旧")
|
f"AP_r={args.ap_r} ι={args.iota} p_perfect={P_PERFECT} RAP零价假设照旧")
|
||||||
print(f"E_dig(67权重池加权当量): u=1 {e_dig(1, args.d_ref):.3f} · u=2 {e_dig(2, args.d_ref):.3f} · "
|
print(f"E_dig(77权重池加权当量): u=1 {e_dig(1, args.d_ref):.3f} · u=2 {e_dig(2, args.d_ref):.3f} · "
|
||||||
f"u=3 {e_dig(3, args.d_ref):.3f}(折减 ×{args.e_dig_discount:g} 后同乘)")
|
f"u=3 {e_dig(3, args.d_ref):.3f}(折减 ×{args.e_dig_discount:g} 后同乘)")
|
||||||
print(f"V_mine 口径甲(u×m_amb, m_amb={args.m_amb:g}): u=1 {v_mine_a(1, args.m_amb):.3f} · "
|
print(f"V_mine(九型矩阵加权): u=1 {v_mine(1, args.d_ref):.3f} · "
|
||||||
f"u=2 {v_mine_a(2, args.m_amb):.3f} · u=3 {v_mine_a(3, args.m_amb):.3f}")
|
f"u=2 {v_mine(2, args.d_ref):.3f} · u=3 {v_mine(3, args.d_ref):.3f}")
|
||||||
print(f"V_mine 口径乙(极性矩阵加权): u=1 {v_mine_b(1, args.d_ref):.3f} · "
|
print()
|
||||||
f"u=2 {v_mine_b(2, args.d_ref):.3f} · u=3 {v_mine_b(3, args.d_ref):.3f}")
|
print("### 条款3 判式换代面板(β 比值带 + 条件一聚合健康式 + 条件二旗溢价)")
|
||||||
|
print(f"β 带 = [{BETA_LO:g}, {BETA_HI:g}](2026-10-04 用户裁 P4) 兑付溢价 ×(1+δ) = ×{1 + args.delta:g}(形态 a)")
|
||||||
|
print("| u | E_dig | V_mine | β=V/E | 带判定 | 条件一 盲挖净期望(名义ρ) | 条件一 盲挖净期望(实测ρ̂) | 条件二 W(u) | 条件二 阈值(1+δ)E_dig | 条件二判定 |")
|
||||||
|
print("|---|---|---|---|---|---|---|---|---|---|")
|
||||||
|
for u in (1, 2, 3):
|
||||||
|
ed = e_dig(u, args.d_ref)
|
||||||
|
vm = v_mine(u, args.d_ref)
|
||||||
|
beta = vm / ed
|
||||||
|
verdict = "✓带内" if BETA_LO <= beta <= BETA_HI else (
|
||||||
|
"✗破下限(登记态)" if beta < BETA_LO else "✗破上限")
|
||||||
|
blind_nom = (1 - args.rho_nominal) * ed - args.rho_nominal * vm
|
||||||
|
blind_meas = (1 - args.rho_measured) * ed - args.rho_measured * vm
|
||||||
|
# 条件二(T4 起机制在位):W=整数量级标中兑付聚合(取整跟随机制),阈值 =(1+δ)·E_dig
|
||||||
|
wfh = w_flag_hit(u, args.d_ref, int(round((1 + args.delta) * 100)))
|
||||||
|
thresh = (1 + args.delta) * ed
|
||||||
|
cond2 = "✓转绿" if wfh >= thresh else "✗微欠(整数量级取整地板,登记面)"
|
||||||
|
print(f"| {u} | {ed:.3f} | {vm:.3f} | {beta:.2f} | {verdict} | "
|
||||||
|
f"{blind_nom:+.2f} | {blind_meas:+.2f} | {wfh:.3f} | {thresh:.3f} | {cond2} |")
|
||||||
|
print()
|
||||||
|
print("### 逐型条件净期望 (1−ρ)P_t − ρN_t(当量/格,u=1,名义 ρ 与实测 ρ̂ 双列)")
|
||||||
|
print("| 型 | P_t | N_t | 净期望(名义ρ) | 净期望(实测ρ̂) | 判(名义) |")
|
||||||
|
print("|---|---|---|---|---|---|")
|
||||||
|
for t, p, n in per_type_table(1, args.d_ref):
|
||||||
|
net = (1 - args.rho_nominal) * p - args.rho_nominal * n
|
||||||
|
net_m = (1 - args.rho_measured) * p - args.rho_measured * n
|
||||||
|
verdict = "✓" if net > 1e-9 else ("踩线" if abs(net) <= 1e-9 else "✗破线")
|
||||||
|
print(f"| {t} | {p:g} | {n:g} | {net:+.2f} | {net_m:+.2f} | {verdict} |")
|
||||||
|
for u in (2, 3):
|
||||||
|
cells = " · ".join(f"{t}({(1 - args.rho_nominal) * p - args.rho_nominal * n:+.2f})"
|
||||||
|
for t, p, n in per_type_table(u, args.d_ref))
|
||||||
|
print(f"u={u} 净期望: {cells}")
|
||||||
print()
|
print()
|
||||||
|
|
||||||
for vm_label, vm_fn in [("口径甲(注册模型 V_mine=u×m_amb)", lambda u: v_mine_a(u, args.m_amb)),
|
print(f"### 主判式(条款⑤)· 九型矩阵加权 V_mine · C={c_clear:g}")
|
||||||
("口径乙(现行矩阵加权 V_mine)", lambda u: v_mine_b(u, args.d_ref))]:
|
print("| 板形 | u | n_s | E[踩雷] | R_res | X_res | Δr(代价) | Δ_clear 非完美 | Δ_clear 完美 | 判定 |")
|
||||||
print(f"### 主判式 · {vm_label} · C={c_clear:g}")
|
print("|---|---|---|---|---|---|---|---|---|---|")
|
||||||
print("| 板形 | u | n_s | E[踩雷] | R_res | X_res | Δr(代价) | Δ_clear 非完美 | Δ_clear 完美 | 判定 |")
|
for bname, b in BOARDS.items():
|
||||||
print("|---|---|---|---|---|---|---|---|---|---|")
|
for u in (1, 2, 3):
|
||||||
for bname, b in BOARDS.items():
|
ed = e_dig(u, args.d_ref) * args.e_dig_discount
|
||||||
for u in (1, 2, 3):
|
r = audit_shape(bname, b["M"], b["S"], u, c_clear, args.d_ref,
|
||||||
ed = e_dig(u, args.d_ref) * args.e_dig_discount
|
args.ap_r, args.iota, v_mine(u, args.d_ref), ed, DIG_COST)
|
||||||
r = audit_shape(bname, b["M"], b["S"], u, c_clear, args.d_ref,
|
if r["skip"]:
|
||||||
args.ap_r, args.iota, vm_fn(u), ed, DIG_COST)
|
continue
|
||||||
if r["skip"]:
|
verdict = "✓" if r["d_perfect"] >= 0 and r["d_normal"] >= 0 else (
|
||||||
continue
|
"完美✓" if r["d_perfect"] >= 0 else "✗")
|
||||||
verdict = "✓" if r["d_perfect"] >= 0 and r["d_normal"] >= 0 else (
|
print(f"| {bname} | {u} | {r['n_s']:.2f} | {r['e_mine']:.2f} | {r['r_res']:.1f} | "
|
||||||
"完美✓" if r["d_perfect"] >= 0 else "✗")
|
f"{r['x_res']:.1f} | {r['dr']}({r['dr_cost']:.0f}) | {r['d_normal']:+.1f} | "
|
||||||
print(f"| {bname} | {u} | {r['n_s']:.2f} | {r['e_mine']:.2f} | {r['r_res']:.1f} | "
|
f"{r['d_perfect']:+.1f} | {verdict} |")
|
||||||
f"{r['x_res']:.1f} | {r['dr']}({r['dr_cost']:.0f}) | {r['d_normal']:+.1f} | "
|
print()
|
||||||
f"{r['d_perfect']:+.1f} | {verdict} |")
|
|
||||||
print()
|
|
||||||
|
|
||||||
print("### 保守地板(C_eff(min)=C_MIN)需求与缺口 · 口径乙")
|
print("### 保守地板(C_eff(min)=C_MIN)需求与缺口")
|
||||||
print("| 板形 | u | 地板需求 X_res+Δr×s_ref | 缺口(对 min) | 缺口(对完美 ×2) |")
|
print("| 板形 | u | 地板需求 X_res+Δr×s_ref | 缺口(对 min) | 缺口(对完美 ×2) |")
|
||||||
print("|---|---|---|---|---|")
|
print("|---|---|---|---|---|")
|
||||||
for bname, b in BOARDS.items():
|
for bname, b in BOARDS.items():
|
||||||
for u in (1, 3):
|
for u in (1, 3):
|
||||||
ed = e_dig(u, args.d_ref) * args.e_dig_discount
|
ed = e_dig(u, args.d_ref) * args.e_dig_discount
|
||||||
r = audit_shape(bname, b["M"], b["S"], u, float(C_MIN), args.d_ref,
|
r = audit_shape(bname, b["M"], b["S"], u, float(C_MIN), args.d_ref,
|
||||||
args.ap_r, args.iota, v_mine_b(u, args.d_ref), ed, DIG_COST)
|
args.ap_r, args.iota, v_mine(u, args.d_ref), ed, DIG_COST)
|
||||||
if r["skip"]:
|
if r["skip"]:
|
||||||
continue
|
continue
|
||||||
print(f"| {bname} | {u} | {r['floor_req']:.1f} | +{r['gap_normal']:.1f} | +{r['gap_perfect']:.1f} |")
|
print(f"| {bname} | {u} | {r['floor_req']:.1f} | +{r['gap_normal']:.1f} | +{r['gap_perfect']:.1f} |")
|
||||||
|
|||||||
Reference in new issue
Block a user