Poodletooth-iLand/toontown/shtiker/AchievementsPage.py
2015-03-03 17:10:12 -05:00

84 lines
No EOL
3.9 KiB
Python

import ShtikerPage
from direct.gui.DirectGui import *
from pandac.PandaModules import *
from toontown.toonbase import TTLocalizer
from toontown.toonbase import ToontownGlobals
from toontown.achievements import AchievementsGlobals
class AchievementsPage(ShtikerPage.ShtikerPage):
def __init__(self):
ShtikerPage.ShtikerPage.__init__(self)
self.avatar = None
self.achievements = []
self.gui = loader.loadModel('phase_3.5/models/gui/friendslist_gui')
self.accept(localAvatar.uniqueName('achievementsChange'), self.updatePage)
def load(self):
ShtikerPage.ShtikerPage.load(self)
self.avAchievements = localAvatar.achievements
self.title = DirectLabel(parent=self, relief=None, text=TTLocalizer.AchievementsPageTitle, text_scale=0.12, textMayChange=1, pos=(0, 0, 0.62))
start_pos = LVecBase3(0.72, 1, -0.21)
seperation = LVecBase3(0.45, 0, 0.4)
cardModel = loader.loadModel('phase_3.5/models/gui/playingCard')
incButton = (self.gui.find('**/FndsLst_ScrollUp'),
self.gui.find('**/FndsLst_ScrollDN'),
self.gui.find('**/FndsLst_ScrollUp_Rllvr'),
self.gui.find('**/FndsLst_ScrollUp'))
self.scrollFrame = DirectScrolledFrame(parent=self, frameSize=(0, 1.5, -1.2, 0), pos=(-0.75, 1, 0.52),
canvasSize=(0, 1, -7, 0), frameColor=(0.85, 0.95, 1, 1))
for achievement in xrange(len(AchievementsGlobals.AchievementTitles)):
achievementFrame = DirectFrame(parent=self.scrollFrame.getCanvas(), image=DGG.getDefaultDialogGeom(), scale=(1.3, 0, 0.32),
relief=None, pos=(start_pos.x, 1, start_pos.z - seperation.z * achievement),
text=AchievementsGlobals.AchievementTitles[achievement], text_scale=(0.05, 0.13),
text_font=ToontownGlobals.getMinnieFont(), text_pos=(0, 0, 0))
self.achievements.append(achievementFrame)
if achievement in self.avAchievements:
achievementFrame['text'] = AchievementsGlobals.AchievementTitles[achievement]
achievementFrame['text_pos'] = (0, 0.2, -0.2)
else:
achievementFrame['text'] = '???'
def setAvatar(self, av):
self.avatar = av
def updatePage(self):
self.avAchievements = localAvatar.achievements
for achievement in self.achievements:
achievement.destroy()
del self.achievements
self.achievements = []
start_pos = LVecBase3(0.72, 1, -0.21)
seperation = LVecBase3(0.45, 0, 0.4)
for achievement in xrange(len(AchievementsGlobals.AchievementTitles)):
achievementFrame = DirectFrame(parent=self.scrollFrame.getCanvas(), image=DGG.getDefaultDialogGeom(), scale=(1.3, 0, 0.32),
relief=None, pos=(start_pos.x, 1, start_pos.z - seperation.z * achievement),
text=AchievementsGlobals.AchievementTitles[achievement], text_scale=(0.05, 0.13),
text_font=ToontownGlobals.getMinnieFont(), text_pos=(0, 0, 0))
self.achievements.append(achievementFrame)
if achievement in self.avAchievements:
achievementFrame['text'] = AchievementsGlobals.AchievementTitles[achievement]
achievementFrame['text_pos'] = (0, 0.2, -0.2)
currentAchievement = AchievementsGlobals.AchievementImages[achievement]
image = loader.loadModel(currentAchievement[0])
imageNode = image.find(currentAchievement[1])
imageNode.setColor(currentAchievement[2])
img = OnscreenGeom(geom=imageNode, parent=achievementFrame, pos=(-0.3, 0, 0))
else:
achievementFrame['text'] = '???'