修复(迭代 41 测试债批·闸面续修): 03/04/05 三闸归绿——①board_cell_unit 数字色牌守卫恢复(iter41 卡2 分层拆分丢 if plate: 致 dungeon 数字一律垫牌,L1 棋盘 golden 由 2.74% 回 0.00% 逐像素复现基线);②curio_interact_controller.open_victory 第 4 参随 opts 改型(字符串→{"gp_summary":…},胜利总结面续玩恢复路径运行期断链);③探针随 iter41 拆件改址(ui_input_probe 格面成员入 st 六处、ui_struct_probe level_screen._runner→._map._runner);④config_db_test 商店行族改直读表成员(_shop_rows 访问器已退役)
This commit is contained in:
1 parent
215da31591
commit
413124b0b8
5 files changed
+20
-19
No files matched your search
@@ -78,7 +78,7 @@ func on_presented(payload: Dictionary) -> void:
|
||||
return
|
||||
ctx.views.end_overlay.open_victory(Narrator.battle_end_text("victory", false), "继续",
|
||||
ctx.views.board_view.get_global_rect(),
|
||||
"%s\n%s" % [String(ctx.flow.gp_summary.call()), Narrator.bonus_keystone_line(payload)])
|
||||
{"gp_summary": "%s\n%s" % [String(ctx.flow.gp_summary.call()), Narrator.bonus_keystone_line(payload)]})
|
||||
ctx.flow.open_modal_after_playback.call(ctx.views.end_overlay)
|
||||
ctx.flow.refresh_presentations.call()
|
||||
|
||||
|
||||
@@ -198,7 +198,8 @@ func _draw_glyph_layer(rect: Rect2) -> void:
|
||||
draw_texture_rect(st.tex_mutation, rect, false)
|
||||
# ③ 数字/徽章(数字 ≥ 格高 50% 墨族对格底 ≥4.5:1;徽章右下角金,遮蔽态 = "?")
|
||||
if glyph != "":
|
||||
_draw_digit_plate()
|
||||
if plate:
|
||||
_draw_digit_plate()
|
||||
if st.tex_glyph != null:
|
||||
draw_texture_rect(st.tex_glyph, rect, false)
|
||||
else:
|
||||
|
||||
@@ -231,8 +231,8 @@ func _ready() -> void:
|
||||
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 not u1.st.hl_visible or u1.st.hl_color != UiKit.GOLD:
|
||||
_problems.append("case① 悬停金框缺失(visible=%s color=%s)" % [str(u1.st.hl_visible), str(u1.st.hl_color)])
|
||||
if bv.mouse_default_cursor_shape != Input.CURSOR_CROSS:
|
||||
_problems.append("case① 挖掘光标未切十字(%d)" % bv.mouse_default_cursor_shape)
|
||||
# ---- case② 悬停禁入:hover_forbidden 信号 + 灰禁红框 ----
|
||||
@@ -240,14 +240,14 @@ func _ready() -> void:
|
||||
await get_tree().process_frame
|
||||
if _forbids.is_empty() or _forbids[_forbids.size() - 1] != forbid_t:
|
||||
_problems.append("case② hover_forbidden 未达(%s)" % [str(_forbids)])
|
||||
if bv.cells_probe()[forbid_t].hl_color != UiKit.RED_FORBID:
|
||||
_problems.append("case② 禁入红框缺失(color=%s)" % str(bv.cells_probe()[forbid_t].hl_color))
|
||||
if bv.cells_probe()[forbid_t].st.hl_color != UiKit.RED_FORBID:
|
||||
_problems.append("case② 禁入红框缺失(color=%s)" % str(bv.cells_probe()[forbid_t].st.hl_color))
|
||||
# ---- case③ 悬停已开格:路径预览点迹 + 移动光标 ----
|
||||
_push_motion(_pos(bv, reveal_t))
|
||||
await get_tree().process_frame
|
||||
var dots := 0
|
||||
for c in bv.cells_probe():
|
||||
if bv.cells_probe()[c].dot_visible:
|
||||
if bv.cells_probe()[c].st.dot_visible:
|
||||
dots += 1
|
||||
if dots < 1:
|
||||
_problems.append("case③ 路径预览点迹未亮(dots=0)")
|
||||
@@ -266,8 +266,8 @@ func _ready() -> void:
|
||||
# 掩盖)——有盘断言纹理在槽、缺盘断言字形回退,两分支防双写踩踏复活 ----
|
||||
var seal_unit = bv.cells_probe().get(seal_t)
|
||||
if bv._palette.seal_tex != null:
|
||||
if seal_unit == null or seal_unit.tex_seal != bv._palette.seal_tex:
|
||||
_problems.append("case④b 封印纹理槽未挂封印印记纹理(tex_seal=%s)" % ["无单元" if seal_unit == null else str(seal_unit.tex_seal)])
|
||||
if seal_unit == null or seal_unit.st.tex_seal != bv._palette.seal_tex:
|
||||
_problems.append("case④b 封印纹理槽未挂封印印记纹理(tex_seal=%s)" % ["无单元" if seal_unit == null else str(seal_unit.st.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 ----
|
||||
@@ -371,12 +371,12 @@ func _ready() -> void:
|
||||
if mark_t.x >= 0:
|
||||
bv.set_variant_mark_resolver(func(_c): return "flat_damage")
|
||||
bv.refresh()
|
||||
if String(bv.cells_probe()[mark_t].mutation_mark) != "flat_damage":
|
||||
_problems.append("case⑭ 变异角标未落位(mutation_mark=%s)" % str(bv.cells_probe()[mark_t].mutation_mark))
|
||||
if String(bv.cells_probe()[mark_t].st.mutation_mark) != "flat_damage":
|
||||
_problems.append("case⑭ 变异角标未落位(mutation_mark=%s)" % str(bv.cells_probe()[mark_t].st.mutation_mark))
|
||||
bv.set_variant_mark_resolver(Callable())
|
||||
bv.refresh()
|
||||
if String(bv.cells_probe()[mark_t].mutation_mark) != "":
|
||||
_problems.append("case⑭ 角标未随 resolver 复位(mutation_mark=%s)" % str(bv.cells_probe()[mark_t].mutation_mark))
|
||||
if String(bv.cells_probe()[mark_t].st.mutation_mark) != "":
|
||||
_problems.append("case⑭ 角标未随 resolver 复位(mutation_mark=%s)" % str(bv.cells_probe()[mark_t].st.mutation_mark))
|
||||
else:
|
||||
_problems.append("case⑭ 无未开格可验(板面异常)")
|
||||
# ---- case⑮ 视野迷雾(三态呈态/半径圈/移动跟随/开关两态零扰动/提灯插值位;
|
||||
|
||||
@@ -281,11 +281,11 @@ func _pick_battle_node(main: Node) -> int:
|
||||
# 入口/兑付停点走 level_screen.open_choices 直传(不写 _pending_candidates)——
|
||||
# 候选从视图态取:_cand_ids × runner.nodes() 的 type(编号解析=node_id_of 单一出口)
|
||||
var ls: Node = main.level_screen
|
||||
if ls._runner == null:
|
||||
if ls._map._runner == null:
|
||||
return -1
|
||||
for nd in ls._runner.nodes():
|
||||
for nd in ls._map._runner.nodes():
|
||||
if String(nd.get("type", "")) in ["battle", "boss"]:
|
||||
var nid: int = ls._runner.node_id_of(nd)
|
||||
var nid: int = ls._map._runner.node_id_of(nd)
|
||||
if nid in ls._cand_ids:
|
||||
return nid
|
||||
return -1
|
||||
|
||||
@@ -137,16 +137,16 @@ func _test_shop_accessors(db) -> void:
|
||||
var got: Dictionary = db.run.shop.product_row(String(first.product_id))
|
||||
Kit.check("shop_product_row 按 product_id 精确命中首行", got == first)
|
||||
Kit.check("shop_product_row 未知 id 返回空字典(容错通道)", db.run.shop.product_row("no_such_product_id__").is_empty())
|
||||
var tier_rows: Array = db._shop_rows("gp_drops")
|
||||
var tier_rows: Array = db.run.shop.gp_drops
|
||||
if not tier_rows.is_empty():
|
||||
var tier0: String = String(tier_rows[0].tier)
|
||||
Kit.check("shop_gp_drop_row 按 tier 命中", not db.run.shop.gp_drop_row(tier0).is_empty())
|
||||
var bonus_rows: Array = db._shop_rows("level_gp_bonus")
|
||||
var bonus_rows: Array = db.run.shop.level_gp_bonus
|
||||
if not bonus_rows.is_empty():
|
||||
var blv: int = int(bonus_rows[0].level_index)
|
||||
Kit.check("shop_level_gp_bonus 按关卡序号命中行值", db.run.shop.level_gp_bonus_at(blv) == int(bonus_rows[0].bonus))
|
||||
Kit.check("shop_level_gp_bonus 未登记关卡返回 0(兜底通道)", db.run.shop.level_gp_bonus_at(-1) == 0)
|
||||
var price_rows: Array = db._shop_rows("price_level_bonus")
|
||||
var price_rows: Array = db.run.shop.price_level_bonus
|
||||
if not price_rows.is_empty():
|
||||
var plv: int = int(price_rows[0].level_index)
|
||||
Kit.check("shop_price_level_bonus 按关卡序号命中行值", db.run.shop.price_level_bonus_at(plv) == int(price_rows[0].bonus))
|
||||
|
||||
Reference in new issue
Block a user