From 9d54f4f88aa706195ca91498e87fd4ecaa020491 Mon Sep 17 00:00:00 2001 From: Loudrob Date: Wed, 13 May 2015 07:41:49 -0400 Subject: [PATCH] Murdered TTI's promotion system. --- astron/dclass/united.dc | 2 - otp/distributed/DCClassImports.py | 2 +- toontown/battle/RewardPanel.py | 26 +- toontown/coghq/CogDisguiseGlobals.py | 360 +++++++++++++++++-- toontown/coghq/DistributedBattleFactoryAI.py | 7 +- toontown/quest/QuestRewardCounter.py | 10 +- toontown/shtiker/DisguisePage.py | 166 ++------- toontown/suit/DistributedBossbotBoss.py | 18 +- toontown/suit/DistributedCashbotBoss.py | 18 +- toontown/suit/DistributedLawbotBoss.py | 18 +- toontown/suit/DistributedSellbotBoss.py | 23 +- toontown/suit/SuitDNA.py | 1 - toontown/toon/DistributedToon.py | 18 +- toontown/toon/DistributedToonAI.py | 109 +++--- toontown/toonbase/TTLocalizerEnglish.py | 27 +- toontown/toonbase/ToontownGlobals.py | 11 +- 16 files changed, 487 insertions(+), 329 deletions(-) diff --git a/astron/dclass/united.dc b/astron/dclass/united.dc index c8966c4e..029810b2 100644 --- a/astron/dclass/united.dc +++ b/astron/dclass/united.dc @@ -739,8 +739,6 @@ dclass DistributedToon : DistributedPlayer { setCogTypes(uint8[] = [0 * 4]) required broadcast ownrecv db; setCogParts(uint32[] = [0 * 4]) required broadcast ownrecv db; setCogMerits(uint16[] = [0 * 4]) required ownrecv db; - setPromotionStatus(uint8[] = [0 * 4]) required broadcast ownrecv db; - requestPromotion(uint8) ownsend airecv; setCogIndex(int8) broadcast ram; setDisguisePageFlag(int8) ownrecv; setSosPageFlag(int8) ownrecv; diff --git a/otp/distributed/DCClassImports.py b/otp/distributed/DCClassImports.py index c5060377..5741c992 100644 --- a/otp/distributed/DCClassImports.py +++ b/otp/distributed/DCClassImports.py @@ -2,7 +2,7 @@ from pandac.PandaModules import * -hashVal = 30166307 +hashVal = 3191861370L from toontown.coghq import DistributedCashbotBossSafe, DistributedCashbotBossCrane, DistributedBattleFactory, DistributedCashbotBossTreasure, DistributedCogHQDoor, DistributedSellbotHQDoor, DistributedFactoryElevatorExt, DistributedMintElevatorExt, DistributedLawOfficeElevatorExt, DistributedLawOfficeElevatorInt, LobbyManager, DistributedMegaCorp, DistributedFactory, DistributedLawOffice, DistributedLawOfficeFloor, DistributedLift, DistributedDoorEntity, DistributedSwitch, DistributedButton, DistributedTrigger, DistributedCrushableEntity, DistributedCrusherEntity, DistributedStomper, DistributedStomperPair, DistributedLaserField, DistributedGolfGreenGame, DistributedSecurityCamera, DistributedMover, DistributedElevatorMarker, DistributedBarrelBase, DistributedGagBarrel, DistributedBeanBarrel, DistributedHealBarrel, DistributedGrid, ActiveCell, DirectionalCell, CrusherCell, DistributedCrate, DistributedSinkingPlatform, BattleBlocker, DistributedMint, DistributedMintRoom, DistributedMintBattle, DistributedStage, DistributedStageRoom, DistributedStageBattle, DistributedLawbotBossGavel, DistributedLawbotCannon, DistributedLawbotChair, DistributedCogKart, DistributedCountryClub, DistributedCountryClubRoom, DistributedMoleField, DistributedCountryClubBattle, DistributedMaze, DistributedFoodBelt, DistributedBanquetTable, DistributedGolfSpot diff --git a/toontown/battle/RewardPanel.py b/toontown/battle/RewardPanel.py index 29bd6e36..415394ea 100644 --- a/toontown/battle/RewardPanel.py +++ b/toontown/battle/RewardPanel.py @@ -195,7 +195,6 @@ class RewardPanel(DirectFrame): 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 @@ -206,19 +205,14 @@ class RewardPanel(DirectFrame): if totalMerits: meritBar['range'] = totalMerits meritBar['value'] = merits - if promoStatus != ToontownGlobals.PendingPromotion: + if merits == totalMerits: + meritBar['text'] = TTLocalizer.RewardPanelMeritAlert + else: 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: + else: meritBar['range'] = 1 meritBar['value'] = 1 - meritBar['text'] = TTLocalizer.RewardPanelPromotionPending + meritBar['text'] = TTLocalizer.RewardPanelMeritsMaxed self.resetMeritBarColor(i) else: meritBar.hide() @@ -276,12 +270,18 @@ class RewardPanel(DirectFrame): def incrementMerits(self, toon, dept, newValue, totalMerits): meritBar = self.meritBars[dept] - promoStatus = toon.promotionStatus[dept] + oldValue = meritBar['value'] if totalMerits: newValue = min(totalMerits, newValue) meritBar['range'] = totalMerits meritBar['value'] = newValue - if promoStatus != ToontownGlobals.PendingPromotion: + if newValue == totalMerits: + meritBar['text'] = TTLocalizer.RewardPanelMeritAlert + meritBar['barColor'] = (DisguisePage.DeptColors[dept][0], + DisguisePage.DeptColors[dept][1], + DisguisePage.DeptColors[dept][2], + 1) + else: meritBar['text'] = '%s/%s %s' % (newValue, totalMerits, TTLocalizer.RewardPanelMeritBarLabels[dept]) def resetMeritBarColor(self, dept): diff --git a/toontown/coghq/CogDisguiseGlobals.py b/toontown/coghq/CogDisguiseGlobals.py index 30c7cef6..27a36076 100644 --- a/toontown/coghq/CogDisguiseGlobals.py +++ b/toontown/coghq/CogDisguiseGlobals.py @@ -3,8 +3,6 @@ import types from toontown.toonbase import TTLocalizer from direct.showbase import PythonUtil from otp.otpbase import OTPGlobals -from toontown.battle import SuitBattleGlobals - PartsPerSuit = (17, 14, 12, @@ -14,8 +12,320 @@ PartsPerSuitBitmasks = (131071, 56447, 56411) AllBits = 131071 -MinPartLoss = 1 -MaxPartLoss = 2 +MinPartLoss = 2 +MaxPartLoss = 4 +MeritsPerLevel = ((100, + 130, + 160, + 190, + 800), + (160, + 210, + 260, + 310, + 1300), + (260, + 340, + 420, + 500, + 2100), + (420, + 550, + 680, + 810, + 3400), + (680, + 890, + 1100, + 1310, + 5500), + (1100, + 1440, + 1780, + 2120, + 8900), + (1780, + 2330, + 2880, + 3430, + 14400), + (2880, + 3770, + 4660, + 5500, + 23300, + 2880, + 23300, + 2880, + 3770, + 4660, + 5500, + 23300, + 2880, + 3770, + 4660, + 5500, + 6440, + 7330, + 8220, + 9110, + 10000, + 23300, + 2880, + 3770, + 4660, + 5500, + 6440, + 7330, + 8220, + 9110, + 10000, + 23300, + 2880, + 3770, + 4660, + 5500, + 6440, + 7330, + 8220, + 9110, + 10000, + 23300, + 0), + (60, + 80, + 100, + 120, + 500), + (100, + 130, + 160, + 190, + 800), + (160, + 210, + 260, + 310, + 1300), + (260, + 340, + 420, + 500, + 2100), + (420, + 550, + 680, + 810, + 3400), + (680, + 890, + 1100, + 1310, + 5500), + (1100, + 1440, + 1780, + 2120, + 8900), + (1780, + 2330, + 2880, + 3430, + 14400, + 1780, + 14400, + 1780, + 2330, + 2880, + 3430, + 14400, + 1780, + 2330, + 2880, + 3430, + 3980, + 4530, + 5080, + 5630, + 6180, + 14400, + 1780, + 2330, + 2880, + 3430, + 3980, + 4530, + 5080, + 5630, + 6180, + 14400, + 1780, + 2330, + 2880, + 3430, + 3980, + 4530, + 5080, + 5630, + 6180, + 14400, + 0), + (40, + 50, + 60, + 70, + 300), + (60, + 80, + 100, + 120, + 500), + (100, + 130, + 160, + 190, + 800), + (160, + 210, + 260, + 310, + 1300), + (260, + 340, + 420, + 500, + 2100), + (420, + 550, + 680, + 810, + 3400), + (680, + 890, + 1100, + 1310, + 5500), + (1100, + 1440, + 1780, + 2120, + 8900, + 1100, + 8900, + 1100, + 1440, + 1780, + 2120, + 8900, + 1100, + 1440, + 1780, + 2120, + 2460, + 2800, + 3140, + 3480, + 3820, + 8900, + 1100, + 1440, + 1780, + 2120, + 2460, + 2800, + 3140, + 3480, + 3820, + 8900, + 1100, + 1440, + 1780, + 2120, + 2460, + 2800, + 3140, + 3480, + 3820, + 8900, + 0), + (20, + 30, + 40, + 50, + 200), + (40, + 50, + 60, + 70, + 300), + (60, + 80, + 100, + 120, + 500), + (100, + 130, + 160, + 190, + 800), + (160, + 210, + 260, + 310, + 1300), + (260, + 340, + 420, + 500, + 2100), + (420, + 550, + 680, + 810, + 3400), + (680, + 890, + 1100, + 1310, + 5500, + 680, + 5500, + 680, + 890, + 1100, + 1310, + 5500, + 680, + 890, + 1100, + 1310, + 1520, + 1730, + 1940, + 2150, + 2360, + 5500, + 680, + 890, + 1100, + 1310, + 1520, + 1730, + 1940, + 2150, + 2360, + 5500, + 680, + 890, + 1100, + 1310, + 1520, + 1730, + 1940, + 2150, + 2360, + 5500, + 0)) leftLegUpper = 1 leftLegLower = 2 leftLegFoot = 4 @@ -121,22 +431,6 @@ PartsQueryNames = ({1: PartNameStrings[0], 65536: PartNameStrings[15]}) suitTypes = PythonUtil.Enum(('NoSuit', 'NoMerits', 'FullSuit')) -def makeMeritHierarchy(baseMerits): - meritHierarchy = [] - for _ in xrange(SuitDNA.suitsPerDept): - meritTier = [] - for _ in xrange(SuitDNA.levelsPerSuit): - baseMerits += (baseMerits*25) / 100 - meritTier.append(baseMerits) - meritHierarchy.append(tuple(meritTier)) - baseMerits /= 2 - return meritHierarchy - -MeritsPerLevel = makeMeritHierarchy(100) # Bossbot -MeritsPerLevel += makeMeritHierarchy(75) # Lawbot -MeritsPerLevel += makeMeritHierarchy(50) # Cashbot -MeritsPerLevel += makeMeritHierarchy(25) # Sellbot - def getNextPart(parts, partIndex, dept): dept = dept2deptIndex(dept) needMask = PartsPerSuitBitmasks[dept] & PartsQueryMasks[partIndex] @@ -146,6 +440,7 @@ def getNextPart(parts, partIndex, dept): nextPart = nextPart + 1 >> 1 return nextPart + def getPartName(partArray): index = 0 for part in partArray: @@ -153,14 +448,27 @@ def getPartName(partArray): return PartsQueryNames[index][part] index += 1 + def isSuitComplete(parts, dept): dept = dept2deptIndex(dept) - for p in xrange(len(PartsQueryMasks)): + for p in range(len(PartsQueryMasks)): if getNextPart(parts, p, dept): return 0 return 1 + +def isPaidSuitComplete(av, parts, dept): + isPaid = 0 + base = getBase() + if av and av.getGameAccess() == OTPGlobals.AccessFull: + isPaid = 1 + if isPaid: + if isSuitComplete(parts, dept): + return 1 + return 0 + + def getTotalMerits(toon, index): from toontown.battle import SuitBattleGlobals cogIndex = toon.cogTypes[index] + SuitDNA.suitsPerDept * index @@ -170,13 +478,15 @@ def getTotalMerits(toon, index): cogLevel = max(min(cogLevel, len(MeritsPerLevel[cogIndex]) - 1), 0) return MeritsPerLevel[cogIndex][cogLevel] + def getTotalParts(bitString, shiftWidth = 32): sum = 0 - for shift in xrange(0, shiftWidth): + for shift in range(0, shiftWidth): sum = sum + (bitString >> shift & 1) return sum + def asBitstring(number): array = [] shift = 0 @@ -190,19 +500,21 @@ def asBitstring(number): shift += 1 str = '' - for i in xrange(0, len(array)): + for i in range(0, len(array)): str = str + array[i] return str + def asNumber(bitstring): num = 0 - for i in xrange(0, len(bitstring)): + for i in range(0, len(bitstring)): if bitstring[i] == '1': num += pow(2, len(bitstring) - 1 - i) return num + def dept2deptIndex(dept): if type(dept) == types.StringType: dept = SuitDNA.suitDepts.index(dept) diff --git a/toontown/coghq/DistributedBattleFactoryAI.py b/toontown/coghq/DistributedBattleFactoryAI.py index 5a0c3395..75a865f0 100644 --- a/toontown/coghq/DistributedBattleFactoryAI.py +++ b/toontown/coghq/DistributedBattleFactoryAI.py @@ -34,10 +34,9 @@ class DistributedBattleFactoryAI(DistributedLevelBattleAI.DistributedLevelBattle else: self.notify.debug('toon %d not helpful, 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) + self.toonParts[toon.doId] = self.air.cogSuitMgr.recoverPart(toon, self.level.factoryType, self.suitTrack, self.getTaskZoneId(), toons) + self.notify.debug('toonParts = %s' % self.toonParts) + def enterFactoryReward(self): self.joinableFsm.request('Unjoinable') diff --git a/toontown/quest/QuestRewardCounter.py b/toontown/quest/QuestRewardCounter.py index a2e5ef8a..8bc91e19 100644 --- a/toontown/quest/QuestRewardCounter.py +++ b/toontown/quest/QuestRewardCounter.py @@ -70,7 +70,15 @@ class QuestRewardCounter: cogTypes = av.getCogTypes() suitHp = 0 for dept in HQdepts: - suitHp += levels[dept] + level = levels[dept] + type = cogTypes[dept] + if type >= SuitDNA.suitsPerDept - 1: + 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 kartingHp = int(av.kartingTrophies.count(1) / RaceGlobals.TrophiesPerCup) diff --git a/toontown/shtiker/DisguisePage.py b/toontown/shtiker/DisguisePage.py index 3424910b..bc485bf9 100644 --- a/toontown/shtiker/DisguisePage.py +++ b/toontown/shtiker/DisguisePage.py @@ -1,27 +1,18 @@ +import ShtikerPage from direct.gui.DirectGui import * from pandac.PandaModules import * - -import ShtikerPage -from toontown.battle import SuitBattleGlobals -from toontown.coghq import CogDisguiseGlobals -from toontown.suit import SuitDNA -from toontown.toonbase import TTLocalizer from toontown.toonbase import ToontownGlobals - - -DeptColors = ( - Vec4(0.647, 0.608, 0.596, 1.0), - Vec4(0.588, 0.635, 0.671, 1.0), - Vec4(0.596, 0.714, 0.659, 1.0), - Vec4(0.761, 0.678, 0.69, 1.0) -) +from toontown.toonbase import TTLocalizer +from toontown.suit import SuitDNA +from toontown.battle import SuitBattleGlobals +from toontown.minigame import MinigamePowerMeter +from toontown.coghq import CogDisguiseGlobals +DeptColors = (Vec4(0.647, 0.608, 0.596, 1.0), + Vec4(0.588, 0.635, 0.671, 1.0), + Vec4(0.596, 0.714, 0.659, 1.0), + Vec4(0.761, 0.678, 0.69, 1.0)) NumParts = max(CogDisguiseGlobals.PartsPerSuit) -PartNames = ( - 'lUpleg', 'lLowleg', 'lShoe', 'rUpleg', 'rLowleg', 'rShoe', 'lShoulder', - 'rShoulder', 'chest', 'waist', 'hip', 'lUparm', 'lLowarm', 'lHand', - 'rUparm', 'rLowarm', 'rHand' -) - +PartNames = ('lUpleg', 'lLowleg', 'lShoe', 'rUpleg', 'rLowleg', 'rShoe', 'lShoulder', 'rShoulder', 'chest', 'waist', 'hip', 'lUparm', 'lLowarm', 'lHand', 'rUparm', 'rLowarm', 'rHand') class DisguisePage(ShtikerPage.ShtikerPage): meterColor = Vec4(0.87, 0.87, 0.827, 1.0) @@ -31,14 +22,13 @@ class DisguisePage(ShtikerPage.ShtikerPage): ShtikerPage.ShtikerPage.__init__(self) self.activeTab = 0 self.progressTitle = None + return def load(self): ShtikerPage.ShtikerPage.load(self) - - gui = loader.loadModel('phase_9/models/gui/cog_disguises.bam') + gui = loader.loadModel('phase_9/models/gui/cog_disguises') self.frame = DirectFrame(parent=self, relief=None, scale=0.47, pos=(0.02, 1, 0)) - self.bkgd = DirectFrame( - parent=self.frame, geom=gui.find('**/base'), relief=None, scale=(0.98, 1, 1)) + self.bkgd = DirectFrame(parent=self.frame, geom=gui.find('**/base'), relief=None, scale=(0.98, 1, 1)) self.bkgd.setTextureOff(1) self.tabs = [] self.pageFrame = DirectFrame(parent=self.frame, relief=None) @@ -57,116 +47,51 @@ class DisguisePage(ShtikerPage.ShtikerPage): textPos = (1.57, -1.05) pageGeom = gui.find('**/page%d' % tabIndex) tabGeom = gui.find('**/tab%d' % tabIndex) - tab = DirectButton( - parent=self.pageFrame, relief=None, geom=tabGeom, - geom_color=DeptColors[tabIndex - 1], - text=SuitDNA.suitDeptFullnames[dept], - text_font=ToontownGlobals.getSuitFont(), text_pos=textPos, - text_roll=-90, text_scale=TTLocalizer.DPtab, - text_align=TextNode.ACenter, text1_fg=Vec4(1, 0, 0, 1), - text2_fg=Vec4(0.5, 0.4, 0.4, 1), - text3_fg=Vec4(0.4, 0.4, 0.4, 1), command=self.doTab, - extraArgs=[len(self.tabs)], pressEffect=0) + tab = DirectButton(parent=self.pageFrame, relief=None, geom=tabGeom, geom_color=DeptColors[tabIndex - 1], text=SuitDNA.suitDeptFullnames[dept], text_font=ToontownGlobals.getSuitFont(), text_pos=textPos, text_roll=-90, text_scale=TTLocalizer.DPtab, text_align=TextNode.ACenter, text1_fg=Vec4(1, 0, 0, 1), text2_fg=Vec4(0.5, 0.4, 0.4, 1), text3_fg=Vec4(0.4, 0.4, 0.4, 1), command=self.doTab, extraArgs=[len(self.tabs)], pressEffect=0) self.tabs.append(tab) - DirectFrame(parent=tab, relief=None, geom=pageGeom) + page = DirectFrame(parent=tab, relief=None, geom=pageGeom) - self.deptLabel = DirectLabel( - parent=self.frame, text='', - text_font=ToontownGlobals.getSuitFont(), - text_scale=TTLocalizer.DPdeptLabel, text_pos=(-0.1, 0.8)) + self.deptLabel = DirectLabel(parent=self.frame, text='', text_font=ToontownGlobals.getSuitFont(), text_scale=TTLocalizer.DPdeptLabel, text_pos=(-0.1, 0.8)) DirectFrame(parent=self.frame, relief=None, geom=gui.find('**/pipe_frame')) self.tube = DirectFrame(parent=self.frame, relief=None, geom=gui.find('**/tube')) DirectFrame(parent=self.frame, relief=None, geom=gui.find('**/robot/face')) - DirectLabel( - parent=self.frame, relief=None, - geom=gui.find('**/text_cog_disguises'), geom_pos=(0, 0.1, 0)) - self.meritTitle = DirectLabel( - parent=self.frame, relief=None, - geom=gui.find('**/text_merit_progress'), geom_pos=(0, 0.1, 0)) + DirectLabel(parent=self.frame, relief=None, geom=gui.find('**/text_cog_disguises'), geom_pos=(0, 0.1, 0)) + self.meritTitle = DirectLabel(parent=self.frame, relief=None, geom=gui.find('**/text_merit_progress'), geom_pos=(0, 0.1, 0)) self.meritTitle.hide() - self.cogbuckTitle = DirectLabel( - parent=self.frame, relief=None, - geom=gui.find('**/text_cashbuck_progress'), geom_pos=(0, 0.1, 0)) + self.cogbuckTitle = DirectLabel(parent=self.frame, relief=None, geom=gui.find('**/text_cashbuck_progress'), geom_pos=(0, 0.1, 0)) self.cogbuckTitle.hide() - self.juryNoticeTitle = DirectLabel( - parent=self.frame, relief=None, - geom=gui.find('**/text_jury_notice_progress'), geom_pos=(0, 0.1, 0)) + self.juryNoticeTitle = DirectLabel(parent=self.frame, relief=None, geom=gui.find('**/text_jury_notice_progress'), geom_pos=(0, 0.1, 0)) self.juryNoticeTitle.hide() - self.stockOptionTitle = DirectLabel( - parent=self.frame, relief=None, - geom=gui.find('**/text_stock_option_progress'), geom_pos=(0, 0.1, 0)) + self.stockOptionTitle = DirectLabel(parent=self.frame, relief=None, geom=gui.find('**/text_stock_option_progress'), geom_pos=(0, 0.1, 0)) self.stockOptionTitle.hide() self.progressTitle = self.meritTitle - self.promotionTitle = DirectLabel( - parent=self.frame, relief=None, - geom=gui.find('**/text_ready4promotion'), geom_pos=(0, 0.1, 0)) - self.cogName = DirectLabel( - parent=self.frame, relief=None, text='', - text_font=ToontownGlobals.getSuitFont(), - text_scale=TTLocalizer.DPcogName, text_align=TextNode.ACenter, - pos=(-0.948, 0, -1.15)) - self.cogLevel = DirectLabel( - parent=self.frame, relief=None, text='', - text_font=ToontownGlobals.getSuitFont(), text_scale=0.09, - text_align=TextNode.ACenter, pos=(-0.91, 0, -1.02)) + self.promotionTitle = DirectLabel(parent=self.frame, relief=None, geom=gui.find('**/text_ready4promotion'), geom_pos=(0, 0.1, 0)) + self.cogName = DirectLabel(parent=self.frame, relief=None, text='', text_font=ToontownGlobals.getSuitFont(), text_scale=TTLocalizer.DPcogName, text_align=TextNode.ACenter, pos=(-0.948, 0, -1.15)) + self.cogLevel = DirectLabel(parent=self.frame, relief=None, text='', text_font=ToontownGlobals.getSuitFont(), text_scale=0.09, text_align=TextNode.ACenter, pos=(-0.91, 0, -1.02)) self.partFrame = DirectFrame(parent=self.frame, relief=None) self.parts = [] - for partNum in xrange(0, 17): - self.parts.append( - DirectFrame(parent=self.partFrame, relief=None, - geom=gui.find('**/robot/' + PartNames[partNum]))) + for partNum in range(0, NumParts): + self.parts.append(DirectFrame(parent=self.partFrame, relief=None, geom=gui.find('**/robot/' + PartNames[partNum]))) + self.holes = [] - for partNum in xrange(0, 17): - self.holes.append( - DirectFrame(parent=self.partFrame, relief=None, - geom=gui.find('**/robot_hole/' + PartNames[partNum]))) - self.cogPartRatio = DirectLabel( - parent=self.frame, relief=None, text='', - text_font=ToontownGlobals.getSuitFont(), text_scale=0.08, - text_align=TextNode.ACenter, pos=(-0.91, 0, -0.82)) - self.cogMeritRatio = DirectLabel( - parent=self.frame, relief=None, text='', - text_font=ToontownGlobals.getSuitFont(), text_scale=0.08, - text_align=TextNode.ACenter, pos=(0.45, 0, -0.36)) + for partNum in range(0, NumParts): + self.holes.append(DirectFrame(parent=self.partFrame, relief=None, geom=gui.find('**/robot_hole/' + PartNames[partNum]))) + + self.cogPartRatio = DirectLabel(parent=self.frame, relief=None, text='', text_font=ToontownGlobals.getSuitFont(), text_scale=0.08, text_align=TextNode.ACenter, pos=(-0.91, 0, -0.82)) + self.cogMeritRatio = DirectLabel(parent=self.frame, relief=None, text='', text_font=ToontownGlobals.getSuitFont(), text_scale=0.08, text_align=TextNode.ACenter, pos=(0.45, 0, -0.36)) meterFace = gui.find('**/meter_face_whole') meterFaceHalf = gui.find('**/meter_face_half') - self.meterFace = DirectLabel( - parent=self.frame, relief=None, geom=meterFace, - color=self.meterColor, pos=(0.455, 0.0, 0.04)) - self.meterFaceHalf1 = DirectLabel( - parent=self.frame, relief=None, geom=meterFaceHalf, - color=self.meterActiveColor, pos=(0.455, 0.0, 0.04)) - self.meterFaceHalf2 = DirectLabel( - parent=self.frame, relief=None, geom=meterFaceHalf, - color=self.meterColor, pos=(0.455, 0.0, 0.04)) - self.promotionSfx = loader.loadSfx('phase_5/audio/sfx/suit_promotion_sfx.ogg') - self.buttonModels = loader.loadModel('phase_3.5/models/gui/inventory_gui.bam') - upButton = self.buttonModels.find('**//InventoryButtonUp') - downButton = self.buttonModels.find('**/InventoryButtonDown') - rolloverButton = self.buttonModels.find('**/InventoryButtonRollover') - self.promoteButton = DirectButton( - parent=self.frame, relief=None, text='Promote', - text_fg=(0.9, 0.9, 0.9, 1), text_pos=(0, -0.2), - text_font=ToontownGlobals.getSuitFont(), - text_scale=0.6, image=(upButton, downButton, rolloverButton), - image_color=(0.5, 0.5, 0.5, 1), image_scale=(20, 1, 11), - pos=(0.94, 0, -1.125), scale=0.125, - command=self.sendPromotionRequest, extraArgs=[3]) - self.promoteButton.hide() - if base.localAvatar.promotionStatus[3] == ToontownGlobals.PendingPromotion: - self.promoteButton.show() - if base.localAvatar.cogLevels[3] == ToontownGlobals.MaxCogSuitLevel: - self.promoteButton['state'] = DGG.DISABLED + self.meterFace = DirectLabel(parent=self.frame, relief=None, geom=meterFace, color=self.meterColor, pos=(0.455, 0.0, 0.04)) + self.meterFaceHalf1 = DirectLabel(parent=self.frame, relief=None, geom=meterFaceHalf, color=self.meterActiveColor, pos=(0.455, 0.0, 0.04)) + self.meterFaceHalf2 = DirectLabel(parent=self.frame, relief=None, geom=meterFaceHalf, color=self.meterColor, pos=(0.455, 0.0, 0.04)) self.frame.hide() self.activeTab = 3 self.updatePage() + return def unload(self): ShtikerPage.ShtikerPage.unload(self) - del self.promotionSfx - self.buttonModels.removeNode() - def enter(self): self.frame.show() ShtikerPage.ShtikerPage.enter(self) @@ -236,10 +161,9 @@ class DisguisePage(ShtikerPage.ShtikerPage): self.meterFaceHalf2.setR(180 * (progress / 0.5)) def doTab(self, index): - self.promoteButton.hide() self.activeTab = index self.tabs[index].reparentTo(self.pageFrame) - for i in xrange(len(self.tabs)): + for i in range(len(self.tabs)): tab = self.tabs[i] if i == index: tab['text0_fg'] = (1, 0, 0, 1) @@ -270,17 +194,3 @@ class DisguisePage(ShtikerPage.ShtikerPage): self.updatePartsDisplay(index, numParts, numPartsRequired) self.updateMeritBar(index) self.cogPartRatio['text'] = '%d/%d' % (CogDisguiseGlobals.getTotalParts(numParts), numPartsRequired) - if base.localAvatar.promotionStatus[index] == ToontownGlobals.PendingPromotion: - self.promoteButton['extraArgs'] = [index] - if base.localAvatar.cogLevels[index] == ToontownGlobals.MaxCogSuitLevel: - self.promoteButton['state'] = DGG.DISABLED - else: - self.promoteButton['state'] = DGG.NORMAL - self.promoteButton.show() - - def sendPromotionRequest(self, dept): - self.promoteButton.hide() - base.playSfx(self.promotionSfx) - base.localAvatar.promotionStatus[dept] = 0 - base.localAvatar.sendUpdate('requestPromotion', [dept]) - self.updatePage() diff --git a/toontown/suit/DistributedBossbotBoss.py b/toontown/suit/DistributedBossbotBoss.py index daad5aa5..e3c56994 100644 --- a/toontown/suit/DistributedBossbotBoss.py +++ b/toontown/suit/DistributedBossbotBoss.py @@ -843,19 +843,11 @@ class DistributedBossbotBoss(DistributedBossCog.DistributedBossCog, FSM.FSM): def __talkAboutPromotion(self, speech): if self.prevCogSuitLevel < ToontownGlobals.MaxCogSuitLevel: - deptIndex = CogDisguiseGlobals.dept2deptIndex(self.style.dept) - cogLevels = base.localAvatar.getCogLevels() - newCogSuitLevel = cogLevels[deptIndex] - cogTypes = base.localAvatar.getCogTypes() - maxCogSuitLevel = (SuitDNA.levelsPerSuit-1) + cogTypes[deptIndex] - if self.prevCogSuitLevel != maxCogSuitLevel: - speech += TTLocalizer.BossbotRTLevelPromotion - if newCogSuitLevel == maxCogSuitLevel: - if newCogSuitLevel != ToontownGlobals.MaxCogSuitLevel: - suitIndex = (SuitDNA.suitsPerDept*deptIndex) + cogTypes[deptIndex] - cogTypeStr = SuitDNA.suitHeadTypes[suitIndex] - cogName = SuitBattleGlobals.SuitAttributes[cogTypeStr]['name'] - speech += TTLocalizer.BossbotRTSuitPromotion % cogName + newCogSuitLevel = localAvatar.getCogLevels()[CogDisguiseGlobals.dept2deptIndex(self.style.dept)] + if newCogSuitLevel == ToontownGlobals.MaxCogSuitLevel: + speech += TTLocalizer.BossbotRTLastPromotion % (ToontownGlobals.MaxCogSuitLevel + 1) + if newCogSuitLevel in ToontownGlobals.CogSuitHPLevels: + speech += TTLocalizer.BossbotRTHPBoost else: speech += TTLocalizer.BossbotRTMaxed % (ToontownGlobals.MaxCogSuitLevel + 1) return speech diff --git a/toontown/suit/DistributedCashbotBoss.py b/toontown/suit/DistributedCashbotBoss.py index 2c6c8695..bce110c5 100644 --- a/toontown/suit/DistributedCashbotBoss.py +++ b/toontown/suit/DistributedCashbotBoss.py @@ -648,19 +648,11 @@ class DistributedCashbotBoss(DistributedBossCog.DistributedBossCog, FSM.FSM): def __talkAboutPromotion(self, speech): if self.prevCogSuitLevel < ToontownGlobals.MaxCogSuitLevel: - deptIndex = CogDisguiseGlobals.dept2deptIndex(self.style.dept) - cogLevels = base.localAvatar.getCogLevels() - newCogSuitLevel = cogLevels[deptIndex] - cogTypes = base.localAvatar.getCogTypes() - maxCogSuitLevel = (SuitDNA.levelsPerSuit-1) + cogTypes[deptIndex] - if self.prevCogSuitLevel != maxCogSuitLevel: - speech += TTLocalizer.ResistanceToonLevelPromotion - if newCogSuitLevel == maxCogSuitLevel: - if newCogSuitLevel != ToontownGlobals.MaxCogSuitLevel: - suitIndex = (SuitDNA.suitsPerDept*deptIndex) + cogTypes[deptIndex] - cogTypeStr = SuitDNA.suitHeadTypes[suitIndex] - cogName = SuitBattleGlobals.SuitAttributes[cogTypeStr]['name'] - speech += TTLocalizer.ResistanceToonSuitPromotion % cogName + 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 diff --git a/toontown/suit/DistributedLawbotBoss.py b/toontown/suit/DistributedLawbotBoss.py index 3cfe8951..115436fa 100644 --- a/toontown/suit/DistributedLawbotBoss.py +++ b/toontown/suit/DistributedLawbotBoss.py @@ -1659,19 +1659,11 @@ class DistributedLawbotBoss(DistributedBossCog.DistributedBossCog, FSM.FSM): def __talkAboutPromotion(self, speech): if self.prevCogSuitLevel < ToontownGlobals.MaxCogSuitLevel: - deptIndex = CogDisguiseGlobals.dept2deptIndex(self.style.dept) - cogLevels = base.localAvatar.getCogLevels() - newCogSuitLevel = cogLevels[deptIndex] - cogTypes = base.localAvatar.getCogTypes() - maxCogSuitLevel = (SuitDNA.levelsPerSuit-1) + cogTypes[deptIndex] - if self.prevCogSuitLevel != maxCogSuitLevel: - speech += TTLocalizer.WitnessToonLevelPromotion - if newCogSuitLevel == maxCogSuitLevel: - if newCogSuitLevel != ToontownGlobals.MaxCogSuitLevel: - suitIndex = (SuitDNA.suitsPerDept*deptIndex) + cogTypes[deptIndex] - cogTypeStr = SuitDNA.suitHeadTypes[suitIndex] - cogName = SuitBattleGlobals.SuitAttributes[cogTypeStr]['name'] - speech += TTLocalizer.WitnessToonSuitPromotion % cogName + newCogSuitLevel = localAvatar.getCogLevels()[CogDisguiseGlobals.dept2deptIndex(self.style.dept)] + if newCogSuitLevel == ToontownGlobals.MaxCogSuitLevel: + speech += TTLocalizer.WitnessToonLastPromotion % (ToontownGlobals.MaxCogSuitLevel + 1) + if newCogSuitLevel in ToontownGlobals.CogSuitHPLevels: + speech += TTLocalizer.WitnessToonHPBoost else: speech += TTLocalizer.WitnessToonMaxed % (ToontownGlobals.MaxCogSuitLevel + 1) return speech diff --git a/toontown/suit/DistributedSellbotBoss.py b/toontown/suit/DistributedSellbotBoss.py index 1cbe26a5..a920181c 100644 --- a/toontown/suit/DistributedSellbotBoss.py +++ b/toontown/suit/DistributedSellbotBoss.py @@ -444,20 +444,15 @@ class DistributedSellbotBoss(DistributedBossCog.DistributedBossCog, FSM.FSM): return bossTrack def __talkAboutPromotion(self, speech): - if self.prevCogSuitLevel < ToontownGlobals.MaxCogSuitLevel: - deptIndex = CogDisguiseGlobals.dept2deptIndex(self.style.dept) - cogLevels = base.localAvatar.getCogLevels() - newCogSuitLevel = cogLevels[deptIndex] - cogTypes = base.localAvatar.getCogTypes() - maxCogSuitLevel = (SuitDNA.levelsPerSuit-1) + cogTypes[deptIndex] - if self.prevCogSuitLevel != maxCogSuitLevel: - speech += TTLocalizer.CagedToonLevelPromotion - if newCogSuitLevel == maxCogSuitLevel: - if newCogSuitLevel != ToontownGlobals.MaxCogSuitLevel: - suitIndex = (SuitDNA.suitsPerDept*deptIndex) + cogTypes[deptIndex] - cogTypeStr = SuitDNA.suitHeadTypes[suitIndex] - cogName = SuitBattleGlobals.SuitAttributes[cogTypeStr]['name'] - speech += TTLocalizer.CagedToonSuitPromotion % cogName + if not self.localToonPromoted: + pass + elif self.prevCogSuitLevel < ToontownGlobals.MaxCogSuitLevel: + speech += TTLocalizer.CagedToonPromotion + newCogSuitLevel = localAvatar.getCogLevels()[CogDisguiseGlobals.dept2deptIndex(self.style.dept)] + if newCogSuitLevel == ToontownGlobals.MaxCogSuitLevel: + speech += TTLocalizer.CagedToonLastPromotion % (ToontownGlobals.MaxCogSuitLevel + 1) + if newCogSuitLevel in ToontownGlobals.CogSuitHPLevels: + speech += TTLocalizer.CagedToonHPBoost else: speech += TTLocalizer.CagedToonMaxed % (ToontownGlobals.MaxCogSuitLevel + 1) return speech diff --git a/toontown/suit/SuitDNA.py b/toontown/suit/SuitDNA.py index b3ad661d..f74c1356 100644 --- a/toontown/suit/SuitDNA.py +++ b/toontown/suit/SuitDNA.py @@ -100,7 +100,6 @@ suitsPerLevel = [1, 1, 1] suitsPerDept = 8 -levelsPerSuit = 5 goonTypes = ['pg', 'sg'] def getSuitBodyType(name): diff --git a/toontown/toon/DistributedToon.py b/toontown/toon/DistributedToon.py index 2a34c4d9..519806c9 100644 --- a/toontown/toon/DistributedToon.py +++ b/toontown/toon/DistributedToon.py @@ -180,7 +180,6 @@ class DistributedToon(DistributedPlayer.DistributedPlayer, Toon.Toon, Distribute self.gmNameTagEnabled = 0 self.gmNameTagColor = 'whiteGM' self.gmNameTagString = '' - self.promotionStatus = [0, 0, 0, 0] self.buffs = [] self.redeemedCodes = [] self.trueFriends = [] @@ -890,9 +889,6 @@ class DistributedToon(DistributedPlayer.DistributedPlayer, Toon.Toon, Distribute if self.disguisePage: self.disguisePage.updatePage() - def getCogTypes(self): - return self.cogTypes - def setCogLevels(self, levels): self.cogLevels = levels if self.disguisePage: @@ -936,9 +932,6 @@ class DistributedToon(DistributedPlayer.DistributedPlayer, Toon.Toon, Distribute else: self.putOnSuit(index, rental=True) - def setPromotionStatus(self, status): - self.promotionStatus = status - def isCog(self): if self.cogIndex == -1: return 0 @@ -2659,15 +2652,6 @@ def zone(zoneId): base.cr.sendSetZoneMsg(zoneId, [zoneId]) return 'You have been moved to zone %d.' % zoneId -@magicWord(category=CATEGORY_ADMINISTRATOR, types=[int]) -def promote(deptIndex): - """ - sends a request to promote the invoker's [deptIndex] Cog disguise. - """ - invoker = spellbook.getInvoker() - invoker.sendUpdate('requestPromotion', [deptIndex]) - return 'Your promotion request has been sent.' - @magicWord(category=CATEGORY_ADMINISTRATOR) def blackCat(): """ @@ -2687,4 +2671,4 @@ def showParticle(name): particle.start(spellbook.getTarget()) return 'Successfully started particle!' - return 'Particle %s does not exist.' % name \ No newline at end of file + return 'Particle %s does not exist.' % name diff --git a/toontown/toon/DistributedToonAI.py b/toontown/toon/DistributedToonAI.py index 05587cbf..ef4ad75e 100644 --- a/toontown/toon/DistributedToonAI.py +++ b/toontown/toon/DistributedToonAI.py @@ -177,7 +177,6 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo self.partyReplyInfoBases = [] self.teleportOverride = 0 self._gmDisabled = False - self.promotionStatus = [0, 0, 0, 0] self.buffs = [] self.redeemedCodes = [] self.trueFriends = [] @@ -1244,38 +1243,31 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo def getCogLevels(self): return self.cogLevels - def incCogLevel(self, deptIndex): - cogLevel = self.cogLevels[deptIndex] - maxSuitType = SuitDNA.suitsPerDept - 1 - maxSuitLevel = (SuitDNA.levelsPerSuit-1) + maxSuitType - maxCogLevel = (SuitDNA.levelsPerSuit-1) + self.cogTypes[deptIndex] - if (cogLevel == maxCogLevel) or (cogLevel == maxSuitLevel): - self.promotionStatus[deptIndex] = ToontownGlobals.PendingPromotion - self.d_setPromotionStatus(self.promotionStatus) + def incCogLevel(self, dept): + newLevel = self.cogLevels[dept] + 1 + cogTypeStr = SuitDNA.suitHeadTypes[self.cogTypes[dept]] + lastCog = self.cogTypes[dept] >= SuitDNA.suitsPerDept - 1 + if not lastCog: + maxLevel = SuitBattleGlobals.SuitAttributes[cogTypeStr]['level'] + 4 else: - self.cogLevels[deptIndex] += 1 + maxLevel = ToontownGlobals.MaxCogSuitLevel + if newLevel > maxLevel: + if not lastCog: + self.cogTypes[dept] += 1 + self.d_setCogTypes(self.cogTypes) + cogTypeStr = SuitDNA.suitHeadTypes[self.cogTypes[dept]] + self.cogLevels[dept] = SuitBattleGlobals.SuitAttributes[cogTypeStr]['level'] + self.d_setCogLevels(self.cogLevels) + else: + self.cogLevels[dept] += 1 self.d_setCogLevels(self.cogLevels) - self.cogMerits[deptIndex] = 0 - self.d_setCogMerits(self.cogMerits) - self.air.writeServerEvent( - 'cogSuit', self.doId, - '%s|%s|%s' % (deptIndex, self.cogTypes[deptIndex], self.cogLevels[deptIndex])) - - def requestPromotion(self, dept): - if self.promotionStatus[dept] == ToontownGlobals.PendingPromotion: - self.cogTypes[dept] += 1 - self.d_setCogTypes(self.cogTypes) - cogTypeStr = SuitDNA.suitHeadTypes[self.cogTypes[dept]] - self.cogLevels[dept] = SuitBattleGlobals.SuitAttributes[cogTypeStr]['level'] - self.d_setCogLevels(self.cogLevels) - self.cogMerits[dept] = 0 - self.d_setCogMerits(self.cogMerits) - maxHp = self.getMaxHp() - maxHp = min(ToontownGlobals.MaxHpLimit, maxHp + 1) - self.b_setMaxHp(maxHp) - self.toonUp(maxHp) - self.promotionStatus[dept] = ToontownGlobals.WantPromotion - self.d_setPromotionStatus(self.promotionStatus) + if lastCog: + if self.cogLevels[dept] in ToontownGlobals.CogSuitHPLevels: + maxHp = self.getMaxHp() + maxHp = min(ToontownGlobals.MaxHpLimit, maxHp + 1) + self.b_setMaxHp(maxHp) + self.toonUp(maxHp) + self.air.writeServerEvent('cogSuit', self.doId, '%s|%s|%s' % (dept, self.cogTypes[dept], self.cogLevels[dept])) def getNumPromotions(self, dept): if dept not in SuitDNA.suitDepts: @@ -1375,15 +1367,19 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo def getCogMerits(self): return self.cogMerits - def b_promote(self, deptIndex): - self.promote(deptIndex) - self.d_promote(deptIndex) + def b_promote(self, dept): + self.promote(dept) + self.d_promote(dept) - def promote(self, deptIndex): - self.incCogLevel(deptIndex) + def promote(self, dept): + if self.cogLevels[dept] < ToontownGlobals.MaxCogSuitLevel: + self.cogMerits[dept] = 0 + self.incCogLevel(dept) - def d_promote(self, deptIndex): + def d_promote(self, dept): merits = self.getCogMerits() + if self.cogLevels[dept] < ToontownGlobals.MaxCogSuitLevel: + merits[dept] = 0 self.d_setCogMerits(merits) def readyForPromotion(self, dept): @@ -1417,19 +1413,6 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo def getCogIndex(self): return self.cogIndex - def setPromotionStatus(self, status): - self.promotionStatus = status - - def d_setPromotionStatus(self, status): - self.sendUpdate('setPromotionStatus', [status]) - - def b_setPromotionStatus(self, status): - self.setPromotionStatus(status) - self.d_setPromotionStatus(status) - - def getPromotionStatus(self): - return self.promotionStatus - def b_setDisguisePageFlag(self, flag): self.setDisguisePageFlag(flag) self.d_setDisguisePageFlag(flag) @@ -4334,22 +4317,16 @@ def maxToon(missingTrack=None): invoker.b_setEmoteAccess(emotes) # Max out their Cog suits: - suitDeptCount = len(SuitDNA.suitDepts) - cogParts = [] - for i in xrange(suitDeptCount): - cogParts.append(CogDisguiseGlobals.PartsPerSuitBitmasks[i]) - invoker.b_setCogParts(cogParts) - maxSuitType = SuitDNA.suitsPerDept - 1 - invoker.b_setCogTypes([maxSuitType] * suitDeptCount) - maxSuitLevel = (SuitDNA.levelsPerSuit-1) + maxSuitType - invoker.b_setCogLevels([maxSuitLevel] * suitDeptCount) - cogMerits = [] - for i in xrange(suitDeptCount): - suitIndex = (SuitDNA.suitsPerDept * (i+1)) - 1 - suitMerits = CogDisguiseGlobals.MeritsPerLevel[suitIndex] - cogMerits.append(suitMerits[SuitDNA.levelsPerSuit - 1]) - invoker.b_setCogMerits(cogMerits) - invoker.b_setPromotionStatus([1] * suitDeptCount) + invoker.b_setCogParts( + [ + CogDisguiseGlobals.PartsPerSuitBitmasks[0], # Bossbot + CogDisguiseGlobals.PartsPerSuitBitmasks[1], # Lawbot + CogDisguiseGlobals.PartsPerSuitBitmasks[2], # Cashbot + CogDisguiseGlobals.PartsPerSuitBitmasks[3] # Sellbot + ] + ) + invoker.b_setCogLevels([49] * 4) + invoker.b_setCogTypes([7, 7, 7, 7]) # Max their Cog gallery: deptCount = len(SuitDNA.suitDepts) diff --git a/toontown/toonbase/TTLocalizerEnglish.py b/toontown/toonbase/TTLocalizerEnglish.py index c6e06ced..88b2166c 100644 --- a/toontown/toonbase/TTLocalizerEnglish.py +++ b/toontown/toonbase/TTLocalizerEnglish.py @@ -2228,12 +2228,12 @@ RewardPanelCongratsStrings = ['Yeah!', RewardPanelNewGag = 'New %(gagName)s gag for %(avName)s!' RewardPanelUberGag = '%(avName)s earned the %(gagName)s gag with %(exp)s experience points!' RewardPanelEndTrack = 'Yay! %(avName)s has reached the end of the %(gagName)s Gag Track!' -RewardPanelPromotionPending = 'Pending promotion...' RewardPanelMeritsMaxed = 'Maxed' RewardPanelMeritBarLabels = ['Stock Options', 'Jury Notices', 'Cogbucks', 'Merits'] +RewardPanelMeritAlert = 'Ready for promotion!' RewardPanelCogPart = 'You gained a Cog disguise part!' RewardPanelPromotion = 'Ready for promotion in %s track!' RewardPanelSkip = 'Skip' @@ -4693,9 +4693,9 @@ BossBattleHowToGetPies = 'Jump up to touch the cage to get pies.' BossBattleHowToThrowPies = 'Press the Delete key to throw pies!' CagedToonYippee = 'Yippee!' CagedToonThankYou = "It's great to be free!\x07Thanks for all your help!\x07I am in your debt.\x07Here's my card. If you ever need a hand in battle, give a shout!\x07Just click on your SOS button." -CagedToonLevelPromotion = "\x07Say--that V.P. Cog left behind your promotion papers.\x07I'll file them for you on the way out, so you'll get your promotion!" -CagedToonSuitPromotion = "\x07It seems like you've reached the highest level you can for a %s.\x07You can continue upgrading your Cog suit through the disguise page in your Shticker Book.\x07Along with getting a new Cog suit, you will also get a 1 point Laff boost!" -CagedToonLastPromotion = "\x07Wow, you've reached level %s on your Cog suit!\x07I'm pretty sure Cogs don't get promoted higher than that.\x07You can't upgrade your Cog suit anymore, but you can certainly keep rescuing Toons!" +CagedToonPromotion = "\x07Say--that V.P. Cog left behind your promotion papers.\x07I'll file them for you on the way out, so you'll get your promotion!" +CagedToonLastPromotion = "\x07Wow, you've reached level %s on your Cog suit!\x07Cogs don't get promoted higher than that.\x07You can't upgrade your Cog suit anymore, but you can certainly keep rescuing Toons!" +CagedToonHPBoost = "\x07You've rescued a lot of Toons from this HQ.\x07The Toon Council has decided to give you another Laff point. Congratulations!" CagedToonMaxed = '\x07I see that you have a level %s Cog suit. Very impressive!\x07On behalf of the Toon Council, thank you for coming back to rescue more Toons!' CagedToonGoodbye = 'See ya!' CagedToonBattleThree = {10: 'Nice jump, %(toon)s. Here are some pies!', @@ -4723,9 +4723,8 @@ ResistanceToonMoneyInstructions = 'all the Toons near you will gain %s Jellybean ResistanceToonMoneyAllInstructions = 'all the Toons near you will fill their Jellybean jars' ResistanceToonRestockInstructions = 'all the Toons near you will restock their "%s" gags' ResistanceToonRestockAllInstructions = 'all the Toons near you will restock all their gags' -ResistanceToonLevelPromotion = "\x07Say--that C.F.O. Cog left behind your promotion papers.\x07I'll file them for you on the way out, so you'll get your promotion!" -ResistanceToonSuitPromotion = "\x07It seems like you've reached the highest level you can for a %s.\x07You can continue upgrading your Cog suit through the disguise page in your Shticker Book.\x07Along with getting a new Cog suit, you will also get a 1 point Laff boost!" -ResistanceToonLastPromotion = "\x07Wow, you've reached level %s on your Cog suit!\x07I'm pretty sure Cogs don't get promoted higher than that.\x07You can't upgrade your Cog suit anymore, but you can certainly keep working for the Resistance!!" +ResistanceToonLastPromotion = "\x07Wow, you've reached level %s on your Cog suit!\x07Cogs don't get promoted higher than that.\x07You can't upgrade your Cog suit anymore, but you can certainly keep working for the Resistance!" +ResistanceToonHPBoost = "\x07You've done a lot of work for the Resistance.\x07The Toon Council has decided to give you another Laff point. Congratulations!" ResistanceToonMaxed = '\x07I see that you have a level %s Cog suit. Very impressive!\x07On behalf of the Toon Council, thank you for coming back to rescue more Toons!' CashbotBossCogAttack = 'Get them!!!' ResistanceToonWelcome = 'Hey, you made it! Follow me to the main vault before the C.F.O. finds us!' @@ -7524,10 +7523,9 @@ WitnessToonSomeJurors = 'Cool! There are %d Toons in the jury!' WitnessToonAllJurors = 'Awesome! All the jurors are Toons!' WitnessToonPrepareBattleThree = 'Hurry, touch the witness stand to get evidence.\x07Press the Delete key to throw the evidence at the lawyers, or at the defense pan.' WitnessToonCongratulations = "You did it! Thank you for a spectacular defense!\x07Here, take these papers the Chief Justice left behind.\x07With it you'll be able to summon Cogs from your Cog Gallery page." -WitnessToonLevelPromotion = "\x07Say--that C.J. Cog left behind your promotion papers.\x07I'll file them for you on the way out, so you'll get your promotion!" -WitnessToonSuitPromotion = "\x07It seems like you've reached the highest level you can for a %s.\x07You can continue upgrading your Cog suit through the disguise page in your Shticker Book.\x07Along with getting a new Cog suit, you will also get a 1 point Laff boost!" -WitnessToonLastPromotion = "\x07Wow, you've reached level %s on your Cog suit!\x07I'm pretty sure Cogs don't get promoted higher than that.\x07You can't upgrade your Cog suit anymore, but you can certainly keep working for the Resistance!!" -WitnessToonMaxed = '\x07I see that you have a level %s Cog suit. Very impressive!\x07On behalf of the Toon Council, thank you for coming back to rescue more Toons!' +WitnessToonLastPromotion = "\x07Wow, you've reached level %s on your Cog Suit!\x07Cogs don't get promoted higher than that.\x07You can't upgrade your Cog Suit anymore, but you can certainly keep working for the Resistance!" +WitnessToonHPBoost = "\x07You've done a lot of work for the Resistance.\x07The Toon Council has decided to give you another Laff point. Congratulations!" +WitnessToonMaxed = '\x07I see that you have a level %s Cog Suit. Very impressive!\x07On behalf of the Toon Council, thank you for coming back to defend more Toons!' WitnessToonBonus = 'Wonderful! All the lawyers are stunned. Your evidence weight is %s times heavier for %s seconds' WitnessToonJuryWeightBonusSingular = {6: 'This is a tough case. You seated %d Toon juror, so your evidence has a bonus weight of %d.', 7: 'This is a very tough case. You seated %d Toon juror, so your evidence has a bonus weight of %d.', @@ -8067,10 +8065,9 @@ BossbotGolfSpotAdvice = 'Use the left and right keys to rotate.\nCtrl to fire.' BossbotRewardSpeech1 = "No! The Chairman won't like this." BossbotRewardSpeech2 = 'Arrrggghhh!!!!' BossbotRTCongratulations = "You did it! You've demoted the C.E.O.!\x07Here, take these pink slips the C.E.O. left behind.\x07With it you'll be able to fire Cogs in a battle." -BossbotRTLevelPromotion = "\x07Say--that C.E.O. Cog left behind your promotion papers.\x07I'll file them for you on the way out, so you'll get your promotion!" -BossbotRTSuitPromotion = "\x07It seems like you've reached the highest level you can for a %s.\x07You can continue upgrading your Cog suit through the disguise page in your Shticker Book.\x07Along with getting a new Cog suit, you will also get a 1 point Laff boost!" -BossbotRTLastPromotion = "\x07Wow, you've reached level %s on your Cog suit!\x07I'm pretty sure Cogs don't get promoted higher than that.\x07You can't upgrade your Cog suit anymore, but you can certainly keep working for the Resistance!!" -BossbotRTMaxed = '\x07I see that you have a level %s Cog suit. Very impressive!\x07On behalf of the Toon Council, thank you for coming back to rescue more Toons!' +BossbotRTHPBoost = "\x07You've done a lot of work for the Resistance.\x07The Toon Council has decided to give you another Laff point. Congratulations!" +BossbotRTMaxed = '\x07I see that you have a level %s Cog Suit. Very impressive!\x07On behalf of the Toon Council, thank you for coming back to defend more Toons!' +BossbotRTLastPromotion = "\x07Wow, you've reached level %s on your Cog Suit!\x07Cogs don't get promoted higher than that.\x07You can't upgrade your Cog Suit anymore, but you can certainly keep working for the Resistance!" GolfAreaAttackTaunt = 'Fore!' OvertimeAttackTaunts = ["It's time to reorganize.", "Now let's downsize."] ElevatorBossBotBoss = 'Bossbot Clubhouse' diff --git a/toontown/toonbase/ToontownGlobals.py b/toontown/toonbase/ToontownGlobals.py index 1f4f657f..f8cb7a1e 100644 --- a/toontown/toonbase/ToontownGlobals.py +++ b/toontown/toonbase/ToontownGlobals.py @@ -14,8 +14,6 @@ CFOElevatorFov = 43.0 CJElevatorFov = 59.0 CEOElevatorFov = 59.0 CBElevatorFov = 42.0 -WantPromotion = 0 -PendingPromotion = 1 CeilingBitmask = BitMask32(256) FloorEventBitmask = BitMask32(16) PieBitmask = BitMask32(256) @@ -99,11 +97,16 @@ FM_RecoveredItem = 4 SPDonaldsBoat = 3 SPMinniesPiano = 4 CEVirtual = 14 -MaxHpLimit = 145 +MaxHpLimit = 137 MaxCarryLimit = 80 MaxQuestCarryLimit = 4 GravityValue = 32.174 -MaxCogSuitLevel = 12 - 1 +MaxCogSuitLevel = 50 - 1 +CogSuitHPLevels = (15 - 1, + 20 - 1, + 30 - 1, + 40 - 1, + 50 - 1) setInterfaceFont(TTLocalizer.InterfaceFont) setSignFont(TTLocalizer.SignFont) from toontown.toontowngui import TTDialog