public override void ModifieEtat(PersonnageMobilisable p) { if (p is Client) { ModifieEtat((Client)p); } else throw new InvalidCastException("Le personnage à modifier n'est pas de type client"); }
public override void ModifieEtat(PersonnageMobilisable p) { if (p is Client) { ModifieEtat((Client)p); } else { throw new InvalidCastException("Le personnage à modifier n'est pas de type client"); } }
public Coordonnees CaseSuivante(PersonnageMobilisable perso) { if(perso == null) throw new NullReferenceException("Impossible de chercher le chemin pour un personnage null !"); if(perso.ZoneActuelle == null) throw new NullReferenceException("Le personnage n'est assigné à aucune zone !"); var objets = RecupererListeObjets(perso.ZoneActuelle); if (objets.Count == 0) return null; var chemins = RecupererChemins(perso.ZoneActuelle.Simulation.Tableau, perso.Case,objets); var item = ChoisirLeCheminLePlusCourt(chemins); if (chemins[item].Count == 0) return null; Node<Case> node = chemins[item][0] as Node<Case>; if(node == null) throw new InvalidCastException("La node n'est pas au bon format ! (Node<Case>)"); if (TestEgaliteObjet(objets[item], node.Coor)) return null; Console.WriteLine("Case Obtenue: " + node.Coor); return node.Coor; }
public override void ModifieEtat(PersonnageMobilisable p) { p.Etat = new Etat_EnVol(); Console.WriteLine(String.Format("{0} est maintenant {1}", p.Nom, this.Nom)); }
public void DeAttacherPersonnage(PersonnageMobilisable observer) { PersonnagesMobilises.Remove(observer); }
public void AttacherPersonnage(PersonnageMobilisable observer) { PersonnagesMobilises.Add(observer); }
public abstract void ModifieEtat(PersonnageMobilisable p);
public void SetPersonnage(PersonnageMobilisable personnageMobilisable) { Personnage = personnageMobilisable; }
protected PersonnageBehavior(PersonnageMobilisable perso) { Personnage = perso; Update(); }