summaryrefslogtreecommitdiff
path: root/src/entities/actors/snake/scripts/jump_state.gd
diff options
context:
space:
mode:
Diffstat (limited to 'src/entities/actors/snake/scripts/jump_state.gd')
-rw-r--r--src/entities/actors/snake/scripts/jump_state.gd27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/entities/actors/snake/scripts/jump_state.gd b/src/entities/actors/snake/scripts/jump_state.gd
new file mode 100644
index 0000000..396ceb4
--- /dev/null
+++ b/src/entities/actors/snake/scripts/jump_state.gd
@@ -0,0 +1,27 @@
+extends Node
+
+var fsm: StateMachine
+
+
+func enter():
+ if fsm.DEBUG:
+ print("Got inside %s." % name)
+ Event.emit_signal("snake_started_dash")
+ Global.SNAKE_SPEED = Global.SNAKE_DASH_SPEED
+ yield(get_tree().create_timer(Global.SNAKE_DASH_TIME), "timeout")
+ exit()
+
+
+func exit():
+ Event.emit_signal("snake_finished_dash")
+ Global.SNAKE_SPEED = Global.SNAKE_SPEED_BACKUP
+ fsm.back()
+
+
+func physics_process(delta: float) -> float:
+ fsm.player.velocity = fsm.player.direction * Global.SNAKE_SPEED
+ fsm.player.velocity = fsm.player.move_and_slide(fsm.player.velocity)
+
+ fsm.slow_down_on_collisions(Global.SNAKE_DASH_SPEED)
+
+ return delta