protected override void InsererPersonnagesRestants() { if (PersonnagesToInsert <= 0) { Console.WriteLine("Il ne reste plus de personnages à insérer"); return; } //Insertion Personnages: Trouver la zone et le lieu où se trouvent les SpawnPoints foreach (var zone in ZonePrincipale.ObtenirZonesFinales()) { foreach (var objet in zone.Objets) // Pour chaque objet de cette zone finale { if (objet is SpawnPoint) // Si c'est un pt d'apparition { // Console.WriteLine("Objet SpawnPoint trouvé " + objet + " dans la zone " + zone); var casesAdjacentes = Coordonnees.ObtenirCasesAdjacentes(objet.Case); foreach (var coor in casesAdjacentes) // Pour chaque case adjacente à ce pt d'accès { if (zone.ContientCoordonnees(coor)) // De cette zone ! { // Console.WriteLine("Case adjacente trouvée: " + coor + " dans la " + zone); var node = (Node <Case>)zone.Simulation.Tableau[coor.X, coor.Y]; CaseAgeOfKebab c = node.Value as CaseAgeOfKebab; if (c == null) { throw new InvalidCastException("La case n'est pas au format CaseAgeOfKebab"); } if (c.Walkable) // Si un personnage peut aller dans cette case, alors .. { if (PersonnagesToInsert > 0) { var perso = PersonnageToInsertAt(coor); if (zone.AjouterPersonnage(perso)) { Console.WriteLine("Insertion du personnage " + perso); perso.SetZones(ZonePrincipale, zone); ++PersonnagesInseres; --PersonnagesToInsert; AttacherPersonnage((Client)perso); } } } else { Console.WriteLine("Cette Case n'est pas Walkable !"); } } } } } } }
private void AfficherCasesNonWalkable() { var tableau = ZonePrincipale.Simulation.Tableau; for (int i = 0; i < GameManager.Longueur; ++i) { for (int j = 0; j < GameManager.Largeur; ++j) { var node = (Node <Case>)tableau[i, j]; CaseAgeOfKebab c = (CaseAgeOfKebab)node.Value; if (!c.Walkable) { Console.WriteLine("La case " + new Coordonnees(i, j) + " n'est pas Walkable !"); } } } }