def _genFloorLayout(self): rng = self.getRng() startingRoomIDs = CountryClubRoomSpecs.BossbotCountryClubEntranceIDs middleRoomIDs = CountryClubRoomSpecs.BossbotCountryClubMiddleRoomIDs finalRoomIDs = CountryClubRoomSpecs.BossbotCountryClubFinalRoomIDs numBattlesLeft = ToontownGlobals.CountryClubNumBattles[ self.countryClubId] finalRoomId = rng.choice(finalRoomIDs) numBattlesLeft -= CountryClubRoomSpecs.getNumBattles(finalRoomId) middleRoomIds = [] middleRoomsLeft = self.numRooms - 2 numBattles2middleRoomIds = invertDictLossless( CountryClubRoomSpecs.middleRoomId2numBattles) allBattleRooms = [] for num, roomIds in numBattles2middleRoomIds.items(): if num > 0: allBattleRooms.extend(roomIds) while 1: allBattleRoomIds = list(allBattleRooms) rng.shuffle(allBattleRoomIds) battleRoomIds = self._chooseBattleRooms(numBattlesLeft, allBattleRoomIds) if battleRoomIds is not None: break CountryClubLayout.notify.info( 'could not find a valid set of battle rooms, trying again') middleRoomIds.extend(battleRoomIds) middleRoomsLeft -= len(battleRoomIds) if middleRoomsLeft > 0: actionRoomIds = numBattles2middleRoomIds[0] for i in xrange(middleRoomsLeft): roomId = rng.choice(actionRoomIds) actionRoomIds.remove(roomId) middleRoomIds.append(roomId) roomIds = [] roomIds.append(rng.choice(startingRoomIDs)) middleRoomIds.sort() print 'middleRoomIds=%s' % middleRoomIds roomIds.extend(middleRoomIds) roomIds.append(finalRoomId) return roomIds
def _genFloorLayout(self): rng = self.getRng() startingRoomIDs = CountryClubRoomSpecs.BossbotCountryClubEntranceIDs middleRoomIDs = CountryClubRoomSpecs.BossbotCountryClubMiddleRoomIDs finalRoomIDs = CountryClubRoomSpecs.BossbotCountryClubFinalRoomIDs numBattlesLeft = ToontownGlobals.CountryClubNumBattles[self.countryClubId] finalRoomId = rng.choice(finalRoomIDs) numBattlesLeft -= CountryClubRoomSpecs.getNumBattles(finalRoomId) middleRoomIds = [] middleRoomsLeft = self.numRooms - 2 numBattles2middleRoomIds = invertDictLossless(CountryClubRoomSpecs.middleRoomId2numBattles) allBattleRooms = [] for num, roomIds in numBattles2middleRoomIds.items(): if num > 0: allBattleRooms.extend(roomIds) while 1: allBattleRoomIds = list(allBattleRooms) rng.shuffle(allBattleRoomIds) battleRoomIds = self._chooseBattleRooms(numBattlesLeft, allBattleRoomIds) if battleRoomIds is not None: break CountryClubLayout.notify.info('could not find a valid set of battle rooms, trying again') middleRoomIds.extend(battleRoomIds) middleRoomsLeft -= len(battleRoomIds) if middleRoomsLeft > 0: actionRoomIds = numBattles2middleRoomIds[0] for i in xrange(middleRoomsLeft): roomId = rng.choice(actionRoomIds) actionRoomIds.remove(roomId) middleRoomIds.append(roomId) roomIds = [] roomIds.append(rng.choice(startingRoomIDs)) middleRoomIds.sort() print 'middleRoomIds=%s' % middleRoomIds roomIds.extend(middleRoomIds) roomIds.append(finalRoomId) return roomIds