private void HandleEnemies(DungeonGeneratorLevelGrid2D level)
        {
            // Iterate through all the rooms
            foreach (var roomInstance in level.RoomInstances)
            {
                // Get the transform that holds all the enemies
                var enemiesHolder = roomInstance.RoomTemplateInstance.transform.Find("Enemies");

                // Skip this room if there are no enemies
                if (enemiesHolder == null)
                {
                    continue;
                }

                // Iterate through all enemies (children of the enemiesHolder)
                foreach (Transform enemyTransform in enemiesHolder)
                {
                    var enemy = enemyTransform.gameObject;

                    // Roll a dice and check whether to spawn this enemy or not
                    // Use the provided Random instance so that the whole generator uses the same seed and the results can be reproduced
                    if (Random.NextDouble() < EnemySpawnChance)
                    {
                        enemy.SetActive(true);
                    }
                    else
                    {
                        enemy.SetActive(false);
                    }
                }
            }
        }
예제 #2
0
            public override void Run(DungeonGeneratorLevelGrid2D level)
            {
                foreach (var roomInstance in level.RoomInstances)
                {
                    var roomTemplateInstance = roomInstance.RoomTemplateInstance;

                    // Find floor tilemap layer
                    var tilemaps = RoomTemplateUtilsGrid2D.GetTilemaps(roomTemplateInstance);
                    var floor    = tilemaps.Single(x => x.name == "Floor").gameObject;

                    // Add floor collider
                    AddFloorCollider(floor);
                }
            }
예제 #3
0
            public override void Run(DungeonGeneratorLevelGrid2D level)
            {
                foreach (var roomInstance in level.RoomInstances)
                {
                    var roomTemplateInstance = roomInstance.RoomTemplateInstance;

                    // Find floor tilemap layer
                    // Add floor collider

                    // Add the room manager component
                    var roomManager = roomTemplateInstance.AddComponent <CurrentRoomDetectionRoomManager>();
                    roomManager.RoomInstance = roomInstance;

                    // Add current room detection handler
                }
            }
예제 #4
0
            public override void Run(DungeonGeneratorLevelGrid2D level)
            {
                foreach (var roomInstance in level.RoomInstances)
                {
                    var roomTemplateInstance = roomInstance.RoomTemplateInstance;

                    // Find floor tilemap layer
                    var tilemaps = RoomTemplateUtilsGrid2D.GetTilemaps(roomTemplateInstance);
                    var floor    = tilemaps.Single(x => x.name == "Floor").gameObject;

                    // Add floor collider
                    AddFloorCollider(floor);

                    // Add current room detection handler
                    floor.AddComponent <CurrentRoomDetectionTriggerHandler>();
                }
            }
 public override void Run(DungeonGeneratorLevelGrid2D level)
 {
     // Implement the logic here
 }
 public override void Run(DungeonGeneratorLevelGrid2D level)
 {
     HandleEnemies(level);
 }