def confirmJoinGroup(self, groupId, buttonTuple):
     doneStatus = self.joinDialog.doneStatus
     self.joinDialog.cleanup()
     del self.joinDialog
     if doneStatus is not 'ok':
         return
     for gid in base.cr.groupManager.id2type.keys():
         if base.cr.groupManager.isInGroup(base.localAvatar.doId, gid):
             self.rejectGroup(4)
             return
     #if len(base.cr.groupManager.getGroupPlayers(groupId)) >= 8:
     #    self.rejectGroup(3)
     #    return
     suitIdx = -1
     gids = {10000:0, 11000:1, 12000:2, 13000:3}
     suitIdx = gids.get(groupId)
     if suitIdx is not None:
         merits = base.localAvatar.cogMerits[suitIdx]
         if CogDisguiseGlobals.getTotalMerits(base.localAvatar, suitIdx) > merits:
             self.rejectGroup(2, suitIdx)
             return
         parts = base.localAvatar.getCogParts()
         if not CogDisguiseGlobals.isSuitComplete(parts, suitIdx):
             self.rejectGroup(1)
             return
     base.cr.groupManager.d_addPlayerToGroup(groupId, base.localAvatar.doId)
     self.currentGroupJoined = groupId
     try:
         place = base.cr.playGame.getPlace()
     except:
         try:
             place = base.cr.playGame.hood.loader.place
         except:
             place = base.cr.playGame.hood.place
     place.requestTeleport(groupId, groupId, base.localAvatar.defaultShard, -1)
    def updateMeritBars(self):
        if not self.meritBars:
            return

        for i in xrange(len(self.meritBars)):
            meritBar = self.meritBars[i]

            if CogDisguiseGlobals.isSuitComplete(base.localAvatar.cogParts, i):
                meritBar.show()
                totalMerits = CogDisguiseGlobals.getTotalMerits(
                    base.localAvatar, i)
                merits = base.localAvatar.cogMerits[i]

                if totalMerits:
                    meritBar['range'] = totalMerits
                    meritBar['value'] = merits

                    if merits == totalMerits:
                        meritBar['text'] = TTLocalizer.RewardPanelMeritAlert
                    else:
                        meritBar['text'] = '%s/%s %s' % (
                            merits, totalMerits,
                            TTLocalizer.RewardPanelMeritBarLabels[i])
                else:
                    meritBar['range'] = 1
                    meritBar['value'] = 1
                    meritBar['text'] = TTLocalizer.RewardPanelMeritsMaxed
            else:
                meritBar.hide()
    def updateMeritBars(self):
        if not self.meritBars:
            return

        for i in xrange(len(self.meritBars)):
            meritBar = self.meritBars[i]

            if CogDisguiseGlobals.isSuitComplete(base.localAvatar.cogParts, i):
                meritBar.show()
                totalMerits = CogDisguiseGlobals.getTotalMerits(base.localAvatar, i)
                merits = base.localAvatar.cogMerits[i]

                if totalMerits:
                    meritBar['range'] = totalMerits
                    meritBar['value'] = merits

                    if merits == totalMerits:
                        meritBar['text'] = TTLocalizer.RewardPanelMeritAlert
                    else:
                        meritBar['text'] = '%s/%s %s' % (merits, totalMerits, TTLocalizer.RewardPanelMeritBarLabels[i])
                else:
                    meritBar['range'] = 1
                    meritBar['value'] = 1
                    meritBar['text'] = TTLocalizer.RewardPanelMeritsMaxed
            else:
                meritBar.hide()
Example #4
0
 def recoverMerits(self,
                   av,
                   cogList,
                   zoneId,
                   multiplier=1,
                   extraMerits=None):
     avId = av.getDoId()
     meritsRecovered = [0, 0, 0, 0]
     if extraMerits is None:
         extraMerits = [0, 0, 0, 0]
     if self.air.suitInvasionManager.getInvading():
         multiplier *= getInvasionMultiplier()
     for i in xrange(len(extraMerits)):
         if CogDisguiseGlobals.isSuitComplete(av.getCogParts(), i):
             meritsRecovered[i] += extraMerits[i]
             self.notify.debug('recoverMerits: extra merits = %s' %
                               extraMerits[i])
     self.notify.debug('recoverMerits: multiplier = %s' % multiplier)
     for cogDict in cogList:
         dept = SuitDNA.suitDepts.index(cogDict['track'])
         if avId in cogDict['activeToons']:
             if CogDisguiseGlobals.isSuitComplete(
                     av.getCogParts(),
                     SuitDNA.suitDepts.index(cogDict['track'])):
                 self.notify.debug(
                     'recoverMerits: checking against cogDict: %s' %
                     cogDict)
                 rand = random.random() * 100
                 if rand <= self.getPercentChance(
                 ) and not cogDict['isVirtual']:
                     merits = cogDict['level'] * MeritMultiplier
                     merits = int(round(merits))
                     if cogDict['hasRevives']:
                         merits *= 2
                     merits = merits * multiplier
                     merits = int(round(merits))
                     meritsRecovered[dept] += merits
                     self.notify.debug('recoverMerits: merits = %s' %
                                       merits)
                 else:
                     self.notify.debug('recoverMerits: virtual cog!')
     if meritsRecovered != [0, 0, 0, 0]:
         actualCounted = [0, 0, 0, 0]
         merits = av.getCogMerits()
         for i in xrange(len(meritsRecovered)):
             max = CogDisguiseGlobals.getTotalMerits(av, i)
             if max:
                 if merits[i] + meritsRecovered[i] <= max:
                     actualCounted[i] = meritsRecovered[i]
                     merits[i] += meritsRecovered[i]
                 else:
                     actualCounted[i] = max - merits[i]
                     merits[i] = max
                 av.b_setCogMerits(merits)
         if reduce(lambda x, y: x + y, actualCounted):
             self.air.writeServerEvent('merits', avId,
                                       '%s|%s|%s|%s' % tuple(actualCounted))
             self.notify.debug('recoverMerits: av %s recovered merits %s' %
                               (avId, actualCounted))
     return meritsRecovered
    def doTab(self, index):
        self.activeTab = index
        self.tabs[index].reparentTo(self.pageFrame)
        for i in xrange(len(self.tabs)):
            tab = self.tabs[i]
            if i == index:
                tab['text0_fg'] = (1, 0, 0, 1)
                tab['text2_fg'] = (1, 0, 0, 1)
            else:
                tab['text0_fg'] = (0, 0, 0, 1)
                tab['text2_fg'] = (0.5, 0.4, 0.4, 1)

        self.bkgd.setColor(DeptColors[index])
        self.deptLabel['text'] = (SuitDNA.suitDeptFullnames[SuitDNA.suitDepts[index]],)
        cogIndex = base.localAvatar.cogTypes[index] + SuitDNA.suitsPerDept * index
        cog = SuitDNA.suitHeadTypes[cogIndex]
        self.progressTitle.hide()
        if SuitDNA.suitDepts[index] == 'm':
            self.progressTitle = self.cogbuckTitle
        elif SuitDNA.suitDepts[index] == 'l':
            self.progressTitle = self.juryNoticeTitle
        elif SuitDNA.suitDepts[index] == 'c':
            self.progressTitle = self.stockOptionTitle
        else:
            self.progressTitle = self.meritTitle
        self.progressTitle.show()
        self.cogName['text'] = SuitBattleGlobals.SuitAttributes[cog]['name']
        cogLevel = base.localAvatar.cogLevels[index]
        self.cogLevel['text'] = TTLocalizer.DisguisePageCogLevel % str(cogLevel + 1)
        numParts = base.localAvatar.cogParts[index]
        numPartsRequired = CogDisguiseGlobals.PartsPerSuit[index]
        self.updatePartsDisplay(index, numParts, numPartsRequired)
        self.updateMeritBar(index)
        self.cogPartRatio['text'] = '%d/%d' % (CogDisguiseGlobals.getTotalParts(numParts), numPartsRequired)
    def getMeritIntervalList(self, toon, dept, origMerits, earnedMerits):
        tickDelay = 1.0 / 60
        intervalList = []
        totalMerits = CogDisguiseGlobals.getTotalMerits(toon, dept)
        neededMerits = 0
        if totalMerits and origMerits != totalMerits:
            neededMerits = totalMerits - origMerits
            intervalList.append(
                Func(self.showMeritIncLabel, dept,
                     min(neededMerits, earnedMerits)))
        barTime = 0.5
        numTicks = int(math.ceil(barTime / tickDelay))
        for i in xrange(numTicks):
            t = (i + 1) / float(numTicks)
            newValue = int(origMerits + t * earnedMerits + 0.5)
            intervalList.append(
                Func(self.incrementMerits, toon, dept, newValue, totalMerits))
            intervalList.append(Wait(tickDelay))

        intervalList.append(Func(self.resetMeritBarColor, dept))
        intervalList.append(Wait(0.1))
        if toon.cogLevels[dept] < ToontownGlobals.MaxCogSuitLevel:
            if neededMerits and toon.readyForPromotion(dept):
                intervalList.append(Wait(0.4))
                intervalList += self.getPromotionIntervalList(toon, dept)
        return intervalList
 def recoverMerits(self, av, cogList, zoneId, multiplier = 1, extraMerits = None):
     avId = av.getDoId()
     meritsRecovered = [0, 0, 0, 0]
     if extraMerits is None:
         extraMerits = [0, 0, 0, 0]
     if self.air.suitInvasionManager.getInvading():
         multiplier *= getInvasionMultiplier()
     for i in xrange(len(extraMerits)):
         if CogDisguiseGlobals.isSuitComplete(av.getCogParts(), i):
             meritsRecovered[i] += extraMerits[i]
             self.notify.debug('recoverMerits: extra merits = %s' % extraMerits[i])
     self.notify.debug('recoverMerits: multiplier = %s' % multiplier)
     for cogDict in cogList:
         dept = SuitDNA.suitDepts.index(cogDict['track'])
         if avId in cogDict['activeToons']:
             if CogDisguiseGlobals.isSuitComplete(av.getCogParts(), SuitDNA.suitDepts.index(cogDict['track'])):
                 self.notify.debug('recoverMerits: checking against cogDict: %s' % cogDict)
                 rand = random.random() * 100
                 if rand <= self.getPercentChance() and not cogDict['isVirtual']:
                     merits = cogDict['level'] * MeritMultiplier
                     merits = int(round(merits))
                     if cogDict['hasRevives']:
                         merits *= 2
                     merits = merits * multiplier
                     merits = int(round(merits))
                     meritsRecovered[dept] += merits
                     self.notify.debug('recoverMerits: merits = %s' % merits)
                 else:
                     self.notify.debug('recoverMerits: virtual cog!')
     if meritsRecovered != [0, 0, 0, 0]:
         actualCounted = [0, 0, 0, 0]
         merits = av.getCogMerits()
         for i in xrange(len(meritsRecovered)):
             max = CogDisguiseGlobals.getTotalMerits(av, i)
             if max:
                 if merits[i] + meritsRecovered[i] <= max:
                     actualCounted[i] = meritsRecovered[i]
                     merits[i] += meritsRecovered[i]
                 else:
                     actualCounted[i] = max - merits[i]
                     merits[i] = max
                 av.b_setCogMerits(merits)
         if reduce(lambda x, y: x + y, actualCounted):
             self.air.writeServerEvent('merits', avId, '%s|%s|%s|%s' % tuple(actualCounted))
             self.notify.debug('recoverMerits: av %s recovered merits %s' % (avId, actualCounted))
     return meritsRecovered
Example #8
0
 def __talkAboutPromotion(self, speech):
     if self.prevCogSuitLevel < ToontownGlobals.MaxCogSuitLevel:
         newCogSuitLevel = localAvatar.getCogLevels()[CogDisguiseGlobals.dept2deptIndex(self.style.dept)]
         if newCogSuitLevel == ToontownGlobals.MaxCogSuitLevel:
             speech += TTLocalizer.ResistanceToonLastPromotion % (ToontownGlobals.MaxCogSuitLevel + 1)
         if newCogSuitLevel in ToontownGlobals.CogSuitHPLevels:
             speech += TTLocalizer.ResistanceToonHPBoost
     else:
         speech += TTLocalizer.ResistanceToonMaxed % (ToontownGlobals.MaxCogSuitLevel + 1)
     return speech
 def announceGenerate(self):
     DistributedAvatar.DistributedAvatar.announceGenerate(self)
     self.prevCogSuitLevel = localAvatar.getCogLevels()[CogDisguiseGlobals.dept2deptIndex(self.style.dept)]
     nearBubble = CollisionSphere(0, 0, 0, 50)
     nearBubble.setTangible(0)
     nearBubbleNode = CollisionNode('NearBoss')
     nearBubbleNode.setCollideMask(ToontownGlobals.WallBitmask)
     nearBubbleNode.addSolid(nearBubble)
     self.attachNewNode(nearBubbleNode)
     self.accept('enterNearBoss', self.avatarNearEnter)
     self.accept('exitNearBoss', self.avatarNearExit)
     self.collNode.removeSolid(0)
     tube1 = CollisionTube(6.5, -7.5, 2, 6.5, 7.5, 2, 2.5)
     tube2 = CollisionTube(-6.5, -7.5, 2, -6.5, 7.5, 2, 2.5)
     roof = CollisionPolygon(Point3(-4.4, 7.1, 5.5), Point3(-4.4, -7.1, 5.5), Point3(4.4, -7.1, 5.5), Point3(4.4, 7.1, 5.5))
     side1 = CollisionPolygon(Point3(-4.4, -7.1, 5.5), Point3(-4.4, 7.1, 5.5), Point3(-4.4, 7.1, 0), Point3(-4.4, -7.1, 0))
     side2 = CollisionPolygon(Point3(4.4, 7.1, 5.5), Point3(4.4, -7.1, 5.5), Point3(4.4, -7.1, 0), Point3(4.4, 7.1, 0))
     front1 = CollisionPolygon(Point3(4.4, -7.1, 5.5), Point3(-4.4, -7.1, 5.5), Point3(-4.4, -7.1, 5.2), Point3(4.4, -7.1, 5.2))
     back1 = CollisionPolygon(Point3(-4.4, 7.1, 5.5), Point3(4.4, 7.1, 5.5), Point3(4.4, 7.1, 5.2), Point3(-4.4, 7.1, 5.2))
     self.collNode.addSolid(tube1)
     self.collNode.addSolid(tube2)
     self.collNode.addSolid(roof)
     self.collNode.addSolid(side1)
     self.collNode.addSolid(side2)
     self.collNode.addSolid(front1)
     self.collNode.addSolid(back1)
     self.collNodePath.reparentTo(self.axle)
     self.collNode.setCollideMask(ToontownGlobals.PieBitmask | ToontownGlobals.WallBitmask | ToontownGlobals.CameraBitmask)
     self.collNode.setName('BossZap')
     self.setTag('attackCode', str(ToontownGlobals.BossCogElectricFence))
     self.accept('enterBossZap', self.__touchedBoss)
     bubbleL = CollisionSphere(10, -5, 0, 10)
     bubbleL.setTangible(0)
     bubbleLNode = CollisionNode('BossZap')
     bubbleLNode.setCollideMask(ToontownGlobals.WallBitmask)
     bubbleLNode.addSolid(bubbleL)
     self.bubbleL = self.axle.attachNewNode(bubbleLNode)
     self.bubbleL.setTag('attackCode', str(ToontownGlobals.BossCogSwatLeft))
     self.bubbleL.stash()
     bubbleR = CollisionSphere(-10, -5, 0, 10)
     bubbleR.setTangible(0)
     bubbleRNode = CollisionNode('BossZap')
     bubbleRNode.setCollideMask(ToontownGlobals.WallBitmask)
     bubbleRNode.addSolid(bubbleR)
     self.bubbleR = self.axle.attachNewNode(bubbleRNode)
     self.bubbleR.setTag('attackCode', str(ToontownGlobals.BossCogSwatRight))
     self.bubbleR.stash()
     bubbleF = CollisionSphere(0, -25, 0, 12)
     bubbleF.setTangible(0)
     bubbleFNode = CollisionNode('BossZap')
     bubbleFNode.setCollideMask(ToontownGlobals.WallBitmask)
     bubbleFNode.addSolid(bubbleF)
     self.bubbleF = self.rotateNode.attachNewNode(bubbleFNode)
     self.bubbleF.setTag('attackCode', str(ToontownGlobals.BossCogFrontAttack))
     self.bubbleF.stash()
    def changeMeritBars(self, hide):
        if not self.meritBars:
            return

        for i in xrange(len(self.meritBars)):
            meritBar = self.meritBars[i]

            if CogDisguiseGlobals.isSuitComplete(base.localAvatar.cogParts, i):
                meritBar.hide() if hide else meritBar.show()
            else:
                meritBar.hide()
    def changeMeritBars(self, hide):
        if not self.meritBars:
            return

        for i in xrange(len(self.meritBars)):
            meritBar = self.meritBars[i]

            if CogDisguiseGlobals.isSuitComplete(base.localAvatar.cogParts, i):
                meritBar.hide() if hide else meritBar.show()
            else:
                meritBar.hide()
    def recoverPart(self, toon, factoryType, suitTrack):
        if suitTrack not in SuitDNA.suitDepts:
            return

        recoveredParts = [0, 0, 0, 0]
        parts = toon.getCogParts()
        suitTrack = SuitDNA.suitDepts.index(suitTrack)

        if CogDisguiseGlobals.isSuitComplete(parts, suitTrack):
            return recoveredParts

        recoveredParts[suitTrack] = toon.giveGenericCogPart(factoryType, suitTrack)
        return recoveredParts
    def recoverPart(self, toon, factoryType, suitTrack):
        if suitTrack not in SuitDNA.suitDepts:
            return

        recoveredParts = [0, 0, 0, 0]
        parts = toon.getCogParts()
        suitTrack = SuitDNA.suitDepts.index(suitTrack)

        if CogDisguiseGlobals.isSuitComplete(parts, suitTrack):
            return recoveredParts

        recoveredParts[suitTrack] = toon.giveGenericCogPart(
            factoryType, suitTrack)
        return recoveredParts
Example #14
0
 def confirmJoinGroup(self, groupId, buttonTuple):
     doneStatus = self.joinDialog.doneStatus
     self.joinDialog.cleanup()
     del self.joinDialog
     if doneStatus is not 'ok':
         return
     for gid in base.cr.groupManager.id2type.keys():
         if base.cr.groupManager.isInGroup(base.localAvatar.doId, gid):
             self.rejectGroup(4)
             return
     #if len(base.cr.groupManager.getGroupPlayers(groupId)) >= 8:
     #    self.rejectGroup(3)
     #    return
     suitIdx = -1
     gids = {10000: 0, 11000: 1, 12000: 2, 13000: 3}
     suitIdx = gids.get(groupId)
     if suitIdx is not None:
         merits = base.localAvatar.cogMerits[suitIdx]
         if CogDisguiseGlobals.getTotalMerits(base.localAvatar,
                                              suitIdx) > merits:
             self.rejectGroup(2, suitIdx)
             return
         parts = base.localAvatar.getCogParts()
         if not CogDisguiseGlobals.isSuitComplete(parts, suitIdx):
             self.rejectGroup(1)
             return
     base.cr.groupManager.d_addPlayerToGroup(groupId, base.localAvatar.doId)
     self.currentGroupJoined = groupId
     try:
         place = base.cr.playGame.getPlace()
     except:
         try:
             place = base.cr.playGame.hood.loader.place
         except:
             place = base.cr.playGame.hood.place
     place.requestTeleport(groupId, groupId, base.localAvatar.defaultShard,
                           -1)
 def updateMeritBar(self, dept):
     merits = base.localAvatar.cogMerits[dept]
     totalMerits = CogDisguiseGlobals.getTotalMerits(base.localAvatar, dept)
     if totalMerits == 0:
         progress = 1
     else:
         progress = min(merits / float(totalMerits), 1)
     self.updateMeritDial(progress)
     if base.localAvatar.readyForPromotion(dept):
         self.cogMeritRatio['text'] = TTLocalizer.DisguisePageMeritFull
         self.promotionTitle.show()
         self.progressTitle.hide()
     else:
         self.cogMeritRatio['text'] = '%d/%d' % (merits, totalMerits)
         self.promotionTitle.hide()
         self.progressTitle.show()
 def updateMeritBar(self, dept):
     merits = base.localAvatar.cogMerits[dept]
     totalMerits = CogDisguiseGlobals.getTotalMerits(base.localAvatar, dept)
     if totalMerits == 0:
         progress = 1
     else:
         progress = min(merits / float(totalMerits), 1)
     self.updateMeritDial(progress)
     if base.localAvatar.readyForPromotion(dept):
         self.cogMeritRatio['text'] = TTLocalizer.DisguisePageMeritFull
         self.promotionTitle.show()
         self.progressTitle.hide()
     else:
         self.cogMeritRatio['text'] = '%d/%d' % (merits, totalMerits)
         self.promotionTitle.hide()
         self.progressTitle.show()
    def doTab(self, index):
        self.activeTab = index
        self.tabs[index].reparentTo(self.pageFrame)
        for i in xrange(len(self.tabs)):
            tab = self.tabs[i]
            if i == index:
                tab['text0_fg'] = (1, 0, 0, 1)
                tab['text2_fg'] = (1, 0, 0, 1)
            else:
                tab['text0_fg'] = (0, 0, 0, 1)
                tab['text2_fg'] = (0.5, 0.4, 0.4, 1)

        self.bkgd.setColor(DeptColors[index])
        self.deptLabel['text'] = (
            SuitDNA.suitDeptFullnames[SuitDNA.suitDepts[index]], )
        cogIndex = base.localAvatar.cogTypes[
            index] + SuitDNA.suitsPerDept * index
        cog = SuitDNA.suitHeadTypes[cogIndex]
        self.progressTitle.hide()
        if SuitDNA.suitDepts[index] == 'm':
            self.progressTitle = self.cogbuckTitle
        elif SuitDNA.suitDepts[index] == 'l':
            self.progressTitle = self.juryNoticeTitle
        elif SuitDNA.suitDepts[index] == 'c':
            self.progressTitle = self.stockOptionTitle
        else:
            self.progressTitle = self.meritTitle
        self.progressTitle.show()
        self.cogName['text'] = SuitBattleGlobals.SuitAttributes[cog]['name']
        cogLevel = base.localAvatar.cogLevels[index]
        self.cogLevel['text'] = TTLocalizer.DisguisePageCogLevel % str(
            cogLevel + 1)
        numParts = base.localAvatar.cogParts[index]
        numPartsRequired = CogDisguiseGlobals.PartsPerSuit[index]
        self.updatePartsDisplay(index, numParts, numPartsRequired)
        self.updateMeritBar(index)
        self.cogPartRatio['text'] = '%d/%d' % (
            CogDisguiseGlobals.getTotalParts(numParts), numPartsRequired)
    def getMeritIntervalList(self, toon, dept, origMerits, earnedMerits):
        tickDelay = 1.0 / 60
        intervalList = []
        totalMerits = CogDisguiseGlobals.getTotalMerits(toon, dept)
        neededMerits = 0
        if totalMerits and origMerits != totalMerits:
            neededMerits = totalMerits - origMerits
            intervalList.append(Func(self.showMeritIncLabel, dept, min(neededMerits, earnedMerits)))
        barTime = 0.5
        numTicks = int(math.ceil(barTime / tickDelay))
        for i in xrange(numTicks):
            t = (i + 1) / float(numTicks)
            newValue = int(origMerits + t * earnedMerits + 0.5)
            intervalList.append(Func(self.incrementMerits, toon, dept, newValue, totalMerits))
            intervalList.append(Wait(tickDelay))

        intervalList.append(Func(self.resetMeritBarColor, dept))
        intervalList.append(Wait(0.1))
        if toon.cogLevels[dept] < ToontownGlobals.MaxCogSuitLevel:
            if neededMerits and toon.readyForPromotion(dept):
                intervalList.append(Wait(0.4))
                intervalList += self.getPromotionIntervalList(toon, dept)
        return intervalList
    def removeParts(self, toon, suitDept):
        parts = toon.getCogParts()

        if CogDisguiseGlobals.isSuitComplete(parts, suitDept):
            toon.loseCogParts(suitDept)
    def removeParts(self, toon, suitDept):
        parts = toon.getCogParts()

        if CogDisguiseGlobals.isSuitComplete(parts, suitDept):
            toon.loseCogParts(suitDept)
    def initGagFrame(self, toon, expList, meritList, noSkip=False):
        self.avNameLabel['text'] = toon.getName()
        self.endTrackFrame.hide()
        self.gagExpFrame.show()
        self.newGagFrame.hide()
        self.promotionFrame.hide()
        self.questFrame.hide()
        self.itemFrame.hide()
        self.cogPartFrame.hide()
        self.missedItemFrame.hide()
        trackBarOffset = 0
        self.skipButton['state'] = choice(noSkip, DGG.DISABLED, DGG.NORMAL)
        for i in xrange(len(SuitDNA.suitDepts)):
            meritBar = self.meritBars[i]
            meritLabel = self.meritLabels[i]
            totalMerits = CogDisguiseGlobals.getTotalMerits(toon, i)
            merits = meritList[i]
            self.meritIncLabels[i].hide()
            if CogDisguiseGlobals.isSuitComplete(toon.cogParts, i):
                if not self.trackBarsOffset:
                    trackBarOffset = 0.47
                    self.trackBarsOffset = 1
                meritBar.show()
                meritLabel.show()
                meritLabel.show()
                if totalMerits:
                    meritBar['range'] = totalMerits
                    meritBar['value'] = merits
                    if merits == totalMerits:
                        meritBar['text'] = TTLocalizer.RewardPanelMeritAlert
                    else:
                        meritBar['text'] = '%s/%s %s' % (
                            merits, totalMerits,
                            TTLocalizer.RewardPanelMeritBarLabels[i])
                else:
                    meritBar['range'] = 1
                    meritBar['value'] = 1
                    meritBar['text'] = TTLocalizer.RewardPanelMeritsMaxed
                self.resetMeritBarColor(i)
            else:
                meritBar.hide()
                meritLabel.hide()

        for i in xrange(len(expList)):
            curExp = expList[i]
            trackBar = self.trackBars[i]
            trackLabel = self.trackLabels[i]
            trackIncLabel = self.trackIncLabels[i]
            trackBar.setX(trackBar.getX() - trackBarOffset)
            trackLabel.setX(trackLabel.getX() - trackBarOffset)
            trackIncLabel.setX(trackIncLabel.getX() - trackBarOffset)
            trackIncLabel.hide()
            if toon.hasTrackAccess(i):
                trackBar.show()
                if curExp >= ToontownBattleGlobals.regMaxSkill:
                    nextExp = self.getNextExpValueUber(curExp, i)
                    trackBar['range'] = nextExp
                    uberCurrExp = curExp - ToontownBattleGlobals.regMaxSkill
                    trackBar['value'] = uberCurrExp
                    trackBar['text'] = TTLocalizer.InventoryUberTrackExp % {
                        'nextExp': ToontownBattleGlobals.MaxSkill - curExp
                    }
                else:
                    nextExp = self.getNextExpValue(curExp, i)
                    trackBar['range'] = nextExp
                    trackBar['value'] = curExp
                    trackBar['text'] = '%s/%s' % (curExp, nextExp)
                self.resetBarColor(i)
            else:
                trackBar.hide()
 def getNextMeritValue(self, curMerits, toon, dept):
     totalMerits = CogDisguiseGlobals.getTotalMerits(toon, dept)
     retVal = totalMerits
     if curMerits > totalMerits:
         retVal = amount
     return retVal
 def getCogPartIntervalList(self, toon, cogPartList):
     itemName = CogDisguiseGlobals.getPartName(cogPartList)
     intervalList = []
     intervalList.append(Func(self.cogPartLabel.setProp, 'text', itemName))
     intervalList.append(Wait(1))
     return intervalList
 def getNextMeritValue(self, curMerits, toon, dept):
     totalMerits = CogDisguiseGlobals.getTotalMerits(toon, dept)
     retVal = totalMerits
     if curMerits > totalMerits:
         retVal = amount
     return retVal
    def initGagFrame(self, toon, expList, meritList, noSkip = False):
        self.avNameLabel['text'] = toon.getName()
        self.endTrackFrame.hide()
        self.gagExpFrame.show()
        self.newGagFrame.hide()
        self.promotionFrame.hide()
        self.questFrame.hide()
        self.itemFrame.hide()
        self.cogPartFrame.hide()
        self.missedItemFrame.hide()
        trackBarOffset = 0
        self.skipButton['state'] = choice(noSkip, DGG.DISABLED, DGG.NORMAL)
        for i in xrange(len(SuitDNA.suitDepts)):
            meritBar = self.meritBars[i]
            meritLabel = self.meritLabels[i]
            totalMerits = CogDisguiseGlobals.getTotalMerits(toon, i)
            merits = meritList[i]
            self.meritIncLabels[i].hide()
            if CogDisguiseGlobals.isSuitComplete(toon.cogParts, i):
                if not self.trackBarsOffset:
                    trackBarOffset = 0.47
                    self.trackBarsOffset = 1
                meritBar.show()
                meritLabel.show()
                meritLabel.show()
                if totalMerits:
                    meritBar['range'] = totalMerits
                    meritBar['value'] = merits
                    if merits == totalMerits:
                        meritBar['text'] = TTLocalizer.RewardPanelMeritAlert
                    else:
                        meritBar['text'] = '%s/%s %s' % (merits, totalMerits, TTLocalizer.RewardPanelMeritBarLabels[i])
                else:
                    meritBar['range'] = 1
                    meritBar['value'] = 1
                    meritBar['text'] = TTLocalizer.RewardPanelMeritsMaxed
                self.resetMeritBarColor(i)
            else:
                meritBar.hide()
                meritLabel.hide()

        for i in xrange(len(expList)):
            curExp = expList[i]
            trackBar = self.trackBars[i]
            trackLabel = self.trackLabels[i]
            trackIncLabel = self.trackIncLabels[i]
            trackBar.setX(trackBar.getX() - trackBarOffset)
            trackLabel.setX(trackLabel.getX() - trackBarOffset)
            trackIncLabel.setX(trackIncLabel.getX() - trackBarOffset)
            trackIncLabel.hide()
            if toon.hasTrackAccess(i):
                trackBar.show()
                if curExp >= ToontownBattleGlobals.regMaxSkill:
                    nextExp = self.getNextExpValueUber(curExp, i)
                    trackBar['range'] = nextExp
                    uberCurrExp = curExp - ToontownBattleGlobals.regMaxSkill
                    trackBar['value'] = uberCurrExp
                    trackBar['text'] = TTLocalizer.InventoryUberTrackExp % {'nextExp': ToontownBattleGlobals.MaxSkill - curExp}
                else:
                    nextExp = self.getNextExpValue(curExp, i)
                    trackBar['range'] = nextExp
                    trackBar['value'] = curExp
                    trackBar['text'] = '%s/%s' % (curExp, nextExp)
                self.resetBarColor(i)
            else:
                trackBar.hide()
 def getCogPartIntervalList(self, toon, cogPartList):
     itemName = CogDisguiseGlobals.getPartName(cogPartList)
     intervalList = []
     intervalList.append(Func(self.cogPartLabel.setProp, 'text', itemName))
     intervalList.append(Wait(1))
     return intervalList
Example #27
0
 def announceGenerate(self):
     DistributedAvatar.DistributedAvatar.announceGenerate(self)
     self.prevCogSuitLevel = localAvatar.getCogLevels()[
         CogDisguiseGlobals.dept2deptIndex(self.style.dept)]
     nearBubble = CollisionSphere(0, 0, 0, 50)
     nearBubble.setTangible(0)
     nearBubbleNode = CollisionNode('NearBoss')
     nearBubbleNode.setCollideMask(ToontownGlobals.WallBitmask)
     nearBubbleNode.addSolid(nearBubble)
     self.attachNewNode(nearBubbleNode)
     self.accept('enterNearBoss', self.avatarNearEnter)
     self.accept('exitNearBoss', self.avatarNearExit)
     self.collNode.removeSolid(0)
     tube1 = CollisionTube(6.5, -7.5, 2, 6.5, 7.5, 2, 2.5)
     tube2 = CollisionTube(-6.5, -7.5, 2, -6.5, 7.5, 2, 2.5)
     roof = CollisionPolygon(Point3(-4.4, 7.1,
                                    5.5), Point3(-4.4, -7.1, 5.5),
                             Point3(4.4, -7.1, 5.5), Point3(4.4, 7.1, 5.5))
     side1 = CollisionPolygon(Point3(-4.4, -7.1, 5.5),
                              Point3(-4.4, 7.1, 5.5), Point3(-4.4, 7.1, 0),
                              Point3(-4.4, -7.1, 0))
     side2 = CollisionPolygon(Point3(4.4, 7.1, 5.5), Point3(4.4, -7.1, 5.5),
                              Point3(4.4, -7.1, 0), Point3(4.4, 7.1, 0))
     front1 = CollisionPolygon(Point3(4.4, -7.1, 5.5),
                               Point3(-4.4, -7.1, 5.5),
                               Point3(-4.4, -7.1, 5.2),
                               Point3(4.4, -7.1, 5.2))
     back1 = CollisionPolygon(Point3(-4.4, 7.1, 5.5), Point3(4.4, 7.1, 5.5),
                              Point3(4.4, 7.1, 5.2), Point3(-4.4, 7.1, 5.2))
     self.collNode.addSolid(tube1)
     self.collNode.addSolid(tube2)
     self.collNode.addSolid(roof)
     self.collNode.addSolid(side1)
     self.collNode.addSolid(side2)
     self.collNode.addSolid(front1)
     self.collNode.addSolid(back1)
     self.collNodePath.reparentTo(self.axle)
     self.collNode.setCollideMask(ToontownGlobals.PieBitmask
                                  | ToontownGlobals.WallBitmask
                                  | ToontownGlobals.CameraBitmask)
     self.collNode.setName('BossZap')
     self.setTag('attackCode', str(ToontownGlobals.BossCogElectricFence))
     self.accept('enterBossZap', self.__touchedBoss)
     bubbleL = CollisionSphere(10, -5, 0, 10)
     bubbleL.setTangible(0)
     bubbleLNode = CollisionNode('BossZap')
     bubbleLNode.setCollideMask(ToontownGlobals.WallBitmask)
     bubbleLNode.addSolid(bubbleL)
     self.bubbleL = self.axle.attachNewNode(bubbleLNode)
     self.bubbleL.setTag('attackCode', str(ToontownGlobals.BossCogSwatLeft))
     self.bubbleL.stash()
     bubbleR = CollisionSphere(-10, -5, 0, 10)
     bubbleR.setTangible(0)
     bubbleRNode = CollisionNode('BossZap')
     bubbleRNode.setCollideMask(ToontownGlobals.WallBitmask)
     bubbleRNode.addSolid(bubbleR)
     self.bubbleR = self.axle.attachNewNode(bubbleRNode)
     self.bubbleR.setTag('attackCode',
                         str(ToontownGlobals.BossCogSwatRight))
     self.bubbleR.stash()
     bubbleF = CollisionSphere(0, -25, 0, 12)
     bubbleF.setTangible(0)
     bubbleFNode = CollisionNode('BossZap')
     bubbleFNode.setCollideMask(ToontownGlobals.WallBitmask)
     bubbleFNode.addSolid(bubbleF)
     self.bubbleF = self.rotateNode.attachNewNode(bubbleFNode)
     self.bubbleF.setTag('attackCode',
                         str(ToontownGlobals.BossCogFrontAttack))
     self.bubbleF.stash()