Files
Archipelago-Game/Entities/Characters/Player/Scripts/States/firing_arrow_state.gd
2026-03-17 13:45:35 -06:00

32 lines
1.0 KiB
GDScript

extends BaseState
class_name FiringArrowState
signal PlayerBeganFiringArrow
signal ArrowFired(spawn_position: Vector2, direction: Vector2)
@export var direction_component: FacingDirectionComponent
@export var arrow_spawn_marker: Marker2D
func GetStateEnum() -> PlayerStateMachine.States:
return PlayerStateMachine.States.FIRING_ARROW
func Enter(_extra_parameters: Dictionary) -> void:
PlayerBeganFiringArrow.emit()
var position := arrow_spawn_marker.global_position
var direction := Vector2.ZERO
if direction_component.current_direction == Enums.Directions.LEFT:
direction = Vector2.LEFT
elif direction_component.current_direction == Enums.Directions.RIGHT:
direction = Vector2.RIGHT
elif direction_component.current_direction == Enums.Directions.UP:
direction = Vector2.UP
elif direction_component.current_direction == Enums.Directions.DOWN:
direction = Vector2.DOWN
ArrowFired.emit(position, direction)
func OnFiringArrowAnimationFinished() -> void:
state_machine.QueueStateChange(PlayerStateMachine.States.IDLE)