def recoverMerits(self, av, cogList, zoneId, multiplier=1, extraMerits=None): avId = av.getDoId() meritsRecovered = [0, 0, 0, 0, 0] if extraMerits is None: extraMerits = [0, 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, 0]: actualCounted = [0, 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|%s' % tuple(actualCounted)) self.notify.debug('recoverMerits: av %s recovered merits %s' % (avId, actualCounted)) return meritsRecovered
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 dbCallback(dclass, fields, toonId=toonId, suitDeptIndex=suitDeptIndex): if dclass != self.air.dclassesByName['DistributedToonAI']: return parts = fields['setCogParts'][0] if CogDisguiseGlobals.isSuitComplete(parts, suitDeptIndex): # Code from DistributedToonAI.loseCogParts: loseCount = random.randrange(CogDisguiseGlobals.MinPartLoss, CogDisguiseGlobals.MaxPartLoss+1) partBitmask = parts[suitDeptIndex] partList = range(17) while loseCount > 0 and partList: losePart = random.choice(partList) partList.remove(losePart) losePartBit = 1 << losePart if partBitmask & losePartBit: partBitmask &= ~losePartBit loseCount -= 1 parts[suitDeptIndex] = partBitmask # Update the cog parts in the db: self.air.dbInterface.updateObject( self.air.dbId, toonId, self.air.dclassesByName['DistributedToonAI'], {'setCogParts': (parts,)} )
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 dbCallback(dclass, fields, toonId=toonId, suitDeptIndex=suitDeptIndex): if dclass != self.air.dclassesByName['DistributedToonAI']: return parts = fields['setCogParts'][0] if CogDisguiseGlobals.isSuitComplete(parts, suitDeptIndex): # Code from DistributedToonAI.loseCogParts: loseCount = random.randrange( CogDisguiseGlobals.MinPartLoss, CogDisguiseGlobals.MaxPartLoss + 1) partBitmask = parts[suitDeptIndex] partList = range(17) while loseCount > 0 and partList: losePart = random.choice(partList) partList.remove(losePart) losePartBit = 1 << losePart if partBitmask & losePartBit: partBitmask &= ~losePartBit loseCount -= 1 parts[suitDeptIndex] = partBitmask # Update the cog parts in the db: self.air.dbInterface.updateObject( self.air.dbId, toonId, self.air.dclassesByName['DistributedToonAI'], {'setCogParts': (parts, )})
def update(self): if not CogDisguiseGlobals.isSuitComplete(base.localAvatar.cogParts, self.deptIndex): self.progressBar['text'] = '%s %s' % ( CogDisguiseGlobals.getPartCountAsString(base.localAvatar.cogParts, self.deptIndex), TTLocalizer.DisguiseParts) self.progressBar['range'] = CogDisguiseGlobals.PartsPerSuit[self.deptIndex] self.progressBar['value'] = CogDisguiseGlobals.getPartCount(base.localAvatar.cogParts, self.deptIndex) return promoStatus = base.localAvatar.promotionStatus[self.deptIndex] if promoStatus != ToontownGlobals.PendingPromotion: totalMerits = CogDisguiseGlobals.getTotalMerits(base.localAvatar, self.deptIndex) merits = base.localAvatar.cogMerits[self.deptIndex] self.progressBar['range'] = totalMerits self.progressBar['value'] = merits self.progressBar['text'] = '%s/%s %s' % ( merits, totalMerits, TTLocalizer.RewardPanelMeritBarLabels[self.deptIndex]) else: self.progressBar['range'] = 1 self.progressBar['value'] = 1 maxSuitLevel = (SuitDNA.levelsPerSuit - 1) + (SuitDNA.suitsPerDept - 1) if base.localAvatar.cogLevels[self.deptIndex] == maxSuitLevel: self.progressBar['text'] = TTLocalizer.RewardPanelMeritsMaxed else: self.progressBar['text'] = TTLocalizer.RewardPanelPromotionPending
def recoverPart(self, toon, factoryType, suitTrack, zoneId, toons): recoveredParts = [0, 0, 0, 0] parts = toon.getCogParts() suitTrack = suitTrackIndex[suitTrack] if CogDisguiseGlobals.isSuitComplete(parts, suitTrack): return recoveredParts recoveredParts[suitTrack] = toon.giveGenericCogPart(factoryType, suitTrack) return recoveredParts
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 recoverPart(self, toon, factoryType, suitTrack, zoneId, toons): recoveredParts = [0, 0, 0, 0, 0] parts = toon.getCogParts() suitTrack = suitTrackIndex[suitTrack] if CogDisguiseGlobals.isSuitComplete(parts, suitTrack): return recoveredParts recoveredParts[suitTrack] = toon.giveGenericCogPart(factoryType, suitTrack) return recoveredParts
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 recoverMerits(self, toon, suitsKilled, zoneId, multiplier=1, extraMerits=None): if 1: #extraMerits is None: extraMerits = [0, 0, 0, 0] #else: # extraMerits = [0, extraMerits, 0, 0] # to do: figure out which track we should add extra merits to (check zoneId?) amounts = {x: y for x, y in zip(SuitDNA.suitDepts, extraMerits)} parts = toon.getCogParts() # calc for suit in suitsKilled: if suit['isVirtual']: continue track, level = suit['track'], suit['level'] deptIdx = SuitDNA.suitDepts.index(track) if not CogDisguiseGlobals.isSuitComplete(parts, deptIdx): continue mult = multiplier * ( getInvasionMultiplier(self.air.suitInvasionManager.isMega()) if self.air.suitInvasionManager.hasInvading() else 1) mult *= int(suit['hasRevives']) + 1 amount = int((level + 1) / 2 * mult) amounts[track] += amount merits = toon.getCogMerits() am2 = [0, 0, 0, 0] for dept, value in amounts.items(): dept = SuitDNA.suitDepts.index(dept) needed = max( 0, CogDisguiseGlobals.getTotalMerits(toon, dept) - merits[dept]) am2[dept] = min(needed, value) # apply toon.b_setCogMerits([x + y for x, y in zip(merits, am2)]) return am2
def isToonWearingRentalSuit(self, toonId): if not self.isToonKnown(toonId): self.notify.warning('isToonWearingRentalSuit: unknown toonId %s' % toonId) return False toon = self.air.doId2do.get(toonId) if toon: if hasattr(toon, 'forceRentalDisguise') and toon.forceRentalDisguise: return True else: return not CogDisguiseGlobals.isSuitComplete( toon.getCogParts(), self.dept) else: self.notify.warning( 'isToonWearingRentalSuit: toonId %s does not exist' % toonId) return False
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 removeParts(self, toonId, suitDeptIndex): toon = self.air.doId2do.get(toonId) # Check if the toon is in our doId2do: if toon is not None: parts = toon.getCogParts() if CogDisguiseGlobals.isSuitComplete(parts, suitDeptIndex): toon.loseCogParts(suitDeptIndex) def dbCallback(dclass, fields, toonId=toonId, suitDeptIndex=suitDeptIndex): if dclass != self.air.dclassesByName['DistributedToonAI']: return parts = fields['setCogParts'][0] if CogDisguiseGlobals.isSuitComplete(parts, suitDeptIndex): # Code from DistributedToonAI.loseCogParts: loseCount = random.randrange( CogDisguiseGlobals.MinPartLoss, CogDisguiseGlobals.MaxPartLoss + 1) partBitmask = parts[suitDeptIndex] partList = range(17) while loseCount > 0 and partList: losePart = random.choice(partList) partList.remove(losePart) losePartBit = 1 << losePart if partBitmask & losePartBit: partBitmask &= ~losePartBit loseCount -= 1 parts[suitDeptIndex] = partBitmask # Update the cog parts in the db: self.air.dbInterface.updateObject( self.air.dbId, toonId, self.air.dclassesByName['DistributedToonAI'], {'setCogParts': (parts, )}) # It doesn't look like the toon was in our doId2do. Lets query the db: self.air.dbInterface.queryObject(self.air.dbId, toonId, dbCallback)
def removeParts(self, toonId, suitDeptIndex): toon = self.air.doId2do.get(toonId) # Check if the toon is in our doId2do: if toon is not None: parts = toon.getCogParts() if CogDisguiseGlobals.isSuitComplete(parts, suitDeptIndex): toon.loseCogParts(suitDeptIndex) def dbCallback(dclass, fields, toonId=toonId, suitDeptIndex=suitDeptIndex): if dclass != self.air.dclassesByName['DistributedToonAI']: return parts = fields['setCogParts'][0] if CogDisguiseGlobals.isSuitComplete(parts, suitDeptIndex): # Code from DistributedToonAI.loseCogParts: loseCount = random.randrange(CogDisguiseGlobals.MinPartLoss, CogDisguiseGlobals.MaxPartLoss+1) partBitmask = parts[suitDeptIndex] partList = range(17) while loseCount > 0 and partList: losePart = random.choice(partList) partList.remove(losePart) losePartBit = 1 << losePart if partBitmask & losePartBit: partBitmask &= ~losePartBit loseCount -= 1 parts[suitDeptIndex] = partBitmask # Update the cog parts in the db: self.air.dbInterface.updateObject( self.air.dbId, toonId, self.air.dclassesByName['DistributedToonAI'], {'setCogParts': (parts,)} ) # It doesn't look like the toon was in our doId2do. Lets query the db: self.air.dbInterface.queryObject(self.air.dbId, toonId, dbCallback)
def recoverMerits(self, toon, suitsKilled, zoneId, mult = 1, extraMerits = None): if 1: #extraMerits is None: extraMerits = [0, 0, 0, 0] #else: # extraMerits = [0, extraMerits, 0, 0] # to do: figure out which track we should add extra merits to (check zoneId?) amounts = {x: y for x, y in zip(SuitDNA.suitDepts, extraMerits)} parts = toon.getCogParts() # calc for suit in suitsKilled: if suit['isVirtual']: continue track, level = suit['track'], suit['level'] deptIdx = SuitDNA.suitDepts.index(track) if not CogDisguiseGlobals.isSuitComplete(parts, deptIdx): continue mult = (2 if self.air.suitInvasionManager.hasInvading() else 1) mult *= int(suit['hasRevives']) + 1 amount = int((level + 1) / 2 * mult) * mult amounts[track] += amount merits = toon.getCogMerits() am2 = [0, 0, 0, 0] for dept, value in amounts.items(): dept = SuitDNA.suitDepts.index(dept) needed = max(0, CogDisguiseGlobals.getTotalMerits(toon, dept) - merits[dept]) am2[dept] = min(needed, value) # apply toon.b_setCogMerits([x + y for x, y in zip(merits, am2)]) return am2
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()) return self.enqueueAvatarIdEnter(avatarId) self.sendUpdateToAvatarId( avatarId, 'setOtherZoneIdAndDoId', [self.destinationZone, self.otherDoor.getDoId()])
def update(self): if not CogDisguiseGlobals.isSuitComplete(base.localAvatar.cogParts, self.deptIndex): self.progressBar['text'] = '%s %s' % ( CogDisguiseGlobals.getPartCountAsString( base.localAvatar.cogParts, self.deptIndex), TTLocalizer.DisguiseParts) self.progressBar['range'] = CogDisguiseGlobals.PartsPerSuit[ self.deptIndex] self.progressBar['value'] = CogDisguiseGlobals.getPartCount( base.localAvatar.cogParts, self.deptIndex) return promoStatus = base.localAvatar.promotionStatus[self.deptIndex] if promoStatus != ToontownGlobals.PendingPromotion: totalMerits = CogDisguiseGlobals.getTotalMerits( base.localAvatar, self.deptIndex) merits = base.localAvatar.cogMerits[self.deptIndex] self.progressBar['range'] = totalMerits self.progressBar['value'] = merits self.progressBar['text'] = '%s/%s %s' % ( merits, totalMerits, TTLocalizer.RewardPanelMeritBarLabels[self.deptIndex]) else: self.progressBar['range'] = 1 self.progressBar['value'] = 1 maxSuitLevel = (SuitDNA.levelsPerSuit - 1) + (SuitDNA.suitsPerDept - 1) if base.localAvatar.cogLevels[self.deptIndex] == maxSuitLevel: self.progressBar['text'] = TTLocalizer.RewardPanelMeritsMaxed else: self.progressBar[ 'text'] = TTLocalizer.RewardPanelPromotionPending
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() promoStatus = toon.promotionStatus[i] 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 promoStatus != ToontownGlobals.PendingPromotion: meritBar['text'] = '%s/%s %s' % ( merits, totalMerits, TTLocalizer.RewardPanelMeritBarLabels[i]) maxSuitType = SuitDNA.suitsPerDept - 1 maxSuitLevel = (SuitDNA.levelsPerSuit - 1) + maxSuitType if toon.cogLevels[i] == maxSuitLevel: if promoStatus == ToontownGlobals.PendingPromotion: meritBar['range'] = 1 meritBar['value'] = 1 meritBar['text'] = TTLocalizer.RewardPanelMeritsMaxed elif promoStatus == ToontownGlobals.PendingPromotion: meritBar['range'] = 1 meritBar['value'] = 1 meritBar['text'] = TTLocalizer.RewardPanelPromotionPending 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.UnpaidMaxSkills[ i] and toon.getGameAccess() != OTPGlobals.AccessFull: nextExp = self.getNextExpValue(curExp, i) trackBar['range'] = nextExp trackBar['value'] = ToontownBattleGlobals.UnpaidMaxSkills[ i] trackBar['text'] = TTLocalizer.InventoryGuestExp elif 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 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.UnpaidMaxSkills[i] and toon.getGameAccess() != OTPGlobals.AccessFull: nextExp = self.getNextExpValue(curExp, i) trackBar['range'] = nextExp trackBar['value'] = ToontownBattleGlobals.UnpaidMaxSkills[i] trackBar['text'] = TTLocalizer.InventoryGuestExp elif 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 initGagFrame(self, toon, expList, meritList, noSkip=False): self.notify.debug('Initializing Gag Frame!') self.avNameLabel['text'] = toon.getName() self.hqBonusLabel.hide() try: zoneId = base.cr.playGame.getPlace().getTaskZoneId() except: zoneId = 0 if hasattr(base.cr, 'newsManager'): if base.cr.newsManager.isHolidayRunning( ToontownGlobals.MORE_XP_HOLIDAY): self.multiplierLabel['text'] = "5x Gag Multiplier" if base.cr.newsManager.getInvading(): self.hqBonusLabel['text'] = TTLocalizer.CogInvasionBonus if ZoneUtil.isCogHQZone(zoneId): self.hqBonusLabel['text'] = TTLocalizer.CogHQBonus if base.cr.newsManager.getInvading() and ZoneUtil.isCogHQZone( zoneId): self.hqBonusLabel['text'] = TTLocalizer.MegaBonus if ZoneUtil.isCogHQZone(zoneId) or self.hqBonusLabel['text'] != '': self.hqBonusLabel.show() self.growShrink = Sequence( LerpScaleInterval(self.hqBonusLabel, 1, 1.1, 0.9, blendType='easeInOut'), LerpScaleInterval(self.hqBonusLabel, 1, 0.9, 1.1, blendType='easeInOut')) self.growShrink.loop() self.endTrackFrame.hide() self.gagExpFrame.show() self.multiplierLabel.show() self.newGagFrame.hide() self.promotionFrame.hide() self.questFrame.hide() self.itemFrame.hide() self.cogPartFrame.hide() self.missedItemFrame.hide() trackBarOffset = 0 self.skipButton['state'] = DGG.DISABLED if noSkip else 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.UnpaidMaxSkills[ i] and toon.getGameAccess() != OTPGlobals.AccessFull: nextExp = self.getNextExpValue(curExp, i) trackBar['range'] = nextExp trackBar['value'] = ToontownBattleGlobals.UnpaidMaxSkills[ i] trackBar['text'] = TTLocalizer.InventoryGuestExp elif 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 removeParts(self, toon, suitDept): parts = toon.getCogParts() if CogDisguiseGlobals.isSuitComplete(parts, suitDept): toon.loseCogParts(suitDept)
def initGagFrame(self, toon, expList, meritList): 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 # Initialize the cog merit bars if enabled for i in range(len(SuitDNA.suitDepts)): meritBar = self.meritBars[i] meritLabel = self.meritLabels[i] totalMerits = CogDisguiseGlobals.getTotalMerits(toon, i) merits = meritList[i] self.meritIncLabels[i].hide() # if we are have a full suit then we are working on promotions if CogDisguiseGlobals.isSuitComplete(toon.cogParts, i): # if we don't show the merit bar, we must shift the skill bars left if not self.trackBarsOffset: trackBarOffset = 0.47 # only do this once! :) 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: # if total merits = None, this dept is maxed out meritBar["range"] = 1 meritBar["value"] = 1 meritBar["text"] = TTLocalizer.RewardPanelMeritsMaxed self.resetMeritBarColor(i) else: meritBar.hide() meritLabel.hide() # Initialize all the bars with the current and next exp for i in range(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.UnpaidMaxSkill and toon.getGameAccess() != OTPGlobals.AccessFull: nextExp = self.getNextExpValue(curExp, i) trackBar["range"] = nextExp trackBar["value"] = ToontownBattleGlobals.UnpaidMaxSkill trackBar["text"] = (TTLocalizer.InventoryGuestExp) elif 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() return
def removeParts(self, toon, suitDept): parts = toon.getCogParts() if CogDisguiseGlobals.isSuitComplete(parts, suitDept): toon.loseCogParts(suitDept)