/// <summary> /// Fonction qui change le Pokémon de l'adversaire s'il lui en reste qui sont vivants. /// </summary> void ChangerOpponentPokemon() { TourOpponentComplété = false; TourUserComplété = false; AfficheurTexte messageA = new AfficheurTexte(Game, PositionBox, Jeu.LargeurBoxMessage, Jeu.HauteurBoxMessage, OpponentTrainer.Nom + "'s " + OpponentPokemon.Nom + " fainted!", IntervalMAJ); Game.Components.Add(messageA); OpponentPokemon = OpponentTrainer.NextPokemonEnVie(); NomOpponentPokemon.RemplacerMessage(OpponentPokemon.ToString()); VieOpponentPokemon.RemplacerMessage(OpponentPokemon.VieToString()); string messageTour = OpponentTrainer.Nom + " send out " + OpponentPokemon.Nom + "!"; AfficheurTexte messageB = new AfficheurTexte(Game, PositionBox, Jeu.LargeurBoxMessage, Jeu.HauteurBoxMessage, messageTour, IntervalMAJ); Game.Components.Add(messageB); }
/// <summary> /// Fonction qui affiche les messages du début d'un combat. /// </summary> private void AfficherMessagesInitialisation() { if (EstOpponentSauvage) { AfficheurTexte messageA = new AfficheurTexte(Game, PositionBox, Jeu.LargeurBoxMessage, Jeu.HauteurBoxMessage, "Wild " + OpponentPokemon.Nom + " appeared!", IntervalMAJ); Game.Components.Add(messageA); } else { OpponentPokemon = OpponentTrainer.NextPokemonEnVie(); AfficheurTexte messageA = new AfficheurTexte(Game, PositionBox, Jeu.LargeurBoxMessage, Jeu.HauteurBoxMessage, "Trainer " + OpponentTrainer.Nom + " wants to battle!", IntervalMAJ); Game.Components.Add(messageA); AfficheurTexte messageA2 = new AfficheurTexte(Game, PositionBox, Jeu.LargeurBoxMessage, Jeu.HauteurBoxMessage, "Trainer " + OpponentTrainer.Nom + " send out " + OpponentPokemon.Nom + "!", IntervalMAJ); Game.Components.Add(messageA2); } AfficheurTexte messageB = new AfficheurTexte(Game, PositionBox, Jeu.LargeurBoxMessage, Jeu.HauteurBoxMessage, UserTrainer.Nom + ": Go, " + UserPokemon.Nom + "!", IntervalMAJ); Game.Components.Add(messageB); }
public override void Update(GameTime gameTime)//mise à jour des tours tant que en vie (both trainer et son pokémon) { bool UserPkmPrioritaire; while (UserTrainer.EstEnVie() && OpponentTrainer.EstEnVie()) { //UserPkmPrioritaire = true; while (UserPokemon.EstEnVie && OpponentPokemon.EstEnVie) { //Système de tours entre pkmns ici AfficherMenuAttaques(); //On va commencer par savoir comment choisir une attaque, après on fera un menu pour fight/bag/pokemons/run if (UserPokemon.Speed < OpponentPokemon.Speed) //le tour du joueur sauf si prouvé du contraire { UserPkmPrioritaire = false; } else { UserPkmPrioritaire = true; } //Important de garder dans la boucle, si la vitesse est changée par une attaque effect, et que l'adversaire ou le user devient plus rapide, il a droit de frapper deux fois if (UserPkmPrioritaire) //Si le pokémon User est plus rapide { OpponentPokemon.Défendre(CalculPointsDamage(UserPokemon, OpponentPokemon, numéroAttaqueChoisie)); //fonctions temporaires, à modifier pour calculer les points de dommages avec la formule UserPokemon.Défendre(CalculPointsDamage(OpponentPokemon, UserPokemon, OpponentPokemon.AttaqueAléatoire())); UserPkmPrioritaire = false; //fin de son tour } else //Si le pokémon adverse est le plus rapide { UserPokemon.Défendre(CalculPointsDamage(OpponentPokemon, UserPokemon, OpponentPokemon.AttaqueAléatoire())); // c'est le tour du pokémon adverse OpponentPokemon.Défendre(CalculPointsDamage(UserPokemon, OpponentPokemon, numéroAttaqueChoisie)); UserPkmPrioritaire = true; } } if (!OpponentPokemon.EstEnVie)//sorti de la boucle de combat: l'un des deux est mort { //Message/animation/whatever, opponent has been defeated! UserPokemon.GainExp(OpponentPokemon.Level * 10); OpponentPokemon = LancerPokémon(0, OpponentTrainer); //Throw next pokemon } else { //trainer pokemon fainted! Tu dois choisir un autre pokémon dans ton inventaire //Ouvrir inventaire, sélectionner un index int prochainPokemon = SélectionnerUnPokémonEnInventaire(); UserPokemon = LancerPokémon(prochainPokemon, UserTrainer); } } //Trainer has been defeated! ou Opponent has been defeated! if (UserTrainer.EstEnVie()) {//le User a gagné //Changement de la toune? //Gagne du cash, ptit message genre "wow le ptit con m'a battu holyshit man" } else {//Le User a perdu //Donne du cash, ptit message genre "wow t'es ben faible ptit con" //User wrap au pokémon center (une méthode de téléportation dans le trainer pour le déplacer perhaps?) } //Le combat est fini EnCombat = false; //Ou on pourrait changer le gamestate? base.Update(gameTime); //Utile? }