feat(t4): 魔法道具 HUD 面——C 区四槽接线+两步使用交互+叠加层呈现+清空反馈

①hero_info_panel:四槽 gui_input 可点+aux_slot_clicked 信号+set_aux_inventory 投影渲染(空槽虚位/used 暗态/不可用置灰/选中金框/tooltip 全名+语义)
②main:选中态 _aux_use_selection+槽点击(AP 类 target=none 即用/空间类 toggle 选中)+_on_board_action dig 劫持(选中期点格=目标拾取不落挖格;move/flag 不冲突)+_attempt_aux_use(拒绝零消耗 toast 可辨认)+_aux_inventory_projection(字形=名首字;usable 回调接排雷玩法只读面)+use 成功后槽位/叠加层双刷+_on_board_action 行尾槽位重查(授予同步走完)
③叠加层呈现:CellUnit.aux_mark(真视=危险红内缩框)+board_view.set_aux_overlays 投影注入(refresh 消费;预读格=badge_glyph 注入 REWARD_BADGE 字形走 identity_resolver 既有只读面零数据复制;旗格让位不注)
④清空反馈:LevelRunner aux_cleared 快照(payload 已有 T3)→AdventureRunner additive 扩签(big_reward_paid.aux_cleared/summary.aux_cleared_last,_last_aux_cleared 捕获)→main 大奖励屏 toast「上关剩余 N 件魔法道具已随关卡结束清空」
闸:冒烟 577/0+三探针 PASS;T() 拼接病累计八处全自愈(board_view 混行尾归一 LF/adventure_runner _first_script 重复声明去重/两 var 拼接)
This commit is contained in:
DKChan committed 2026-09-29 07:21:58 +08:00
1 parent 63a08d1e01
commit 2f3a87e98f
5 files changed
+184 -3

No files matched your search

+4
View File
@@ -64,6 +64,7 @@ var _last_level_payload := {} # 最近一次关卡结束载荷(失
var _override := [0, 0] # TunePanel 百分比通道 [atk_pct, hp_pct](每关新 runner 都要应用)
var _base_override := {"atk": 0, "max_hp": 0, "armor_class": 0}
var _first_script := false # 首次脚本模式(关卡节点图生成 v0.4——true = 全关零抽签取池内模板 0;测量夹具恒 false) # 永久强化 flat 注入(元进度实现批——冒险开始参数面 params.hero_override 存入,共享给 LevelRunner;全零 = 白板)
var _last_aux_cleared := 0 # additive(迭代 7 T4——最近一次关卡末清空计数,summary 取数面)
func _init(db_ref, rng_ref) -> void:
@@ -188,6 +189,7 @@ func _on_level_finished(payload: Dictionary) -> void:
if result != "victory":
push_error("[冒险结构] 关卡结束结果出域: %s" % result)
return
_last_aux_cleared = int(payload.get("aux_cleared", 0)) # additive(迭代 7 T4——末关 summary 取数面)
if level_index < levels_total:
# 大奖励(非末关通关恰一次):上限提升写加算区 → 血回满 = 新上限 → 钥石入账(顺序即契约)
var hp_bonus: int = int(db.adventure.level_clear_hp_bonus)
@@ -202,6 +204,7 @@ func _on_level_finished(payload: Dictionary) -> void:
"new_max_hp": int(db.hero.max_hp) + int(_base_override["max_hp"]) + int(bonus["max_hp"]),
"keystone_gained": int(db.adventure.keystone_per_level),
"keystone_total": keystone,
"aux_cleared": int(payload.get("aux_cleared", 0)), # additive 扩签(迭代 7 T4——关卡末清空反馈取数)
})
return
# 末关通关:钥石照记、不发上限提升(没有下一战可受益)——冒险完成结算
@@ -218,6 +221,7 @@ func _settle(result: String) -> void:
"stopped_at": 0 if result == "completed" else level_index,
"keystone_total": keystone,
"master_seed": master_seed,
"aux_cleared_last": _last_aux_cleared, # additive 扩签(迭代 7 T4——末关清空反馈;非末关走 big_reward 载荷)
}
# 败退明细(数值验证工具取数面 2026-09-22——tools/balance_verifier.py 止步节点分布数据源;
# 仅失败局附加,键缺省 = 未败退,既有五件事消费方零感知)