public override PersonnageAbstrait CreerPersonnage(int typePerso, SujetObserveAbstrait unEtatMajor, string unNom, ZoneAbstraite unePosition) { PersonnageAbstrait perso; switch (typePerso) { case typeCamion: perso = new Camion(); break; case typeVoiture: perso = new Voiture(); perso.comportementSeDeplacer = new ComportementSeDeplacerVoiture(); perso.comportementSeDeplacer.personnage = perso; break; case typeMoto: default: perso = new Moto(); break; } perso.Nom = unNom; perso.Position = unePosition; unePosition.listePersonnages.Add(perso); if (unEtatMajor != null) { unEtatMajor.AjouterObservateur(perso); } return(perso); }
public void LinkObject(Coordonnees coor, SujetObserveAbstrait obj, Grille grille) { if (coor == null) { return; } if (!coor.EstValide()) { return; } if (grille == null) { return; } if (TestNullObject(obj)) { return; } var node = GetNode(coor, grille); if (node == null) { Console.WriteLine("LinkCaseToZone: Impossible de récupérer une node viable en " + coor); return; } AttachObjectToCase(node, obj); AttachCaseToObject(node, obj); }
protected virtual void AttachCaseToObject(Node <Case> node, SujetObserveAbstrait obj) { if (obj != null) { obj.Attach(node.Value); } }
private bool TestNullObject(SujetObserveAbstrait obj) { if (obj == null) { throw new NullReferenceException("L'objet à relier est null !"); } return(false); }
public void LinkObject(Coordonnees coor, SujetObserveAbstrait obj, Grille grille) { if (coor == null) return; if (!coor.EstValide()) return; if(grille == null) return; if (TestNullObject(obj)) return; var node = GetNode(coor,grille); if (node == null) { Console.WriteLine("LinkCaseToZone: Impossible de récupérer une node viable en " + coor); return; } AttachObjectToCase(node, obj); AttachCaseToObject(node, obj); }
protected override sealed void AttachCaseToObject(Node<Case> node, SujetObserveAbstrait obj) { //obj.DeAttachAll(); // L'objet,La zone et le personnages ne doivent avoir que la case comme IObserverAbstrait ! /* Retire les objets cases parmi les observers */ var list = obj.GetObservers(); int count = list.Count; for (int i=0; i< count; ++i) { if (list[i] is Case) { list.RemoveAt(i); --i; --count; } } }
protected sealed override void AttachCaseToObject(Node <Case> node, SujetObserveAbstrait obj) { //obj.DeAttachAll(); // L'objet,La zone et le personnages ne doivent avoir que la case comme IObserverAbstrait ! /* Retire les objets cases parmi les observers */ var list = obj.GetObservers(); int count = list.Count; for (int i = 0; i < count; ++i) { if (list[i] is Case) { list.RemoveAt(i); --i; --count; } } }
public override PersonnageAbstrait CreerPersonnage(int typePerso, SujetObserveAbstrait unEtatMajor, string unNom, ZoneAbstraite unePosition) { throw new NotImplementedException(); }
protected override void AttachObjectToCase(Node <Case> node, SujetObserveAbstrait obj) { node.Value.SetZoneToObserve(null); }
protected abstract override void AttachObjectToCase(Node <Case> node, SujetObserveAbstrait obj);
protected override void AttachObjectToCase(Node <Case> node, SujetObserveAbstrait obj) { node.Value.SetPersonnageToObserve((PersonnageAbstract)obj); }
protected abstract override void AttachObjectToCase(Node<Case> node, SujetObserveAbstrait obj);
protected override void AttachObjectToCase(Node<Case> node, SujetObserveAbstrait obj) { node.Value.SetPersonnageToObserve(null); }
private bool TestNullObject(SujetObserveAbstrait obj) { if (obj == null) throw new NullReferenceException("L'objet à relier est null !"); return false; }
protected virtual void AttachCaseToObject(Node<Case> node, SujetObserveAbstrait obj) { if (obj != null) obj.Attach(node.Value); }
protected override void AttachObjectToCase(Node<Case> node, SujetObserveAbstrait obj) { node.Value.SetZoneToObserve((ZoneFinale) obj); }