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 AjouterOuvriere() { PersonnageAbstrait g = Fabrique.CreerOuvriere(String.Format("Ouvriere {0}", PersonnagesList.Count), Fabrique.CreerPosition(coordMaison.X, coordMaison.Y), coordMaison); PersonnagesList.Add(g); ListObservateur.Add(g); meteo.ListObservateur.Add(g); }
public void AjouterFourmi(PersonnageAbstrait fourmi) { System.Windows.Application.Current.Dispatcher.Invoke( DispatcherPriority.Normal, (Action) delegate() { PersonnagesList.Add(fourmi); meteo.Attach(fourmi); ListObservateur.Add(fourmi); } ); }
public void Detach(PersonnageAbstrait observer) { ListObservateur.Remove(observer); }
public void Attach(PersonnageAbstrait observer) { ListObservateur.Add(observer); }
public void Attach(PersonnageAbstrait observer) { ListObservateur.Add(observer); observer.maj(this.Etat); }