Browse Source

Fixed Finite State Machine demo issues

Wilson E. Alvarez 6 years ago
parent
commit
974dbd6b88
1 changed files with 14 additions and 14 deletions
  1. 14 14
      2d/finite_state_machine/player/weapon/sword.gd

+ 14 - 14
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):