Files
Archipelago-Game/Entities/Characters/Player/Scripts/States/drawing_bow_state.gd
cgandeg 7cd34cb07e beta-1.5 (#4)
Reviewed-on: #4
2026-03-28 20:34:59 -06:00

39 lines
1008 B
GDScript

extends BaseState
signal PlayerBeganDrawingBow
@export var strafing_speed := 35
@export var body: CharacterBody2D
var _used_item_action: String
var _animation_finished := false
var _movement_componenent: MovementComponent
func GetStateEnum() -> PlayerStateMachine.States:
return PlayerStateMachine.States.DRAWING_BOW
func Enter(extra_parameters: Dictionary) -> void:
_animation_finished = false
_used_item_action = extra_parameters.action_name
_movement_componenent = ComponentUtils.GetMovementComponent(body)
PlayerBeganDrawingBow.emit()
func Update(_delta: float) -> void:
if !_animation_finished:
return
if !Input.is_action_pressed(_used_item_action):
state_machine.QueueStateChange(PlayerStateMachine.States.FIRING_ARROW)
return
var movement_vector := _movement_componenent.movement_vector
if movement_vector != Vector2.ZERO:
body.velocity = movement_vector * strafing_speed
body.move_and_slide()
func OnDrawingBowAnimationFinished() -> void:
_animation_finished = true