P1-6 类型闸(须 T1-T4 全落后——本波按执行顺序锁殿后): - tools/audit_type_hints.py 新机器闸(V7): R1 无类型容器注解/R2 有值返回缺返回类型/ R3 参数缺类型三规则+行级 # type-hint: ignore 显式白名单通道;产品码 core/data/presentation - 存量收口: 368 处显式 Array/Dictionary 非参数化注解→机械参数化(Array[Variant]/ Dictionary[Variant, Variant] 零行为面);13 处参数真类型(SaveManagerCore/ConfigDb/ BattleOrchestrator/MinesweeperRules/LevelRunner/SettingsStore 等) - 白名单豁免四处: board_generator generate/_attempt/legality/_finalize 的 db 参—— 测量面 _BoardRowStub 冒烟夹具鸭子型注入(typed 参拒 stub) - project.godot 拉起 gdscript/warnings/untyped_declaration=1(V7 源码断言在 smoke _smoke_type_gate) - static_scan 新 S9 类型闸规则;顺修历史 cd 错位(9-24 布局迁移后 /.. 落 game/ 致守卫 恒跳过静默空转——修复后 S1-S4/S9 首次实跑全绿)+S1/S2 增 ADR-0007-exempt 标记豁免通道 (main _seed_value 引擎熵源=文档化豁免面) 验收: 冒烟 1081/0(+V7×2)+run_all 27 套+static_scan 全绿+probe click+render golden+对拍三变体全同
41 lines
1.4 KiB
GDScript
41 lines
1.4 KiB
GDScript
# VERTICAL SLICE - NOT FOR PRODUCTION
|
||
# Date: 2026-09-11
|
||
# 关卡节点覆盖层(模态):奖励点/恢复点兑付结果的确认呈现。
|
||
# 高内聚边界:节点文案的玩家可读化(谁获得什么/回复多少)内聚于此;"继续"意图经信号外发。
|
||
class_name NodeOverlay
|
||
extends Control
|
||
|
||
signal continue_pressed
|
||
|
||
var _label: Label
|
||
var _btn: Button
|
||
|
||
|
||
func _init() -> void:
|
||
# M5(UI 落码批):rest 兑付面板 plate9 石板化+暖金头带字(demo ④休息弹层;暗字上亮板 §7.2)
|
||
var shell: Dictionary[Variant, Variant] = UiKit.modal_shell(self, Color(0, 0, 0, 0.6), Vector2.ZERO, 14, true,
|
||
UiKit.panel_skinned(Vector4(26, 18, 26, 18)))
|
||
var box: VBoxContainer = shell.box
|
||
_label = UiKit.label("",UiKit.FS_SUB, true, UiKit.INK_TITLE)
|
||
_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||
box.add_child(_label)
|
||
_btn = UiKit.primary_button("继续")
|
||
_btn.pressed.connect(_emit_continue_pressed)
|
||
box.add_child(_btn)
|
||
visible = false
|
||
|
||
|
||
func show_rest(healed: int, hp_after: int, max_hp: int) -> void:
|
||
_label.text = "血量恢复点\n休息回复 %d HP(%d → %d / %d)" % [
|
||
healed, hp_after - healed, hp_after, max_hp]
|
||
_btn.text = "休息完毕,继续"
|
||
visible = true
|
||
|
||
# 探针复用:以真实按钮路径触发继续
|
||
func press_continue() -> void:
|
||
_btn.pressed.emit()
|
||
|
||
|
||
func _emit_continue_pressed() -> void:
|
||
continue_pressed.emit()
|