修复: 卡⓪①②——主菜单开新/续玩两入口补传同调三键(build_adventure_params 统一构造,取值与营地投影同源)+关卡开场行改传 runner.effective_* 当前生效值、含面板加成后缀改认局外加成
This commit is contained in:
1 parent
b0a73dfa30
commit
1d2894b555
1 file changed
+30
-4
@@ -467,7 +467,9 @@ func _resume_from_menu() -> void:
|
||||
log_view.clear()
|
||||
logger.start_session(int(bp.get("master_seed", 0)))
|
||||
adventure.set_hero_override(debug_overlay.atk_pct(), debug_overlay.hp_pct())
|
||||
if not adventure.resume_adventure(bp, {"hero_override": meta.hero_override() if meta != null else {}, "treasure_unlocked": _treasure_ui.unlocked_set()}):
|
||||
# 迭代 19 卡⓪①——同调三键随续玩下传(build_adventure_params 统一构造,与开新局同源同口径)
|
||||
if not adventure.resume_adventure(bp, build_adventure_params(save_manager, meta,
|
||||
{"treasure_unlocked": _treasure_ui.unlocked_set()})):
|
||||
_fatal_screen("续玩恢复失败——见输出日志")
|
||||
return
|
||||
|
||||
@@ -491,6 +493,23 @@ func _wire_adventure() -> void:
|
||||
adventure.set_save_manager(save_manager) # 断点承载注入(迭代 8 卡①——停点快照写盘;调试/模拟不经过此路径)
|
||||
|
||||
|
||||
# 冒险开局参数面构造(主菜单开新/续玩两入口共用——迭代 19 卡⓪①:同调三键随开局下传,真实局此前恒空。
|
||||
# 取值口径与营地投影完全同源:装配集=save.attunement_equipped(save_manager.gd 访问器)、Y 刷新池=
|
||||
# meta.attune_refresh_charges(当前等级行表值)、树 rule 键集=meta.tree_rule_keys(Fork 激活侧 effects);
|
||||
# hero_override 沿用既有 meta 现算口径。static 形态=冒烟直呼单测本函数,免实例化整菜单场景)。
|
||||
# 注:runner 侧 resume_adventure 受理面现收 attunement/attune_refresh_y 两键(tree_rules 暂不消费——
|
||||
# 传参先行,受理缺口在册披露)。
|
||||
static func build_adventure_params(save_manager_ref, meta_ref, extra: Dictionary = {}) -> Dictionary:
|
||||
var params: Dictionary = {
|
||||
"hero_override": meta_ref.hero_override() if meta_ref != null else {},
|
||||
"attunement": save_manager_ref.attunement_equipped() if save_manager_ref != null else [],
|
||||
"attune_refresh_y": meta_ref.attune_refresh_charges() if meta_ref != null else 0,
|
||||
"tree_rules": meta_ref.tree_rule_keys() if meta_ref != null else [],
|
||||
}
|
||||
params.merge(extra, true)
|
||||
return params
|
||||
|
||||
|
||||
# 冒险模式(三关连探——AdventureRunner 编排;转发信号签名与 runner 一致,接线照原样对接;
|
||||
# 信号连接只在组合根——ADR-0001)
|
||||
func _start_adventure() -> void:
|
||||
@@ -506,8 +525,10 @@ func _start_adventure() -> void:
|
||||
adventure.set_hero_override(debug_overlay.atk_pct(), debug_overlay.hp_pct())
|
||||
# 永久强化注入(元进度实现批):冒险开始参数面——meta 现算 override 显式传参(全零 = 白板)
|
||||
# 首次冒险脚本(关卡节点图生成 v0.4):存档布尔位 false = 全关固定模板 0(教学重放);置位后逐关抽签
|
||||
# 迭代 19 卡⓪①——同调三键随开局下传(build_adventure_params 统一构造,与营地投影同源)
|
||||
var first_script: bool = not save_manager.is_first_adventure_done()
|
||||
if not adventure.start_adventure(seed_val, {"hero_override": meta.hero_override() if meta != null else {}, "first_script": first_script, "treasure_unlocked": _treasure_ui.unlocked_set(), "shop_mode": "pool"}):
|
||||
if not adventure.start_adventure(seed_val, build_adventure_params(save_manager, meta,
|
||||
{"first_script": first_script, "treasure_unlocked": _treasure_ui.unlocked_set(), "shop_mode": "pool"})):
|
||||
_fatal_screen("冒险启动失败——见输出日志")
|
||||
return
|
||||
|
||||
@@ -516,9 +537,14 @@ func _start_adventure() -> void:
|
||||
# 停点前移批 2026-09-23:本回调返回后才有 choices_presented 到达——入口选路层随即弹出)
|
||||
func _on_adventure_level_started(level_index: int, display_name: String) -> void:
|
||||
runner = adventure.runner()
|
||||
# 迭代 19 卡⓪②——开场行改传当前生效值(runner.effective_atk/effective_max_hp 与战斗面板同源:
|
||||
# 表值+永久强化 flat+加算区 flat 后乘调试浮窗 pct,本回调时点 runner 已带全部加成);「含面板加成」
|
||||
# 后缀判断同步改认局外加成——永久强化 atk/max_hp flat 或调试浮窗 pct 任一存在才带,白板局不带
|
||||
var ov: Dictionary = meta.hero_override() if meta != null else {}
|
||||
log_view.append_bb(Narrator.level_open_line(display_name, int(adventure.master_seed),
|
||||
int(db.hero.atk), int(db.hero.max_hp),
|
||||
debug_overlay.atk_pct() > 0 or debug_overlay.hp_pct() > 0))
|
||||
runner.effective_atk(), runner.effective_max_hp(),
|
||||
int(ov.get("atk", 0)) > 0 or int(ov.get("max_hp", 0)) > 0
|
||||
or debug_overlay.atk_pct() > 0 or debug_overlay.hp_pct() > 0))
|
||||
|
||||
|
||||
func _reset_run_scope() -> void:
|
||||
|
||||
Reference in new issue
Block a user