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:
1 parent
1b9736f065
commit
0529e1691c
19 files changed
+348
-21
No files matched your search
@@ -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):
|
||||
|
||||
Reference in new issue
Block a user