55 lines
1.7 KiB
GDScript
55 lines
1.7 KiB
GDScript
extends Node2D
|
|
|
|
@onready var _timer_label: Label = $CanvasLayer/TimerLabel
|
|
@onready var _spawn_control = $SpawnControl
|
|
|
|
var _debug_menu_script = preload("res://scripts/debug_menu.gd")
|
|
var _game_over_scene = preload("res://scenes/game_over.tscn")
|
|
|
|
func _ready():
|
|
MusicManager.play(preload("res://assets/music&sfx/music/ashveil-355633.mp3"))
|
|
add_child(_debug_menu_script.new())
|
|
$Witch.died.connect(_on_witch_died)
|
|
|
|
func _process(_delta: float) -> void:
|
|
var t = int(_spawn_control.elapsed_time)
|
|
_timer_label.text = "%02d:%02d" % [t / 60, t % 60]
|
|
|
|
func _on_witch_died(killer) -> void:
|
|
var witch = $Witch
|
|
var player = $Player
|
|
$PauseMenu.process_mode = Node.PROCESS_MODE_DISABLED
|
|
get_tree().paused = true
|
|
|
|
var overlay_layer = CanvasLayer.new()
|
|
overlay_layer.layer = 10
|
|
overlay_layer.process_mode = Node.PROCESS_MODE_ALWAYS
|
|
add_child(overlay_layer)
|
|
|
|
var overlay = ColorRect.new()
|
|
overlay.color = Color(0, 0, 0, 0)
|
|
overlay.anchor_right = 1.0
|
|
overlay.anchor_bottom = 1.0
|
|
overlay.grow_horizontal = Control.GROW_DIRECTION_BOTH
|
|
overlay.grow_vertical = Control.GROW_DIRECTION_BOTH
|
|
overlay_layer.add_child(overlay)
|
|
|
|
var highlight_layer = CanvasLayer.new()
|
|
highlight_layer.layer = 11
|
|
highlight_layer.follow_viewport_enabled = true
|
|
highlight_layer.process_mode = Node.PROCESS_MODE_ALWAYS
|
|
add_child(highlight_layer)
|
|
|
|
witch.reparent(highlight_layer, true)
|
|
player.reparent(highlight_layer, true)
|
|
if is_instance_valid(killer):
|
|
killer.reparent(highlight_layer, true)
|
|
|
|
var tween = create_tween()
|
|
tween.set_pause_mode(Tween.TWEEN_PAUSE_PROCESS)
|
|
tween.tween_property(overlay, "color", Color(0, 0, 0, 0.85), 2.5)
|
|
await tween.finished
|
|
|
|
var game_over = _game_over_scene.instantiate()
|
|
add_child(game_over)
|