深挖钻头缺陷修复(2026-10-04用户实测AP=1无法开格——实现偏离设计文本返工):「开掘需额外~1AP」的『开掘』=掘深层资源,T5实现错把对价挂成持有期所有挖掘动作税(dig成本1→2)→AP=1锁死开格只能标旗(违散件保底B-2——流派件变纯负收益件);修复=对价挂付费开掘侧:AP富余(≥基础+extra)挖掘付全价积deep_paid_count(深层产出配额取数面=付费次数/cap)·AP不足时降级只付基础1照常开格不积计数——持有钻头永不锁死普通挖格,特性(钻头/深层资源/AP对价)原样保留;action_economy request_dig付费判定+_spend_cost_and_arbitrate拆分+deep_paid_count账本;orchestrator深层块改付费配额制(quota制解耦evt↔动作映射——连锁多格保守不失付);冒烟+2回归断言(AP=1降级开格=用户场景回归闸/AP=2付全价积数)→716/0三闸;formed重锚N=20读数与修复前逐位同带10/75/20(分岔方向不变)——off面静态零扰动论证(零持有=零路径触达dig成本恢复表值)
This commit is contained in:
1 parent
6d7bbc9aad
commit
edffa51b7e
3 files changed
+55
-9
No files matched your search
@@ -37,12 +37,17 @@ var _next_round_mode := "" # 调试观测量(同板续轮 /
|
||||
var _pending_ap_delta := 0 # 下轮行动点修正排队(格面资源八型批 2026-09-20——action 型 ±1 排队,轮开始兑现后清零)
|
||||
# 蓄力流运行态(迭代 12 T5——relic 件注入面;false=关着零扰动):
|
||||
# relic_ap_carry=整备军备(轮末剩余 AP 转蓄力层替代 RAP 转存——cleared 作废口径改写的停手侧承载);
|
||||
# relic_dig_extra=深挖钻头(开掘额外 AP 成本——R4 甲非信息税形态);charge_layers=蓄力层账本。
|
||||
# relic_dig_extra=深挖钻头付费开掘对价(R4 甲非信息税形态;2026-10-04 试玩缺陷修复——对价挂付费
|
||||
# 开掘侧:AP 富余时挖掘付全价 1+extra 积付费计数、AP 不足时降级只付基础 1 照常开格不积计数——
|
||||
# 原「持有期所有挖掘无条件 +1」实现把对价错挂成普通挖掘税,AP=1 锁死开格);charge_layers=蓄力层账本。
|
||||
var relic_ap_carry := false
|
||||
var relic_dig_extra := 0
|
||||
var _charge_layers := 0
|
||||
var charge_layers: int:
|
||||
get: return _charge_layers
|
||||
var _deep_paid_count := 0
|
||||
var deep_paid_count: int:
|
||||
get: return _deep_paid_count
|
||||
|
||||
|
||||
func _init(db_ref: ConfigDb) -> void:
|
||||
@@ -62,7 +67,7 @@ func _cost(kind: String) -> int:
|
||||
var ae = db.action_economy
|
||||
match kind:
|
||||
"dig":
|
||||
return ae.dig_ap_cost + relic_dig_extra # 深挖钻头(迭代 12 T5——开掘额外 ~1 AP:R4 甲非信息税形态)
|
||||
return ae.dig_ap_cost # 基础挖格成本恒表值(钻头对价挂付费开掘侧——2026-10-04 缺陷修复)
|
||||
"flag_place":
|
||||
return ae.flag_place_ap_cost
|
||||
"move":
|
||||
@@ -81,12 +86,37 @@ func try_spend(action_kind: String) -> bool:
|
||||
return _spend_and_arbitrate(action_kind, false)
|
||||
|
||||
|
||||
# 排雷玩法 挖掘专用:chain_size = 连锁附加格数(不含首格);clears_map = 本次动作后全图安全格开完
|
||||
# 排雷玩法 挖掘专用:chain_size = 连锁附加格数(不含首格);clears_map = 本次动作后全图安全格开完。
|
||||
# 深挖钻头付费开掘(2026-10-04 缺陷修复——对价挂付费侧):AP 富余(≥基础+extra)时本动作付全价
|
||||
# 并积付费开掘计数(orchestrator 深层产出配额取数面);AP 不足全价时**降级只付基础 1 照常开格**、
|
||||
# 不积计数——持有钻头永不锁死普通挖格(散件保底 B-2)。
|
||||
func request_dig(chain_size: int, clears_map: bool) -> bool:
|
||||
if _phase != Phase.ACTIVE:
|
||||
_reject("phase")
|
||||
return false
|
||||
return _spend_and_arbitrate("dig", clears_map)
|
||||
var cost := _cost("dig")
|
||||
if relic_dig_extra > 0 and _ap >= cost + relic_dig_extra:
|
||||
cost += relic_dig_extra
|
||||
_deep_paid_count += 1
|
||||
if _ap < cost:
|
||||
_reject("resource_face")
|
||||
return false
|
||||
return _spend_cost_and_arbitrate(cost, clears_map)
|
||||
|
||||
|
||||
func _spend_cost_and_arbitrate(cost: int, clears_map: bool) -> bool:
|
||||
if _ap < cost:
|
||||
_reject("resource_face")
|
||||
return false
|
||||
_ap -= cost
|
||||
if clears_map:
|
||||
# cleared 胜出(同帧仲裁 cleared > ap_exhausted);剩余 AP 当场清零作废、不进 RAP(EC7/EC10)
|
||||
_ap = 0
|
||||
_finish_round("cleared", "new_board")
|
||||
elif _ap == 0:
|
||||
# AP 归 0 瞬间轮次结束——不存在 0-AP 操作窗口
|
||||
_finish_round("ap_exhausted", "same_board")
|
||||
return true
|
||||
|
||||
|
||||
func _spend_and_arbitrate(action_kind: String, clears_map: bool) -> bool:
|
||||
|
||||
@@ -76,7 +76,7 @@ var _attune_safe_seen := 0 # 掘进蓄能 battle 域安全开格
|
||||
# 魔矢每战首次计数 battle 域。空集=零扰动)
|
||||
var _relic_first_dig_used := false
|
||||
var _relic_combo := 0 # 矿脉直觉连击计数(battle 域——safe +1/mine 清零)
|
||||
var _relic_deep_dug := 0 # 深挖钻头深层产出计数(battle 域——每 cap 格额外 grant 一份)
|
||||
var _relic_deep_given := 0 # 深挖钻头深层已兑付份数(battle 域——付费配额制:quota=付费次数/cap)
|
||||
var _relic_magma_layers := 0 # 熔火之躯积层(battle 域——受地形伤 +1,轮末反打清零)
|
||||
|
||||
|
||||
@@ -251,7 +251,7 @@ func begin_battle(enc: Dictionary) -> bool:
|
||||
_relic_flags_for((enc.get("relics", []) as Array))
|
||||
_relic_first_dig_used = false
|
||||
_relic_combo = 0
|
||||
_relic_deep_dug = 0
|
||||
_relic_deep_given = 0
|
||||
_relic_magma_layers = 0
|
||||
# 树 rule 键消费(迭代 12 T10——Fork 激活侧 effects;真实接线首期两键:先手压制=战斗首轮
|
||||
# AP+1(queue_ap_delta——先手压制语义)/稳健拓荒=敌方攻击减 1(伤害控制器 flags bulwark);
|
||||
@@ -442,10 +442,14 @@ func _settle() -> void:
|
||||
# 开格流连击/深层产出(迭代 12 T5):矿脉直觉连击 = safe +1(mine 清零在负向分支);
|
||||
# 深挖钻头深层产出 = 每 cap 格额外 grant 一份(收益面补偿额外 AP 成本——R4 甲非信息税对价)
|
||||
_relic_combo += 1
|
||||
# 深挖钻头深层产出(2026-10-04 缺陷修复——付费开掘配额制):深层资源只兑付给**付了全价**
|
||||
# 的挖掘(action_economy.deep_paid_count 每 AP 富余挖格 +1);每 cap 次付费兑一份。
|
||||
# AP 不足降级的普通挖格照常开格但不积配额——持有钻头永不锁死挖格(散件保底 B-2)。
|
||||
var dd_cap := int(_damage.relic_flags.get("deep_dig_cap", 0))
|
||||
if dd_cap > 0:
|
||||
_relic_deep_dug += 1
|
||||
if _relic_deep_dug % dd_cap == 0:
|
||||
var quota := int(action_economy.deep_paid_count) / dd_cap
|
||||
while _relic_deep_given < quota:
|
||||
_relic_deep_given += 1
|
||||
var dd_snap = _reward_economy.grant(evt.cell)
|
||||
if dd_snap is Dictionary:
|
||||
_grant_routed(dd_snap, "positive", "safe_cell", evt.cell, ri, "", "(深层资源)")
|
||||
|
||||
+13
-1
@@ -724,7 +724,19 @@ func _smoke_relics() -> void:
|
||||
and int(rf23.get("spike_mult", -1)) == 2,
|
||||
"深挖钻头=开掘 +1 AP/每 4 格深层产出(R4 甲非信息税对价)· 蓄力三件=层值 1/减伤 1/层/满层 ×2")
|
||||
check(orch.action_economy.relic_ap_carry and orch.action_economy.relic_dig_extra == 1,
|
||||
"蓄力/钻头 action_economy 注入(ap_carry 改写停手转存 + dig 成本 +1——关着 false/0 零扰动)")
|
||||
"蓄力/钻头 action_economy 注入(ap_carry 改写停手转存 + 付费开掘对价注入——关着 false/0 零扰动)")
|
||||
# ⑦b 深挖钻头付费开掘回归(2026-10-04 试玩缺陷修复——对价挂付费侧):AP=1 降级照常开格
|
||||
# (用户实测「AP=1 无法开格只能标旗」的回归闸);AP=2 付全价积付费计数(深层产出配额取数面)。
|
||||
var ae_dd = load("res://core/action_economy.gd").new(_db)
|
||||
ae_dd.relic_dig_extra = 1
|
||||
ae_dd._phase = 1 if ae_dd.Phase.ACTIVE == 1 else ae_dd.Phase.ACTIVE # white-box 相位(冒烟专用)
|
||||
ae_dd._ap = 1
|
||||
check(ae_dd.request_dig(0, false) and ae_dd.deep_paid_count == 0,
|
||||
"钻头降级:AP=1 照常开格(只付基础 1 不积付费——持有钻头永不锁死挖格,散件保底 B-2)")
|
||||
ae_dd._ap = 2
|
||||
ae_dd._phase = ae_dd.Phase.ACTIVE # 首挖 AP 归 0 已翻轮(ap_exhausted 仲裁)——白盒复位续测
|
||||
check(ae_dd.request_dig(0, false) and ae_dd.deep_paid_count == 1,
|
||||
"钻头付费开掘:AP=2 付全价(基础 1+对价 1——deep_paid_count 积数=深层产出配额取数面)")
|
||||
# ⑧ T6 吞噬流求值面(27 件全量——七流派档位成型)
|
||||
var ids27: Array = ids23.duplicate()
|
||||
ids27.append_array(["ley_harvest", "thorn_weaver", "purge_sapper", "magma_body"])
|
||||
|
||||
Reference in new issue
Block a user