Files
Omens-Ascent/scenes/components/locked_door.gd

27 lines
664 B
GDScript

class_name LockedDoor
extends StaticBody2D
@onready var sprites: Node2D = $Sprites
@onready var collision: CollisionShape2D = $CollisionShape2D
var is_locked: bool = true
var _remaining_enemies: int = 0
func _ready() -> void:
_remaining_enemies = get_tree().get_nodes_in_group("enemies").size()
if _remaining_enemies <= 0:
unlock()
return
EventBus.enemy_defeated.connect(_on_enemy_defeated)
func unlock() -> void:
is_locked = false
collision.set_deferred("disabled", true)
sprites.set_deferred("visible", false)
AudioManager.play_jingle("success")
func _on_enemy_defeated() -> void:
_remaining_enemies -= 1
if _remaining_enemies <= 0:
unlock()