]> purplebirdman git - frog-ninja.git/blob - asset/character/model/state/shooting_state.gd
351588f35787ecd18937d5ae22ee58ffdd6e53e1
[frog-ninja.git] / asset / character / model / state / shooting_state.gd
1 extends MovingState
2
3
4 @export var bullet: PackedScene
5
6
7 func should_enter(input: InputPacket) -> String:
8         if animation_finished:
9                 input.player_actions.append("GunLower")
10                 input.player_actions.sort_custom(states_priority_sort)
11                 return input.player_actions[0]
12         return name
13
14
15 func on_enter_state():
16         if player.energy_points > 0:
17                 player.energy_points -= energy_toll
18                 
19                 var new_bullet: Projectile = bullet.instantiate()
20                 new_bullet.last_movement_direction = player.last_movement_vector
21                 new_bullet.weapon = player.model.weapon_l
22                 new_bullet.collision_layer = player.collision_layer
23                 new_bullet.collision_mask = player.collision_mask
24                 
25                 # TODO: global_position isn't set right until instance has been added to the scene tree
26                 new_bullet.global_position = player.model.weapon_l.model.get_bullet_origin()
27                 
28                 get_tree().root.add_child(new_bullet, true)