Tales-of-PKMN/game/player/input/recall_input.gd

27 lines
1.1 KiB
GDScript

class_name RecallInput
extends Node
#rappel d'un pokemon hors visee : un appui sur RT / clic gauche rappelle le pokemon sorti.
#- le pokemon selectionne (HUD) s'il est dehors, sinon le dernier sorti
#- pendant la visee et le lancer, c'est AimState / ThrowState qui gerent cet appui
#
#usage : ajouter ce node comme enfant de ton PlayerCharacter (il le detecte via son parent)
@export var player : PlayerCharacter
@export var throw_action : StringName = &"player_throw"
@export var ignored_states : Array[String] = ["Aim", "Throw"] #valeurs de state_name
func _ready() -> void:
if player == null: player = get_parent() as PlayerCharacter
func _physics_process(_delta : float) -> void:
if player == null or !InputMap.has_action(throw_action): return
if !Input.is_action_just_pressed(throw_action): return
if player.state_machine.curr_state_name in ignored_states: return
var target : SentPokemon = null
var selected : PokemonInstance = GameData.get_selected_pokemon()
if selected: target = SentPokemon.find_for(get_tree(), selected)
if target == null: target = SentPokemon.get_latest(get_tree())
if target: target.recall()