public static void PlacerPoint(ZoneFinale zone) { if (zone == null) return; var list = new ObjectPointFinder().FindAvailableCases(zone); if (list.Count == 0) { Console.WriteLine("SpawnPoint -PlacerPoint: Impossible de trouver une case disponible dans la zone " + zone); return; } var point = new SpawnPoint(EGame.AgeOfKebab, list[0]); if (!zone.AjouterObjet(point)) Console.WriteLine("SpawnPoint - PlacerPoint: Erreur rencontrée à l'ajout du pt d'apparition " + point + " dans la zone " + zone); }
public static void PlacerPoint(ZoneFinale zone) { if (zone == null) { return; } var list = new ObjectPointFinder().FindAvailableCases(zone); if (list.Count == 0) { Console.WriteLine("SpawnPoint -PlacerPoint: Impossible de trouver une case disponible dans la zone " + zone); return; } var point = new SpawnPoint(EGame.AgeOfKebab, list[0]); if (!zone.AjouterObjet(point)) { Console.WriteLine("SpawnPoint - PlacerPoint: Erreur rencontrée à l'ajout du pt d'apparition " + point + " dans la zone " + zone); } }
protected static bool PlacerPoint( ZoneFinale zonedepart,ZoneFinale zonearrivee, bool doReverseToo,Coordonnees coorReverse) { if (zonedepart == null || zonearrivee == null) { Console.Write("PlacerPoint: La zone de départ/arrivée est nulle ! "); return false; } string accesspointname = "Pt d'accès de " + zonedepart.nom + " vers " + zonearrivee.nom; var accesspoint = new AccessPoint(accesspointname, zonedepart.Simulation.NomDuJeu, zonearrivee); if (doReverseToo) { var list = new AccessPointFinder().Find(zonedepart, zonearrivee); if (list.Count == 0) { Console.WriteLine("Aucun point d'accès ne peut être placé entre la zone " + zonedepart + " et " + zonearrivee); } else { foreach (var coor in list) // Place l'objet dans la première coordonnée valide { accesspoint.SetCoordonnees(coor); if (zonedepart.PeutPlacerObjet(accesspoint)) { if (!zonedepart.AjouterObjet(accesspoint)) // Pas normal donc break; Console.WriteLine("PlacerPoint: Erreur anormale rencontrée au moment de l'ajout du pt d'accès" + accesspoint + " à la zone " + zonedepart); else { foreach (var adj in new AccessPointFinder().FindAjacentOfZone(coor, zonearrivee)) { if (PlacerPoint(zonearrivee, zonedepart, false, adj)) break; } } break; } } } } else { if (coorReverse == null) { Console.WriteLine("Coordonnées du point d'accès reverse est null !"); return false; } accesspoint.SetCoordonnees(coorReverse); if (!zonedepart.AjouterObjet(accesspoint)) { foreach (var obj in zonedepart.Objets) // s'il existe dejà un pt d'acces a cet endroit, rajouter la zone d'arrivée parmi les zones annexes { if (obj is AccessPoint) { if (obj.Case.Equals(coorReverse)) { var objAccess = (AccessPoint) obj; objAccess.AddZoneAnnexe(zonearrivee); // Cas où le point d'accès est relié à plusieurs zones (>= 3) return true; } } } Console.WriteLine("PlacerPoint: Erreur rencontrée au moment de l'ajout du pt d'accès" + accesspoint + " à la zone " + zonedepart); return false; } } return true; }
protected static bool PlacerPoint(ZoneFinale zonedepart, ZoneFinale zonearrivee, bool doReverseToo, Coordonnees coorReverse) { if (zonedepart == null || zonearrivee == null) { Console.Write("PlacerPoint: La zone de départ/arrivée est nulle ! "); return(false); } string accesspointname = "Pt d'accès de " + zonedepart.nom + " vers " + zonearrivee.nom; var accesspoint = new AccessPoint(accesspointname, zonedepart.Simulation.NomDuJeu, zonearrivee); if (doReverseToo) { var list = new AccessPointFinder().Find(zonedepart, zonearrivee); if (list.Count == 0) { Console.WriteLine("Aucun point d'accès ne peut être placé entre la zone " + zonedepart + " et " + zonearrivee); } else { foreach (var coor in list) // Place l'objet dans la première coordonnée valide { accesspoint.SetCoordonnees(coor); if (zonedepart.PeutPlacerObjet(accesspoint)) { if (!zonedepart.AjouterObjet(accesspoint)) // Pas normal donc break; { Console.WriteLine("PlacerPoint: Erreur anormale rencontrée au moment de l'ajout du pt d'accès" + accesspoint + " à la zone " + zonedepart); } else { foreach (var adj in new AccessPointFinder().FindAjacentOfZone(coor, zonearrivee)) { if (PlacerPoint(zonearrivee, zonedepart, false, adj)) { break; } } } break; } } } } else { if (coorReverse == null) { Console.WriteLine("Coordonnées du point d'accès reverse est null !"); return(false); } accesspoint.SetCoordonnees(coorReverse); if (!zonedepart.AjouterObjet(accesspoint)) { foreach (var obj in zonedepart.Objets) // s'il existe dejà un pt d'acces a cet endroit, rajouter la zone d'arrivée parmi les zones annexes { if (obj is AccessPoint) { if (obj.Case.Equals(coorReverse)) { var objAccess = (AccessPoint)obj; objAccess.AddZoneAnnexe(zonearrivee); // Cas où le point d'accès est relié à plusieurs zones (>= 3) return(true); } } } Console.WriteLine("PlacerPoint: Erreur rencontrée au moment de l'ajout du pt d'accès" + accesspoint + " à la zone " + zonedepart); return(false); } } return(true); }