2024-04-14 15:43:40 +00:00
|
|
|
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
|
2024-04-14 23:10:28 +00:00
|
|
|
$SFXExplode.play()
|
2024-04-14 15:43:40 +00:00
|
|
|
$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()
|