T7+T8(D6): 爆破工兵包中立移除雷格——细化+实施(blast_kit 换装启用,判定逻辑零改动)

T7 细化(loop 计划书附录C,批末吸收即死):cell_removal 语义=移除集仅「未揭示·无旗·是雷」
——清图分母只数安全格(safe_remaining/_cleared_after 实证)→雷格移除对分母/连锁/C_dig
模拟天然零涉,P1 甲「rules 零改动」按裁决语境兑付为判定逻辑零改动;移除跳过有旗格=旗判
定基线零回溯;P2 甲=CellUnit 退色降档呈现(暗淡记忆态同族)。

T8 六面:
①换装 aux_items.tres blast_kit:+form active_charged/+slot_cost 1/+charges_per_adventure 2/
  effect_kinds 挂 cell_removal/清 deferred(契约 4 裁定面;镜像 nest_pendulum 先例)+
  表头注记 :8 半过期面校正。
②minesweeper_rules:_removed 集(install/retire 清空骑既有 reset 位)+remove_mines_in()/
  is_removed() 只读查询+交互守卫两处(_board_face_dig/_do_flag_place sub=target_removed,
  拒绝先于 try_spend 零消耗)——邻接数字/分母/连锁/快照零触(停点仅选路/奖励位,战斗中态
  不入档)。
③use_aux cell_removal 分支:remove_mines_in(v.resolved) 空集拒绝零消耗(consume 前返)。
④呈现:board_view _paint_cell removed 分支(数字/旗/瓦片基座压写)+_diggable 排除(hover
  金框不现)+CellUnit removed_dim 退色暗幕层(程序化零新资产,雾层之上不再参与迷雾语义)。
⑤使用后棋盘刷新:aux_interact_controller.attempt_use 增 board_view.refresh()(幂等)。
⑥充能编排零新代码:表驱动+营地同调位装配+use_aux consume 扣减全现成。
MC 口径注记:换装后 form 非空→transitional_rows 过滤(schema :181)→aux_live_ids/
_bonus_aux_pool 永久排除→模拟投放池/道具件候选零涉;同调装备模拟档零操作——MC/autoplay/
verifier 读数零漂移(静态证明,零跑测)。
闸:冒烟 718/0+run_all 15(aux_items_test 三件过换装行)+click 三种子绿(6241/7345/6018)
+ui_probe/ui_input/t17_defer 绿。
This commit is contained in:
DKChan committed 2026-10-04 08:21:42 +08:00
1 parent d78b8d4eb0
commit 89ed0d1c59
6 files changed
+55 -4

No files matched your search

@@ -118,6 +118,10 @@ var fog_state := 0:
if fog_state != v:
fog_state = v
queue_redraw()
var removed_dim := false: # 中立移除退色层(T8/D6——BoardView paint 按排雷玩法 is_removed 写入)
set(v):
removed_dim = v
queue_redraw()
func _draw() -> void:
@@ -256,6 +260,10 @@ func _draw() -> void:
draw_rect(Rect2(Vector2.ZERO, Vector2(edge, edge)), FOG_MEMORY_PLATE, true)
if glyph != "":
_draw_glyph(glyph, FOG_MEMORY_INK, maxi(18, int(ceil(edge * 0.5)))) # 字号下限 18(§7.4 冻结公式同源)
# ⑦ 中立移除退色层(迭代 13 T8/D6——P2 甲退色降档:暗幕压顶全层覆盖,暗淡记忆态同族呈现语义;
# 顶层于迷雾之上——移除格不再参与迷雾语义。本实现移除集=未揭示雷格(无数字无旗印))
if removed_dim:
draw_rect(Rect2(Vector2.ZERO, Vector2(edge, edge)), Color(0.12, 0.10, 0.09, 0.62), true)
# 南立面(D 档件一——墙格南缘内侧,自底边向上:双段暗带在下、口沿高光线贴其上沿):
+7 -1
View File
@@ -316,7 +316,7 @@ func refresh() -> void:
var hero: Vector2i = _minesweeper.hero_pos()
_diggable.clear()
for n in _board.neighbors8(hero):
if not _minesweeper.is_revealed(n):
if not _minesweeper.is_revealed(n) and not _minesweeper.is_removed(n):
_diggable[n] = true
for y in _board.height:
for x in _board.width:
@@ -684,6 +684,7 @@ func _paint_cell(c: Vector2i, hero: Vector2i) -> void:
return
var revealed: bool = _minesweeper.is_revealed(c)
var flag: bool = _minesweeper.has_flag(c)
var removed: bool = _minesweeper.is_removed(c) # 迭代 13 T8/D6——中立移除格(P2 甲退色降档)
var is_hero: bool = c == hero
var glyph := ""
var bg: Color
@@ -691,6 +692,10 @@ func _paint_cell(c: Vector2i, hero: Vector2i) -> void:
# 旗槽统一维护(T17 修复):旗格=封印旗纹理;其余格清 null(插旗格挖开后残留在 tex_flag
# 会让 _draw 无条件把旗印画在已开格上——tex_flag 绘制无 revealed 条件)。缺盘走字形回退。
u.tex_flag = _flag_tex if (flag and not revealed and _flag_tex != null) else null
if removed:
revealed = false # 移除格固定未开呈现基座(退色暗幕层承载;雷格本无数字——P1 甲周边数字冻结)
flag = false
u.tex_flag = null
if revealed:
var rec: Dictionary = _minesweeper.reveal_record(c) # E2 收口:已开记录经查询面
if rec.get("kind", "") == "mine":
@@ -809,6 +814,7 @@ func _paint_cell(c: Vector2i, hero: Vector2i) -> void:
u.fog_state = (2 if revealed else 1) if fogged else 0
else:
u.fog_state = 0
u.removed_dim = removed
u.queue_redraw()