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; } } } ); }
public override void RetirePersonnage(PersonnageAbstrait perso) { if (PersonnagesList.Contains(perso)) { perso.Position = null; PersonnagesList.Remove(perso); } }
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); } }
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++; }