Files
mmo/scenes/enemy/init.gd
Marek Lenczewski f1d34ebf1d update
2026-04-04 00:00:15 +02:00

31 lines
794 B
GDScript

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()