T7 死代码与残留清扫段: 16项零争议死代码直删(equivalence_supply/pool_layers/index_of/has_variant/rows_by_pool/SUB_REASONS/ui_kit死色板五常量/reset_requested/set_legend_enabled/is_level_mode/legend.toggle/set_idle×2/COL_PATH/COL_INK/rebuild死守卫/_normalize合并/FACADE并档——删前逐项全仓grep零调用核实,next_candidates有level_autoplay调用存活未删=审计误报纠正)+T17归因件撤除(choices_dbg三段+t17dump两段,T17_LOCK_DEBUG全仓归零)+延迟三件(has_unrevealed下沉/is_item_unlocked访问器/rap残链snapshot面)+文档十件(过期注释/错挂注释/4242文案/README现行化/critical-paths道具窗口退役改写);闸=冲烟636/0+run_all 15套+八探针全绿

This commit is contained in:
DKChan committed 2026-10-02 09:25:23 +08:00
1 parent 5584feb6e5
commit 54ac8759c9
27 files changed
+43 -131

No files matched your search

+2 -6
View File
@@ -41,7 +41,7 @@ func unlocked_set() -> Dictionary:
return out
for row in db.aux_active_rows():
var iid := String(row.get("item_id", ""))
if meta.save.item_unlocked(iid):
if meta.is_item_unlocked(iid):
out[iid] = true
return out
@@ -108,11 +108,7 @@ func inventory_projection() -> Array:
var cb := Callable()
if ms != null:
cb = func(_c: Vector2i) -> bool:
for y in ms.current_board().height:
for x in ms.current_board().width:
if not ms.is_revealed(Vector2i(x, y)):
return true
return false
return ms.has_unrevealed() # 只读查询面(排雷玩法 has_unrevealed——手搓全板双循环收口)
var out: Array = []
for rec in runner.aux_inventory.query_inventory(cb):
var arow: Dictionary = db.aux_item_row(String(rec.get("item_id", "")))
-4
View File
@@ -33,10 +33,6 @@ func _init(db_ref, rng_ref, hero_override: Callable, seed_value: Callable) -> vo
_seed_value = seed_value
func is_level_mode() -> bool:
return _level_mode
# 单场遭遇原语(2026-09-13 用户裁决:单场用户入口已删——本方法仅 ui_probe 单场段使用;
# 无延续、standalone 终局语义保留供探针战斗收尾)
func start_single(level: int) -> bool:
+1 -9
View File
@@ -870,9 +870,6 @@ func _on_node_continue() -> void:
func _on_choices_presented(candidates: Array) -> void:
# 零自动推进的停点呈现:整幅节点图 + 图上点击选路(候选按钮退役 2026-09-28——战斗胜利/兑付确认统一到达此处)
if OS.get_environment("T17_LOCK_DEBUG") != "":
print("[choices_dbg] handler entered cands=%d runner_null=%s node=%s" % [
candidates.size(), str(runner == null), str(runner.node_index) if runner != null else "-"])
if runner == null:
return
log_view.append_bb(Narrator.route_line(candidates, runner))
@@ -882,8 +879,6 @@ func _on_choices_presented(candidates: Array) -> void:
# 的当前节点非 battle 型——三态天然分流)。Boss 胜/失败走 level_finished 另路不经此处。
if _adventure_mode and runner.current_battle() == null \
and String(runner.current_node().get("type", "")) == "battle" and not candidates.is_empty():
if OS.get_environment("T17_LOCK_DEBUG") != "":
print("[choices_dbg] -> battle stop overlay (node %s)" % str(runner.node_index))
_settlement_stop_pending = true
_pending_candidates = candidates.duplicate()
_end_overlay.open_victory(Narrator.battle_end_text("victory", false), "下一节点",
@@ -892,9 +887,6 @@ func _on_choices_presented(candidates: Array) -> void:
_open_modal(_end_overlay)
_refresh_presentations()
return
if OS.get_environment("T17_LOCK_DEBUG") != "":
print("[choices_dbg] -> level_screen (node %s type %s cands %d)" % [
str(runner.node_index), String(runner.current_node().get("type", "")), candidates.size()])
_enter_level_screen()
level_screen.open_choices(candidates, runner)
_refresh_presentations()
@@ -1109,7 +1101,7 @@ func _on_refresh_confirmed() -> void:
board_zone.toast.show_toast("RAP−%d · 旧板旗作废——新图已就位,AP 保留继续挖" % int(db.action_economy.rap_refresh_cost), "gold")
else:
# 资源面/上限拒绝(EC13 合法拒绝可见;行动经济 无载荷——客户端按上下文推断)
var rap: int = int(settlement.action_economy.rap) if settlement != null else 0
var rap: int = int(settlement.presentation_snapshot().get("rap", 0)) if settlement != null else 0
var cost: int = int(db.action_economy.rap_refresh_cost)
var result := "rejected_rap" if rap < cost else "rejected_cap"
logger.log_ux("ux_refresh_attempt", {"result": result, "round_refresh_index": _refresh_used_round + 1})
-4
View File
@@ -171,10 +171,6 @@ func _render_rap_dots(rap: int) -> void:
d.color = COL_GOLD if i < shown else COL_DOT_OFF
func set_legend_enabled(on: bool) -> void:
_btn_legend.disabled = not on
# 探针/装配复用:刷新按钮可用性(预判 = RAP 足额 + 上限未到)
func is_refresh_ready() -> bool:
return not _btn_refresh.disabled
@@ -20,7 +20,6 @@ const BAND_H_DIG := 24
const BAND_H_SETTLE := 84
const AGG_TYPES := ["reward_ineffective"]
const COL_GOLD := UiKit.HEX_GOLD
const COL_INK := UiKit.HEX_INK
var _db
var _log: RichTextLabel
+1 -2
View File
@@ -67,7 +67,6 @@ var bevel := 0.0: # 顶面倒角强度(0=关——立体原
const FACADE_HIGHLIGHT_PX := 2.0 # 口沿高光线厚(像素)
const FACADE_NEAR_FRAC := 0.16 # 立面近段高(格边比——研究件 10/64)
const FACADE_FAR_FRAC := 0.25 # 立面远段高(格边比——研究件 16/64)
const FACADE_HIGHLIGHT_COL := Color8(196, 172, 132) # 口沿高光(研究件取色暖米白)
const FACADE_NEAR_COL := Color(0, 0, 0, 0.60) # 立面近段黑罩(墙顶 132→52 实测 α≈0.61)
const FACADE_FAR_COL := Color(0, 0, 0, 0.82) # 立面远段黑罩(墙顶 132→24 实测 α≈0.82)
const PROJECTION_NEAR_COL := Color(0, 0, 0, 0.28) # 投影贴墙段(地面 66→46 实测 α≈0.28)
@@ -251,7 +250,7 @@ func _draw_south_facade() -> void:
var y_far := edge - far_h
var y_near := y_far - near_h
var y_hl := y_near - FACADE_HIGHLIGHT_PX
draw_rect(Rect2(0.0, y_hl, edge, FACADE_HIGHLIGHT_PX), FACADE_HIGHLIGHT_COL, true)
draw_rect(Rect2(0.0, y_hl, edge, FACADE_HIGHLIGHT_PX), UiKit.STAND_STONE_RIM, true) # 口沿高光(UiKit.STAND_STONE_RIM 并档——同值单点,清扫批 2026-10-02)
draw_rect(Rect2(0.0, y_near, edge, near_h), FACADE_NEAR_COL, true)
draw_rect(Rect2(0.0, y_far, edge, far_h), FACADE_FAR_COL, true)
-3
View File
@@ -35,7 +35,6 @@ const COL_DIGIT := UiKit.INK # 数字——墨族 #33261B(对
const COL_HERO := UiKit.HERO_BLUE # 小人边框——小人蓝 #2E6E8E
const COL_FLAG := UiKit.SEAL_BLACK # 封印黑 #000000(旗朱→封印紫→封印黑,2026-09-28 用户拍板)
const COL_GOLD := UiKit.GOLD # 奖励金 #F0A828
const COL_PATH := UiKit.HERO_BLUE # 路径预览点迹——小人蓝细线
const COL_CONTACT := UiKit.CONTACT_GLOW # 接触带微光基色(蓝族浅一档·近白蓝——§3.2 v2.8;旧绿相退役 2026-09-26)
const COL_HL_TARGET := UiKit.GOLD # 悬停目标格边框(金)
const REWARD_BADGE := { # 已开格格面资源身份 icon(cell_type 九型键;极性视觉归批 2)
@@ -269,8 +268,6 @@ func rebuild(board: BoardData, minesweeper) -> void:
_hover = Vector2i(-9, -9)
for c in _board.compute_r0():
_r0[c] = true
if _board == null:
return
# 瓦片套随板图型切换(T6 换色批——board_gen 词表 v1.1 dungeon/underdark/deep_underdark;
# 同图型重复 rebuild 零重载,_tiles_board_type 守卫)
var bt: String = _board.board_type if _board.board_type != "" else "dungeon"
@@ -99,12 +99,6 @@ func set_level_bonuses(lines: Array) -> void:
_bonus_section.visible = not lines.is_empty()
func set_idle() -> void:
_atk_label.text = "攻击 —"
_armor_label.text = "护甲 AC —"
set_level_bonuses([])
func attack_text() -> String:
return _atk_label.text
+1 -8
View File
@@ -3,7 +3,7 @@
# 状态槽空态说明成文载入〔增益状态 D1×①〕)。
# Date: 2026-09-12
# pattern 6 模态 overlay 层级纪律:打开时由组合根隐藏上方遮挡层 + 锁棋盘输入;
# 本类自持开关(toggle),探针断言"打开后自身 visible"——遮挡物断言归场景探针。
# 本类自持开关(open/close),探针断言"打开后自身 visible"——遮挡物断言归场景探针。
class_name LegendOverlay
extends Control
@@ -72,13 +72,6 @@ func is_open() -> bool:
return visible
func toggle() -> void:
if visible:
close()
else:
open()
func open() -> void:
visible = true
+1 -1
View File
@@ -1,7 +1,7 @@
# VERTICAL SLICE - NOT FOR PRODUCTION
# Date: 2026-09-21(GP+商店房实施批——商店房覆盖层呈现)
# 商店覆盖层(模态):标题「商店」/ 金币余额 / 三商品卡全陈列(显示名·档位文案·现价·已购档数)/
# 购买按钮(余额不足禁用置灰)/ 离开按钮。模态挂接方式仿既有覆盖层(route_overlay 现成参照——
# 购买按钮(余额不足禁用置灰)/ 离开按钮。模态挂接方式仿既有覆盖层(legend_overlay 现成参照——
# dim + CenterContainer + box,组合根 _register_modal 收口层级)。
# 高内聚边界:纯视图 setter 面——商品快照与余额经组合根喂入(runner.shop_products() 只读投影,
# 现价/已购档数由 runner 现算),购买/离开意图经信号外发——零核心写调用、零 runner 持有。
-5
View File
@@ -124,11 +124,6 @@ func _set_hp(hp: int) -> void:
_hp_tween.tween_property(self, "hp_value", target, UiKit.motion(0.15))
func set_idle() -> void:
_set_hp(0)
set_effects([])
# 主角/敌方共用——状态效果唯一展示面(壳层伴随件转发;空态 = 图标行隐藏不占位)
func set_effects(effects: Array) -> void:
if slot_row == null:
+2 -4
View File
@@ -1,15 +1,14 @@
# VERTICAL SLICE - NOT FOR PRODUCTION
# Date: 2026-09-11(2026-09-12 code-review 修复批重构)
# 测试用角色数值调整板(模拟天赋树属性提升——仅测试,正式侧归元进度)。
# 纯视图边界(规范 1.3):本类只承载滑杆 UI 与生效值预览;加成应用 / 重置落表 / 批量模拟编排
# 全部经信号外发由组合根承接(apply_requested / reset_requested / simulate_requested / closed),
# 纯视图边界(规范 1.3):本类只承载滑杆 UI 与生效值预览;加成应用 / 批量模拟编排
# 全部经信号外发由组合根承接(apply_requested / simulate_requested / closed);
# 模拟进度与报告经 setter 注入——视图零核心写、零 smoke 脚本依赖、不拼报告文案(装配归 presenter)。
# 探针接缝(ADR-0004"合成输入走真实翻译出口"口径):press_apply_for_probe 等三键 = 按钮真实信号路径。
class_name TunePanel
extends Control
signal apply_requested(atk_pct: int, hp_pct: int) # 应用并关闭——加成落表归组合根单一应用路径
signal reset_requested() # 重置为 0——视图自清滑杆,落表归组合根
signal simulate_requested(count: int) # 批量模拟编排归组合根(表基线复位 + 单路径施加)
signal closed
@@ -106,7 +105,6 @@ func _apply_btn_pressed() -> void:
func _reset_btn_pressed() -> void:
reset_sliders()
reset_requested.emit()
func effective_atk() -> int:
+1 -6
View File
@@ -21,10 +21,7 @@ const INK_TITLE := Color8(30, 26, 22) # 亮底标题墨
const INK_ROUTE := Color8(24, 20, 16) # 节点图最深墨
const INK_ON_GOLD := Color8(60, 44, 20) # 金底上的深墨
const PANEL_HERO := Color8(232, 220, 196) # 面板底·主角侧(英雄卡/角色信息框)
const PANEL_ENEMY := Color8(226, 212, 190) # 面板底·敌方卡
const PANEL_DATA := Color8(226, 210, 182) # 面板底·数据框(AP 条/状态槽)
const PANEL_STAGE := Color8(216, 200, 172) # 面板底·战斗画面区
const PANEL_BORDER := Color8(120, 106, 88) # 面板细线框;兼熄灭点阵(DOT_OFF 别名)
const GOLD := Color8(240, 168, 40) # 奖励金
@@ -50,12 +47,10 @@ const DUSK := Color8(90, 108, 140) # 暮蓝(全作唯一暮蓝档
const WARM := Color8(240, 226, 200) # 暖白(暗底正文)
const WARM_SOFT := Color8(200, 188, 166) # 暖白次级(说明文)
const WARM_FAINT := Color8(178, 166, 146) # 暖白弱化(帮助文)
const WARM_ROUTE_SUB := Color8(210, 196, 170) # 节点图编号暖白
const STONE := Color8(120, 110, 98) # 灰石(通道/箭头/失效)
const STONE_FAINT := Color8(140, 124, 100) # 灰石弱化(占位提示文)
const DARK_UPCOMING := Color8(64, 58, 52) # 未达暗字(底/文同值)
const DARK_TEXT_FAINT := Color8(160, 150, 138)# 未达节点文字
const BRICK := Color8(201, 175, 131) # 棋盘·未开掩尘地砖 #C9AF83
const FLOOR := Color8(179, 154, 120) # 棋盘·已开裸土 #B39A78
@@ -78,7 +73,7 @@ const STAGE_BG := Color8(62, 52, 42) # B 区舞台暗底(方向稿 re
const BEAM_LIGHT := Color8(255, 236, 200) # B 区顶光柱暖光(用时乘 alpha 渐隐——battle_stage_view 光柱层)
const STAND_STONE := Color8(150, 130, 100) # 站桩石板地台·板身(standee_body 方向稿取色)
const STAND_STONE_EDGE := Color8(90, 76, 58) # 站桩石板地台·描边
const STAND_STONE_RIM := Color8(196, 172, 132) # 站桩石板地台·顶缘受光线(与 board_cell_unit.FACADE_HIGHLIGHT_COL 异源同值——并档归清扫卡)
const STAND_STONE_RIM := Color8(196, 172, 132) # 站桩石板地台·顶缘受光线(board_cell_unit 口沿高光已并档至此——清扫批 2026-10-02)
const CAMP_HEADER_BAND := Color8(122, 82, 50) # 营地柜台头带深棕(4-camp.png 方向稿取色)
const CAMP_ROW_PLATE := Color8(240, 230, 206) # 营地行板暖米(同上)
const CAMP_BADGE_PANEL := Color8(40, 32, 24) # 营地钥石徽暗底(同上)