def generateCatch(self, av, zoneId): if len(av.fishTank) >= av.getMaxFishTank(): return [FishGlobals.OverTankLimit, 0, 0, 0] else: caughtItem = self.air.questManager.toonFished(av, zoneId) if caughtItem: return [FishGlobals.QuestItem, caughtItem, 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 collectionNetList = av.fishCollection.getNetLists() av.d_setFishCollection(collectionNetList[0], collectionNetList[1], collectionNetList[2]) av.fishTank.addFish(fish) tankNetList = av.fishTank.getNetLists() av.d_setFishTank(tankNetList[0], tankNetList[1], tankNetList[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 collectionNetList = av.fishCollection.getNetLists() av.d_setFishCollection(collectionNetList[0], collectionNetList[1], collectionNetList[2]) av.fishTank.addFish(fish) tankNetList = av.fishTank.getNetLists() av.d_setFishTank(tankNetList[0], tankNetList[1], tankNetList[2]) return [itemType, genus, species, weight] if itemType == FishGlobals.BootItem: return [itemType, 0, 0, 0] 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] av.addStat(ToontownGlobals.STAT_FISH) 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]) messenger.send('topToonsManager-event', [av.doId, TopToonsGlobals.CAT_FISH, 1]) av.addStat(ToontownGlobals.STAT_FISH) 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]) messenger.send('topToonsManager-event', [av.doId, TopToonsGlobals.CAT_FISH, 1]) av.addStat(ToontownGlobals.STAT_FISH) return [itemType, genus, species, weight] else: money = FishGlobals.Rod2JellybeanDict[av.getFishingRod()] av.addMoney(money) return [itemType, money, 0, 0]