gae_wild_jam/scenes/game.gd

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)