void Start() { if (this.dungeonRoomTemplate is RewardRoom) { RewardRoom roomRemplate = this.dungeonRoomTemplate as RewardRoom; // @TODO instantiate all the stuff that's needed } else if (this.dungeonRoomTemplate is MonsterRoom) { MonsterRoom roomRemplate = this.dungeonRoomTemplate as MonsterRoom; // @TODO instantiate all the stuff that's needed } }
void LoadRoomAtCoordinate(Vector2Int roomCoordinate) { IDungeonRoomTemplate roomTemplate = GetOrGenerateRoomTemplateForCoordinate(roomCoordinate); var position = ConvertRoomCoordinateToWorldCoordinate(roomCoordinate); GameObject loadedRoom; DungeonRoom dungeonRoom; if (roomTemplate is RewardRoomTemplate) { var template = roomTemplate as RewardRoomTemplate; loadedRoom = Container.InstantiatePrefab(RewardRoomPrefab); RewardRoom room = loadedRoom.GetComponent <RewardRoom>(); dungeonRoom = room; } else if (roomTemplate is MonsterRoomTemplate) { var template = roomTemplate as MonsterRoomTemplate; loadedRoom = Container.InstantiatePrefab(MonsterRoomPrefab); MonsterRoom room = loadedRoom.GetComponent <MonsterRoom>(); dungeonRoom = room; room.player = this.player; } else { throw new System.NotImplementedException($"Unimplemented room template of type {roomTemplate.GetType()}"); } dungeonRoom.transform.transform.position = position; dungeonRoom.dungeonRoomTemplate = roomTemplate; dungeonRoom.roomCoordinate = roomCoordinate; this.loadedRooms.Add(dungeonRoom); }