T4(迭代22秘宝批): 呈现换代——秘宝匣柜台购买钮(buy_requested信号链→presenter buy_treasure_unlock分支,禁用态=余额不足)+分档呈现(名后缀·档位/装配行档位标签/悬停desc)+装配段未解锁禁装; 呈现桥换代(旧提灯布尔桥set_fog_lantern/FOG_LANTERN_BONUS随行退役→set_fog_glow_bonus参数面,main._sync_treasure_glow消费attune_param_sum,off态写0复原契约保持); 巢穴预告toast(nest_preview_count读数口消费); 试炼镐HUD入口(ap_bar兑换钮+convert_pressed转发链+attune_convert_state读数口,未装配隐藏); ui_input_probe case⑮换代主语wide_scout_band+4; V13功能残留换代(breakpoint_resume/ smoke剔牌库/reward_overlay夹具换新件id)+过时注释清理; 修呈现组装断裂=BoardZoneView补convert_pressed转发(挂死根因=main直连不存在的板区信号致_build_ui中断)。冒烟895/0+run_all 22套+探针含click全绿〔秘宝批 V12/V13/V19〕

This commit is contained in:
DKChan committed 2026-10-12 19:11:11 +08:00
1 parent c813b2b042
commit b7a2eadd2c
12 files changed
+167 -74

No files matched your search

+20 -2
View File
@@ -77,7 +77,7 @@ var _flag_consumed := {} # 兑付资格以雷格实例为键
# 同调装配运行态(迭代 11 第①批 T5——begin_battle 经 enc.attunement 注入;off=空集全部效果零扰动)
var attunement: Array = [] # 装备中同调件 item_id 集
var _attune_charges_ref: Dictionary = {} # 充能账本共享引用(迭代 11 第①批 T6——use_treasure 消费直改)
var _attune_safe_seen := 0 # 掘进蓄能 battle 域安全开格计数(进度呈现取数面;积点账本=效果引擎计数器 dig_charge_bank——行 triggers counter_spend 订阅同账本)
var _attune_safe_seen := 0 # 积点制件 battle 域安全开格计数(迭代 22 T3 通用化——装配集 ap_charge_safe 行扫描;积点账本=行 triggers counter_spend 声明的计数器,旧 dig_charge_bank 硬编码随行退役)
# ---- 效果引擎扩签运行态(迭代 20 专长实装批 T1——新效果类型施加面;空订阅零扰动)----
var _fx_hero_ac_base := -1 # 主角 AC 基线快照(enc.hero_armor_class;-1=表值兜底未解析)
var _fx_ac_round := 0 # ac_bonus 本轮累积器(封印桩形态——round_start 清零)
@@ -204,7 +204,7 @@ func _attune_has(item_id: String) -> bool:
return attunement.has(item_id)
# 装配集只读出口(迭代 19 卡④——呈现桥消费面:组合根每战装配链判「装配集含 fog_lantern」→
# 装配集只读出口(迭代 19 卡④立——呈现桥消费面现归 attune_param_sum〔迭代 22 T4 换代〕;本口保留
# board_view.set_fog_lantern。_attune_has 契约化出口,save v6 只读访问器先例;private 面内部调用
# 零改动。只读零副作用——呈现侧判定专用,非结算写入口)
func attune_has(item_id: String) -> bool:
@@ -291,6 +291,24 @@ func use_attune_convert(item_id: String) -> Dictionary:
return {"ok": true, "item_id": item_id}
# 积点制件受理状态读数(迭代 22 秘宝批 T4——HUD 兑换钮态数据源:assembled=装配在册/
# points=积点账现值/need=受理闸阈值〔行 counter_spend value〕。未装配=assembled false)
func attune_convert_state() -> Dictionary:
var row := _attune_charge_safe_row()
if row.is_empty() or String(row.get("form", "")) != "active_charged":
return {"assembled": false, "points": 0, "need": 0, "display_name": ""}
var bank := ""
var need := 1
for tr_v in (row.get("triggers", []) as Array):
var dd: Dictionary = (tr_v as Dictionary).get("do", {}) as Dictionary
if String(dd.get("kind", "")) == "counter_spend":
bank = String(dd.get("counter_id", ""))
need = maxi(1, int(dd.get("value", 1)))
break
return {"assembled": true, "points": _fx.counter(bank) if bank != "" else 0, "need": need,
"display_name": String(row.get("display_name", ""))}
# 特性求值(内容数据驱动扩展批 T3——_feat_flags_for 挂点求值退役:效果行为=数据行 triggers 订阅,
# 效果引擎 dispatch 分发;旧 23 hook 枚举与旗注入消亡。流派档位质变=FeatsEngine 纯函数求值
# (档位机制本身系引擎基建非内容效果),两运行态注伤害控制器:档一 rider+1 / 档二 rider 可暴击)