extends CharacterBody3D @export var stats: EnemyStats var gravity: float = ProjectSettings.get_setting("physics/3d/default_gravity") func _ready() -> void: add_to_group("enemies") if is_in_group("boss"): BossData.register(self, stats) BossData.set_stat(self, "spawn_position", global_position) else: EnemyData.register(self, stats) EnemyData.set_stat(self, "spawn_position", global_position) EventBus.entity_died.connect(_on_entity_died) func _exit_tree() -> void: if is_in_group("boss"): BossData.deregister(self) else: EnemyData.deregister(self) func _on_entity_died(entity: Node) -> void: if entity == self: queue_free() func _physics_process(delta: float) -> void: if not is_on_floor(): velocity.y -= gravity * delta move_and_slide()