Esempio n. 1
0
 /// <summary>
 /// Fonction de transition qui fait le tour du joueur et renvoie à l'état IN_BATTLE pour compléter le tour.
 /// </summary>
 void GérerTransitionTOUR_USER()
 {
     GamePad.SetVibration(PlayerIndex.One, 1, 0);
     NomOpponentPokemon.Visible = true;
     VieOpponentPokemon.Visible = true;
     if (UserPokemon.EstEnVie)
     {
         EffectuerTourUser(MainMenu.NuméroChoisi);
         VieOpponentPokemon.RemplacerMessage(OpponentPokemon.VieToString());
         TourUserComplété = true;
         if (CombatState != CombatState.END)
         {
             CombatState = CombatState.IN_BATTLE;
         }
     }
     else
     {
         if (MainMenu.PokémonChangé)
         {
             TourOpponentComplété = false;
             TourUserComplété     = false;
             ChangerUserPokémon(MainMenu.NuméroChoisi);
             MainMenu.BattleMenuState = BattleMenuState.MAIN;
             CombatState = CombatState.BATTLE_MENU;
         }
     }
 }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        /// <summary>
        /// Fonction qui ajoute les textes de vie et de nom des pokémons en combat.
        /// </summary>
        private void AjouterLesTextesFixes()
        {
            PositionInfoUserPokemon     = new Vector2(Game.Window.ClientBounds.Width - (UserPokemon.ToString().Count() + 3) * Cadre.TAILLE_TILE, Game.Window.ClientBounds.Height - Cadre.TAILLE_TILE * 9);
            PositionInfoOpponentPokemon = new Vector2(Cadre.TAILLE_TILE, Game.Window.ClientBounds.Height / 10);

            NomOpponentPokemon = new TexteFixe(Game, PositionInfoOpponentPokemon, OpponentPokemon.ToString());
            Game.Components.Add(NomOpponentPokemon);

            NomUserPokemon = new TexteFixe(Game, PositionInfoUserPokemon, UserPokemon.ToString());
            Game.Components.Add(NomUserPokemon);

            VieOpponentPokemon = new TexteFixe(Game, new Vector2(PositionInfoOpponentPokemon.X, PositionInfoOpponentPokemon.Y + Cadre.TAILLE_TILE), OpponentPokemon.VieToString());
            Game.Components.Add(VieOpponentPokemon);

            VieUserPokemon = new TexteFixe(Game, new Vector2(PositionInfoUserPokemon.X, PositionInfoUserPokemon.Y + Cadre.TAILLE_TILE), UserPokemon.VieToString());
            Game.Components.Add(VieUserPokemon);


            NomOpponentPokemon.Visible = false;
            NomUserPokemon.Visible     = false;
            VieOpponentPokemon.Visible = false;
            VieUserPokemon.Visible     = false;
        }
Esempio n. 4
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?
        }
Esempio n. 5
0
        /// <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);
        }