Tales-of-PKMN/game/battle/battle_encounter.gd

34 lines
1.4 KiB
GDScript

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