Beispiel #1
0
        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?
        }
        /// <summary>
        /// Fonction pour attribuer les points d'expérience au Pokémon du joueur.
        /// </summary>
        private void DonnerExp()
        {
            float exp = OpponentPokemon.GiveExp();

            UserPokemon.GainExp(exp);
        }