示例#1
0
    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]
示例#2
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]