40 lines
1.2 KiB
GDScript
40 lines
1.2 KiB
GDScript
@abstract
|
|
extends Machine
|
|
class_name Drone
|
|
|
|
@export_category("Dash")
|
|
@export var dodge_cd := 5.0
|
|
@export var dodge_speed := 650.0
|
|
@export var dodge_duration := 0.18
|
|
var dodge_duration_timer : Timer
|
|
|
|
func _ready() -> void:
|
|
_animate(self.get_child(4,false),"walking")
|
|
add_on_slots = 1
|
|
for a in self.get_children() :
|
|
if a.name == "DodgeDurationTimer" :
|
|
dodge_duration_timer = a
|
|
for a in MachineGlobals.drone_body_slots :
|
|
machine_upgrades.set(a,null)
|
|
animation_state_machine = MachineGlobals.regular_states.IDLING
|
|
|
|
func class_ability() -> float:
|
|
#do dash
|
|
animation_state_machine = MachineGlobals.regular_states.DASHING
|
|
return dodge_cd
|
|
|
|
func listen_to_animation_signals(next_anim_state : MachineGlobals.regular_states) -> void:
|
|
match next_anim_state :
|
|
MachineGlobals.regular_states.IDLING :
|
|
for a : BodyPart in _get_body_parts() :
|
|
_animate(a,"Idle")
|
|
MachineGlobals.regular_states.WALKING :
|
|
for a : AnimatedSprite2D in _get_body_parts() :
|
|
_animate(a,"Walking")
|
|
MachineGlobals.regular_states.DASHING :
|
|
for a : AnimatedSprite2D in _get_body_parts() :
|
|
_animate(a,"Dashing")
|
|
MachineGlobals.regular_states.INTERACTING :
|
|
for a : AnimatedSprite2D in _get_body_parts() :
|
|
_animate(a,"Interact")
|