diff --git a/2d/finite_state_machine/player/weapon/sword.gd b/2d/finite_state_machine/player/weapon/sword.gd index 0ea4e377..736f128b 100644 --- a/2d/finite_state_machine/player/weapon/sword.gd +++ b/2d/finite_state_machine/player/weapon/sword.gd @@ -6,7 +6,7 @@ enum STATES { IDLE, ATTACK } var state = null enum ATTACK_INPUT_STATES { IDLE, LISTENING, REGISTERED } -var attack_input_state = IDLE +var attack_input_state = ATTACK_INPUT_STATES.IDLE var ready_for_next_attack = false const MAX_COMBO_COUNT = 3 var combo_count = 0 @@ -33,22 +33,22 @@ var hit_objects = [] func _ready(): $AnimationPlayer.connect('animation_finished', self, "_on_animation_finished") self.connect("body_entered", self, "_on_body_entered") - _change_state(IDLE) + _change_state(STATES.IDLE) func _change_state(new_state): match state: - ATTACK: + STATES.ATTACK: hit_objects = [] - attack_input_state = IDLE + attack_input_state = ATTACK_INPUT_STATES.LISTENING ready_for_next_attack = false match new_state: - IDLE: + STATES.IDLE: combo_count = 0 $AnimationPlayer.stop() visible = false monitoring = false - ATTACK: + STATES.ATTACK: attack_current = combo[combo_count -1] $AnimationPlayer.play(attack_current['animation']) visible = true @@ -56,24 +56,24 @@ func _change_state(new_state): state = new_state func _input(event): - if not state == ATTACK: + if not state == STATES.ATTACK: return - if attack_input_state != LISTENING: + if attack_input_state != ATTACK_INPUT_STATES.LISTENING: return if event.is_action_pressed('attack'): - attack_input_state = REGISTERED + attack_input_state = ATTACK_INPUT_STATES.REGISTERED func _physics_process(delta): - if attack_input_state == REGISTERED and ready_for_next_attack: + if attack_input_state == ATTACK_INPUT_STATES.REGISTERED and ready_for_next_attack: attack() func attack(): combo_count += 1 - _change_state(ATTACK) + _change_state(STATES.ATTACK) # use with AnimationPlayer func track func set_attack_input_listening(): - attack_input_state = LISTENING + attack_input_state = ATTACK_INPUT_STATES.LISTENING # use with AnimationPlayer func track func set_ready_for_next_attack(): @@ -91,10 +91,10 @@ func _on_animation_finished(name): if not attack_current: return - if attack_input_state == REGISTERED and combo_count < MAX_COMBO_COUNT: + if attack_input_state == ATTACK_INPUT_STATES.REGISTERED and combo_count < MAX_COMBO_COUNT: attack() else: - _change_state(IDLE) + _change_state(STATES.IDLE) emit_signal("attack_finished") func _on_StateMachine_state_changed(current_state):