mirror of
https://github.com/Sneed-Group/Poodletooth-iLand
synced 2025-01-09 17:53:50 +00:00
Add merits unite which restocks 16.66% of the total merits required (meaning it needs a bit more than 6 unites to restock fully, even for BIg Cheese 23300 promotions.)
This commit is contained in:
parent
4b2e373e45
commit
6d24fb4390
12 changed files with 95 additions and 84 deletions
|
@ -515,14 +515,8 @@ class RewardPanel(DirectFrame):
|
|||
name = SuitDNA.suitDepts[dept]
|
||||
self.promotionFrame['text'] = TTLocalizer.RewardPanelPromotion % SuitDNA.suitDeptFullnames[name]
|
||||
icons = loader.loadModel('phase_3/models/gui/cog_icons')
|
||||
if dept == 0:
|
||||
self.deptIcon = icons.find('**/CorpIcon').copyTo(self.promotionFrame)
|
||||
elif dept == 1:
|
||||
self.deptIcon = icons.find('**/LegalIcon').copyTo(self.promotionFrame)
|
||||
elif dept == 2:
|
||||
self.deptIcon = icons.find('**/MoneyIcon').copyTo(self.promotionFrame)
|
||||
elif dept == 3:
|
||||
self.deptIcon = icons.find('**/SalesIcon').copyTo(self.promotionFrame)
|
||||
if dept in SuitDNA.suitDeptModelPaths:
|
||||
self.deptIcon = icons.find(SuitDNA.suitDeptModelPaths[dept]).copyTo(self.promotionFrame)
|
||||
icons.removeNode()
|
||||
self.deptIcon.setPos(0, 0, -0.225)
|
||||
self.deptIcon.setScale(0.33)
|
||||
|
|
|
@ -321,14 +321,8 @@ class DistributedBuilding(DistributedObject.DistributedObject):
|
|||
self.cab = self.elevatorModel.find('**/elevator')
|
||||
cogIcons = loader.loadModel('phase_3/models/gui/cog_icons')
|
||||
dept = chr(self.track)
|
||||
if dept == 'c':
|
||||
corpIcon = cogIcons.find('**/CorpIcon').copyTo(self.cab)
|
||||
elif dept == 's':
|
||||
corpIcon = cogIcons.find('**/SalesIcon').copyTo(self.cab)
|
||||
elif dept == 'l':
|
||||
corpIcon = cogIcons.find('**/LegalIcon').copyTo(self.cab)
|
||||
elif dept == 'm':
|
||||
corpIcon = cogIcons.find('**/MoneyIcon').copyTo(self.cab)
|
||||
if dept in SuitDNA.suitDeptModelPaths:
|
||||
corpIcon = cogIcons.find(SuitDNA.suitDeptModelPaths[dept]).copyTo(self.cab)
|
||||
corpIcon.setPos(0, 6.79, 6.8)
|
||||
corpIcon.setScale(3)
|
||||
from toontown.suit import Suit
|
||||
|
|
|
@ -4,6 +4,7 @@ import random
|
|||
|
||||
from toontown.toonbase import TTLocalizer
|
||||
from toontown.toonbase import ToontownBattleGlobals
|
||||
from toontown.suit import SuitDNA
|
||||
|
||||
|
||||
if process == 'client':
|
||||
|
@ -19,7 +20,8 @@ EFFECT_RADIUS = 30
|
|||
RESISTANCE_TOONUP = 0
|
||||
RESISTANCE_RESTOCK = 1
|
||||
RESISTANCE_MONEY = 2
|
||||
resistanceMenu = [RESISTANCE_TOONUP, RESISTANCE_RESTOCK, RESISTANCE_MONEY]
|
||||
RESISTANCE_MERITS = 3
|
||||
resistanceMenu = [RESISTANCE_TOONUP, RESISTANCE_RESTOCK, RESISTANCE_MONEY, RESISTANCE_MERITS]
|
||||
resistanceDict = {
|
||||
RESISTANCE_TOONUP: {
|
||||
'menuName': TTLocalizer.ResistanceToonupMenu,
|
||||
|
@ -60,6 +62,14 @@ resistanceDict = {
|
|||
TTLocalizer.MovieNPCSOSAll
|
||||
],
|
||||
'items': [0, 1, 2, 3, 4, 5, 6, 7]
|
||||
},
|
||||
RESISTANCE_MERITS: {
|
||||
'menuName': TTLocalizer.ResistanceMeritsMenu,
|
||||
'itemText': TTLocalizer.ResistanceMeritsItem,
|
||||
'chatText': TTLocalizer.ResistanceMeritsChat,
|
||||
'values': range(len(SuitDNA.suitDepts)) + [-1],
|
||||
'extra': TTLocalizer.RewardPanelMeritBarLabels + [TTLocalizer.MovieNPCSOSAll],
|
||||
'items': range(len(SuitDNA.suitDepts) + 1)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -98,13 +108,14 @@ def getMenuName(textId):
|
|||
|
||||
def getItemText(textId):
|
||||
menuIndex, itemIndex = decodeId(textId)
|
||||
value = resistanceDict[menuIndex]['values'][itemIndex]
|
||||
text = resistanceDict[menuIndex]['itemText']
|
||||
resistance = resistanceDict[menuIndex]
|
||||
value = resistance['values'][itemIndex]
|
||||
text = resistance['itemText']
|
||||
if menuIndex is RESISTANCE_TOONUP:
|
||||
if value is -1:
|
||||
value = TTLocalizer.ResistanceToonupItemMax
|
||||
elif menuIndex is RESISTANCE_RESTOCK:
|
||||
value = resistanceDict[menuIndex]['extra'][itemIndex]
|
||||
elif 'extra' in resistance:
|
||||
value = resistance['extra'][itemIndex]
|
||||
return text % str(value)
|
||||
|
||||
|
||||
|
@ -177,6 +188,25 @@ def doEffect(textId, speakingToon, nearbyToons):
|
|||
p = effect.getParticlesNamed(name)
|
||||
p.renderer.setFromNode(icon)
|
||||
fadeColor = VBase4(0, 0, 1, 1)
|
||||
elif menuIndex == RESISTANCE_MERITS:
|
||||
effect = BattleParticles.loadParticleFile('resistanceEffectSprite.ptf')
|
||||
cogModel = loader.loadModel('phase_3/models/gui/cog_icons')
|
||||
cogModel.flattenLight()
|
||||
|
||||
if itemValue != -1:
|
||||
iconDict = {'particles-1': cogModel.find(SuitDNA.suitDeptModelPaths[itemValue])}
|
||||
else:
|
||||
iconDict = {}
|
||||
|
||||
for i in xrange(len(SuitDNA.suitDepts)):
|
||||
iconDict['particles-%s' % (i + 1)] = cogModel.find(SuitDNA.suitDeptModelPaths[i])
|
||||
|
||||
for name, icon in iconDict.items():
|
||||
p = effect.getParticlesNamed(name)
|
||||
p.renderer.setFromNode(icon)
|
||||
|
||||
fadeColor = VBase4(0.7, 0.7, 0.7, 1.0)
|
||||
cogModel.removeNode()
|
||||
else:
|
||||
return
|
||||
recolorToons = Parallel()
|
||||
|
|
|
@ -407,14 +407,8 @@ class QuestPoster(DirectFrame):
|
|||
else:
|
||||
if holderType == 'track':
|
||||
cogIcons = loader.loadModel('phase_3/models/gui/cog_icons')
|
||||
if holder == 'c':
|
||||
icon = cogIcons.find('**/CorpIcon')
|
||||
elif holder == 's':
|
||||
icon = cogIcons.find('**/SalesIcon')
|
||||
elif holder == 'l':
|
||||
icon = cogIcons.find('**/LegalIcon')
|
||||
elif holder == 'm':
|
||||
icon = cogIcons.find('**/MoneyIcon')
|
||||
if holder in SuitDNA.suitDeptModelPaths:
|
||||
icon = cogIcons.find(SuitDNA.suitDeptModelPaths[holder])
|
||||
rIconGeom = icon.copyTo(hidden)
|
||||
rIconGeom.setColor(Suit.Suit.medallionColors[holder])
|
||||
rIconGeomScale = 0.12
|
||||
|
@ -743,14 +737,8 @@ class QuestPoster(DirectFrame):
|
|||
dept = quest.getCogTrack()
|
||||
cogIcons = loader.loadModel('phase_3/models/gui/cog_icons')
|
||||
lIconGeomScale = 0.13
|
||||
if dept == 'c':
|
||||
icon = cogIcons.find('**/CorpIcon')
|
||||
elif dept == 's':
|
||||
icon = cogIcons.find('**/SalesIcon')
|
||||
elif dept == 'l':
|
||||
icon = cogIcons.find('**/LegalIcon')
|
||||
elif dept == 'm':
|
||||
icon = cogIcons.find('**/MoneyIcon')
|
||||
if dept in SuitDNA.suitDeptModelPaths:
|
||||
icon = cogIcons.find(SuitDNA.suitDeptModelPaths[dept])
|
||||
lIconGeom = icon.copyTo(hidden)
|
||||
lIconGeom.setColor(Suit.Suit.medallionColors[dept])
|
||||
cogIcons.removeNode()
|
||||
|
@ -795,14 +783,8 @@ class QuestPoster(DirectFrame):
|
|||
dept = quest.getCogTrack()
|
||||
cogIcons = loader.loadModel('phase_3/models/gui/cog_icons')
|
||||
lIconGeomScale = 0.13
|
||||
if dept == 'c':
|
||||
icon = cogIcons.find('**/CorpIcon')
|
||||
elif dept == 's':
|
||||
icon = cogIcons.find('**/SalesIcon')
|
||||
elif dept == 'l':
|
||||
icon = cogIcons.find('**/LegalIcon')
|
||||
elif dept == 'm':
|
||||
icon = cogIcons.find('**/MoneyIcon')
|
||||
if dept in SuitDNA.suitDeptModelPaths:
|
||||
icon = cogIcons.find(SuitDNA.suitDeptModelPaths[dept])
|
||||
lIconGeom = icon.copyTo(hidden)
|
||||
lIconGeom.setColor(Suit.Suit.medallionColors[dept])
|
||||
cogIcons.removeNode()
|
||||
|
|
|
@ -32,6 +32,7 @@ class InventoryPage(ShtikerPage.ShtikerPage):
|
|||
jarGui.removeNode()
|
||||
|
||||
def unload(self):
|
||||
self.ignoreAll()
|
||||
del self.title
|
||||
self.destroyMeritBars()
|
||||
ShtikerPage.ShtikerPage.unload(self)
|
||||
|
@ -47,6 +48,7 @@ class InventoryPage(ShtikerPage.ShtikerPage):
|
|||
DisguisePage.DeptColors[i][1] * 0.7, DisguisePage.DeptColors[i][2] * 0.7, 1), barColor=(DisguisePage.DeptColors[i][0] * 0.8,
|
||||
DisguisePage.DeptColors[i][1] * 0.8, DisguisePage.DeptColors[i][2] * 0.8, 1)))
|
||||
|
||||
self.accept(localAvatar.uniqueName('cogMeritsChange'), self.updateMeritBars)
|
||||
self.updateMeritBars()
|
||||
|
||||
def destroyMeritBars(self):
|
||||
|
@ -110,7 +112,6 @@ class InventoryPage(ShtikerPage.ShtikerPage):
|
|||
self.accept('exitBookDelete', self.exitDeleteMode)
|
||||
self.accept('enterTrackFrame', self.updateTrackInfo)
|
||||
self.accept('exitTrackFrame', self.clearTrackInfo)
|
||||
self.accept(localAvatar.uniqueName('cogMeritsChange'), self.updateMeritBars)
|
||||
self.accept(localAvatar.uniqueName('moneyChange'), self.__moneyChange)
|
||||
|
||||
def exit(self):
|
||||
|
@ -120,7 +121,6 @@ class InventoryPage(ShtikerPage.ShtikerPage):
|
|||
self.ignore('exitBookDelete')
|
||||
self.ignore('enterTrackFrame')
|
||||
self.ignore('exitTrackFrame')
|
||||
self.ignore(localAvatar.uniqueName('cogMeritsChange'))
|
||||
self.ignore(localAvatar.uniqueName('moneyChange'))
|
||||
self.makePageWhite(None)
|
||||
base.localAvatar.inventory.hide()
|
||||
|
|
|
@ -41,19 +41,14 @@ def setupInvasionMarker(node, invasionStatus):
|
|||
return
|
||||
|
||||
icons = loader.loadModel('phase_3/models/gui/cog_icons')
|
||||
|
||||
if invasionStatus == 1:
|
||||
icon = icons.find('**/CorpIcon').copyTo(markerNode)
|
||||
elif invasionStatus == 2:
|
||||
icon = icons.find('**/LegalIcon').copyTo(markerNode)
|
||||
elif invasionStatus == 3:
|
||||
icon = icons.find('**/MoneyIcon').copyTo(markerNode)
|
||||
else:
|
||||
icon = icons.find('**/SalesIcon').copyTo(markerNode)
|
||||
iconStatus = invasionStatus - 1
|
||||
|
||||
if iconStatus in SuitDNA.suitDeptModelPaths:
|
||||
icon = icons.find(SuitDNA.suitDeptModelPaths[iconStatus]).copyTo(markerNode)
|
||||
|
||||
icons.removeNode()
|
||||
|
||||
icon.setColor(ICON_COLORS[invasionStatus - 1])
|
||||
icon.setColor(ICON_COLORS[iconStatus])
|
||||
icon.setPos(0.50, 0, 0.0125)
|
||||
icon.setScale(0.0535)
|
||||
|
||||
|
|
|
@ -892,6 +892,11 @@ class DistributedCashbotBoss(DistributedBossCog.DistributedBossCog, FSM.FSM):
|
|||
else:
|
||||
trackName = TTLocalizer.BattleGlobalTracks[value]
|
||||
instructions = TTLocalizer.ResistanceToonRestockInstructions % trackName
|
||||
elif menuIndex == ResistanceChat.RESISTANCE_MERITS:
|
||||
if value == -1:
|
||||
instructions = TTLocalizer.ResistanceToonMeritsAllInstructions
|
||||
else:
|
||||
instructions = TTLocalizer.ResistanceToonMeritsInstructions % TTLocalizer.RewardPanelMeritBarLabels[value]
|
||||
speech = TTLocalizer.ResistanceToonCongratulations % (text, instructions)
|
||||
speech = self.__talkAboutPromotion(speech)
|
||||
self.resistanceToon.setLocalPageChat(speech, 0)
|
||||
|
|
|
@ -206,21 +206,6 @@ def loadSuitModelsAndAnims(level, flag = 0):
|
|||
filepath = 'phase_' + str(phase) + model + 'heads'
|
||||
Preloaded[filepath] = loader.loadModel(filepath)
|
||||
|
||||
def cogExists(filePrefix):
|
||||
searchPath = DSearchPath()
|
||||
if AppRunnerGlobal.appRunner:
|
||||
searchPath.appendDirectory(Filename.expandFrom('$TT_3_5_ROOT/phase_3.5'))
|
||||
else:
|
||||
basePath = os.path.expandvars('$TTMODELS') or './ttmodels'
|
||||
searchPath.appendDirectory(Filename.fromOsSpecific(basePath + '/built/phase_3.5'))
|
||||
filePrefix = filePrefix.strip('/')
|
||||
pfile = Filename(filePrefix)
|
||||
found = vfs.resolveFilename(pfile, searchPath)
|
||||
if not found:
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def loadSuitAnims(suit, flag = 1):
|
||||
if suit in SuitDNA.suitHeadTypes:
|
||||
try:
|
||||
|
@ -594,14 +579,8 @@ class Suit(Avatar.Avatar):
|
|||
icons = loader.loadModel('phase_3/models/gui/cog_icons')
|
||||
dept = self.style.dept
|
||||
chestNull = self.find('**/joint_attachMeter')
|
||||
if dept == 'c':
|
||||
self.corpMedallion = icons.find('**/CorpIcon').copyTo(chestNull)
|
||||
elif dept == 's':
|
||||
self.corpMedallion = icons.find('**/SalesIcon').copyTo(chestNull)
|
||||
elif dept == 'l':
|
||||
self.corpMedallion = icons.find('**/LegalIcon').copyTo(chestNull)
|
||||
elif dept == 'm':
|
||||
self.corpMedallion = icons.find('**/MoneyIcon').copyTo(chestNull)
|
||||
if dept in SuitDNA.suitDeptModelPaths:
|
||||
self.corpMedallion = icons.find(SuitDNA.suitDeptModelPaths[dept]).copyTo(chestNull)
|
||||
self.corpMedallion.setPosHprScale(0.02, 0.05, 0.04, 180.0, 0.0, 0.0, 0.51, 0.51, 0.51)
|
||||
self.corpMedallion.setColor(self.medallionColors[dept])
|
||||
icons.removeNode()
|
||||
|
|
|
@ -87,6 +87,14 @@ suitDeptFullnamesP = {'c': TTLocalizer.BossbotP,
|
|||
'l': TTLocalizer.LawbotP,
|
||||
'm': TTLocalizer.CashbotP,
|
||||
's': TTLocalizer.SellbotP}
|
||||
suitDeptModelPaths = {'c': '**/CorpIcon',
|
||||
0: '**/CorpIcon',
|
||||
'l': '**/LegalIcon',
|
||||
1: '**/LegalIcon',
|
||||
'm': '**/MoneyIcon',
|
||||
2: '**/MoneyIcon',
|
||||
's': '**/SalesIcon',
|
||||
3: '**/SalesIcon'}
|
||||
corpPolyColor = VBase4(0.95, 0.75, 0.75, 1.0)
|
||||
legalPolyColor = VBase4(0.75, 0.75, 0.95, 1.0)
|
||||
moneyPolyColor = VBase4(0.65, 0.95, 0.85, 1.0)
|
||||
|
|
|
@ -650,7 +650,7 @@ class DistributedToon(DistributedPlayer.DistributedPlayer, Toon.Toon, Distribute
|
|||
|
||||
def setHoodsVisited(self, hoods):
|
||||
self.hoodsVisited = hoods
|
||||
if ToontownGlobals.SellbotHQ in hoods or ToontownGlobals.CashbotHQ in hoods or ToontownGlobals.LawbotHQ in hoods:
|
||||
if ToontownGlobals.SellbotHQ in hoods or ToontownGlobals.CashbotHQ in hoods or ToontownGlobals.LawbotHQ in hoods or ToontownGlobals.BossbotHQ in hoods:
|
||||
self.setDisguisePageFlag(1)
|
||||
|
||||
def wrtReparentTo(self, parent):
|
||||
|
|
|
@ -2523,6 +2523,25 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo
|
|||
else:
|
||||
self.addMoney(msgValue)
|
||||
self.notify.debug('Money for ' + self.name)
|
||||
elif msgType == ResistanceChat.RESISTANCE_MERITS:
|
||||
if msgValue == -1:
|
||||
for i in xrange(len(SuitDNA.suitDepts)):
|
||||
self.doResistanceMerits(i)
|
||||
else:
|
||||
self.doResistanceMerits(msgValue)
|
||||
|
||||
def doResistanceMerits(self, dept):
|
||||
if not CogDisguiseGlobals.isSuitComplete(self.cogParts, dept):
|
||||
return
|
||||
|
||||
totalMerits = CogDisguiseGlobals.getTotalMerits(self, dept)
|
||||
merits = self.cogMerits[dept]
|
||||
|
||||
if totalMerits == 0 or merits >= totalMerits:
|
||||
return
|
||||
|
||||
self.cogMerits[dept] = min(totalMerits, merits + (totalMerits / 6))
|
||||
self.b_setCogMerits(self.cogMerits)
|
||||
|
||||
def squish(self, damage):
|
||||
self.takeDamage(damage)
|
||||
|
|
|
@ -4742,6 +4742,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'
|
||||
ResistanceToonMeritsInstructions = 'all the Toons near you will fill part of their %s'
|
||||
ResistanceToonMeritsAllInstructions = 'all the Toons near you will fill part of all their promotion papers'
|
||||
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!'
|
||||
|
@ -7235,6 +7237,9 @@ ResistanceRestockMenu = 'Gag-up'
|
|||
ResistanceRestockItem = 'Gag-up %s'
|
||||
ResistanceRestockItemAll = 'All'
|
||||
ResistanceRestockChat = 'Toons of the World, Gag-up!'
|
||||
ResistanceMeritsMenu = 'Merits'
|
||||
ResistanceMeritsItem = 'Merit-up %s'
|
||||
ResistanceMeritsChat = 'Toons of the World, Merit-up!'
|
||||
ResistanceMoneyMenu = 'Jellybeans'
|
||||
ResistanceMoneyItem = '%s Jellybeans'
|
||||
ResistanceMoneyChat = 'Toons of the World, Spend Wisely!'
|
||||
|
@ -8064,8 +8069,8 @@ BossbotBossName = 'C.E.O.'
|
|||
BossbotRTWelcome = 'You toons will need different disguises.'
|
||||
BossbotRTRemoveSuit = 'First take off your cog suits...'
|
||||
BossbotRTFightWaiter = 'and then fight these waiters.'
|
||||
BossbotRTWearWaiter = "Good Job! Now put on the waiters' clothes."
|
||||
BossbotBossPreTwo1 = "What's taking so long? "
|
||||
BossbotRTWearWaiter = "Good job! Now put on the waiters' clothes."
|
||||
BossbotBossPreTwo1 = "What's taking so long?"
|
||||
BossbotBossPreTwo2 = 'Get cracking and serve my banquet!'
|
||||
BossbotRTServeFood1 = 'Hehe, serve the food I place on these conveyor belts.'
|
||||
BossbotRTServeFood2 = 'If you serve a cog three times in a row it will explode.'
|
||||
|
@ -8075,7 +8080,7 @@ BossbotPhase3Speech2 = 'These waiters are toons!'
|
|||
BossbotPhase3Speech3 = 'Get them!!!'
|
||||
BossbotPhase4Speech1 = 'Hrrmmpph. When I need a job done right...'
|
||||
BossbotPhase4Speech2 = "I'll do it myself."
|
||||
BossbotRTPhase4Speech1 = 'Good Job! Now squirt the C.E.O. with the water on the tables...'
|
||||
BossbotRTPhase4Speech1 = 'Good job! Now squirt the C.E.O. with the water on the tables...'
|
||||
BossbotRTPhase4Speech2 = 'or use golf balls to slow him down.'
|
||||
BossbotPitcherLeave = 'Leave Bottle'
|
||||
BossbotPitcherLeaving = 'Leaving Bottle'
|
||||
|
|
Loading…
Reference in a new issue