extends CharacterBody2D class_name Actor @export var auto_die = false @export var player = false var state = null const SPEED = 400 var vel: Vector2 = Vector2(0, 0) func _ready(): if self.auto_die: self.set_state(ActorExplode.new(self)) func _physics_process(_delta): pass func set_state(new_state): if self.state != null: remove_child(self.state) self.state = new_state if self.state: add_child(self.state) func sprite() -> AnimatedSprite2D: return $AnimatedSprite2D func explode(): sprite().visible = false $CPUParticles2D.restart() func anim_walk(): sprite().animation = 'walk' if not sprite().is_playing(): sprite().play() func anim_idle(): sprite().animation = 'idle' if not sprite().is_playing(): sprite().play() func _on_cpu_particles_2d_finished(): self.queue_free()