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:
1 parent
c813b2b042
commit
b7a2eadd2c
12 files changed
+167
-74
No files matched your search
+38
-13
@@ -235,6 +235,7 @@ func _build_ui() -> void:
|
||||
info_panel.treasure_slot_clicked.connect(_treasure_ui.on_slot_clicked) # 迭代 7 T4——两步交互第一步
|
||||
board_zone.stop_pressed.connect(_on_stop_pressed)
|
||||
board_zone.refresh_confirmed.connect(_on_refresh_confirmed)
|
||||
board_zone.convert_pressed.connect(_on_convert_pressed) # 积点兑换(迭代 22 秘宝批 T4——试炼镐 HUD 入口)
|
||||
board_zone.legend_toggled.connect(_on_legend_toggled)
|
||||
board_zone.hover_forbidden.connect(_on_hover_forbidden)
|
||||
board_zone.chord_attempted.connect(_on_chord_attempted)
|
||||
@@ -849,14 +850,15 @@ func _on_round_started(ri: int) -> void:
|
||||
else:
|
||||
_row_pacer.enqueue({"__round_line": ri})
|
||||
settlement_fx.play_round_banner(ri)
|
||||
# 提灯视野同步(迭代 19 卡④——呈现桥:每战首轮按装配集显式重算 set_fog_lantern 含否〔🔴 契约 7
|
||||
# Q8.1 复原语义:禁依赖战斗结束隐式复原——下一战装配链重算即含「未装配→写 0」复原〕)。挂点时序
|
||||
# 依据:round_started 首轮发射位在 begin_battle 尾(attunement 注入之后)——board_changed 在
|
||||
# _install_new_board 内先发、装配集后注入,同帧直挂会读到上一战的旧集,故挂此处不挂 _on_board_changed。
|
||||
# settlement 空防御照 :854 既有形态(接手先于本信号:冒险路径 board_changed 内 runner 同步、debug
|
||||
# 路径 battle_created 先于 begin_battle)。未装配=false→写 0=缺省零扰动基线逐位不变。
|
||||
# 秘宝呈现同步(迭代 22 秘宝批 T4 换代——旧提灯桥 _sync_fog_lantern 随行退役;每战首轮装配链
|
||||
# 显式重算〔🔴 契约复原语义沿迭代 19 卡④ Q8.1:下一战装配链重算即含「未装配→写 0」复原〕。
|
||||
# 挂点时序依据不变:round_started 首轮发射位在 begin_battle 尾(attunement 注入之后)。
|
||||
# settlement 空防御照既有形态。未装配=参数 0→写 0=缺省零扰动基线逐位不变。)
|
||||
if ri == 1:
|
||||
_sync_fog_lantern()
|
||||
_sync_treasure_glow()
|
||||
# 巢穴预告呈现(迭代 22 秘宝批 T4——装板报数量读数口消费:≥0=本战装配命中,toast 一次性提示)
|
||||
if settlement != null and int(settlement.nest_preview_count) >= 0:
|
||||
board_zone.toast.show_toast("巢穴预告——本板危险格共 %d 个" % int(settlement.nest_preview_count), "info")
|
||||
# 开战横幅——板级地形变异预告(全局作用域变异首发批 2026-10-04):首轮快照 board_variants
|
||||
# 非空才发射(Boss 图恒带一型=替换制;普通图空快照零发射);轮横幅下方叠行,view 内判减动效。
|
||||
if ri == 1 and settlement != null:
|
||||
@@ -880,14 +882,14 @@ func _on_board_changed() -> void:
|
||||
_refresh_presentations()
|
||||
|
||||
|
||||
# 提灯视野呈现桥(迭代 19 卡④——装配集只读出口消费面:settlement.attune_has("fog_lantern") 真值
|
||||
# 显式写给 board_view.set_fog_lantern(true=半径 8+2 / false=复原 0),写入即 setter 内 refresh 全板
|
||||
# 重算雾态。调用点=每战首轮装配链(_on_round_started ri==1)——纯呈现边界 🔴 契约 2:只写呈现态布尔,
|
||||
# minesweeper 结算零触碰;off 态(未装配)写 0=与既有基线逐位一致。
|
||||
func _sync_fog_lantern() -> void:
|
||||
# 秘宝视野呈现桥(迭代 22 秘宝批 T4 换代——旧提灯桥随 fog_lantern 行退役;阔视野带 light_radius_bonus
|
||||
# 装配参数合计显式写给 board_view.set_fog_glow_bonus(装配=半径 8+4 / 未装配=复原 0),写入即 setter
|
||||
# 内 refresh 全板重算雾态。调用点=每战首轮装配链(_on_round_started ri==1)——纯呈现边界 🔴 契约 2:
|
||||
# 只写呈现态参数,minesweeper 结算零触碰;off 态(未装配)写 0=与既有基线逐位一致。
|
||||
func _sync_treasure_glow() -> void:
|
||||
if settlement == null or board_view == null:
|
||||
return
|
||||
board_view.set_fog_lantern(settlement.attune_has("fog_lantern"))
|
||||
board_view.set_fog_glow_bonus(settlement.attune_param_sum("light_radius_bonus"))
|
||||
|
||||
|
||||
# ---- 一次性非模态提示(每 run 一次——pattern 10)与诚实提示 ----
|
||||
@@ -1233,9 +1235,32 @@ func _refresh_presentations() -> void:
|
||||
# 每个核心信号/写调用返回后的全量重查装配(更新触发注记——无推送信号,命令式重查)
|
||||
var refresh_remaining: int = maxi(0, int(db.action_economy.refresh_cap_per_round) - _refresh_used_round)
|
||||
HudPresenter.refresh(stage, info_panel, ap_bar, settlement, runner, _level_active, db, refresh_remaining)
|
||||
_sync_convert_button()
|
||||
_sync_settlement_visuals()
|
||||
|
||||
|
||||
# 积点兑换钮态(迭代 22 秘宝批 T4——读数口命令式重查;未装配=隐藏零占位)
|
||||
func _sync_convert_button() -> void:
|
||||
if settlement == null:
|
||||
board_zone.ap_bar.set_convert_state(false, 0, 0, "")
|
||||
return
|
||||
var cs: Dictionary = settlement.attune_convert_state()
|
||||
board_zone.ap_bar.set_convert_state(bool(cs.get("assembled", false)), int(cs.get("points", 0)),
|
||||
int(cs.get("need", 0)), String(cs.get("display_name", "")))
|
||||
|
||||
|
||||
func _on_convert_pressed() -> void:
|
||||
if settlement == null:
|
||||
return
|
||||
var v: Dictionary = settlement.use_attune_convert("trial_pick")
|
||||
if not bool(v.get("ok", false)):
|
||||
board_zone.toast.show_toast(String(v.get("reason", "无法兑换")), "warn")
|
||||
return
|
||||
logger.log_action("convert", Vector2i(-1, -1), true)
|
||||
board_view.refresh()
|
||||
_refresh_presentations()
|
||||
|
||||
|
||||
func _sync_settlement_visuals() -> void:
|
||||
# 结算阶段(round_end → 下一轮):D 区去饱和+金橙偏移锁输入(明度不变)+ 明细带展开 84px
|
||||
var settling := _is_settling()
|
||||
|
||||
Reference in new issue
Block a user