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); } } } }
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); } }
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 } }
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); }