merge: 深挖钻头缺陷修复落籍(用户实测AP=1锁死开格——对价挂付费开掘侧降级保底;716/0+formed重锚同带)

This commit is contained in:
DKChan committed 2026-10-04 03:32:29 +08:00
commit c32bd8e6cc
3 files changed
+55 -9

No files matched your search

+34 -4
View File
@@ -37,12 +37,17 @@ var _next_round_mode := "" # 调试观测量(同板续轮 /
var _pending_ap_delta := 0 # 下轮行动点修正排队(格面资源八型批 2026-09-20——action 型 ±1 排队,轮开始兑现后清零) var _pending_ap_delta := 0 # 下轮行动点修正排队(格面资源八型批 2026-09-20——action 型 ±1 排队,轮开始兑现后清零)
# 蓄力流运行态(迭代 12 T5——relic 件注入面;false=关着零扰动): # 蓄力流运行态(迭代 12 T5——relic 件注入面;false=关着零扰动):
# relic_ap_carry=整备军备(轮末剩余 AP 转蓄力层替代 RAP 转存——cleared 作废口径改写的停手侧承载); # 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_ap_carry := false
var relic_dig_extra := 0 var relic_dig_extra := 0
var _charge_layers := 0 var _charge_layers := 0
var charge_layers: int: var charge_layers: int:
get: return _charge_layers 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: func _init(db_ref: ConfigDb) -> void:
@@ -62,7 +67,7 @@ func _cost(kind: String) -> int:
var ae = db.action_economy var ae = db.action_economy
match kind: match kind:
"dig": "dig":
return ae.dig_ap_cost + relic_dig_extra # 深挖钻头(迭代 12 T5——开掘额外 ~1 AP:R4 甲非信息税形态) return ae.dig_ap_cost # 基础挖格成本恒表值(钻头对价挂付费开掘侧——2026-10-04 缺陷修复)
"flag_place": "flag_place":
return ae.flag_place_ap_cost return ae.flag_place_ap_cost
"move": "move":
@@ -81,12 +86,37 @@ func try_spend(action_kind: String) -> bool:
return _spend_and_arbitrate(action_kind, false) 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: func request_dig(chain_size: int, clears_map: bool) -> bool:
if _phase != Phase.ACTIVE: if _phase != Phase.ACTIVE:
_reject("phase") _reject("phase")
return false 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: func _spend_and_arbitrate(action_kind: String, clears_map: bool) -> bool:
+8 -4
View File
@@ -76,7 +76,7 @@ var _attune_safe_seen := 0 # 掘进蓄能 battle 域安全开格
# 魔矢每战首次计数 battle 域。空集=零扰动) # 魔矢每战首次计数 battle 域。空集=零扰动)
var _relic_first_dig_used := false var _relic_first_dig_used := false
var _relic_combo := 0 # 矿脉直觉连击计数(battle 域——safe +1/mine 清零) 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,轮末反打清零) 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_flags_for((enc.get("relics", []) as Array))
_relic_first_dig_used = false _relic_first_dig_used = false
_relic_combo = 0 _relic_combo = 0
_relic_deep_dug = 0 _relic_deep_given = 0
_relic_magma_layers = 0 _relic_magma_layers = 0
# 树 rule 键消费(迭代 12 T10——Fork 激活侧 effects;真实接线首期两键:先手压制=战斗首轮 # 树 rule 键消费(迭代 12 T10——Fork 激活侧 effects;真实接线首期两键:先手压制=战斗首轮
# AP+1(queue_ap_delta——先手压制语义)/稳健拓荒=敌方攻击减 1(伤害控制器 flags bulwark); # AP+1(queue_ap_delta——先手压制语义)/稳健拓荒=敌方攻击减 1(伤害控制器 flags bulwark);
@@ -442,10 +442,14 @@ func _settle() -> void:
# 开格流连击/深层产出(迭代 12 T5):矿脉直觉连击 = safe +1(mine 清零在负向分支); # 开格流连击/深层产出(迭代 12 T5):矿脉直觉连击 = safe +1(mine 清零在负向分支);
# 深挖钻头深层产出 = 每 cap 格额外 grant 一份(收益面补偿额外 AP 成本——R4 甲非信息税对价) # 深挖钻头深层产出 = 每 cap 格额外 grant 一份(收益面补偿额外 AP 成本——R4 甲非信息税对价)
_relic_combo += 1 _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)) var dd_cap := int(_damage.relic_flags.get("deep_dig_cap", 0))
if dd_cap > 0: if dd_cap > 0:
_relic_deep_dug += 1 var quota := int(action_economy.deep_paid_count) / dd_cap
if _relic_deep_dug % dd_cap == 0: while _relic_deep_given < quota:
_relic_deep_given += 1
var dd_snap = _reward_economy.grant(evt.cell) var dd_snap = _reward_economy.grant(evt.cell)
if dd_snap is Dictionary: if dd_snap is Dictionary:
_grant_routed(dd_snap, "positive", "safe_cell", evt.cell, ri, "", "(深层资源)") _grant_routed(dd_snap, "positive", "safe_cell", evt.cell, ri, "", "(深层资源)")
+13 -1
View File
@@ -724,7 +724,19 @@ func _smoke_relics() -> void:
and int(rf23.get("spike_mult", -1)) == 2, and int(rf23.get("spike_mult", -1)) == 2,
"深挖钻头=开掘 +1 AP/每 4 格深层产出(R4 甲非信息税对价)· 蓄力三件=层值 1/减伤 1/层/满层 ×2") "深挖钻头=开掘 +1 AP/每 4 格深层产出(R4 甲非信息税对价)· 蓄力三件=层值 1/减伤 1/层/满层 ×2")
check(orch.action_economy.relic_ap_carry and orch.action_economy.relic_dig_extra == 1, 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 件全量——七流派档位成型) # ⑧ T6 吞噬流求值面(27 件全量——七流派档位成型)
var ids27: Array = ids23.duplicate() var ids27: Array = ids23.duplicate()
ids27.append_array(["ley_harvest", "thorn_weaver", "purge_sapper", "magma_body"]) ids27.append_array(["ley_harvest", "thorn_weaver", "purge_sapper", "magma_body"])