diff --git a/toontown/battle/SuitBattleGlobals.py b/toontown/battle/SuitBattleGlobals.py index 36c9cdb3..54433c01 100755 --- a/toontown/battle/SuitBattleGlobals.py +++ b/toontown/battle/SuitBattleGlobals.py @@ -3170,3 +3170,4 @@ def getAttackTaunt(attackName, index = None): SuitAttackTaunts = TTLocalizer.SuitAttackTaunts +DisabledAttacks = ('Gavel', 'SongAndDance', 'SandTrap', 'FloodTheMarket', 'FiveOClockShadow') \ No newline at end of file diff --git a/toontown/safezone/TTSafeZoneLoader.py b/toontown/safezone/TTSafeZoneLoader.py index b6e5b245..ae73f407 100755 --- a/toontown/safezone/TTSafeZoneLoader.py +++ b/toontown/safezone/TTSafeZoneLoader.py @@ -16,8 +16,11 @@ class TTSafeZoneLoader(SafeZoneLoader.SafeZoneLoader): 'phase_4/audio/sfx/SZ_TC_bird2.ogg', 'phase_4/audio/sfx/SZ_TC_bird3.ogg']) bank = self.geom.find('**/*toon_landmark_TT_bank_DNARoot') + library = self.geom.find('**/library/square_drop_shadow') doorTrigger = bank.find('**/door_trigger*') doorTrigger.setY(doorTrigger.getY() - 1.5) + library.find('**/building_front').setY(0.3) + library.find('**/front_entrance_flag').setY(0.1) def unload(self): SafeZoneLoader.SafeZoneLoader.unload(self) diff --git a/toontown/shtiker/SuitPage.py b/toontown/shtiker/SuitPage.py index ef2c27c5..ea0b3692 100755 --- a/toontown/shtiker/SuitPage.py +++ b/toontown/shtiker/SuitPage.py @@ -230,6 +230,7 @@ class SuitPage(ShtikerPage.ShtikerPage): self.legalRadarButton.destroy() self.moneyRadarButton.destroy() self.salesRadarButton.destroy() + self.rolloverFrame.destroy() for panel in self.panels: panel.destroy() del self.panels @@ -335,6 +336,9 @@ class SuitPage(ShtikerPage.ShtikerPage): yStart = -0.18 xOffset = 0.199 yOffset = 0.284 + self.rolloverFrame = DirectFrame(parent=self.panelNode, relief=None, geom=DGG.getDefaultDialogGeom(), geom_color=(0.5, 0.5, 0.5, 1), geom_scale=(0.73, 0, 0.55), text_scale=0.05, text_pos=(0, 0.2), text='', text_fg=(1, 1, 1, 1), pos=(0.44, 0, 0)) + self.rolloverFrame.setBin('gui-popup', 0) + self.rolloverFrame.hide() for dept in xrange(0, len(SuitDNA.suitDepts)): row = [] color = PANEL_COLORS[dept] @@ -347,10 +351,21 @@ class SuitPage(ShtikerPage.ShtikerPage): panel.shadow = None panel.count = 0 panel.summonButton = None + panel.hoverButton = DirectButton(parent=panel, relief=None, image_scale=(0.15, 0, 0.225), image='phase_3/maps/invisible.png') + panel.hoverButton.setTransparency(True) + panel.hoverButton.panel = panel self.addCogRadarLabel(panel) self.panels.append(panel) base.panels.append(panel) return + + def showInfo(self, panel, text, extra): + self.rolloverFrame.reparentTo(panel) + self.rolloverFrame.show() + self.rolloverFrame['text'] = text + + def hideInfo(self, extra): + self.rolloverFrame.hide() def addQuotaLabel(self, panel): index = self.panels.index(panel) @@ -428,6 +443,9 @@ class SuitPage(ShtikerPage.ShtikerPage): panel.shadow.hide() if panel.summonButton: panel.summonButton.hide() + self.rolloverFrame.hide() + panel.hoverButton.unbind(DGG.ENTER) + panel.hoverButton.unbind(DGG.EXIT) color = PANEL_COLORS[dept] panel['image_color'] = color for button in self.radarButtons: @@ -467,6 +485,28 @@ class SuitPage(ShtikerPage.ShtikerPage): panel['image_color'] = PANEL_COLORS_COMPLETE1[index / SuitDNA.suitsPerDept] elif status == COG_COMPLETE2: panel['image_color'] = PANEL_COLORS_COMPLETE2[index / SuitDNA.suitsPerDept] + if status in (COG_DEFEATED, COG_COMPLETE1, COG_COMPLETE2): + name = SuitDNA.suitHeadTypes[index] + attributes = SuitBattleGlobals.SuitAttributes[name] + attacks = sorted(attributes['attacks'], key=lambda x: x[0]) + groupAttacks = [] + singleAttacks = [] + + for attack in attacks: + if attack[0] in SuitBattleGlobals.DisabledAttacks: + continue + if SuitBattleGlobals.SuitAttacks[attack[0]][1] == SuitBattleGlobals.ATK_TGT_GROUP: + groupAttacks.append(attack) + else: + singleAttacks.append(attack) + + info = TTLocalizer.SuitPageAttackFormat % (self.getAttackStrings(groupAttacks), self.getAttackStrings(singleAttacks)) + panel.hoverButton.bind(DGG.ENTER, self.showInfo, extraArgs=[panel, info]) + panel.hoverButton.bind(DGG.EXIT, self.hideInfo) + + def getAttackStrings(self, attacks): + string = '\n'.join(['%s %s' % (TTLocalizer.SuitAttackNames[attack[0]], '-'.join(str(x) for x in attack[1])) for attack in attacks]) + return string if string else TTLocalizer.SuitPageNoAttacks def updateAllCogs(self, status): for index in xrange(0, len(base.localAvatar.cogs)): diff --git a/toontown/toonbase/TTLocalizerEnglish.py b/toontown/toonbase/TTLocalizerEnglish.py index 5e4ad456..b7109236 100755 --- a/toontown/toonbase/TTLocalizerEnglish.py +++ b/toontown/toonbase/TTLocalizerEnglish.py @@ -8726,6 +8726,9 @@ ShardPageTeleport = 'Teleport to\n%s' TeleportButton = 'Teleport' +SuitPageAttackFormat = '\x01androidGreen\x01Group attacks:\x02\n%s\n\n\x01androidGreen\x01Regular attacks:\x02\n%s' +SuitPageNoAttacks = 'None' + Blacklist = [ "$1ut", "$h1t",