fix(迭代35卡①): 致命面改沿 ConfigDB 既有体例(Core 置致命封印+断言,停机决策归组合根——OS.crash 会阻塞跑批且不可断言);fv4 判据改「致命置位→组合根停机码恰 1」;生成器断言补两处判别力(非 Boss 终点按判据消息专断+合流图深度非最长路径值被拒);反哺点清单七条落 reports/

This commit is contained in:
DKChan committed 2026-10-24 05:54:40 +08:00
1 parent a039306f02
commit 16c776e9f3
4 files changed
+60 -7

No files matched your search

+11 -1
View File
@@ -23,6 +23,7 @@ var _by_id: Dictionary = {}
var _next_id := 0
var _detour_heads: Array = [] # 岔口侧链首节点(下一跳类型互异的修型面)
var _detour_ids: Dictionary = {} # 侧链节点 id 集(配比填余不动侧链——战斗保底只由链上槽承载)
var _fatal_flag := false # 致命封印(沿 ConfigDB._fatal_flag 体例——参数无解/产出不合格置位)
func _init(rng_service = null) -> void:
@@ -31,6 +32,7 @@ func _init(rng_service = null) -> void:
## 产图主入口(§7 接口块定稿签名——不收 level_index,契约 6)
func generate(params: Dictionary, seed_val: int) -> Dictionary:
_fatal_flag = false
var errs := check_params(params)
if not errs.is_empty():
for e in errs:
@@ -533,5 +535,13 @@ func _descendants(start: int, by_id: Dictionary) -> Dictionary:
func _fatal(msg: String) -> void:
# 致命面沿 ConfigDB._fatal 体例:Core 层置致命封印+push_error(调用方已落),退出决策归组合根
# (main.gd `_fatal_screen`/卡② 起关拒绝路径)。generate 已致命中止时不产出任何图,
# 空返回不是兜底图——消费侧必须按 is_fatal() 拒收(契约 4 零软回退)。
_fatal_flag = true
assert(false, msg)
OS.crash("NodeMapGenerator: " + msg)
## 致命封印读面(沿 ConfigDB.is_fatal 体例)——组合根/消费侧据此停机或拒收起关
func is_fatal() -> bool:
return _fatal_flag