fix(iter37①): T2 呈现/组合根缺陷修——蓄力档分档·庆祝句柄·互斥四口·模态 fail-fast·站桩按 id 解析

- d2 蓄力档 `_intent_charge` 布尔分档(颜色相等判据退役,深浅金同值不再误判);d4 庆祝浮动 tween 句柄 kill 纪律(close 必杀)
- d5/d6/d7/d8 互斥四口:调试钮判据并入 `_sync_sim_button` 单点、组合根两守卫补模拟态/冒险态、`is_running()` 运行态查询面
- d9 ModalStack open/close fail-fast+遮挡账合并非覆盖(重复 open 不再吞旧账);d12 target_id 产发(damage_controller 四处)+站桩两口 id 先名兜底;d17 await 后实例守卫;d18 参数类型注解
- 断言:standee_fx_sweep_test(新增,18 项)/modal_flow_test V6-5(5 项 wd9,V6-1~4 原样同绿)/damage_controller_test target_id/pacing_queue_test 排播 target_id/system_test wd6+wd7
- 代拍板:d18 卡片字面 `lumas_out: Array[Variant] = null` 在 Godot 4.7 解析报错(typed array 不可默认 null),改用 `Variant = null`——唯一合法注法,零行为变化,随代拍板追认单留痕
This commit is contained in:
DKChan committed 2026-10-25 03:49:05 +08:00
1 parent 1b9736f065
commit 0529e1691c
19 files changed
+348 -21

No files matched your search

+14 -2
View File
@@ -19,18 +19,30 @@ func register(m: Control, tags: Array = []) -> void:
func open(m: Control) -> void:
var hidden: Array[Control] = []
var idx := _list.find(m)
if idx < 0:
push_error("ModalStack.open: 未登记层不可打开(register 先行)")
return
var hidden: Array[Control] = []
for i in range(idx + 1, _list.size()):
var higher: Control = _list[i]
if is_instance_valid(higher) and higher.visible:
higher.visible = false
hidden.append(higher)
_occluded[m] = hidden
# 遮挡账合并非覆盖:同层重复 open 时上方已隐、hidden 为空,旧账须保留
# (空表覆盖会让先前被隐层在本层 close 后永不恢复)
var merged: Array = _occluded.get(m, []).duplicate()
for h in hidden:
if not merged.has(h):
merged.append(h)
_occluded[m] = merged
m.visible = true
func close(m: Control) -> void:
if _list.find(m) < 0:
push_error("ModalStack.close: 未登记层不可关闭(register 先行)")
return
m.visible = false
for h in _occluded.get(m, []):
if is_instance_valid(h):