27 lines
1.1 KiB
GDScript
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()
|