def setFromAvatar(self, av):
        rewardIds = []
        for q in av.quests:
            questId, fromNpcId, toNpcId, rewardId, toonProgress = q
            if rewardId == Quests.NA:
                rewardId = Quests.getFinalRewardId(questId, fAll=1)
            rewardIds.append(rewardId)

        self.notify.debug('Ignoring rewards: %s' % rewardIds)
        self.setRewardIndex(av.rewardTier, rewardIds, av.rewardHistory)
        fishHp = int(len(av.fishCollection) / FishGlobals.FISH_PER_BONUS)
        self.notify.debug('Adding %s hp for fish collection' % fishHp)
        self.maxHp += fishHp
        flowerHp = int(len(av.flowerCollection) / GardenGlobals.FLOWERS_PER_BONUS)
        self.notify.debug('Adding %s hp for fish collection' % flowerHp)
        self.maxHp += flowerHp
        HQdepts = (ToontownGlobals.cogHQZoneId2deptIndex(ToontownGlobals.SellbotHQ), ToontownGlobals.cogHQZoneId2deptIndex(ToontownGlobals.LawbotHQ), ToontownGlobals.cogHQZoneId2deptIndex(ToontownGlobals.CashbotHQ))
        levels = av.getCogLevels()
        cogTypes = av.getCogTypes()
        suitHp = 0
        for dept in HQdepts:
            suitHp += levels[dept]

        self.notify.debug('Adding %s hp for cog suits' % suitHp)
        self.maxHp += suitHp
        kartingHp = int(av.kartingTrophies.count(1) / RaceGlobals.TrophiesPerCup)
        self.notify.debug('Adding %s hp for karting trophies' % kartingHp)
        self.maxHp += kartingHp
        golfHp = int(av.golfTrophies.count(True) / GolfGlobals.TrophiesPerCup)
        self.notify.debug('Adding %s hp for golf trophies' % golfHp)
        self.maxHp += golfHp
 def requestEnter(self):
     avatarID = self.air.getAvatarIdFromSender()
     assert(self.notify.debug("requestEnter: avatarID:%s" % avatarID))
     # Ext cog hq doors require all cog disguise parts
     # does the toon have a complete cog disguise?
     dept = ToontownGlobals.cogHQZoneId2deptIndex(self.destinationZone)
     av = self.air.doId2do.get(avatarID)
     if av:
         if self.doorType == DoorTypes.EXT_COGHQ and self.isLockedDoor():
             parts = av.getCogParts()
             if CogDisguiseGlobals.isSuitComplete(parts, dept):
                 allowed = 1
             else:
                 allowed = 0
         # Interior doors allow all
         else:
             allowed = 1
             
     # Check that player has full access
     if not ToontownAccessAI.canAccess(avatarID, self.zoneId):
         allowed = 0
             
     # Now send a message back - either reject or accept
     if not allowed:
         self.sendReject(avatarID, self.isLockedDoor())
     else:
         self.enqueueAvatarIdEnter(avatarID)
         self.sendUpdateToAvatarId(avatarID, "setOtherZoneIdAndDoId",
                                   [self.destinationZone, self.otherDoor.getDoId()])
 def handleToonsWon(self, toons):
     extraMerits = [0, 0, 0, 0]
     amount = ToontownGlobals.StageNoticeRewards[self.level.stageId]
     index = ToontownGlobals.cogHQZoneId2deptIndex(self.level.stageId)
     extraMerits[index] = amount
     for toon in toons:
         recovered, notRecovered = self.air.questManager.recoverItems(
             toon, self.suitsKilled, self.getTaskZoneId())
         self.toonItems[toon.doId][0].extend(recovered)
         self.toonItems[toon.doId][1].extend(notRecovered)
         meritArray = self.air.promotionMgr.recoverMerits(
             toon,
             self.suitsKilled,
             self.getTaskZoneId(),
             getStageCreditMultiplier(self.level.getFloorNum()),
             extraMerits=extraMerits)
         if toon.doId in self.helpfulToons:
             self.toonMerits[toon.doId] = addListsByValue(
                 self.toonMerits[toon.doId], meritArray)
         else:
             self.notify.debug('toon %d not helpful list, skipping merits' %
                               toon.doId)
         if self.bossBattle:
             self.toonParts[toon.doId] = self.air.cogSuitMgr.recoverPart(
                 toon, 'fullSuit', self.suitTrack, self.getTaskZoneId(),
                 toons)
             self.notify.debug('toonParts = %s' % self.toonParts)
 def checkBoard(self, av):
     dept = ToontownGlobals.cogHQZoneId2deptIndex(self.zone)
     if av.hp < self.minLaff:
         return REJECT_MINLAFF
     if not av.readyForPromotion(dept):
         return REJECT_PROMOTION
     return 0
    def handleToonsWon(self, toons):
        extraMerits = [0,
         0,
         0,
         0]
        amount = ToontownGlobals.StageNoticeRewards[self.level.stageId]
        index = ToontownGlobals.cogHQZoneId2deptIndex(self.level.stageId)
        extraMerits[index] = amount
        for toon in toons:
            mult = 1.0
            meritArray = self.air.promotionMgr.recoverMerits(toon, [], self.getTaskZoneId(), mult, extraMerits=extraMerits)
            if toon.doId in self.helpfulToons:
                self.toonMerits[toon.doId] = addListsByValue(self.toonMerits[toon.doId], meritArray)
            else:
                self.notify.debug('toon %d not helpful list, skipping merits' % toon.doId)

        for floorNum, cogsThisFloor in enumerate(self.suitsKilledPerFloor):
            self.notify.info('merits for floor %s' % floorNum)
            for toon in toons:
                recovered, notRecovered = self.air.questManager.recoverItems(toon, cogsThisFloor, self.getTaskZoneId())
                self.toonItems[toon.doId][0].extend(recovered)
                self.toonItems[toon.doId][1].extend(notRecovered)
                meritArray = self.air.promotionMgr.recoverMerits(toon, cogsThisFloor, self.getTaskZoneId(), getStageCreditMultiplier(floorNum))
                self.notify.info('toon %s: %s' % (toon.doId, meritArray))
                if toon.doId in self.helpfulToons:
                    self.toonMerits[toon.doId] = addListsByValue(self.toonMerits[toon.doId], meritArray)
                else:
                    self.notify.debug('toon %d not helpful list, skipping merits' % toon.doId)
示例#6
0
    def handleToonsWon(self, toons):
        # toons just beat the boss
        extraMerits = [0, 0, 0, 0]
        amount = ToontownGlobals.MintCogBuckRewards[self.level.mintId]
        index = ToontownGlobals.cogHQZoneId2deptIndex(self.level.mintId)
        extraMerits[index] = amount

        for toon in toons:
            # Append the recovered and not recovered items to their respective lists
            recovered, notRecovered = self.air.questManager.recoverItems(
                toon, self.suitsKilled, self.getTaskZoneId())
            self.toonItems[toon.doId][0].extend(recovered)
            self.toonItems[toon.doId][1].extend(notRecovered)

            # the new merit list must be added by value to the cumulative list
            meritArray = self.air.promotionMgr.recoverMerits(
                toon,
                self.suitsKilled,
                self.getTaskZoneId(),
                getMintCreditMultiplier(self.getTaskZoneId()),
                extraMerits=extraMerits)
            if toon.doId in self.helpfulToons:
                self.toonMerits[toon.doId] = addListsByValue(
                    self.toonMerits[toon.doId], meritArray)
            else:
                self.notify.debug("toon %d not helpful list, skipping merits" %
                                  toon.doId)
 def __init__(self, air, bldg, mintId, antiShuffle=0, minLaff=0):
     DistributedElevatorExtAI.DistributedElevatorExtAI.__init__(
         self, air, bldg, antiShuffle=antiShuffle, minLaff=minLaff)
     self.mintId = mintId
     self.cogDept = ToontownGlobals.cogHQZoneId2deptIndex(self.mintId)
     self.type = ELEVATOR_MINT
     self.countdownTime = ElevatorData[self.type]['countdown']
 def checkBoard(self, av):
     dept = ToontownGlobals.cogHQZoneId2deptIndex(self.zone)
     if av.hp < self.minLaff:
         return REJECT_MINLAFF
     if not av.readyForPromotion(dept):
         return REJECT_PROMOTION
     return 0
    def requestExit(self):
        assert(self.debugPrint("requestExit()"))
        avatarID = self.air.getAvatarIdFromSender()
        assert(self.notify.debug("  avatarID:%s" % (str(avatarID),)))
        
        if self.avatarsWhoAreEntering.has_key(avatarID):
            del self.avatarsWhoAreEntering[avatarID]

        if not self.avatarsWhoAreExiting.has_key(avatarID):
            dept = ToontownGlobals.cogHQZoneId2deptIndex(self.destinationZone)
            self.avatarsWhoAreExiting[avatarID]=1
            self.sendUpdate("avatarExit", [avatarID])
            self.openDoor(self.exitDoorFSM) 

            # currently, there are no coghq doors that are unlocked and still
            # put us our cog suit.  Therefore, if we're not locked, we
            # don't need to update the suit.
            # We use .lockedDoor instead of .isDoorLocked() because we don't
            # want to check the 'no-locked-doors' flag
            if self.lockedDoor:
                av = self.air.doId2do[avatarID]
                if self.doorType == DoorTypes.EXT_COGHQ:
                    av.b_setCogIndex(-1)
                else:
                    av.b_setCogIndex(dept)
        else:
            assert(self.notify.debug(str(avatarID)
                    +" requested an exit, and they're already exiting"))
示例#10
0
    def handleToonsWon(self, toons):
        extraMerits = [0, 0, 0, 0]
        amount = ToontownGlobals.StageNoticeRewards[self.level.stageId]
        index = ToontownGlobals.cogHQZoneId2deptIndex(self.level.stageId)
        extraMerits[index] = amount
        for toon in toons:
            mult = 1.0
            meritArray = self.air.promotionMgr.recoverMerits(
                toon, [], self.getTaskZoneId(), mult, extraMerits=extraMerits)
            if toon.doId in self.helpfulToons:
                self.toonMerits[toon.doId] = addListsByValue(
                    self.toonMerits[toon.doId], meritArray)
                continue
            self.notify.debug('toon %d not helpful list, skipping merits' %
                              toon.doId)

        for (floorNum, cogsThisFloor) in enumerate(self.suitsKilledPerFloor):
            self.notify.info('merits for floor %s' % floorNum)
            for toon in toons:
                (recovered, notRecovered) = self.air.questManager.recoverItems(
                    toon, cogsThisFloor, self.getTaskZoneId())
                self.toonItems[toon.doId][0].extend(recovered)
                self.toonItems[toon.doId][1].extend(notRecovered)
                meritArray = self.air.promotionMgr.recoverMerits(
                    toon, cogsThisFloor, self.getTaskZoneId(),
                    getStageCreditMultiplier(floorNum))
                self.notify.info('toon %s: %s' % (toon.doId, meritArray))
                if toon.doId in self.helpfulToons:
                    self.toonMerits[toon.doId] = addListsByValue(
                        self.toonMerits[toon.doId], meritArray)
                    continue
                self.notify.debug('toon %d not helpful list, skipping merits' %
                                  toon.doId)
 def __init__(self, air, bldg, mintId, antiShuffle=0, minLaff=0):
     DistributedElevatorExtAI.DistributedElevatorExtAI.__init__(
         self, air, bldg, antiShuffle=antiShuffle, minLaff=minLaff
     )
     self.mintId = mintId
     self.cogDept = ToontownGlobals.cogHQZoneId2deptIndex(self.mintId)
     self.type = ELEVATOR_MINT
     self.countdownTime = ElevatorData[self.type]["countdown"]
示例#12
0
    def setFromAvatar(self, av):
        rewardIds = []
        for q in av.quests:
            (questId, fromNpcId, toNpcId, rewardId, toonProgress) = q
            if rewardId == Quests.NA:
                rewardId = Quests.getFinalRewardId(questId, fAll=1)

            rewardIds.append(rewardId)

        self.notify.debug('Ignoring rewards: %s' % rewardIds)
        self.setRewardIndex(av.rewardTier, rewardIds, av.rewardHistory)
        fishHp = int(len(av.fishCollection) / FishGlobals.FISH_PER_BONUS)
        self.notify.debug('Adding %s hp for fish collection' % fishHp)
        self.maxHp += fishHp
        flowerHp = int(
            len(av.flowerCollection) / GardenGlobals.FLOWERS_PER_BONUS)
        self.notify.debug('Adding %s hp for fish collection' % flowerHp)
        self.maxHp += flowerHp
        HQdepts = (ToontownGlobals.cogHQZoneId2deptIndex(
            ToontownGlobals.SellbotHQ),
                   ToontownGlobals.cogHQZoneId2deptIndex(
                       ToontownGlobals.LawbotHQ),
                   ToontownGlobals.cogHQZoneId2deptIndex(
                       ToontownGlobals.CashbotHQ))
        levels = av.getCogLevels()
        cogTypes = av.getCogTypes()
        suitHp = 0
        for dept in HQdepts:
            level = levels[dept]
            type = cogTypes[dept]
            if type >= SuitDNA.suitsPerDept - 1:
                for milestoneLevel in ToontownGlobals.CogSuitHPLevels:
                    if level >= milestoneLevel:
                        suitHp += 1
                        continue
                    break

        self.notify.debug('Adding %s hp for cog suits' % suitHp)
        self.maxHp += suitHp
        kartingHp = int(
            av.kartingTrophies.count(1) / RaceGlobals.TrophiesPerCup)
        self.notify.debug('Adding %s hp for karting trophies' % kartingHp)
        self.maxHp += kartingHp
        golfHp = int(av.golfTrophies.count(True) / GolfGlobals.TrophiesPerCup)
        self.notify.debug('Adding %s hp for golf trophies' % golfHp)
        self.maxHp += golfHp
    def initToonState(self):
        self.setAnimState('neutral', 0.9, None, None)
        self.putOnSuit(ToontownGlobals.cogHQZoneId2deptIndex(self.zoneId), rental=True)

        if self.name in NPCToons.LaffRestockPositions:
            pos = NPCToons.LaffRestockPositions[self.name]
            self.setPos(*pos[0])
            self.setH(pos[1])
示例#14
0
    def initToonState(self):
        self.setAnimState('neutral', 0.9, None, None)
        self.putOnSuit(ToontownGlobals.cogHQZoneId2deptIndex(self.zoneId),
                       rental=True)

        if self.name in NPCToons.LaffRestockPositions:
            pos = NPCToons.LaffRestockPositions[self.name]
            self.setPos(*pos[0])
            self.setH(pos[1])
 def handleToonsWon(self, toons):
     extraMerits = [0,
      0,
      0,
      0]
     amount = ToontownGlobals.MintCogBuckRewards[self.level.mintId]
     index = ToontownGlobals.cogHQZoneId2deptIndex(self.level.mintId)
     extraMerits[index] = amount
     '''for toon in toons:
 def checkBoard(self, av):
     dept = ToontownGlobals.cogHQZoneId2deptIndex(self.zone)
     boardingResult = 0
     if av.hp < self.minLaff:
         boardingResult = REJECT_MINLAFF
     if not av.readyForPromotion(dept):
         boardingResult = REJECT_PROMOTION
     if ToontownGlobals.Holidays.SellbotNerfHoliday in self.air.holidayManager.currentHolidays:
         boardingResult = 0
     return boardingResult
示例#17
0
 def handleToonsWon(self, toons):
     extraMerits = [0, 0, 0, 0]
     amount = ToontownGlobals.CountryClubCogBuckRewards[self.level.countryClubId]
     index = ToontownGlobals.cogHQZoneId2deptIndex(self.level.countryClubId)
     extraMerits[index] = amount
     for toon in toons:
         recovered, notRecovered = self.air.questManager.recoverItems(toon, self.suitsKilled, self.getTaskZoneId())
         self.toonItems[toon.doId][0].extend(recovered)
         self.toonItems[toon.doId][1].extend(notRecovered)
         meritArray = self.air.promotionMgr.recoverMerits(toon, self.suitsKilled, self.getTaskZoneId(), getCountryClubCreditMultiplier(self.getTaskZoneId()), extraMerits=extraMerits)
         if toon.doId in self.helpfulToons:
             self.toonMerits[toon.doId] = addListsByValue(self.toonMerits[toon.doId], meritArray)
         else:
             self.notify.debug('toon %d not helpful list, skipping merits' % toon.doId)
 def handleToonsWon(self, toons):
     extraMerits = [0, 0, 0, 0]
     amount = ToontownGlobals.MintCogBuckRewards[self.level.mintId]
     index = ToontownGlobals.cogHQZoneId2deptIndex(self.level.mintId)
     extraMerits[index] = amount
     for toon in toons:
         recovered, notRecovered = self.air.questManager.recoverItems(toon, self.suitsKilled, self.getTaskZoneId())
         self.toonItems[toon.doId][0].extend(recovered)
         self.toonItems[toon.doId][1].extend(notRecovered)
         meritArray = self.air.promotionMgr.recoverMerits(toon, self.suitsKilled, self.getTaskZoneId(), getMintCreditMultiplier(self.getTaskZoneId()), extraMerits=extraMerits)
         if toon.doId in self.helpfulToons:
             self.toonMerits[toon.doId] = addListsByValue(self.toonMerits[toon.doId], meritArray)
         else:
             self.notify.debug('toon %d not helpful list, skipping merits' % toon.doId)
 def requestExit(self):
     avatarID = self.air.getAvatarIdFromSender()
     if self.avatarsWhoAreEntering.has_key(avatarID):
         del self.avatarsWhoAreEntering[avatarID]
     if not self.avatarsWhoAreExiting.has_key(avatarID):
         dept = ToontownGlobals.cogHQZoneId2deptIndex(self.destinationZone)
         self.avatarsWhoAreExiting[avatarID] = 1
         self.sendUpdate('avatarExit', [avatarID])
         self.openDoor(self.exitDoorFSM)
         if self.lockedDoor:
             av = self.air.doId2do[avatarID]
             if self.doorType == DoorTypes.EXT_COGHQ:
                 av.b_setCogIndex(-1)
             else:
                 av.b_setCogIndex(dept)
示例#20
0
 def requestExit(self):
     avatarID = self.air.getAvatarIdFromSender()
     if self.avatarsWhoAreEntering.has_key(avatarID):
         del self.avatarsWhoAreEntering[avatarID]
     if not self.avatarsWhoAreExiting.has_key(avatarID):
         dept = ToontownGlobals.cogHQZoneId2deptIndex(self.destinationZone)
         self.avatarsWhoAreExiting[avatarID] = 1
         self.sendUpdate('avatarExit', [avatarID])
         self.openDoor(self.exitDoorFSM)
         if self.lockedDoor:
             av = self.air.doId2do[avatarID]
             if self.doorType == DoorTypes.EXT_COGHQ:
                 av.b_setCogIndex(-1)
             else:
                 av.b_setCogIndex(dept)
示例#21
0
 def requestEnter(self):
     avId = self.air.getAvatarIdFromSender()
     dept = ToontownGlobals.cogHQZoneId2deptIndex(self.destinationZone)
     av = self.air.doId2do.get(avId)
     if av:
         if self.doorType == DoorTypes.EXT_COGHQ and self.isLockedDoor():
             parts = av.getCogParts()
             if CogDisguiseGlobals.isSuitComplete(parts, dept):
                 allowed = 1
             else:
                 allowed = 0
         else:
             allowed = 1
         if not allowed:
             self.sendReject(avId, self.isLockedDoor())
         else:
             self.enter(avId)
 def requestEnter(self):
     avId = self.air.getAvatarIdFromSender()
     dept = ToontownGlobals.cogHQZoneId2deptIndex(self.destinationZone)
     av = self.air.doId2do.get(avId)
     if av:
         if self.doorType == DoorTypes.EXT_COGHQ and self.isLockedDoor():
             parts = av.getCogParts()
             if CogDisguiseGlobals.isSuitComplete(parts, dept):
                 allowed = 1
             else:
                 allowed = 0
         else:
             allowed = 1
         if not allowed:
             self.sendReject(avId, self.isLockedDoor())
         else:
             print("********\nRequesting Lobby GUI...\n********")
             self.sendUpdate('selectLobby', [avId])
示例#23
0
 def requestEnter(self):
     avatarID = self.air.getAvatarIdFromSender()
     dept = ToontownGlobals.cogHQZoneId2deptIndex(self.destinationZone)
     av = self.air.doId2do.get(avatarID)
     if av:
         if self.doorType == DoorTypes.EXT_COGHQ and self.isLockedDoor():
             parts = av.getCogParts()
             if CogDisguiseGlobals.isSuitComplete(parts, dept):
                 allowed = 1
             else:
                 allowed = 0
         else:
             allowed = 1
         if not allowed:
             self.sendReject(avatarID, self.isLockedDoor())
         else:
             self.enqueueAvatarIdEnter(avatarID)
             self.sendUpdateToAvatarId(avatarID, 'setOtherZoneIdAndDoId', [self.destinationZone, self.otherDoor.getDoId()])
 def requestEnter(self):
     avatarID = self.air.getAvatarIdFromSender()
     dept = ToontownGlobals.cogHQZoneId2deptIndex(self.destinationZone)
     av = self.air.doId2do.get(avatarID)
     if av:
         if self.doorType == DoorTypes.EXT_COGHQ and self.isLockedDoor():
             parts = av.getCogParts()
             if CogDisguiseGlobals.isSuitComplete(parts, dept):
                 allowed = 1
             else:
                 allowed = 0
         else:
             allowed = 1
         if not allowed:
             self.sendReject(avatarID, self.isLockedDoor())
         else:
             self.enqueueAvatarIdEnter(avatarID)
             self.sendUpdateToAvatarId(avatarID, 'setOtherZoneIdAndDoId', [self.destinationZone, self.otherDoor.getDoId()])
 def handleToonsWon(self, toons):
     extraMerits = [0, 0, 0, 0]
     amount = ToontownGlobals.StageNoticeRewards[self.level.stageId]
     index = ToontownGlobals.cogHQZoneId2deptIndex(self.level.stageId)
     extraMerits[index] = amount
     for toon in toons:
         recovered, notRecovered = self.air.questManager.recoverItems(toon, self.suitsKilled, self.getTaskZoneId())
         self.toonItems[toon.doId][0].extend(recovered)
         self.toonItems[toon.doId][1].extend(notRecovered)
         meritArray = self.air.promotionMgr.recoverMerits(toon, self.suitsKilled, self.getTaskZoneId(), getStageCreditMultiplier(self.level.getFloorNum()), extraMerits=extraMerits)
         if toon.doId in self.helpfulToons:
             self.toonMerits[toon.doId] = addListsByValue(self.toonMerits[toon.doId], meritArray)
         else:
             self.notify.debug('toon %d not helpful list, skipping merits' % toon.doId)
         if self.bossBattle:
             self.toonParts[toon.doId] = self.air.cogSuitMgr.recoverPart(
                                         toon, 'fullSuit', self.suitTrack,
                                         self.getTaskZoneId(), toons)
             self.notify.debug('toonParts = %s' % self.toonParts)
示例#26
0
    def handleToonsWon(self, toons):
        # toons just beat the boss
        extraMerits = [0, 0, 0, 0]
        amount = ToontownGlobals.StageNoticeRewards[self.level.stageId]
        index = ToontownGlobals.cogHQZoneId2deptIndex(self.level.stageId)
        extraMerits[index] = amount
        # take care of the extra merits first
        for toon in toons:
            mult = 1.
            meritArray = self.air.promotionMgr.recoverMerits(
                toon, [], self.getTaskZoneId(), mult, extraMerits=extraMerits)
            if toon.doId in self.helpfulToons:
                self.toonMerits[toon.doId] = addListsByValue(
                    self.toonMerits[toon.doId], meritArray)
            else:
                self.notify.debug("toon %d not helpful list, skipping merits" %
                                  toon.doId)

        for floorNum, cogsThisFloor in enumerate(self.suitsKilledPerFloor):
            self.notify.info('merits for floor %s' % floorNum)
            for toon in toons:
                # Append the recovered and not recovered items to their respective lists
                recovered, notRecovered = self.air.questManager.recoverItems(
                    toon, cogsThisFloor, self.getTaskZoneId())
                self.toonItems[toon.doId][0].extend(recovered)
                self.toonItems[toon.doId][1].extend(notRecovered)

                # the new merit list must be added by value to the cumulative list
                meritArray = self.air.promotionMgr.recoverMerits(
                    toon, cogsThisFloor, self.getTaskZoneId(),
                    getStageCreditMultiplier(floorNum))
                self.notify.info('toon %s: %s' % (toon.doId, meritArray))
                if toon.doId in self.helpfulToons:
                    self.toonMerits[toon.doId] = addListsByValue(
                        self.toonMerits[toon.doId], meritArray)
                else:
                    self.notify.debug(
                        "toon %d not helpful list, skipping merits" %
                        toon.doId)
示例#27
0
    def __getAccessLevel(self, avatarID):
        av = self.air.doId2do.get(avatarID)
        allowed = 0
        suitType = -1
        if av:
            if self.doorType == DoorTypes.EXT_COGHQ and self.isLockedDoor():
                parts = av.getCogParts()
                dept = ToontownGlobals.cogHQZoneId2deptIndex(
                    self.destinationZone)
                if CogDisguiseGlobals.isSuitComplete(parts, dept):
                    if av.getCogMerits(
                    )[dept] >= CogDisguiseGlobals.getTotalMerits(av, dept):
                        suitType = CogDisguiseGlobals.suitTypes.FullSuit
                    else:
                        suitType = CogDisguiseGlobals.suitTypes.NoMerits
                    allowed = 1
                else:
                    suitType = CogDisguiseGlobals.suitTypes.NoSuit
                if ToontownGlobals.Holidays.SellbotNerfHoliday in self.air.holidayManager.currentHolidays:
                    allowed = 1
            else:
                allowed = 1

        return (allowed, suitType)
示例#28
0
 def handleToonsWon(self, toons):
     extraMerits = [0, 0, 0, 0]
     amount = ToontownGlobals.StageNoticeRewards[self.level.stageId]
     index = ToontownGlobals.cogHQZoneId2deptIndex(self.level.stageId)
     extraMerits[index] = amount
示例#29
0
 def handleToonsWon(self, toons):
     extraMerits = [0, 0, 0, 0]
     amount = ToontownGlobals.CountryClubCogBuckRewards[
         self.level.countryClubId]
     index = ToontownGlobals.cogHQZoneId2deptIndex(self.level.countryClubId)
     extraMerits[index] = amount
    def setFromAvatar(self, av):
        # Set the rewards to indicate what the avatar would have after
        # applying all rewards up to but not including the current
        # reward index, and not including any currently active quests.

        # Get the list of current reward ID's.
        rewardIds = []

        for q in av.quests:
            questId, fromNpcId, toNpcId, rewardId, toonProgress = q
            if rewardId == Quests.NA:
                rewardId = Quests.getFinalRewardId(questId, fAll=1)
            rewardIds.append(rewardId)

        self.notify.debug("Ignoring rewards: %s" % (rewardIds))

        self.setRewardIndex(av.rewardTier, rewardIds, av.rewardHistory)

        # add maxHp for fishCollection
        fishHp = int(len(av.fishCollection) / FishGlobals.FISH_PER_BONUS)
        self.notify.debug("Adding %s hp for fish collection" % (fishHp))
        self.maxHp += fishHp

        # add maxHp for flowerCollection
        flowerHp = int(
            len(av.flowerCollection) / GardenGlobals.FLOWERS_PER_BONUS)
        self.notify.debug("Adding %s hp for fish collection" % (flowerHp))
        self.maxHp += flowerHp

        # add maxHp for HQ cog suit
        HQdepts = (
            # add depts as the HQs are released
            ToontownGlobals.cogHQZoneId2deptIndex(ToontownGlobals.SellbotHQ),
            #ToontownGlobals.cogHQZoneId2deptIndex(ToontownGlobals.BossbotHQ),
            ToontownGlobals.cogHQZoneId2deptIndex(ToontownGlobals.LawbotHQ),
            ToontownGlobals.cogHQZoneId2deptIndex(ToontownGlobals.CashbotHQ),
        )
        levels = av.getCogLevels()
        cogTypes = av.getCogTypes()
        suitHp = 0
        for dept in HQdepts:
            level = levels[dept]
            type = cogTypes[dept]
            if type >= (SuitDNA.suitsPerDept - 1):
                # add 1 HP for every milestone level they've hit
                for milestoneLevel in ToontownGlobals.CogSuitHPLevels:
                    if level >= milestoneLevel:
                        suitHp += 1
                    else:
                        break
        self.notify.debug("Adding %s hp for cog suits" % (suitHp))
        self.maxHp += suitHp

        # add maxHp for karting trophies
        kartingHp = int(
            av.kartingTrophies.count(1) / RaceGlobals.TrophiesPerCup)
        self.notify.debug("Adding %s hp for karting trophies" % (kartingHp))
        self.maxHp += kartingHp

        # add maxHp for golf trophies
        golfHp = int(av.golfTrophies.count(True) / GolfGlobals.TrophiesPerCup)
        self.notify.debug("Adding %s hp for golf trophies" % (golfHp))
        self.maxHp += golfHp
 def handleToonsWon(self, toons):
     extraMerits = [0, 0, 0, 0]
     amount = ToontownGlobals.StageNoticeRewards[self.level.stageId]
     index = ToontownGlobals.cogHQZoneId2deptIndex(self.level.stageId)
     extraMerits[index] = amount
 def handleToonsWon(self, toons):
     extraMerits = [0, 0, 0, 0]
     amount = ToontownGlobals.CountryClubCogBuckRewards[self.level.countryClubId]
     index = ToontownGlobals.cogHQZoneId2deptIndex(self.level.countryClubId)
     extraMerits[index] = amount
 def __init__(self, air, bldg, mintId):
     DistributedElevatorExtAI.DistributedElevatorExtAI.__init__(self, air, bldg)
     self.mintId = mintId
     self.cogDept = ToontownGlobals.cogHQZoneId2deptIndex(self.mintId)
     self.type = ELEVATOR_MINT
     self.countdownTime = ElevatorData[self.type]['countdown']