工程(真输入化1/7·ui_input_probe): 状态面板关闭钮 emit→真输入(push_click+release沿,p16局部变量)——case⑯关闭恢复链路改经输入管线; 同文件判据出处注记11条落case段(①-③→HUD框架:269悬停语义/④⑥→排雷玩法:231封印挖掘受理/⑤→:236拒绝三源/⑦-⑩→battle.md:154主角站桩落影/⑪→HUD框架:264数字可读/⑭→地形变异:154数据路由/⑮→HUD框架:268迷雾两态+元进度:156装配可见/⑯→HUD框架:277模态锁/⑰→HUD框架:267微光生命周期); 本步凭据: ui_input_probe headless直跑PASS exit=0(18断言组全绿含case⑯真点关闭恢复)
This commit is contained in:
1 parent
c1acb47c92
commit
7679208279
1 file changed
+14
-1
@@ -242,6 +242,7 @@ func _ready() -> void:
|
||||
_pre_fail("目标格选取失败 seal=%s dig=%s forbid=%s reveal=%s" % [seal_t, dig_t, forbid_t, reveal_t])
|
||||
return
|
||||
# ---- case① 悬停可挖域:motion → 悬停态到达(金框 + 十字光标)----
|
||||
# oracle: design/gdd/systems/表现与支撑/HUD框架.md:269 悬停光标三语义随目标切换、已开格路径预览、可挖域常驻微光(case①-③ 输入面)
|
||||
_push_motion(_pos(bv, seal_t))
|
||||
await get_tree().process_frame
|
||||
if bv.hover_probe() != seal_t:
|
||||
@@ -270,6 +271,7 @@ func _ready() -> void:
|
||||
if bv.mouse_default_cursor_shape != Input.CURSOR_ARROW:
|
||||
_problems.append("case③ 移动光标缺失(%d)" % bv.mouse_default_cursor_shape)
|
||||
# ---- case④ 右键封印:seal_place 到达组合根 + 核心封印态落位 ----
|
||||
# oracle: design/gdd/systems/排雷循环/排雷玩法.md:231 封印受理与印记随挖消失(case④/④b)
|
||||
_push_click(_pos(bv, seal_t), MOUSE_BUTTON_RIGHT)
|
||||
await get_tree().process_frame
|
||||
if not _has_action(seal_t, "seal_place"):
|
||||
@@ -283,12 +285,14 @@ func _ready() -> void:
|
||||
if seal_unit == null or not seal_unit.seal_on:
|
||||
_problems.append("case④b 封印印记未下发(seal_on=%s)" % ["无单元" if seal_unit == null else str(seal_unit.seal_on)])
|
||||
# ---- case⑤ 双击 chord:禁入格双左击(核心拒挖零副作用)→ chord_attempted ----
|
||||
# oracle: design/gdd/systems/排雷循环/排雷玩法.md:236 拒绝三源可辨、任何拒绝零副作用(case⑤ chord)
|
||||
_push_click(_pos(bv, forbid_t), MOUSE_BUTTON_LEFT)
|
||||
_push_click(_pos(bv, forbid_t), MOUSE_BUTTON_LEFT)
|
||||
await get_tree().process_frame
|
||||
if _chords.is_empty() or _chords[_chords.size() - 1] != forbid_t:
|
||||
_problems.append("case⑤ chord_attempted 未达(chords=%s)" % [str(_chords)])
|
||||
# ---- case⑥ 左键挖:dig 到达组合根 + 核心揭格落位 ----
|
||||
# oracle: design/gdd/systems/排雷循环/排雷玩法.md:231 挖掘受理与揭格落位(case⑥)
|
||||
_push_click(_pos(bv, dig_t), MOUSE_BUTTON_LEFT)
|
||||
await get_tree().process_frame
|
||||
if not _has_action(dig_t, "dig"):
|
||||
@@ -297,6 +301,7 @@ func _ready() -> void:
|
||||
if not ms.is_revealed(dig_t):
|
||||
_problems.append("case⑥ 核心揭格未落位(目标=%s)" % dig_t)
|
||||
# ---- case⑦ 英雄精灵世界落位(回归闸):精灵在 SubViewport 世界内,
|
||||
# oracle: design/gdd/ux/battle.md:154 主角站桩立绘带落影、贴脚与缩放档(case⑦-⑩ 呈现落位)
|
||||
# 落位 = 格×步距 + 脚底锚(横=格中线/纵=格底往上 25% 线=HERO_GROUND_FRAC 自底边口径——「脚踩
|
||||
# 格子 1/4 处·从下往上数」;禁带壳层 _svp_container.position 居中偏移——上批误用壳层
|
||||
# cell_origin 实测右偏 ~7 格+偏离格心,实机截图用户报缺陷)。素材缺位树(hero==null,字形
|
||||
@@ -363,6 +368,7 @@ func _ready() -> void:
|
||||
if bv._world.hero.position.distance_to(expect10b) > 0.5:
|
||||
_problems.append("case⑩ 还原后英雄未复位(pos=%s expect=%s)" % [str(bv._world.hero.position), str(expect10b)])
|
||||
# ---- case⑪ 贴图缺位回退(字形「人」回归闸):texture 置 null + refresh → 英雄格数字 0 时字形
|
||||
# oracle: design/gdd/systems/表现与支撑/HUD框架.md:264 棋盘格子与数字完整可见——贴图缺位回退字形保可读(case⑪)
|
||||
# 必须回退「人」(数字格仍显数字——回退判据与抑制判据同源);验毕还原纹理重绘。 ----
|
||||
if bv._world.hero != null:
|
||||
var hp11: Vector2i = ms.hero_pos()
|
||||
@@ -379,6 +385,7 @@ func _ready() -> void:
|
||||
bv._hero_sprite.tex_idle = tex_saved
|
||||
bv.refresh()
|
||||
# ---- case⑭ 变异角标(flat_damage 未开格视觉标记;resolver 注入面+落位+复位) ----
|
||||
# oracle: design/gdd/systems/排雷循环/地形变异.md:154 呈现按 effect/trigger/placement 数据路由、零特判(case⑭ 角标)
|
||||
var mark_t: Vector2i = _pick_forbidden(bv, ms) # 任一未开格(禁入=未开非相邻)
|
||||
if mark_t.x >= 0:
|
||||
bv.set_variant_mark_resolver(func(_c): return "flat_damage")
|
||||
@@ -392,6 +399,7 @@ func _ready() -> void:
|
||||
else:
|
||||
_problems.append("case⑭ 无未开格可验(板面异常)")
|
||||
# ---- case⑮ 视野迷雾(三态呈态/半径圈/移动跟随/开关两态零扰动/提灯插值位;
|
||||
# oracle: design/gdd/systems/表现与支撑/HUD框架.md:268 视野迷雾:灯光区随移动跟随、开关两态结算逐位一致(case⑮)
|
||||
# 纯呈现零逻辑——迷雾开关切换前后 minesweeper 状态摘要逐位一致) ----
|
||||
var fogp: Dictionary = bv.fog_params_probe()
|
||||
if int(bv.FOG_RADIUS) != 8 or int(fogp["lantern"]) != 0 or not fogp["enabled"]:
|
||||
@@ -487,6 +495,7 @@ func _ready() -> void:
|
||||
# attune_param_sum 只读出口→set_fog_glow_bonus〕→视野 +4 生效与卸装复原。
|
||||
# settlement.attunement 手动注入=模拟 begin_battle enc 注入后的运行态〔注入面本体归
|
||||
# 冒烟+单测覆盖〕;不重启冒险——case⑯ 起既有板面继续用)
|
||||
# oracle: design/gdd/systems/跨局循环/元进度.md:156 解锁可见:装配强化下一局生效(case⑮ 装配链)
|
||||
main.save_manager.meta_state.set_attunement_equipped(["wide_scout_band"])
|
||||
var p_lantern: Dictionary = main.build_adventure_params(main.save_manager, main.meta)
|
||||
if not (p_lantern.get("attunement", []) as Array).has("wide_scout_band"):
|
||||
@@ -505,6 +514,7 @@ func _ready() -> void:
|
||||
_problems.append("case⑮ 卸装后 dist==R+1 格未复原遮蔽")
|
||||
main.save_manager.meta_state.set_attunement_equipped([])
|
||||
# ---- case⑯ 状态面板输入锁语义(R3——开层锁棋盘、关层恢复无残留;真实 push_input
|
||||
# oracle: design/gdd/systems/表现与支撑/HUD框架.md:277 模态打开输入锁定、关闭逐层恢复(case⑯ R3)
|
||||
# 路径:入口角标本体 press+release 真点击 → 状态面板开;锁期挖掘点击零穿透;「继续」关层后
|
||||
# 同格挖掘重新到达——锁语义与既有模态同款,无状态残留。置于全 case 之尾:取格若需前沿移位
|
||||
#(真实点击 move 扩大可挖域),其板面扰动不再波及任何既有断言——域恰 2 枚时 seal_t 带封印+
|
||||
@@ -547,7 +557,9 @@ func _ready() -> void:
|
||||
if resume_btn == null:
|
||||
_problems.append("case⑯ 状态面板关闭钮缺失")
|
||||
else:
|
||||
resume_btn.pressed.emit()
|
||||
var rpos16: Vector2 = resume_btn.get_global_rect().get_center()
|
||||
_push_click(rpos16, MOUSE_BUTTON_LEFT)
|
||||
_push_release(rpos16, MOUSE_BUTTON_LEFT) # Button pressed 信号走 release 沿——按压+释放成对
|
||||
await get_tree().process_frame
|
||||
if main.ui.modals.run.status_panel.visible or main.ui.flow.locks_input():
|
||||
_problems.append("case⑯ 关闭后未恢复(visible=%s locked=%s——R3 残留)"
|
||||
@@ -558,6 +570,7 @@ func _ready() -> void:
|
||||
if not _has_action(status_dig, "dig") or not ms.is_revealed(status_dig):
|
||||
_problems.append("case⑯ 关闭后挖掘未到达(恢复无残留验证失守)")
|
||||
# ---- case⑰ 未开格类型微光(活板面走查:作用集恒等/开格灭/移动复亮
|
||||
# oracle: design/gdd/systems/表现与支撑/HUD框架.md:267 类型微光出圈即灭入圈即亮、已开与封锁格恒无微光(case⑰)
|
||||
# 与出圈灭/相位门控/开关两态零扰动。与冒烟段数据面断言分工:此处走真实点击路径) ----
|
||||
if not bool(bv.type_glow_probe().get("enabled", false)):
|
||||
_problems.append("case⑰ 微光默认态非开(生产默认开——Q4 丙案)")
|
||||
|
||||
Reference in new issue
Block a user