Skip to content

Commit 916c9c9

Browse files
authored
Merge pull request #298 from Rubonnek/fix-fsm-demo
Fixed Finite State Machine error with enums
2 parents eb27a35 + 974dbd6 commit 916c9c9

File tree

1 file changed

+14
-14
lines changed
  • 2d/finite_state_machine/player/weapon

1 file changed

+14
-14
lines changed

2d/finite_state_machine/player/weapon/sword.gd

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ enum STATES { IDLE, ATTACK }
66
var state = null
77

88
enum ATTACK_INPUT_STATES { IDLE, LISTENING, REGISTERED }
9-
var attack_input_state = IDLE
9+
var attack_input_state = ATTACK_INPUT_STATES.IDLE
1010
var ready_for_next_attack = false
1111
const MAX_COMBO_COUNT = 3
1212
var combo_count = 0
@@ -33,47 +33,47 @@ var hit_objects = []
3333
func _ready():
3434
$AnimationPlayer.connect('animation_finished', self, "_on_animation_finished")
3535
self.connect("body_entered", self, "_on_body_entered")
36-
_change_state(IDLE)
36+
_change_state(STATES.IDLE)
3737

3838
func _change_state(new_state):
3939
match state:
40-
ATTACK:
40+
STATES.ATTACK:
4141
hit_objects = []
42-
attack_input_state = IDLE
42+
attack_input_state = ATTACK_INPUT_STATES.LISTENING
4343
ready_for_next_attack = false
4444

4545
match new_state:
46-
IDLE:
46+
STATES.IDLE:
4747
combo_count = 0
4848
$AnimationPlayer.stop()
4949
visible = false
5050
monitoring = false
51-
ATTACK:
51+
STATES.ATTACK:
5252
attack_current = combo[combo_count -1]
5353
$AnimationPlayer.play(attack_current['animation'])
5454
visible = true
5555
monitoring = true
5656
state = new_state
5757

5858
func _input(event):
59-
if not state == ATTACK:
59+
if not state == STATES.ATTACK:
6060
return
61-
if attack_input_state != LISTENING:
61+
if attack_input_state != ATTACK_INPUT_STATES.LISTENING:
6262
return
6363
if event.is_action_pressed('attack'):
64-
attack_input_state = REGISTERED
64+
attack_input_state = ATTACK_INPUT_STATES.REGISTERED
6565

6666
func _physics_process(delta):
67-
if attack_input_state == REGISTERED and ready_for_next_attack:
67+
if attack_input_state == ATTACK_INPUT_STATES.REGISTERED and ready_for_next_attack:
6868
attack()
6969

7070
func attack():
7171
combo_count += 1
72-
_change_state(ATTACK)
72+
_change_state(STATES.ATTACK)
7373

7474
# use with AnimationPlayer func track
7575
func set_attack_input_listening():
76-
attack_input_state = LISTENING
76+
attack_input_state = ATTACK_INPUT_STATES.LISTENING
7777

7878
# use with AnimationPlayer func track
7979
func set_ready_for_next_attack():
@@ -91,10 +91,10 @@ func _on_animation_finished(name):
9191
if not attack_current:
9292
return
9393

94-
if attack_input_state == REGISTERED and combo_count < MAX_COMBO_COUNT:
94+
if attack_input_state == ATTACK_INPUT_STATES.REGISTERED and combo_count < MAX_COMBO_COUNT:
9595
attack()
9696
else:
97-
_change_state(IDLE)
97+
_change_state(STATES.IDLE)
9898
emit_signal("attack_finished")
9999

100100
func _on_StateMachine_state_changed(current_state):

0 commit comments

Comments
 (0)