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 abstract void ModifieEtat(PersonnageMobilisable p);
public void DeAttacherPersonnage(PersonnageMobilisable observer) { PersonnagesMobilises.Remove(observer); }
public void AttacherPersonnage(PersonnageMobilisable observer) { PersonnagesMobilises.Add(observer); }
public void SetPersonnage(PersonnageMobilisable personnageMobilisable) { Personnage = personnageMobilisable; }
protected PersonnageBehavior(PersonnageMobilisable perso) { Personnage = perso; Update(); }