fix(review-batch3): 类型收紧生产清零137处(P1-2三步+延伸)+autoload class_name(ConfigDb/RngServiceCore)与_init标注(P2-1)+validate_skill_pool_links/ShopTable标注(P2-4)+相位enum外String面(P2-2)+typed-rows探针实证.tres装载转换;smoke缝合20处rows.assign+str(bb)同语义;审计生产双归零(240→103/83→59全测试链),单测7套绿,冒烟576/0同基线
This commit is contained in:
1 parent
f5edb65d25
commit
104cea6461
46 files changed
+233
-218
No files matched your search
@@ -15,18 +15,18 @@ signal round_end_board(payload: Dictionary) # 双发射源之棋盘路径(
|
||||
|
||||
const SUB_REASONS := ["not_adjacent", "target_revealed", "target_concealed", "flag_present", "no_path", "out_of_catalog"] # flag_absent 随 flag_pull 退役(2026-09-19)
|
||||
|
||||
var db
|
||||
var action_economy
|
||||
var db: ConfigDb
|
||||
var action_economy: ActionEconomy
|
||||
# 棋盘状态私有(E2 封装收口 2026-09-13):对外只暴露 current_board()/reveal_record() 等查询面,
|
||||
# 禁止跨模块直读/直写原始字典——先例教训 = board_view 绕过查询面直读 revealed。
|
||||
var _board: BoardData = null
|
||||
var _revealed := {} # Vector2i → {"kind": "safe"/"mine", "digit": int}
|
||||
var _flags := {} # Vector2i → true(棋盘单态;跨轮保留随图存续)
|
||||
var _hero := Vector2i.ZERO
|
||||
var _spawn: Dictionary = {}
|
||||
var _spawn: Dictionary[Vector2i, bool] = {}
|
||||
|
||||
|
||||
func _init(db_ref, action_economy_ref) -> void:
|
||||
func _init(db_ref: ConfigDb, action_economy_ref: ActionEconomy) -> void:
|
||||
db = db_ref
|
||||
action_economy = action_economy_ref
|
||||
|
||||
@@ -125,7 +125,7 @@ func retire_board(during_round := false) -> Dictionary:
|
||||
|
||||
# 四不变式(诊断类别封闭枚举):inv1 出生区雷 / inv2a 出生区变异 / inv2b R₀ 变异 / inv3 数字恒真 / inv4 R₀=S
|
||||
func _install_invariant_faults(b: BoardData) -> Array:
|
||||
var faults: Array = []
|
||||
var faults: Array[String] = []
|
||||
var r0 := {}
|
||||
for c in b.compute_r0():
|
||||
r0[c] = true
|
||||
@@ -171,7 +171,7 @@ func _initial_expansion_order(b: BoardData) -> Array:
|
||||
# ---- 批次结算(唯一提交入口;单意图批 = 平凡形 ≡ 便捷 API)----
|
||||
|
||||
func settle_batch(intents: Array) -> Array:
|
||||
var outcomes: Array = []
|
||||
var outcomes: Array[Dictionary] = []
|
||||
if intents.is_empty():
|
||||
return outcomes
|
||||
if action_economy.phase != action_economy.PHASE_ACTIVE or _board == null:
|
||||
@@ -179,7 +179,7 @@ func settle_batch(intents: Array) -> Array:
|
||||
outcomes.append(_outcome(false, "rejected", "phase", ""))
|
||||
return outcomes
|
||||
# F4 语义序仲裁:C_dig(真模拟清图)→ C_stop → C_other;类内稳定序 = 到达序
|
||||
var indexed: Array = []
|
||||
var indexed: Array[Dictionary] = []
|
||||
for i in intents.size():
|
||||
indexed.append({"i": i, "intent": intents[i], "cls": _classify(intents[i])})
|
||||
indexed.sort_custom(func(a, b):
|
||||
@@ -395,7 +395,7 @@ func compute_move_path(target: Vector2i) -> Array:
|
||||
queue.append(n)
|
||||
if not prev.has(target):
|
||||
return []
|
||||
var path: Array = []
|
||||
var path: Array[Vector2i] = []
|
||||
var cur := target
|
||||
while cur != _hero:
|
||||
path.push_front(cur)
|
||||
|
||||
Reference in new issue
Block a user