public void Update()
 {
     if (Personnage == null) throw new NullReferenceException("Aucun personnage n'est assigné à ce comportement !");
     ZonePrincipale = Personnage.ZonePrincipale;
     ZoneActuelle = Personnage.ZoneActuelle;
     EtatPersonnage = Personnage.Etat;
 }
 public override void Update()
 {
     DeAttacherTousLesPersonnagesMobilises();
     if (Simulation != null)
     {
         ZonePrincipale = Simulation.ZoneGenerale;
     }
     ChargerPersonnagesAMobiliser();
 }
예제 #3
0
 public void SetZones(ZoneGenerale zonegenerale, ZoneFinale zoneactuelle) // définit le contexte d'exécution
 {
     ZonePrincipale = zonegenerale;
     ZoneActuelle   = zoneactuelle;
     if (Comportement != null)
     {
         Comportement.Update();
     }
 }
 public void ConstruireGrilleDepuis(ZoneGenerale zonegenerale)
 {
     ConstruireCases();
     ReinitialiserNodes();
     if (zonegenerale == null) return;
     ConstruireGrilleDepuisZone(zonegenerale);
     LierZoneAuTableau(zonegenerale);
     //            zonegenerale.Simulation.Tableau.Afficher();
 }
 public void Update()
 {
     if (Personnage == null)
     {
         throw new NullReferenceException("Aucun personnage n'est assigné à ce comportement !");
     }
     ZonePrincipale = Personnage.ZonePrincipale;
     ZoneActuelle   = Personnage.ZoneActuelle;
     EtatPersonnage = Personnage.Etat;
 }
 public override void Update()
 {
     DeAttacherTousLesPersonnagesMobilises();
     if (Simulation != null) ZonePrincipale = Simulation.ZoneGenerale;
     ChargerPersonnagesAMobiliser();
 }
        protected override void ConstruireGrilleDepuisZone(ZoneGenerale zonegenerale)
        {
            var zones = zonegenerale.ObtenirZonesFinales();
            foreach (var zone in zones)
            {
                if (zone == null) continue;
                // On lie toutes les cases adjacentes de la zone entre elles

                foreach (var coor1 in zone.Cases)
                {
                    foreach (var coor2 in zone.Cases)
                    {
                        if (coor1.Equals(coor2)) continue;
                        if (coor1.EstAdjacent(coor2))
                        {
                            var node = (Vertex)Tableau.ElementAt(coor1);
                            node.Edges.Add(new Edge((Vertex)Tableau.ElementAt(coor2), 1));
                        }
                    }
                }
                foreach (var zone2 in zones)
                {
                    if (zone2 == null) continue;
                     // On lie tous les points d'accès adjacents dans des zones différentes

                    if (zone.Equals(zone2)) continue;
                    // on compare mtn les pts d'accès entre eux
                    foreach (var obj in zone.Objets)
                    {
                        if (obj is AccessPoint)
                        {
                            foreach (var obj2 in zone2.Objets)
                            {
                                if (obj2 is AccessPoint)
                                {
                                    if (obj.Case.EstAdjacent(obj2.Case))
                                    {
                                        var node = (Vertex)Tableau.ElementAt(obj.Case);
                                        node.Edges.Add(new Edge((Vertex)Tableau.ElementAt(obj2.Case), 1));
                                    }
                                }
                            }
                        }
                    }

                }
            }
        }
 private void LierZoneAuTableau(ZoneGenerale zoneGenerale)
 {
     zoneGenerale.LierAuTableauDeJeu();
 }
 protected abstract void ConstruireGrilleDepuisZone(ZoneGenerale zoneGenerale);
 protected override void ConstruireGrilleDepuisZone(ZoneGenerale zoneGenerale)
 {
     throw new NotImplementedException();
 }