summaryrefslogtreecommitdiff
path: root/src/entities/actors/snake/scripts/jump_state.gd
blob: 329b42681a7010ef88ec5627cb8021e6f32f69f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
extends Node

var fsm: StateMachine


func enter():
	if fsm.DEBUG:
		print("Got inside %s." % name)
	Event.emit_signal("snake_started_jump")
	fsm.player.set_collision_mask_bit(1, false)
	fsm.player.set_collision_mask_bit(2, false)
	Global.SNAKE_SPEED = Global.SNAKE_JUMP_SPEED
	yield(get_tree().create_timer(Global.SNAKE_JUMP_TIME), "timeout")
	exit()


func exit():
	fsm.player.set_collision_mask_bit(1, true)
	fsm.player.set_collision_mask_bit(2, true)
	Global.SNAKE_SPEED = Global.SNAKE_SPEED_BACKUP
	Event.emit_signal("snake_finished_jump")
	fsm.back()


func physics_process(delta: float) -> void:
	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_JUMP_SPEED)