class_name BattleEncounter extends Resource #description d'une rencontre : qui est en face et sous quel format. #a assigner dans l'inspecteur d'un AimTarget (champ "Encounter"). #exemples : # - 1v1 sauvage : wild_pokemon = [1 entree] # - 1 contre plusieurs sauvages : wild_pokemon = [3 entrees] # - dresseur : trainer = un TrainerData, can_flee = false # - combat double : player_slots = 2 et trainer_slots = 2 # - plusieurs contre 1 (boss) : player_slots = 3 et une seule entree adverse @export_group("Adversaires") @export var trainer : TrainerData @export_range(1, 3) var trainer_slots : int = 1 #pokemon que le dresseur envoie en meme temps @export var wild_pokemon : Array[TrainerPartyEntry] = [] #chaque entree = un adversaire (1 emplacement) @export_group("Joueur") @export_range(1, 3) var player_slots : int = 1 #pokemon du joueur envoyes en meme temps @export_group("Regles") @export var can_flee : bool = true #mets false pour un combat de dresseur @export var remove_world_actor_on_win : bool = true #fait disparaitre le pokemon/dresseur du monde apres la victoire func build_participants() -> Array[BattleParticipant]: var result : Array[BattleParticipant] = [] if trainer != null: result.append(BattleSetup.trainer_participant(trainer, trainer_slots)) for entry in wild_pokemon: if entry == null: continue var pokemon : PokemonInstance = entry.create_instance() if pokemon != null: result.append(BattleSetup.wild_participant(pokemon)) return result