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 !");
                                }
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        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 !");
                    }
                }
            }
        }