示例#1
0
        public void Mourrir(PersonnageAbstrait unPerso)
        {
            System.Windows.Application.Current.Dispatcher.Invoke(
                DispatcherPriority.Normal,
                (Action) delegate()
            {
                unPerso.ListEtape.Add(new Etape(0, "Je meurs.......", unPerso.Position.X, unPerso.Position.Y));
                PersonnagesMortList.Add(unPerso);
                PersonnagesList.Remove(unPerso);
                meteo.ListObservateur.Remove(unPerso);
                ListObservateur.Remove(unPerso);
                if (unPerso.Equals(reine))
                {
                    List <PersonnageAbstrait> princesses = PersonnagesList.Where(x => x.GetType().Equals(typeof(Princesse))).ToList();

                    if (princesses.Count > 0)
                    {
                        Princesse nouvelleReine = (Princesse)princesses[0];
                        coordMaison.X           = nouvelleReine.Position.X;
                        coordMaison.Y           = nouvelleReine.Position.Y;
                        reine = Reine.RemplacerReine(nouvelleReine);
                        PersonnagesList.Remove(nouvelleReine);
                        PersonnagesList.Add(reine);
                    }
                    else
                    {
                        reine = null;
                    }
                }
            }
                );
        }
示例#2
0
 public override void RetirePersonnage(PersonnageAbstrait perso)
 {
     if (PersonnagesList.Contains(perso))
     {
         perso.Position = null;
         PersonnagesList.Remove(perso);
     }
 }
示例#3
0
 public override void RetirePersonnage(PersonnageAbstrait perso)
 {
     //On vérifie l'existence du personnage
     if (PersonnagesList.Contains(perso))
     {
         //Si il exite, on remove
         PersonnagesList.Remove(perso);
     }
 }
示例#4
0
 public void TourSuivant()
 {
     foreach (Pheromone unePheromone in fourmilliere.ObjetAbstraitList.Where(x => x.GetType().Equals(typeof(Pheromone))).ToList())
     {
         if (unePheromone.Dureevie < 1)
         {
             fourmilliere.ObjetAbstraitList.Remove(unePheromone);
         }
     }
     foreach (ObjetAbstrait unObjet in fourmilliere.ObjetAbstraitList)
     {
         unObjet.TourPasse();
     }
     foreach (PersonnageAbstrait unInsecte in fourmilliere.PersonnageAbstraitList)
     {
         if (unInsecte.GetType().Equals(typeof(Ouvriere)) && unInsecte.TransporteNourriture == true)
         {
             Coordonnees coordonnees = new Coordonnees(unInsecte.Position.X, unInsecte.Position.Y);
             Pheromone   unPheromone = new Pheromone("pheromone", coordonnees);
             fourmilliere.ObjetAbstraitList.Add(unPheromone);
         }
         unInsecte.Avance1Tour(DimensionX, DimensionY);
         if (unInsecte.Pointsdevie <= 0)
         {
             PersonnagesMortList.Add(unInsecte);
             PersonnagesList.Remove(unInsecte);
         }
         //décommentes si tu veux que tes fourmis souillent la map avec leurs feromones
         //unInsecte.TransporteNourriture = true;
     }
     if (Hazard.Next(1, 11) == 1)
     {
         AjouteNourriture();
     }
     tourActuel++;
 }