Files

38 lines
2.1 KiB
GDScript
Raw Permalink Normal View History

extends Control # Или CanvasLayer, смотря к какому узлу прикреплен скрипт
# Точный глубокий поиск твоей кнопки внутри дерева сцены
@onready var restart_button: Button = find_child("RestartButton", true, false)
func _ready() -> void:
# Принудительно зажигаем видимость всей панели в момент её спавна,
# чтобы она железно отрисовалась поверх игры!
visible = true
# Освобождаем мышь для клика
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
# Подключаем клик по кнопке Начать заново
if restart_button:
restart_button.pressed.connect(_on_restart_button_pressed)
print("[СЦЕНА СМЕРТИ] Кнопка RestartButton успешно инициализирована и ждет клика.")
else:
print("[СЦЕНА СМЕРТИ] ОШИБКА: Не удалось найти кнопку RestartButton в дереве узлов!")
func _on_restart_button_pressed() -> void:
print("[СЦЕНА СМЕРТИ] Клик зафиксирован! Сбрасываю кэш и перезапускаю карту уровня...")
# Сбрасываем кэш здоровья в синглтоне переноса вещей обратно в 100 перед рестартом
var gt = get_node_or_null("/root/GameTransfer")
if gt and "saved_health" in gt:
gt.saved_health = 100.0
# --- САМОЛИКВИДАЦИЯ ЭКРАНА СМЕРТИ ИЗ ГЛОБАЛЬНОЙ ПАМЯТИ ---
# Прячем панель с экрана мгновенно, чтобы она не мозолила глаза при загрузке
visible = false
# Полностью и физически удаляем этот узел из корня игры, чтобы он исчез навсегда
queue_free()
# ---------------------------------------------------------
# Перезапускаем текущую сцену уровня шутера
get_tree().reload_current_scene()