refactor(代码术语): 卡① flag→seal 全族换代+game/ 禁用词清扫(迭代 31 卡①)
标识符面:flag_*→seal_ 族(含 Godot 信号 flag_judged→seal_judged 与连接/回调同名、 FACTS 两键 flags_count→seals_count/dug_under_flag→dug_under_seal 全链、 .tres 键名与 schema .gd 同批同步);显式豁免零改动=size_flags_*(Godot 布局属性)+_fatal_flag。 中文面:金币→GP(金币袋→GP 袋)/插旗→封印/雷格→危险格/惩罚格→危险格/旗→封印·封印印记族, game/ 内 *.gd/.tres/.md/.json 四类禁用词与 flag 双双零命中(V1/V4)。 守卫字面量不动(被检查的禁字不是使用):smoke_all V21 零「雷/旗」检查面、 ui_font_asset_test 字形集攻/雷/旗/封 保持原断言逻辑。 代拍板:板面单字槽 glyph「旗」→「封」(禁字纪律+单字位宽,消费面四处同名随动)。 素材换代(2026-10-18 用户裁案甲):assets/art/board/flag_seal.png→seal_mark.png(素材不入 git, 盘上改名+导入重刷),代码两处 res:// 字符串+COL_FLAG/CURSOR_FLAG 常量同步, 闸件四处随批(run_all_gates.sh/render_gate.sh/golden_baseline_refresh.sh/path_check.py)。 anchor.json 键名手改,重锚与改前改后 diff 随本卡收口(同裁案甲)。 基线读数(改前,主区 ed2dfaf6):冒烟 1151 检查 0 失败/单元 34 套全绿/探针 --click 存量红仅 screen_flow_probe(user:// 断点污染在册已知项)。 改后同批读数(本 worktree):冒烟 1151 检查 0 失败/探针 --click 同一存量红、其余全绿。
This commit is contained in:
1 parent
ed2dfaf66f
commit
32fdf957fd
79 files changed
+899
-899
No files matched your search
@@ -3,8 +3,8 @@
|
||||
# Node2D 迁移批 Risks 缓解面)。现役探针全走 BoardView.click_cell 直调(合成鼠标事件零命中已实证)——
|
||||
# 本探针是真实输入路径的唯一自动化覆盖:鼠标事件 → 壳层 _gui_input → 板级公式换算(_cell_at)→
|
||||
# 悬停/点选/chord 既有出口 → 组合根信号。四 case:①悬停可挖域(金框+十字光标)②悬停禁入
|
||||
# (hover_forbidden 信号+灰禁红框)③悬停已开格(路径预览点迹+移动光标)④右键插旗(flag_place
|
||||
# 到达组合根+核心旗态)⑤双击 chord(禁入格双左击,核心拒挖零副作用)⑥左键挖(dig 到达组合根+核心揭格)
|
||||
# (hover_forbidden 信号+灰禁红框)③悬停已开格(路径预览点迹+移动光标)④右键封印(seal_place
|
||||
# 到达组合根+核心封印态)⑤双击 chord(禁入格双左击,核心拒挖零副作用)⑥左键挖(dig 到达组合根+核心揭格)
|
||||
# ⑦英雄精灵世界落位(棋盘小人贴图批回归闸——SubViewport 世界坐标判据,素材缺位树跳过)
|
||||
# ⑧影子构成与贴脚 ⑨右移朝向+到位回站帧+缩放档 ⑩变格边长即时重排 ⑪贴图缺位回退字形
|
||||
#(⑧–⑪=Node2D 展示几何/状态面单元化断言)。
|
||||
@@ -157,26 +157,26 @@ func _ready() -> void:
|
||||
await get_tree().process_frame
|
||||
if ms.hero_pos() == hero_before:
|
||||
break
|
||||
var flag_t := Vector2i(-9, -9)
|
||||
var seal_t := Vector2i(-9, -9)
|
||||
var dig_t := Vector2i(-9, -9)
|
||||
for c in bv.diggable_probe():
|
||||
if not ms.has_flag(c):
|
||||
if flag_t.x == -9:
|
||||
flag_t = c
|
||||
if not ms.has_seal(c):
|
||||
if seal_t.x == -9:
|
||||
seal_t = c
|
||||
elif dig_t.x == -9:
|
||||
dig_t = c
|
||||
break
|
||||
var forbid_t := _pick_forbidden(bv, ms)
|
||||
var reveal_t := _pick_revealed(ms)
|
||||
if flag_t.x == -9 or dig_t.x == -9 or forbid_t.x == -9 or reveal_t.x == -9:
|
||||
_pre_fail("目标格选取失败 flag=%s dig=%s forbid=%s reveal=%s" % [flag_t, dig_t, forbid_t, reveal_t])
|
||||
if seal_t.x == -9 or dig_t.x == -9 or forbid_t.x == -9 or reveal_t.x == -9:
|
||||
_pre_fail("目标格选取失败 seal=%s dig=%s forbid=%s reveal=%s" % [seal_t, dig_t, forbid_t, reveal_t])
|
||||
return
|
||||
# ---- case① 悬停可挖域:motion → 悬停态到达(金框 + 十字光标)----
|
||||
_push_motion(_pos(bv, flag_t))
|
||||
_push_motion(_pos(bv, seal_t))
|
||||
await get_tree().process_frame
|
||||
if bv.hover_probe() != flag_t:
|
||||
_problems.append("case① 悬停未到达(_hover=%s 应=%s)" % [bv.hover_probe(), flag_t])
|
||||
var u1 = bv.cells_probe()[flag_t]
|
||||
if bv.hover_probe() != seal_t:
|
||||
_problems.append("case① 悬停未到达(_hover=%s 应=%s)" % [bv.hover_probe(), seal_t])
|
||||
var u1 = bv.cells_probe()[seal_t]
|
||||
if not u1.hl_visible or u1.hl_color != UiKit.GOLD:
|
||||
_problems.append("case① 悬停金框缺失(visible=%s color=%s)" % [str(u1.hl_visible), str(u1.hl_color)])
|
||||
if bv.mouse_default_cursor_shape != Input.CURSOR_CROSS:
|
||||
@@ -199,23 +199,23 @@ func _ready() -> void:
|
||||
_problems.append("case③ 路径预览点迹未亮(dots=0)")
|
||||
if bv.mouse_default_cursor_shape != Input.CURSOR_ARROW:
|
||||
_problems.append("case③ 移动光标缺失(%d)" % bv.mouse_default_cursor_shape)
|
||||
# ---- case④ 右键插旗:flag_place 到达组合根 + 核心旗态落位 ----
|
||||
_push_click(_pos(bv, flag_t), MOUSE_BUTTON_RIGHT)
|
||||
# ---- case④ 右键封印:seal_place 到达组合根 + 核心封印态落位 ----
|
||||
_push_click(_pos(bv, seal_t), MOUSE_BUTTON_RIGHT)
|
||||
await get_tree().process_frame
|
||||
if not _has_action(flag_t, "flag_place"):
|
||||
_problems.append("case④ flag_place 未达组合根(actions=%s)" % [str(_actions)])
|
||||
if not _has_action(seal_t, "seal_place"):
|
||||
_problems.append("case④ seal_place 未达组合根(actions=%s)" % [str(_actions)])
|
||||
await get_tree().process_frame
|
||||
if not ms.has_flag(flag_t):
|
||||
_problems.append("case④ 核心旗态未落位")
|
||||
# ---- case④b 旗纹理槽回归断言(P0-1 修复批 2026-10-02):T13 批曾在 paint 尾部无条件
|
||||
# `u.tex_flag = null` 覆盖 T17 批的条件赋值=素材在位时插旗不可见(headless 缺盘走字形回退
|
||||
if not ms.has_seal(seal_t):
|
||||
_problems.append("case④ 核心封印态未落位")
|
||||
# ---- case④b 封印纹理槽回归断言(P0-1 修复批 2026-10-02):T13 批曾在 paint 尾部无条件
|
||||
# `u.tex_seal = null` 覆盖 T17 批的条件赋值=素材在位时封印不可见(headless 缺盘走字形回退
|
||||
# 掩盖)——有盘断言纹理在槽、缺盘断言字形回退,两分支防双写踩踏复活 ----
|
||||
var flag_unit = bv.cells_probe().get(flag_t)
|
||||
if bv._flag_tex != null:
|
||||
if flag_unit == null or flag_unit.tex_flag != bv._flag_tex:
|
||||
_problems.append("case④b 旗纹理槽未挂封印旗纹理(tex_flag=%s)" % ["无单元" if flag_unit == null else str(flag_unit.tex_flag)])
|
||||
elif flag_unit == null or flag_unit.glyph != "旗":
|
||||
_problems.append("case④b 缺盘字形回退缺失(glyph=%s)" % ["无单元" if flag_unit == null else String(flag_unit.glyph)])
|
||||
var seal_unit = bv.cells_probe().get(seal_t)
|
||||
if bv._seal_tex != null:
|
||||
if seal_unit == null or seal_unit.tex_seal != bv._seal_tex:
|
||||
_problems.append("case④b 封印纹理槽未挂封印印记纹理(tex_seal=%s)" % ["无单元" if seal_unit == null else str(seal_unit.tex_seal)])
|
||||
elif seal_unit == null or seal_unit.glyph != "封":
|
||||
_problems.append("case④b 缺盘字形回退缺失(glyph=%s)" % ["无单元" if seal_unit == null else String(seal_unit.glyph)])
|
||||
# ---- case⑤ 双击 chord:禁入格双左击(核心拒挖零副作用)→ chord_attempted ----
|
||||
_push_click(_pos(bv, forbid_t), MOUSE_BUTTON_LEFT)
|
||||
_push_click(_pos(bv, forbid_t), MOUSE_BUTTON_LEFT)
|
||||
@@ -442,11 +442,11 @@ func _ready() -> void:
|
||||
# ---- case⑯ 状态面板输入锁语义(迭代 17 卡③ R3——开层锁棋盘、关层恢复无残留;真实 push_input
|
||||
# 路径:入口角标本体 press+release 真点击 → 状态面板开;锁期挖掘点击零穿透;「继续」关层后
|
||||
# 同格挖掘重新到达——锁语义与既有模态同款,无状态残留。置于全 case 之尾:取格若需前沿移位
|
||||
#(真实点击 move 扩大可挖域),其板面扰动不再波及任何既有断言——域恰 2 枚时 flag_t 带旗+
|
||||
# dig_t 揭开后域内零无旗格,正是首跑实测踩中的形态)----
|
||||
#(真实点击 move 扩大可挖域),其板面扰动不再波及任何既有断言——域恰 2 枚时 seal_t 带封印+
|
||||
# dig_t 揭开后域内零无封印格,正是首跑实测踩中的形态)----
|
||||
var status_dig := Vector2i(-9, -9)
|
||||
for c in bv.diggable_probe():
|
||||
if not ms.has_flag(c):
|
||||
if not ms.has_seal(c):
|
||||
status_dig = c
|
||||
break
|
||||
if status_dig.x == -9:
|
||||
@@ -458,11 +458,11 @@ func _ready() -> void:
|
||||
await get_tree().process_frame
|
||||
await get_tree().process_frame
|
||||
for c in bv.diggable_probe():
|
||||
if not ms.has_flag(c):
|
||||
if not ms.has_seal(c):
|
||||
status_dig = c
|
||||
break
|
||||
if status_dig.x == -9:
|
||||
_problems.append("case⑯ 无可挖无旗格(板面异常——锁断言中断)")
|
||||
_problems.append("case⑯ 无可挖无封印格(板面异常——锁断言中断)")
|
||||
else:
|
||||
var pbtn16: Button = main.board_zone.status_badge
|
||||
var bpos: Vector2 = pbtn16.get_global_rect().get_center()
|
||||
@@ -523,11 +523,11 @@ func _ready() -> void:
|
||||
# ② 开格灭:真实点击挖开一格 → 该格退出作用集(S3 生命周期)
|
||||
var dig17 := Vector2i(-9, -9)
|
||||
for c in digp17:
|
||||
if not ms.has_flag(c):
|
||||
if not ms.has_seal(c):
|
||||
dig17 = c
|
||||
break
|
||||
if dig17.x == -9:
|
||||
_problems.append("case⑰ 无无旗可挖格(板面异常)")
|
||||
_problems.append("case⑰ 无无封印可挖格(板面异常)")
|
||||
else:
|
||||
if not (bv.type_glow_probe().get("cells", {}) as Dictionary).has(dig17):
|
||||
_problems.append("case⑰ 待挖格不在作用集(%s)" % str(dig17))
|
||||
@@ -593,7 +593,7 @@ func _ready() -> void:
|
||||
if not bool(bv.type_glow_probe().get("enabled", false)):
|
||||
_problems.append("case⑰ 微光开关未恢复开态")
|
||||
if _problems.is_empty():
|
||||
print("[ui_input_probe] PASS — 悬停金框/禁入信号/路径预览/flag_place/chord/dig/英雄落位/影子构成/朝向/缩格重排/缺位回退/变异角标/视野迷雾/状态面板输入锁/未开格类型微光 十八断言全绿(真实 push_input 路径——⑫图上命中⑬画布拟合 2026-09-28 增,⑭变异角标 2026-09-29 增,④b 旗纹理槽回归 2026-10-02 增,⑮视野迷雾 2026-10-03 增〔+提灯接线断言 2026-10-05 迭代14⑤〕,⑯状态面板输入锁 2026-10-06 迭代17卡③增,⑰未开格类型微光 2026-10-17 迭代30卡①增)")
|
||||
print("[ui_input_probe] PASS — 悬停金框/禁入信号/路径预览/seal_place/chord/dig/英雄落位/影子构成/朝向/缩格重排/缺位回退/变异角标/视野迷雾/状态面板输入锁/未开格类型微光 十八断言全绿(真实 push_input 路径——⑫图上命中⑬画布拟合 2026-09-28 增,⑭变异角标 2026-09-29 增,④b 封印纹理槽回归 2026-10-02 增,⑮视野迷雾 2026-10-03 增〔+提灯接线断言 2026-10-05 迭代14⑤〕,⑯状态面板输入锁 2026-10-06 迭代17卡③增,⑰未开格类型微光 2026-10-17 迭代30卡①增)")
|
||||
get_tree().quit(0)
|
||||
else:
|
||||
for p in _problems:
|
||||
|
||||
Reference in new issue
Block a user