def generateCard(self, tileSeed, zoneId): rng = RandomNumGen.RandomNumGen(tileSeed) rowSize = self.game.getRowSize() fishList = FishGlobals.getPondGeneraList(zoneId) for i in xrange(len(fishList)): fishTuple = fishList.pop(0) weight = FishGlobals.getRandomWeight(fishTuple[0], fishTuple[1]) fish = FishBase.FishBase(fishTuple[0], fishTuple[1], weight) fishList.append(fish) emptyCells = self.game.getCardSize() - 1 - len(fishList) rodId = 0 for i in xrange(emptyCells): fishVitals = FishGlobals.getRandomFishVitals(zoneId, rodId, rng) while not fishVitals[0]: fishVitals = FishGlobals.getRandomFishVitals(zoneId, rodId, rng) fish = FishBase.FishBase(fishVitals[1], fishVitals[2], fishVitals[3]) fishList.append(fish) rodId += 1 if rodId > 4: rodId = 0 for i in xrange(rowSize): for j in xrange(self.game.getColSize()): color = self.getCellColor(i * rowSize + j) if i * rowSize + j == self.game.getCardSize() / 2: tmpFish = 'Free' else: choice = rng.randrange(0, len(fishList)) tmpFish = fishList.pop(choice) xPos = BG.CellImageScale * (j - 2) + BG.GridXOffset yPos = BG.CellImageScale * (i - 2) - 0.015 cellGui = BingoCardCell.BingoCardCell(i * rowSize + j, tmpFish, self.model, color, self, image_scale=BG.CellImageScale, pos=(xPos, 0, yPos)) self.cellGuiList.append(cellGui)
def generateCard(self, tileSeed, zoneId): rng = RandomNumGen.RandomNumGen(tileSeed) fishList = FishGlobals.getPondGeneraList(zoneId) emptyCells = self.cardSize - 1 - len(fishList) rodId = 0 for i in xrange(emptyCells): fish = FishGlobals.getRandomFishVitals(zoneId, rodId, rng) while not fish[0]: fish = FishGlobals.getRandomFishVitals(zoneId, rodId, rng) fishList.append((fish[1], fish[2])) rodId += 1 if rodId > 4: rodId = 0 for index in xrange(self.cardSize): if index != self.cardSize / 2: choice = rng.randrange(0, len(fishList)) self.cellList.append(fishList.pop(choice)) else: self.cellList.append((None, None)) return None
def generateCatch(self, av, zoneId): if len(av.fishTank) >= av.getMaxFishTank(): return [FishGlobals.OverTankLimit, 0, 0, 0] rand = random.random() * 100.0 for cutoff in FishGlobals.SortedProbabilityCutoffs: if rand <= cutoff: itemType = FishGlobals.ProbabilityDict[cutoff] break if av.doId in self.requestedFish: genus, species = self.requestedFish[av.doId] weight = FishGlobals.getRandomWeight(genus, species) fish = FishBase(genus, species, weight) fishType = av.fishCollection.collectFish(fish) if fishType == FishGlobals.COLLECT_NEW_ENTRY: itemType = FishGlobals.FishItemNewEntry elif fishType == FishGlobals.COLLECT_NEW_RECORD: itemType = FishGlobals.FishItemNewRecord else: itemType = FishGlobals.FishItem netlist = av.fishCollection.getNetLists() av.d_setFishCollection(netlist[0], netlist[1], netlist[2]) av.fishTank.addFish(fish) netlist = av.fishTank.getNetLists() av.d_setFishTank(netlist[0], netlist[1], netlist[2]) del self.requestedFish[av.doId] return [itemType, genus, species, weight] if itemType == FishGlobals.FishItem: success, genus, species, weight = FishGlobals.getRandomFishVitals(zoneId, av.getFishingRod()) fish = FishBase(genus, species, weight) fishType = av.fishCollection.collectFish(fish) if fishType == FishGlobals.COLLECT_NEW_ENTRY: itemType = FishGlobals.FishItemNewEntry elif fishType == FishGlobals.COLLECT_NEW_RECORD: itemType = FishGlobals.FishItemNewRecord else: itemType = FishGlobals.FishItem netlist = av.fishCollection.getNetLists() av.d_setFishCollection(netlist[0], netlist[1], netlist[2]) av.fishTank.addFish(fish) netlist = av.fishTank.getNetLists() av.d_setFishTank(netlist[0], netlist[1], netlist[2]) return [itemType, genus, species, weight] elif itemType == FishGlobals.BootItem: return [itemType, 0, 0, 0] elif itemType == FishGlobals.QuestItem: itemId = simbase.air.questManager.toonCaughtFishingItem(av) if itemId != -1: return [itemType, itemId, 0, 0] else: success, genus, species, weight = FishGlobals.getRandomFishVitals(zoneId, av.getFishingRod()) fish = FishBase(genus, species, weight) fishType = av.fishCollection.collectFish(fish) if fishType == FishGlobals.COLLECT_NEW_ENTRY: itemType = FishGlobals.FishItemNewEntry elif fishType == FishGlobals.COLLECT_NEW_RECORD: itemType = FishGlobals.FishItemNewRecord else: itemType = FishGlobals.FishItem netlist = av.fishCollection.getNetLists() av.d_setFishCollection(netlist[0], netlist[1], netlist[2]) av.fishTank.addFish(fish) netlist = av.fishTank.getNetLists() av.d_setFishTank(netlist[0], netlist[1], netlist[2]) return [itemType, genus, species, weight] else: money = FishGlobals.Rod2JellybeanDict[av.getFishingRod()] av.addMoney(money) return [itemType, money, 0, 0]
def generateCatch(self, av, zoneId): if len(av.fishTank) >= av.getMaxFishTank(): return [FishGlobals.OverTankLimit, 0, 0, 0] rand = random.random() * 100.0 for cutoff in FishGlobals.SortedProbabilityCutoffs: if rand <= cutoff: itemType = FishGlobals.ProbabilityDict[cutoff] break if av.doId in self.requestedFish: genus, species = self.requestedFish[av.doId] weight = FishGlobals.getRandomWeight(genus, species) fish = FishBase(genus, species, weight) fishType = av.fishCollection.collectFish(fish) if fishType == FishGlobals.COLLECT_NEW_ENTRY: itemType = FishGlobals.FishItemNewEntry elif fishType == FishGlobals.COLLECT_NEW_RECORD: itemType = FishGlobals.FishItemNewRecord else: itemType = FishGlobals.FishItem netlist = av.fishCollection.getNetLists() av.d_setFishCollection(netlist[0], netlist[1], netlist[2]) av.fishTank.addFish(fish) netlist = av.fishTank.getNetLists() av.d_setFishTank(netlist[0], netlist[1], netlist[2]) del self.requestedFish[av.doId] return [itemType, genus, species, weight] if itemType == FishGlobals.FishItem: success, genus, species, weight = FishGlobals.getRandomFishVitals( zoneId, av.getFishingRod()) fish = FishBase(genus, species, weight) fishType = av.fishCollection.collectFish(fish) if fishType == FishGlobals.COLLECT_NEW_ENTRY: itemType = FishGlobals.FishItemNewEntry elif fishType == FishGlobals.COLLECT_NEW_RECORD: itemType = FishGlobals.FishItemNewRecord else: itemType = FishGlobals.FishItem netlist = av.fishCollection.getNetLists() av.d_setFishCollection(netlist[0], netlist[1], netlist[2]) av.fishTank.addFish(fish) netlist = av.fishTank.getNetLists() av.d_setFishTank(netlist[0], netlist[1], netlist[2]) return [itemType, genus, species, weight] elif itemType == FishGlobals.BootItem: return [itemType, 0, 0, 0] elif itemType == FishGlobals.QuestItem: itemId = simbase.air.questManager.toonCaughtFishingItem(av) if itemId != -1: return [itemType, itemId, 0, 0] else: success, genus, species, weight = FishGlobals.getRandomFishVitals( zoneId, av.getFishingRod()) fish = FishBase(genus, species, weight) fishType = av.fishCollection.collectFish(fish) if fishType == FishGlobals.COLLECT_NEW_ENTRY: itemType = FishGlobals.FishItemNewEntry elif fishType == FishGlobals.COLLECT_NEW_RECORD: itemType = FishGlobals.FishItemNewRecord else: itemType = FishGlobals.FishItem netlist = av.fishCollection.getNetLists() av.d_setFishCollection(netlist[0], netlist[1], netlist[2]) av.fishTank.addFish(fish) netlist = av.fishTank.getNetLists() av.d_setFishTank(netlist[0], netlist[1], netlist[2]) return [itemType, genus, species, weight] else: money = FishGlobals.Rod2JellybeanDict[av.getFishingRod()] av.addMoney(money) return [itemType, money, 0, 0]