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) func _on_enemy_defeated() -> void: _remaining_enemies -= 1 if _remaining_enemies <= 0: unlock()