示例#1
0
 /// <summary>
 /// Lorsque qu'un personnage finit son tour, en mourrant ou en utilisant tous ses points de déplacement et d'attaque,
 /// cette méthode est appelée. Elle met fin au tour local et réinitialise les composants et les propriétés spécifiques
 /// au personnage qui était en jeu.
 /// </summary>
 void TerminerLeTour()
 {
     NetworkManager.SendFinDeTour(); // Envoie au serveur le message que le tour de ce client est terminé
     IndicePersonnage = IndicePersonnage < JoueurLocal.Personnages.Count - 1 ? IndicePersonnage + 1 : 0;
     BoutonsActions.RéinitialiserDialogueActions(JoueurLocal.Personnages[IndicePersonnage]);
     Cibles.Clear();
     BoutonsActions.VoirBoutonAction(false);
     ZoneDEffet.Visible      = false;
     Portée.Visible          = false;
     ZoneDéplacement.Visible = false;
     TourTerminé             = true;
 }
示例#2
0
 /// <summary>
 /// Initialise les propriétés et les composants qui doivent être assignés
 /// au début du jeu pour le bon fonctionnement de la classe.
 /// </summary>
 public override void Initialize()
 {
     JoueurLocal              = NetworkManager.JoueurLocal;
     JoueurEnnemi             = NetworkManager.JoueurEnnemi;
     Cibles                   = new List <Personnage>();
     ancienIndicePersonnage   = -1;
     IndicePersonnage         = 0;
     TempsDepuisDernierUpdate = 0;
     DéplacementRestant       = DÉPLACEMENT_MAX;
     CréerBtnClasses();
     PersonnageActif = JoueurLocal.Personnages[IndicePersonnage];
     BoutonsActions.RéinitialiserDialogueActions(PersonnageActif);
     BoutonsActions.VoirBoutonAction(NetworkManager.TourActif);
     ZoneDEffet       = Jeu.AOE1;
     Portée           = Jeu.AOE2;
     ZoneDéplacement  = Jeu.AOE3;
     TourTerminé      = true;
     DernierSurvivant = false;
     base.Initialize();
 }
示例#3
0
 /// <summary>
 /// Vérifie si un nouveau personnage est en jeu et gère les propriétés de celui-ci si c'est le cas.
 /// </summary>
 /// <param name="gameTime"></param>
 void VérifierDébutDeTour(GameTime gameTime)
 {
     if (ancienIndicePersonnage != IndicePersonnage || DernierSurvivant)
     {
         PersonnageActif = JoueurLocal.Personnages[IndicePersonnage];
         VérifierÉtatsSpéciaux();
         if (!JoueurLocal.Personnages[IndicePersonnage].EstMort && !JoueurLocal.Personnages[IndicePersonnage]._Frozen)
         {
             TourTerminé = false;
             BoutonsActions.VoirBoutonAction(true);
             PeutAttaquer = true;
             ActiverAttaque();
             ZoneDéplacement.ChangerÉtendueEtPosition(new Vector2(DéplacementRestant * 2), PersonnageActif.Position­);
             ancienIndicePersonnage = IndicePersonnage;
             DéplacementRestant     = DÉPLACEMENT_MAX;
             DernierSurvivant       = false;
         }
         else
         {
             DernierSurvivant = JoueurLocal.Personnages.FindAll(perso => !perso.EstMort).Count == 1;
             if (JoueurLocal.Personnages[IndicePersonnage]._Frozen)
             {
                 NetworkManager.SendÉtatsSpéciaux(JoueurLocal.Personnages[IndicePersonnage], true, new List <string>()
                 {
                     ÉtatSpécial.FREEZE
                 }, new List <bool>()
                 {
                     false
                 });
                 NetworkManager.SendFinDeTour();
             }
             IndicePersonnage = IndicePersonnage < JoueurLocal.Personnages.Count - 1 ? IndicePersonnage + 1 : 0;
             BoutonsActions.RéinitialiserDialogueActions(JoueurLocal.Personnages[IndicePersonnage]);
             BoutonsActions.VoirBoutonAction(false);
         }
     }
 }