def setupButtons(self):
        gui = loader.loadModel('phase_3/models/gui/tt_m_gui_mat_mainGui')
        arrowImage = (gui.find('**/tt_t_gui_mat_shuffleArrowUp'), gui.find('**/tt_t_gui_mat_shuffleArrowDown'))
        buttonImage = (gui.find('**/tt_t_gui_mat_shuffleUp'), gui.find('**/tt_t_gui_mat_shuffleDown'))

        self.title = DirectLabel(aspect2d, relief=None, text=TTLocalizer.GloveGuiTitle,
                     text_fg=(0, 1, 0, 1), text_scale=0.15, text_font=ToontownGlobals.getSignFont(),
                     pos=(0, 0, -0.30), text_shadow=(1, 1, 1, 1))

        self.notice = DirectLabel(aspect2d, relief=None, text='', text_fg=(1, 0, 0, 1), text_scale=0.11,
                      text_font=ToontownGlobals.getSignFont(), pos=(0, 0, -0.45), text_shadow=(1, 1, 1, 1))

        self.color = DirectLabel(aspect2d, relief=None, text='', text_scale=0.11, text_font=ToontownGlobals.getSignFont(),
                     pos=(0, 0, -0.70), text_shadow=(1, 1, 1, 1))

        self.buyButton = DirectButton(aspect2d, relief=None, image=buttonImage, text=TTLocalizer.GloveGuiBuy,
                         text_font=ToontownGlobals.getInterfaceFont(), text_scale=0.11, text_pos=(0, -0.02),
                         pos=(-0.60, 0, -0.90), text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), command=self.__exit, extraArgs=[GloveNPCGlobals.CHANGE])

        self.cancelButton = DirectButton(aspect2d, relief=None, image=buttonImage, text=TTLocalizer.lCancel,
                            text_font=ToontownGlobals.getInterfaceFont(), text_scale=0.11, text_pos=(0, -0.02),
                            pos=(0.60, 0, -0.90), text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), command=self.__exit, extraArgs=[GloveNPCGlobals.USER_CANCEL])

        self.downArrow = DirectButton(aspect2d, relief=None, image=arrowImage, pos=(-0.60, 0, -0.66))
        self.upArrow = DirectButton(aspect2d, relief=None, image=arrowImage, pos=(0.60, 0, -0.66), scale=-1)

        gui.removeNode()
    def createGui(self):
        self.title = DirectLabel(aspect2d, relief=None, text=TTLocalizer.GloveGuiTitle,
                     text_fg=(0, 1, 0, 1), text_scale=0.15, text_font=ToontownGlobals.getSignFont(),
                     pos=(0, 0, -0.30), text_shadow=(1, 1, 1, 1))

        self.notice = DirectLabel(aspect2d, relief=None, text=TTLocalizer.GloveGuiNotice % ToontownGlobals.GloveCost,
                      text_fg=(1, 0, 0, 1), text_scale=0.11, text_font=ToontownGlobals.getSignFont(),
                      pos=(0, 0, -0.45), text_shadow=(1, 1, 1, 1))

        self.color = DirectLabel(aspect2d, relief=None, text='',
                     text_scale=0.11, text_font=ToontownGlobals.getSignFont(),
                     pos=(0, 0, -0.70), text_shadow=(1, 1, 1, 1))

        self.buyButton = DirectButton(aspect2d, relief=None, image=(self.shuffleUp, self.shuffleDown),
                         text=TTLocalizer.GloveGuiBuy, text_font=ToontownGlobals.getInterfaceFont(),
                         text_scale=0.11, text_pos=(0, -0.02), pos=(-0.60, 0, -0.90), text_fg=(1, 1, 1, 1),
                         text_shadow=(0, 0, 0, 1), command=self.handleBuy)

        self.cancelButton = DirectButton(aspect2d, relief=None, image=(self.shuffleUp, self.shuffleDown),
                            text=TTLocalizer.GloveGuiCancel, text_font=ToontownGlobals.getInterfaceFont(),
                            text_scale=0.11, text_pos=(0, -0.02), pos=(0.60, 0, -0.90), text_fg=(1, 1, 1, 1),
                            text_shadow=(0, 0, 0, 1), command=self.leave)

        self.leftButton = DirectButton(aspect2d, relief=None, image=(self.shuffleArrowUp, self.shuffleArrowDown),
                          pos=(-0.60, 0, -0.66), command=self.handleSetIndex, extraArgs=[-1])

        self.rightButton = DirectButton(aspect2d, relief=None, image=(self.shuffleArrowUp, self.shuffleArrowDown),
                           pos=(0.60, 0, -0.66), scale=-1, command=self.handleSetIndex, extraArgs=[1])

        self.updateGuiByIndex()
 def loadGUI(self):
     self.gui = loader.loadModel("phase_13/models/parties/trampolineGUI")
     self.gui.reparentTo(base.a2dTopLeft)
     self.gui.setPos(0.115, 0, -1)
     self.gui.hide()
     self.toonIndicator = self.gui.find("**/trampolineGUI_MovingBar")
     jumpLineLocator = self.gui.find("**/jumpLine_locator")
     guiBean = self.gui.find("**/trampolineGUI_GreenJellyBean")
     self.gui.find("**/trampolineGUI_GreenJellyBean").stash()
     self.guiBeans = [
         guiBean.instanceUnderNode(jumpLineLocator, self.uniqueName("guiBean%d" % i))
         for i in range(self.numJellyBeans)
     ]
     self.guiBeans[-1].setScale(1.5)
     heightTextNode = TextNode(self.uniqueName("TrampolineActivity.heightTextNode"))
     heightTextNode.setFont(ToontownGlobals.getSignFont())
     heightTextNode.setAlign(TextNode.ALeft)
     heightTextNode.setText("0.0")
     heightTextNode.setShadow(0.05, 0.05)
     heightTextNode.setShadowColor(0.0, 0.0, 0.0, 1.0)
     heightTextNode.setTextColor(1.0, 1.0, 1.0, 1.0)
     self.heightText = jumpLineLocator.attachNewNode(heightTextNode)
     self.heightText.setX(0.15)
     self.heightText.setScale(0.1)
     self.heightText.setAlphaScale(0.0)
     self.quitEarlyButtonModels = loader.loadModel("phase_3.5/models/gui/inventory_gui")
     quitEarlyUp = self.quitEarlyButtonModels.find("**//InventoryButtonUp")
     quitEarlyDown = self.quitEarlyButtonModels.find("**/InventoryButtonDown")
     quitEarlyRollover = self.quitEarlyButtonModels.find("**/InventoryButtonRollover")
     self.quitEarlyButton = DirectButton(
         parent=base.a2dTopRight,
         relief=None,
         text=TTLocalizer.PartyTrampolineQuitEarlyButton,
         text_fg=(1, 1, 0.65, 1),
         text_pos=(0, -0.23),
         text_scale=0.7,
         image=(quitEarlyUp, quitEarlyDown, quitEarlyRollover),
         image_color=(1, 0, 0, 1),
         image_scale=(20, 1, 11),
         pos=(-0.183, 0, -0.4),
         scale=0.09,
         command=self.leaveTrampoline,
     )
     self.quitEarlyButton.stash()
     self.flashText = OnscreenText(
         text="",
         pos=(0.0, -0.45),
         scale=0.2,
         fg=(1.0, 1.0, 0.65, 1.0),
         align=TextNode.ACenter,
         font=ToontownGlobals.getSignFont(),
         mayChange=True,
     )
     self.timer = PartyUtils.getNewToontownTimer()
     self.timer.posInTopRightCorner()
     return
 def loadNextGameTimer(self):
     self.nextGame = DirectLabel(parent=self, relief=None, text='', text_font=ToontownGlobals.getSignFont(), text_scale=TTLocalizer.BCGnextGame * BG.CardImageScale[2], text_fg=(1.0, 1.0, 1.0, 1), pos=(BG.GridXOffset, 0, 4 * BG.CardImageScale[2]))
     self.nextGameTimer = ToontownTimer.ToontownTimer()
     self.nextGameTimer.reparentTo(self.nextGame)
     self.nextGameTimer.setPos(0, 0, -5 * BG.CardImageScale[2])
     self.nextGameTimer.setProp('image', None)
     self.nextGameTimer.setProp('text_font', ToontownGlobals.getSignFont())
     self.nextGameTimer.setProp('text_scale', 0.2 * BG.CardImageScale[2])
     self.nextGameTimer.setFontColor(Vec4(1.0, 1.0, 1.0, 1))
     return
    def enableRaceMode(self):
        self.enableSpeedometer()
        self.render2dRoot.show()
        self.raceModeRoot.show()
        self.maxLapHit = min(self.maxLapHit, self.race.lapCount - 1)
        for x in xrange(self.maxLapHit + 1):
            for y in self.timeLabels[x]:
                y.configure(text_font=ToontownGlobals.getSignFont())
                y.show()

        for y in self.timeLabels[self.maxLapHit]:
            y.configure(text_font=ToontownGlobals.getSignFont())
Exemple #6
0
 def showHitScore(self, number, scale = 1):
     if number <= 0:
         return
     if self.hpText:
         self.hideHitScore()
     self.HpTextGenerator.setFont(ToontownGlobals.getSignFont())
     if number < 0:
         self.HpTextGenerator.setText(str(number))
     else:
         self.HpTextGenerator.setText('+' + str(number))
     self.HpTextGenerator.clearShadow()
     self.HpTextGenerator.setAlign(TextNode.ACenter)
     r = 1
     g = 1
     b = 0
     a = 1
     self.HpTextGenerator.setTextColor(r, g, b, a)
     self.hpTextNode = self.HpTextGenerator.generate()
     self.hpText = render.attachNewNode(self.hpTextNode)
     self.hpText.setScale(scale)
     self.hpText.setBillboardPointEye()
     self.hpText.setBin('fixed', 100)
     self.hpText.setPos(self.root, 0, 0, self.height / 2)
     seq = Task.sequence(self.hpText.lerpPos(Point3(self.root.getX(render), self.root.getY(render), self.root.getZ(render) + self.height + 1.0), 0.25, blendType='easeOut'), Task.pause(0.25), self.hpText.lerpColor(Vec4(r, g, b, a), Vec4(r, g, b, 0), 0.1), Task.Task(self.__hideHitScoreTask))
     taskMgr.add(seq, 'PartyCogHpText' + str(self.id))
 def flipText(
         flip,
         label=self.entryList[
             place - 1][3],
         timeStr=timeStr,
         recStr=TTLocalizer.KartRace_Record):
     self.entryList[place - 1][3].configure(text_scale=0.06)
     self.entryList[
         place -
         1][3].configure(
         text_fg=(
             0.95,
             0.0,
             0.0,
             1.0))
     if flip:
         self.entryList[
             place -
             1][3].configure(
             text_font=DGG.getDefaultFont())
         self.entryList[place - 1][3]['text'] = timeStr
     else:
         self.entryList[
             place -
             1][3].configure(
             text_font=ToontownGlobals.getSignFont())
         self.entryList[place - 1][3]['text'] = recStr
 def __init__(self, cr):
     DistributedMinigame.__init__(self, cr)
     self.gameFSM = ClassicFSM.ClassicFSM(
         "DistributedCogThiefGame",
         [
             State.State("off", self.enterOff, self.exitOff, ["play"]),
             State.State("play", self.enterPlay, self.exitPlay, ["cleanup"]),
             State.State("cleanup", self.enterCleanup, self.exitCleanup, []),
         ],
         "off",
         "cleanup",
     )
     self.addChildGameFSM(self.gameFSM)
     self.cameraTopView = (0, 0, 55, 0, -90.0, 0)
     self.barrels = []
     self.cogInfo = {}
     self.lastTimeControlPressed = 0
     self.stolenBarrels = []
     self.useOrthoWalk = base.config.GetBool("cog-thief-ortho", 1)
     self.resultIval = None
     self.gameIsEnding = False
     self.__textGen = TextNode("cogThiefGame")
     self.__textGen.setFont(ToontownGlobals.getSignFont())
     self.__textGen.setAlign(TextNode.ACenter)
     return
    def __init__(self):
		self.__expectedCount = 0
		self.__count = 0
		self.gui = loader.loadModel('phase_3/models/gui/progress-background')
		self.banner = loader.loadModel('phase_3/models/gui/toon_council').find('**/scroll')
		self.banner.reparentTo(self.gui)
		self.banner.setScale(0.4, 0.4, 0.4)
		self.tip = DirectLabel(guiId='ToontownLoadingScreenTip', parent=self.banner, relief=None, text='', text_scale=TTLocalizer.TLStip, textMayChange=1, pos=(-1.2, 0.0, 0.1), text_fg=(0.4, 0.3, 0.2, 1), text_wordwrap=13, text_align=TextNode.ALeft)
		self.title = DirectLabel(guiId='ToontownLoadingScreenTitle', parent=self.gui, relief=None, pos=(-1.06, 0, -0.77), text='', textMayChange=1, text_scale=0.08, text_fg=(0, 0, 0.5, 1), text_align=TextNode.ALeft)
		self.waitBar = DirectWaitBar(guiId='ToontownLoadingScreenWaitBar', parent=self.gui, frameSize=(-1.06, 1.06, -0.03, 0.03), pos=(0, 0, -0.85), text='')
		self.logo = OnscreenImage('phase_3/maps/toontown-logo.png')
		self.logo.reparentTo(self.gui)
		self.logo.setScale(self.gui, (0.5625))
		self.logo.setTransparency(TransparencyAttrib.MAlpha)
		self.logo.setZ(0.73)
		self.airplane = loader.loadModel('phase_4/models/props/airplane.bam')
                self.airplane.setScale(4)
                self.airplane.setPos(0, 0, 1)
                self.banner = self.airplane.find('**/*banner')
                bannerText = TextNode('bannerText')
                bannerText.setTextColor(1, 0, 0, 1)
                bannerText.setAlign(bannerText.ACenter)
                bannerText.setFont(ToontownGlobals.getSignFont())
                bannerText.setText('Cog invasion!!!')
                self.bn = self.banner.attachNewNode(bannerText.generate())
                self.bn.setHpr(180, 0, 0)
                self.bn.setPos(-1.8, 0.1, 0)
                self.bn.setScale(0.35)
                self.banner.hide()
		return
    def __init__(self, beanAmount):
        if not ScavengerHuntEffect.images:
            ScavengerHuntEffect.images = loader.loadModel('phase_4/models/props/tot_jar')
        self.npRoot = DirectFrame(parent=aspect2d, relief=None, scale=0.75, pos=(0, 0, 0.6))
        if beanAmount > 0:
            self.npRoot.setColorScale(VBase4(1, 1, 1, 0))
            self.jar = DirectFrame(parent=self.npRoot, relief=None, image=ScavengerHuntEffect.images.find('**/tot_jar'))
            self.jar.hide()
            self.eventImage = NodePath('EventImage')
            self.eventImage.reparentTo(self.npRoot)
            self.countLabel = DirectLabel(parent=self.jar, relief=None, text='+0', text_pos=(0.02, -0.2), text_scale=0.25, text_fg=(0.95,
             0.0,
             0,
             1), text_font=ToontownGlobals.getSignFont())

            def countUp(t, startVal, endVal):
                beanCountStr = startVal + t * (endVal - startVal)
                self.countLabel['text'] = '+' + `(int(beanCountStr))`

            def setCountColor(color):
                self.countLabel['text_fg'] = color

            self.track = Sequence(LerpColorScaleInterval(self.npRoot, 1, colorScale=VBase4(1, 1, 1, 1), startColorScale=VBase4(1, 1, 1, 0)), Wait(1), Func(self.jar.show), LerpColorScaleInterval(self.eventImage, 1, colorScale=VBase4(1, 1, 1, 0), startColorScale=VBase4(1, 1, 1, 1)), Parallel(LerpScaleInterval(self.npRoot, 1, scale=0.5, startScale=0.75), LerpPosInterval(self.npRoot, 1, pos=VBase3(-0.9, 0, -0.83))), LerpFunc(countUp, duration=2, extraArgs=[0, beanAmount]), Func(setCountColor, VBase4(0.95, 0.95, 0, 1)), Wait(3), Func(self.destroy))
        else:
            self.npRoot.setColorScale(VBase4(1, 1, 1, 0))
            self.attemptFailedMsg()
            self.track = Sequence(LerpColorScaleInterval(self.npRoot, 1, colorScale=VBase4(1, 1, 1, 1), startColorScale=VBase4(1, 1, 1, 0)), Wait(5), LerpColorScaleInterval(self.npRoot, 1, colorScale=VBase4(1, 1, 1, 0), startColorScale=VBase4(1, 1, 1, 1)), Func(self.destroy))
 def showHitScore(self, number, scale = 1):
     if number <= 0:
         return
     if self.hpText:
         self.hideHitScore()
     self.HpTextGenerator.setFont(ToontownGlobals.getSignFont())
     if number < 0:
         self.HpTextGenerator.setText(str(number))
     else:
         self.HpTextGenerator.setText('+' + str(number))
     self.HpTextGenerator.clearShadow()
     self.HpTextGenerator.setAlign(TextNode.ACenter)
     r = 1
     g = 1
     b = 0
     a = 1
     self.HpTextGenerator.setTextColor(r, g, b, a)
     self.hpTextNode = self.HpTextGenerator.generate()
     self.hpText = render.attachNewNode(self.hpTextNode)
     self.hpText.setScale(scale)
     self.hpText.setBillboardPointEye()
     self.hpText.setBin('fixed', 100)
     self.hpText.setPos(self.root, 0, 0, self.height / 2)
     seq = Sequence(self.hpText.posInterval(0.25, Point3(self.root.getX(render), self.root.getY(render), self.root.getZ(render) + self.height + 1.0), blendType='easeOut'), Wait(0.25), self.hpText.colorInterval(0.1, Vec4(r, g, b, 0)), Func(self.__hideHitScore))
     seq.start()
 def doSpawnTitleText(self, text):
     return
     self.titleColor = (1.0, 0.5, 0.4, 1.0)
     self.titleText = OnscreenText.OnscreenText(
         text,
         fg=self.titleColor,
         font=ToontownGlobals.getSignFont(),
         pos=(0, -0.5),
         scale=0.16,
         drawOrder=0,
         mayChange=1,
         wordwrap=16,
     )
     self.titleText.setText(text)
     self.titleText.show()
     self.titleText.setColor(Vec4(*self.titleColor))
     self.titleText.clearColorScale()
     self.titleText.setFg(self.titleColor)
     seq = Sequence(
         Wait(0.1),
         Wait(6.0),
         self.titleText.colorScaleInterval(0.5, Vec4(1.0, 1.0, 1.0, 0.0)),
         Task(self.hideTitleText),
     )
     seq.start()
 def loadGUI(self):
     self.gui = loader.loadModel('phase_13/models/parties/trampolineGUI')
     self.gui.setX(-1.15)
     self.gui.reparentTo(self.screenPlaneElements)
     self.toonIndicator = self.gui.find('**/trampolineGUI_MovingBar')
     jumpLineLocator = self.gui.find('**/jumpLine_locator')
     guiBean = self.gui.find('**/trampolineGUI_GreenJellyBean')
     self.gui.find('**/trampolineGUI_GreenJellyBean').stash()
     self.guiBeans = [ guiBean.instanceUnderNode(jumpLineLocator, self.uniqueName('guiBean%d' % i)) for i in range(self.numJellyBeans) ]
     self.guiBeans[-1].setScale(1.5)
     heightTextNode = TextNode(self.uniqueName('TrampolineActivity.heightTextNode'))
     heightTextNode.setFont(ToontownGlobals.getSignFont())
     heightTextNode.setAlign(TextNode.ALeft)
     heightTextNode.setText('0.0')
     heightTextNode.setShadow(0.05, 0.05)
     heightTextNode.setShadowColor(0.0, 0.0, 0.0, 1.0)
     heightTextNode.setTextColor(1.0, 1.0, 1.0, 1.0)
     self.heightText = jumpLineLocator.attachNewNode(heightTextNode)
     self.heightText.setX(0.15)
     self.heightText.setScale(0.1)
     self.heightText.setAlphaScale(0.0)
     self.quitEarlyButtonModels = loader.loadModel('phase_3.5/models/gui/inventory_gui')
     quitEarlyUp = self.quitEarlyButtonModels.find('**//InventoryButtonUp')
     quitEarlyDown = self.quitEarlyButtonModels.find('**/InventoryButtonDown')
     quitEarlyRollover = self.quitEarlyButtonModels.find('**/InventoryButtonRollover')
     self.quitEarlyButton = DirectButton(parent=self.screenPlaneElements, relief=None, text=TTLocalizer.PartyTrampolineQuitEarlyButton, text_fg=(1, 1, 0.65, 1), text_pos=(0, -0.23), text_scale=0.7, image=(quitEarlyUp, quitEarlyDown, quitEarlyRollover), image_color=(1, 0, 0, 1), image_scale=(20, 1, 11), pos=(1.15, 0, 0.6), scale=0.09, command=self.leaveTrampoline)
     self.quitEarlyButton.stash()
     self.flashText = OnscreenText(text='', pos=(0.0, -0.45), scale=0.2, fg=(1.0, 1.0, 0.65, 1.0), align=TextNode.ACenter, font=ToontownGlobals.getSignFont(), mayChange=True)
     self.timer = PartyUtils.getNewToontownTimer()
     self.timer.reparentTo(self.screenPlaneElements)
     return
    def load(self, purchaseModels=None):
        if purchaseModels == None:
            purchaseModels = loader.loadModel("phase_4/models/gui/purchase_gui")

        self.music = base.loadMusic("phase_4/audio/bgm/FF_safezone.mid")
        self.jarImage = purchaseModels.find("**/Jar")
        self.jarImage.reparentTo(hidden)
        self.frame = DirectFrame(relief=None)
        self.frame.hide()
        self.title = DirectLabel(
            parent=self.frame,
            relief=None,
            pos=(0.0, 0.0, 0.82999999999999996),
            scale=1.2,
            image=purchaseModels.find("**/Goofys_Sign"),
            text=TTLocalizer.GagShopName,
            text_fg=(0.59999999999999998, 0.20000000000000001, 0, 1),
            text_scale=0.089999999999999997,
            text_wordwrap=10,
            text_pos=(0, 0.025000000000000001, 0),
            text_font=ToontownGlobals.getSignFont(),
        )
        self.pointDisplay = DirectLabel(
            parent=self.frame,
            relief=None,
            pos=(-1.1499999999999999, 0.0, 0.16),
            text=str(self.toon.getMoney()),
            text_scale=0.20000000000000001,
            text_fg=(0.94999999999999996, 0.94999999999999996, 0, 1),
            text_shadow=(0, 0, 0, 1),
            text_pos=(0, -0.10000000000000001, 0),
            image=self.jarImage,
            text_font=ToontownGlobals.getSignFont(),
        )
        self.statusLabel = DirectLabel(
            parent=self.frame,
            relief=None,
            pos=(-0.25, 0, 0.625),
            text=TTLocalizer.GagShopYouHave % self.toon.getMoney(),
            text_scale=TTLocalizer.PBstatusLabel,
            text_fg=(0.050000000000000003, 0.14000000000000001, 0.40000000000000002, 1),
        )
        if self.toon.getMoney() == 1:
            self.statusLabel["text"] = TTLocalizer.GagShopYouHaveOne

        self.isBroke = 0
        self._teaserPanel = None
 def loadDnaStore(self):
     if not hasattr(self, 'dnaStore'):
         self.dnaStore = DNAStorage()
         loader.loadDNAFile(self.dnaStore, 'phase_4/dna/storage.dna')
         self.dnaStore.storeFont('humanist', ToontownGlobals.getInterfaceFont())
         self.dnaStore.storeFont('mickey', ToontownGlobals.getSignFont())
         self.dnaStore.storeFont('suit', ToontownGlobals.getSuitFont())
         loader.loadDNAFile(self.dnaStore, 'phase_3.5/dna/storage_interior.dna')
Exemple #16
0
 def loadDnaStore(self):
     if not hasattr(self, "dnaStore"):
         self.dnaStore = DNAStorage()
         loader.loadDNAFile(self.dnaStore, "phase_4/dna/storage.dna")
         self.dnaStore.storeFont("humanist", ToontownGlobals.getInterfaceFont())
         self.dnaStore.storeFont("mickey", ToontownGlobals.getSignFont())
         self.dnaStore.storeFont("suit", ToontownGlobals.getSuitFont())
         loader.loadDNAFile(self.dnaStore, "phase_3.5/dna/storage_interior.dna")
 def _DistributedRingGame__initTallyDisplay(self):
     self._DistributedRingGame__tallyTextNode = TextNode('tally')
     self._DistributedRingGame__tallyTextNode.setFont(ToontownGlobals.getSignFont())
     self._DistributedRingGame__tallyTextNode.setAlign(TextNode.ACenter)
     self.tallyMarkers = [
         None] * self._DistributedRingGame__numRingGroups
     for i in range(0, self._DistributedRingGame__numRingGroups):
         self._DistributedRingGame__createTallyMarker(i, self.RT_UNKNOWN)
 def __init__(self, cr):
     DistributedObject.DistributedObject.__init__(self, cr)
     self.lastCamEnterRoom = 0
     self.titleColor = (1, 1, 1, 1)
     self.titleText = OnscreenText.OnscreenText('', fg=self.titleColor, shadow=(0, 0, 0, 1),
                                                font=ToontownGlobals.getSignFont(), pos=(0, -0.5), scale=0.1,
                                                drawOrder=0, mayChange=1)
     self.titleSequence = None
     return
 def loadDnaStore(self):
     if not hasattr(self, 'dnaStore'):
         self.dnaStore = DNAStorage()
         files = ('phase_4/dna/storage.pdna', 'phase_3.5/dna/storage_interior.pdna')
         dnaBulk = DNABulkLoader(self.dnaStore, files)
         dnaBulk.loadDNAFiles()
         self.dnaStore.storeFont('humanist', ToontownGlobals.getInterfaceFont())
         self.dnaStore.storeFont('mickey', ToontownGlobals.getSignFont())
         self.dnaStore.storeFont('suit', ToontownGlobals.getSuitFont())
Exemple #20
0
 def loadDnaStore(self):
     if not hasattr(self, "dnaStore"):
         self.dnaStore = DNAStorage()
         files = ("phase_4/dna/storage.pdna", "phase_3.5/dna/storage_interior.pdna")
         dnaBulk = DNABulkLoader(self.dnaStore, files)
         dnaBulk.loadDNAFiles()
         self.dnaStore.storeFont("humanist", ToontownGlobals.getInterfaceFont())
         self.dnaStore.storeFont("mickey", ToontownGlobals.getSignFont())
         self.dnaStore.storeFont("suit", ToontownGlobals.getSuitFont())
    def __init__(self, description, needed, icon):
        NodePath.__init__(self, 'objective-%s' % id(self))

        self.needed = needed
        self.visible = False

        self.fadeInTrack = None
        self.fadeOutTrack = None

        gui = loader.loadModel('phase_5/models/cogdominium/tt_m_gui_csa_flyThru')
        self.background = gui.find('**/*background').copyTo(self)
        self.background.setScale(2.5)
        gui.removeNode()

        self.icon = icon.copyTo(self.background)
        self.icon.setScale(0.08)
        self.icon.setPos(-0.167, 0, -0.002)

        text = TextNode('challenge')
        text.setText('Challenge')
        text.setFont(ToontownGlobals.getSignFont())
        text.setTextColor(0.95, 0.95, 0, 1)
        self.objText = self.background.attachNewNode(text)
        self.objText.setScale(0.03)
        self.objText.setPos(-0.04, 0.0, 0.02)

        text = TextNode('description')
        text.setText(description)
        text.setFont(ToontownGlobals.getSignFont())
        text.setTextColor(0.95, 0.95, 0, 1)
        text.setAlign(TextNode.ACenter)
        self.objText = self.background.attachNewNode(text)
        self.objText.setScale(0.015)
        self.objText.setPos(0.048, 0.0, -0.009)

        self.progressBar = DirectWaitBar(guiId='ChallengeProgressBar', parent=self.background, frameSize=(-0.11, 0.11, -0.007, 0.007), pos=(0.048, 0, -0.0338), text='')
        self.progressBar['range'] = needed

        self.progressText = DirectLabel(guiId='ChallengeProgressText', parent=self.progressBar, relief=None, pos=(0, 0, -0.0048), text='', textMayChange=1, text_scale=0.014, text_fg=(0.03, 0.83, 0, 1), text_align=TextNode.ACenter, text_font=ToontownGlobals.getSignFont())

        self.updateProgress(0)

        self.reparentTo(base.a2dBottomLeft)
        self.stash()
 def getSignTextNodes(self, nodeName, font=ToontownGlobals.getSignFont()):
     signTextNode = TextNode(nodeName)
     signTextNode.setFont(font)
     signTextNode.setAlign(TextNode.ACenter)
     signTextNode.setTextColor(0.5, 0.5, 0.5, 1)
     signTextNodepath = self.tunnelSign.attachNewNode(signTextNode)
     signTextNodepath.setPos(0, 0.25, 0)
     signTextNodepath.setH(165.0)
     signTextNodepath.setDepthWrite(0)
     return signTextNode, signTextNodepath
 def startCountdownClock(self, countdownTime, ts):
     self.clockNode = TextNode('elevatorClock')
     self.clockNode.setFont(ToontownGlobals.getSignFont())
     self.clockNode.setAlign(TextNode.ACenter)
     self.clockNode.setTextColor(0.5, 0.5, 0.5, 1)
     self.clockNode.setText(str(int(countdownTime)))
     self.clock = self.getElevatorModel().attachNewNode(self.clockNode)
     self.clock.setPosHprScale(0, 2.0, 7.5, 0, 0, 0, 2.0, 2.0, 2.0)
     if ts < countdownTime:
         self.countdown(countdownTime - ts)
 def startTimer(self):
     self.clockNode = TextNode('elevatorClock')
     self.clockNode.setFont(ToontownGlobals.getSignFont())
     self.clockNode.setAlign(TextNode.ACenter)
     self.clockNode.setTextColor(0.5, 0.5, 0.5, 1)
     self.clockNode.setText(str(int(self.countdownDuration)))
     self.clock = aspect2d.attachNewNode(self.clockNode)
     self.clock.setPos(0, 0, -0.59999999999999998)
     self.clock.setScale(0.14999999999999999, 0.14999999999999999, 0.14999999999999999)
     self._BoardingGroupShow__countdown(self.countdownDuration, self._BoardingGroupShow__boardingElevatorTimerExpired)
 def doSpawnTitleText(self, text):
     self.titleColor = (1.0, 0.5, 0.4, 1.0)
     self.titleText = OnscreenText.OnscreenText(text, fg=self.titleColor, font=ToontownGlobals.getSignFont(), pos=(0, -0.5), scale=0.16, drawOrder=0, mayChange=1, wordwrap=16)
     self.titleText.setText(text)
     self.titleText.show()
     self.titleText.setColor(Vec4(*self.titleColor))
     self.titleText.clearColorScale()
     self.titleText.setFg(self.titleColor)
     seq = Task.sequence(Task.pause(0.1), Task.pause(6.0), self.titleText.lerpColorScale(Vec4(1.0, 1.0, 1.0, 1.0), Vec4(1.0, 1.0, 1.0, 0.0), 0.5), Task(self.hideTitleTextTask))
     taskMgr.add(seq, 'titleText')
Exemple #26
0
    def loadDnaStore(self):
        if not hasattr(self, 'dnaStore'):
            self.dnaStore = DNAStorage()

            loader.loadDNA('phase_4/dna/storage.xml').store(self.dnaStore)

            self.dnaStore.storeFont(ToontownGlobals.getInterfaceFont(), 'humanist')
            self.dnaStore.storeFont(ToontownGlobals.getSignFont(), 'mickey')
            self.dnaStore.storeFont(ToontownGlobals.getSuitFont(), 'suit')

            loader.loadDNA('phase_3.5/dna/storage_interior.xml').store(self.dnaStore)
Exemple #27
0
 def __init__(self, doneEvent, kartNum):
     self.kartNum = kartNum
     self.modelScale = 1
     model = loader.loadModel('phase_6/models/gui/ConfirmBuyKartPanel')
     kartInfo = getKartTypeInfo(kartNum)
     name = kartInfo[KartInfo.name]
     cost = kartInfo[KartInfo.cost]
     DirectFrame.__init__(
         self,
         relief=None,
         state='normal',
         geom=model,
         geom_scale=self.modelScale,
         frameSize=(-1, 1, -1, 1),
         pos=(0, 0, -0.01),
         text=TTLocalizer.KartShop_ConfirmBuy % (name, cost),
         text_wordwrap=11,
         text_scale=KS_TEXT_SIZE_SMALL,
         text_pos=(0, -0.26))
     self.initialiseoptions(KartShopGuiMgr.ConfirmBuyKartDlg)
     self.ticketDisplay = DirectLabel(
         parent=self,
         relief=None,
         text=str(base.localAvatar.getTickets()),
         text_scale=KS_TEXT_SIZE_SMALL,
         text_fg=(0.95, 0.95, 0.0, 1.0),
         text_shadow=(0, 0, 0, 1),
         text_pos=(0.43, -0.5),
         text_font=ToontownGlobals.getSignFont())
     self.cancelButton = DirectButton(
         parent=self,
         relief=None,
         image=(model.find('**/CancelButtonUp'), model.find('**/CancelButtonDown'), model.find('**/CancelButtonRollover')),
         geom=model.find('**/CancelIcon'),
         scale=self.modelScale,
         pressEffect=False,
         command=lambda : messenger.send(doneEvent, [CBK_OPTIONS.Cancel]))
     self.okButton = DirectButton(
         parent=self,
         relief=None,
         image=(model.find('**/CheckButtonUp'), model.find('**/CheckButtonDown'), model.find('**/CheckButtonRollover')),
         geom=model.find('**/CheckIcon'),
         scale=self.modelScale,
         pressEffect=False,
         command=lambda : messenger.send(doneEvent, [CBK_OPTIONS.BuyKart]))
     self.kartView = KartViewer([self.kartNum, -1, -1, -1, -1, -1, -1, -1, -1], parent=self)
     self.kartView.setPos(model.find('**/KartViewerFrame').getPos())
     self.kartView.load(model, 'KartViewerFrame', [], [], None)
     self.kartView.setBounds(-0.38, 0.38, -.0425, 0.49)
     self.kartView.setBgColor(1.0, 1.0, 0.8, 1.0)
     self.initialize = True
     self.kartView.show()
     model.removeNode()
     return
    def loadDnaStore(self):
        if not hasattr(self, "dnaStore"):
            self.dnaStore = DNAStorage()

            loader.loadDNA("phase_4/dna/storage.xml").store(self.dnaStore)

            self.dnaStore.storeFont(ToontownGlobals.getInterfaceFont(), "humanist")
            self.dnaStore.storeFont(ToontownGlobals.getSignFont(), "mickey")
            self.dnaStore.storeFont(ToontownGlobals.getSuitFont(), "suit")

            loader.loadDNA("phase_3.5/dna/storage_interior.xml").store(self.dnaStore)
 def createDistanceLabel(self, number, color):
     text = TextNode('distanceText-%d' % number)
     text.setAlign(TextNode.ACenter)
     text.setTextColor(color)
     text.setFont(ToontownGlobals.getSignFont())
     text.setText('10 ft')
     node = self.root.attachNewNode(text)
     node.setBillboardPointEye()
     node.setScale(2.5)
     node.setZ(5.0)
     return (node, text)
 def createText(self, number, position, color):
     text = TextNode('winText%d' % number)
     text.setAlign(TextNode.ACenter)
     text.setTextColor(color)
     text.setFont(ToontownGlobals.getSignFont())
     text.setText('')
     noteText = aspect2d.attachNewNode(text)
     noteText.setScale(0.2)
     noteText.setPos(position)
     noteText.stash()
     return (text, noteText)
Exemple #31
0
 def __init__(self, doneEvent):
     FSM.FSM.__init__(self, 'PetTutorial')
     self.doneEvent = doneEvent
     self.setStateArray(['Page1', 'Page2', 'Page3'])
     DirectFrame.__init__(self, pos=(0.0, 0.0, 0.0), image_color=ToontownGlobals.GlobalDialogColor, image_scale=(1.5, 1.5, 0.9), text='', text_scale=0.06)
     self['image'] = DGG.getDefaultDialogGeom()
     self.title = DirectLabel(self, relief=None, text='', text_pos=(0.0, 0.32), text_fg=(1, 0, 0, 1), text_scale=TTLocalizer.PTtitle, text_font=ToontownGlobals.getSignFont())
     images = loader.loadModel('phase_5.5/models/gui/PetTutorial')
     self.iPage1 = DirectFrame(self, image=images.find('**/PetTutorialPanel'), scale=0.75, pos=(-0.55, -0.1, 0))
     self.iPage1.hide()
     self.iPage2 = DirectFrame(self, image=images.find('**/PetTutorialSpeedChat'), scale=0.75, pos=(0.43, -0.1, 0.05))
     self.iPage2.hide()
     self.iPage3 = DirectFrame(self, image=images.find('**/PetTutorialCattlelog'), scale=0.75, pos=(-0.55, -0.1, 0))
     self.iPage3.hide()
     buttons = loader.loadModel('phase_3/models/gui/dialog_box_buttons_gui')
     gui = loader.loadModel('phase_3.5/models/gui/friendslist_gui')
     self.bNext = DirectButton(self, image=(gui.find('**/Horiz_Arrow_UP'),
      gui.find('**/Horiz_Arrow_DN'),
      gui.find('**/Horiz_Arrow_Rllvr'),
      gui.find('**/Horiz_Arrow_UP')), image3_color=Vec4(1, 1, 1, 0.5), relief=None, text=TTLocalizer.PetTutorialNext, text3_fg=Vec4(0, 0, 0, 0.5), text_scale=0.05, text_pos=(0.0, -0.1), pos=(0.2, -0.3, -0.25), command=self.requestNext)
     self.bPrev = DirectButton(self, image=(gui.find('**/Horiz_Arrow_UP'),
      gui.find('**/Horiz_Arrow_DN'),
      gui.find('**/Horiz_Arrow_Rllvr'),
      gui.find('**/Horiz_Arrow_UP')), image3_color=Vec4(1, 1, 1, 0.5), image_scale=(-1.0, 1.0, 1.0), relief=None, text=TTLocalizer.PetTutorialPrev, text3_fg=Vec4(0, 0, 0, 0.5), text_scale=0.05, text_pos=(0.0, -0.1), pos=(-0.2, -0.3, -0.25), command=self.requestPrev)
     self.bQuit = DirectButton(self, image=(buttons.find('**/ChtBx_OKBtn_UP'), buttons.find('**/ChtBx_OKBtn_DN'), buttons.find('**/ChtBx_OKBtn_Rllvr')), relief=None, text=TTLocalizer.PetTutorialDone, text_scale=0.05, text_pos=(0.0, -0.1), pos=(0.55, -0.3, -0.25), command=self.__handleQuit)
     self.bQuit.hide()
     buttons.removeNode()
     gui.removeNode()
     self.request('Page1')
     return
 def loadGui(self):
     self.frame2D = DirectFrame(scale=1.0, pos=(0.0, 0, 0.9), relief=DGG.FLAT, parent=aspect2d, frameSize=(-0.3,
      0.3,
      -0.05,
      0.05), frameColor=(0.737, 0.573, 0.345, 0.3))
     self.scoreLabel = DirectLabel(parent=self.frame2D, relief=None, pos=(0, 0, 0), scale=1.0, text='', text_font=ToontownGlobals.getSignFont(), text0_fg=(1, 1, 1, 1), text_scale=0.075, text_pos=(0, -0.02))
     self.updateGuiScore()
     self.frame2D.hide()
     return
Exemple #33
0
    def load(self, isPaid):
        if self.isLoaded == 1:
            return None
        self.isPaid = isPaid
        gui = loader.loadModel('phase_3/models/gui/pick_a_toon_gui')
        gui.flattenMedium()
        gui2 = loader.loadModel('phase_3/models/gui/quit_button')
        gui2.flattenMedium()
        newGui = loader.loadModel('phase_3/models/gui/tt_m_gui_pat_mainGui')
        newGui.flattenMedium()
        self.pickAToonBG = newGui.find('**/tt_t_gui_pat_background')
        self.pickAToonBG.flattenStrong()
        self.pickAToonBG.reparentTo(hidden)
        self.pickAToonBG.setPos(0.0, 2.73, 0.0)
        self.pickAToonBG.setScale(1, 1, 1)
        self.title = OnscreenText(TTLocalizer.AvatarChooserPickAToon,
                                  scale=TTLocalizer.ACtitle,
                                  parent=hidden,
                                  font=ToontownGlobals.getSignFont(),
                                  fg=(1, 0.9, 0.1, 1),
                                  pos=(0.0, 0.82))
        self.title.flattenStrong()
        quitHover = gui.find('**/QuitBtn_RLVR')
        self.quitButton = DirectButton(image=(quitHover, quitHover, quitHover),
                                       relief=None,
                                       text=TTLocalizer.AvatarChooserQuit,
                                       text_font=ToontownGlobals.getSignFont(),
                                       text_fg=(0.977, 0.816, 0.133, 1),
                                       text_pos=TTLocalizer.ACquitButtonPos,
                                       text_scale=TTLocalizer.ACquitButton,
                                       image_scale=1,
                                       image1_scale=1.05,
                                       image2_scale=1.05,
                                       scale=1.05,
                                       pos=(-0.25, 0, 0.075),
                                       command=self.__handleQuit)
        self.quitButton.flattenMedium()
        self.quitButton.reparentTo(base.a2dBottomRight)
        self.logoutButton = DirectButton(
            relief=None,
            image=(quitHover, quitHover, quitHover),
            text=TTLocalizer.OptionsPageLogout,
            text_font=ToontownGlobals.getSignFont(),
            text_fg=(0.977, 0.816, 0.133, 1),
            text_scale=TTLocalizer.AClogoutButton,
            text_pos=(0, -0.035),
            pos=(0.15, 0, 0.05),
            image_scale=1.15,
            image1_scale=1.15,
            image2_scale=1.18,
            scale=0.5,
            command=self.__handleLogoutWithoutConfirm)
        self.logoutButton.reparentTo(base.a2dBottomLeft)
        self.logoutButton.flattenMedium()
        self.logoutButton.hide()
        gui.removeNode()
        gui2.removeNode()
        newGui.removeNode()
        self.panelList = []
        used_position_indexs = []
        for av in self.avatarList:
            if base.cr.isPaid():
                okToLockout = 0
            else:
                okToLockout = 1
                if av.position in AvatarChoice.AvatarChoice.OLD_TRIALER_OPEN_POS:
                    okToLockout = 0
            panel = AvatarChoice.AvatarChoice(av,
                                              position=av.position,
                                              paid=isPaid,
                                              okToLockout=okToLockout)
            panel.setPos(POSITIONS[av.position])
            used_position_indexs.append(av.position)
            self.panelList.append(panel)

        for panelNum in range(0, MAX_AVATARS):
            if panelNum not in used_position_indexs:
                panel = AvatarChoice.AvatarChoice(position=panelNum,
                                                  paid=isPaid)
                panel.setPos(POSITIONS[panelNum])
                self.panelList.append(panel)

        if len(self.avatarList) > 0:
            self.initLookAtInfo()
        self.isLoaded = 1
Exemple #34
0
    def initRaceMode(self):
        self.mapScene = base.a2dTopRight.attachNewNode('MapScene')
        self.mapScene.setPos(-0.2, 0, -0.2)
        self.mapScene.setScale(0.25, 0.001, 0.25)
        maxT = self.race.curve.getMaxT()
        pt = Vec3(0, 0, 0)
        ls = LineSegs('MapLines')
        ls.setColor(1, 1, 1, 1)
        ls.setThickness(2)
        for x in xrange(101):
            self.race.curve.getPoint(x / 100.0 * maxT, pt)
            if x == 0:
                ls.moveTo(pt[0], pt[1], pt[2])
            else:
                ls.drawTo(pt[0], pt[1], pt[2])

        self.mapLines = self.mapScene.attachNewNode(ls.create())
        self.mapLines.setScale(0.00025 *
                               RaceGlobals.TrackDict[self.race.trackId][6])
        self.mapLines.setP(90)
        self.faceStartPos = Vec3(-0.8, 0, 0.93)
        self.faceEndPos = Vec3(0.8, 0, 0.93)
        self.placeLabelNum = DirectLabel(
            relief=None,
            pos=TTLocalizer.RGUIplaceLabelNumPos,
            text='1',
            text_scale=0.35,
            text_fg=(0.95, 0.95, 0, 1),
            text_font=ToontownGlobals.getSignFont())
        self.placeLabelNum.reparentTo(base.a2dBottomLeft)
        self.directObjList.append(self.placeLabelNum)
        self.placeLabelStr = DirectLabel(
            relief=None,
            pos=TTLocalizer.RGUIplaceLabelStrPos,
            text=TTLocalizer.KartRace_FirstSuffix,
            text_scale=0.1,
            text_fg=(0.95, 0.95, 0, 1),
            text_font=ToontownGlobals.getSignFont())
        self.placeLabelStr.reparentTo(base.a2dBottomLeft)
        self.directObjList.append(self.placeLabelStr)
        self.lapLabel = DirectLabel(relief=None,
                                    pos=(-0.22, 0, -0.5),
                                    text='1/' + str(self.race.lapCount),
                                    text_scale=0.1,
                                    text_fg=(0.95, 0.95, 0, 1),
                                    text_font=ToontownGlobals.getSignFont())
        self.lapLabel.reparentTo(base.a2dTopRight)
        self.directObjList.append(self.lapLabel)
        self.photoFinishLabel = DirectLabel(
            relief=None,
            pos=(0, 0, -0.1),
            text=TTLocalizer.KartRace_PhotoFinish,
            text_scale=TTLocalizer.RGUIphotoFinish,
            text_fg=(0.95, 0.95, 0, 1),
            text_font=ToontownGlobals.getSignFont())
        self.photoFinishLabel.hide()
        self.directObjList.append(self.photoFinishLabel)
        self.wrongWayLabel = DirectLabel(
            relief=None,
            pos=(-0.22, 0, -0.2),
            text=TTLocalizer.KartRace_WrongWay,
            text_scale=0.1,
            text_fg=(0.95, 0, 0, 1),
            text_font=ToontownGlobals.getSignFont())
        self.wrongWayLabel.reparentTo(base.a2dTopRight)
        self.directObjList.append(self.wrongWayLabel)
        self.wrongWayLabel.setColorScale(Vec4(1, 1, 1, 0))
        self.wrongWaySeq = Sequence(
            self.wrongWayLabel.colorScaleInterval(0.25,
                                                  colorScale=Vec4(1, 1, 1, 1),
                                                  startColorScale=Vec4(
                                                      1, 1, 1, 0)),
            self.wrongWayLabel.colorScaleInterval(0.25,
                                                  colorScale=Vec4(1, 1, 1, 0),
                                                  startColorScale=Vec4(
                                                      1, 1, 1, 1)))
        interpolateFacePos = lambda x: self.faceStartPos * (
            1.0 - x) + self.faceEndPos * x
        self.timeLabels = []
        for x in xrange(self.race.lapCount):
            minLabel = DirectLabel(
                relief=None,
                pos=(interpolateFacePos(
                    (2.0 * x + 1) / (self.race.lapCount * 2))[0] - 0.06, 0,
                     0.84),
                text="0'",
                text_scale=0.06,
                text_fg=(0.95, 0.95, 0, 1),
                text_font=ToontownGlobals.getSignFont(),
                text_align=TextNode.ARight)
            minLabel.reparentTo(self.raceModeRoot)
            self.directObjList.append(minLabel)
            secLabel = DirectLabel(
                relief=None,
                pos=(interpolateFacePos(
                    (2.0 * x + 1) / (self.race.lapCount * 2))[0] + 0.06, 0,
                     0.84),
                text="00''",
                text_scale=0.06,
                text_fg=(0.95, 0.95, 0, 1),
                text_font=ToontownGlobals.getSignFont(),
                text_align=TextNode.ARight)
            secLabel.reparentTo(self.raceModeRoot)
            self.directObjList.append(secLabel)
            fractionLabel = DirectLabel(
                relief=None,
                pos=(interpolateFacePos(
                    (2.0 * x + 1) / (self.race.lapCount * 2))[0] + 0.14, 0,
                     0.84),
                text='00',
                text_scale=0.06,
                text_fg=(0.95, 0.95, 0, 1),
                text_font=ToontownGlobals.getSignFont(),
                text_align=TextNode.ARight)
            fractionLabel.reparentTo(self.raceModeRoot)
            self.directObjList.append(fractionLabel)
            self.timeLabels.append((minLabel, secLabel, fractionLabel))

        self.cardMaker.reset()
        self.cardMaker.setName('GagIndicator')
        self.cardMaker.setFrame(-0.5, 0.5, -0.5, 0.5)
        self.cardMaker.setColor(1, 1, 1, 1)
        self.gagPanel = DirectFrame(
            parent=base.a2dBottomLeft,
            relief=None,
            image=loader.loadModel('phase_6/models/karting/gag_panel'),
            image_scale=0.25,
            pos=(0.2, 0, 0.55))
        self.directObjList.append(self.gagPanel)
        self.gag = self.gagPanel.attachNewNode('gag')
        self.gag.setScale(0.2)
        for gag in self.gagTextures:
            gag.reparentTo(self.gag)
            gag.hide()

        self.cardMaker.reset()
        self.cardMaker.setName('RaceProgressLine')
        self.cardMaker.setFrame(-0.5, 0.5, -0.5, 0.5)
        line = self.raceModeRoot.attachNewNode(self.cardMaker.generate())
        line.setScale(self.faceEndPos[0] - self.faceStartPos[0], 1, 0.01)
        line.setPos(0, 0, self.faceStartPos[2])
        self.cardMaker.setName('RaceProgressLineHash')
        for n in xrange(self.race.lapCount + 1):
            hash = self.raceModeRoot.attachNewNode(self.cardMaker.generate())
            hash.setScale(line.getScale()[2], 1, line.getScale()[2] * 5)
            t = float(n) / self.race.lapCount
            hash.setPos(
                self.faceStartPos[0] * (1 - t) + self.faceEndPos[0] * t,
                self.faceStartPos[1], self.faceStartPos[2])

        self.raceModeReady = True
        self.disable()
        return
Exemple #35
0
    def update(self, time):
        placeSorter = []
        placeCount = 0
        for key in self.racerDict.keys():
            racer = self.racerDict[key]
            curvetime = racer.curvetime
            face = racer.face
            mapspot = racer.mapspot
            maxlaphit = racer.maxlaphit
            if not racer.finished and racer.enabled:
                placeSorter.append((curvetime, key))
            if racer.finished or racer.enabled:
                placeCount += 1
            pt = Vec3(0, 0, 0)
            mapT = (curvetime % 1 + self.race.startT /
                    self.race.curve.getMaxT()) % 1 * self.race.curve.getMaxT()
            self.race.curve.getPoint(mapT, pt)
            self.race.curve.getPoint(mapT % self.race.curve.getMaxT(), pt)
            lapT = clampScalar(curvetime / self.race.lapCount, 0.0, 1.0)
            faceX = self.faceStartPos[0] * (1 -
                                            lapT) + self.faceEndPos[0] * lapT
            racer.update(faceX=faceX, mapspotPt=pt)
            t = time - self.race.baseTime - self.raceTimeDelta
            if key == localAvatar.doId:
                if self.race.laps > maxlaphit:
                    racer.update(maxlaphit=self.race.laps)
                    self.maxLapHit = racer.maxlaphit
                    if self.maxLapHit < self.race.lapCount:
                        for y in self.timeLabels[self.maxLapHit - 1]:
                            y.configure(
                                text_font=ToontownGlobals.getSignFont())

                        for y in self.timeLabels[self.maxLapHit]:
                            y.show()

                        for y in self.timeLabels[self.maxLapHit]:
                            y.configure(
                                text_font=ToontownGlobals.getSignFont())

                        self.raceTimeDelta = globalClock.getFrameTime(
                        ) - self.race.baseTime
                        lapNotice = DirectLabel()
                        lapNotice.setScale(0.1)
                        if self.maxLapHit == self.race.lapCount - 1:
                            lapNotice[
                                'text'] = TTLocalizer.KartRace_FinalLapText
                        else:
                            lapNotice[
                                'text'] = TTLocalizer.KartRace_LapText % str(
                                    self.maxLapHit + 1)
                        taskMgr.doMethodLater(2,
                                              lapNotice.remove,
                                              'removeIt',
                                              extraArgs=[])
                self.lapLabel['text'] = str(
                    clampScalar(self.maxLapHit + 1, 1,
                                self.race.lapCount)) + '/' + str(
                                    self.race.lapCount)

        suffix = {
            1: TTLocalizer.KartRace_FirstSuffix,
            2: TTLocalizer.KartRace_SecondSuffix,
            3: TTLocalizer.KartRace_ThirdSuffix,
            4: TTLocalizer.KartRace_FourthSuffix
        }
        placeSorter.sort()
        for x, p in zip(placeSorter, xrange(len(placeSorter), 0, -1)):
            self.racerDict[x[1]].update(place=p + placeCount -
                                        len(placeSorter))

        localRacer = self.racerDict[localAvatar.doId]
        nearDiff, farDiff = RaceGlobals.TrackDict[self.race.trackId][8]
        if not localRacer.finished and self.faceEndPos[
                0] - localRacer.face.getX() < nearDiff:
            for racerId in self.racerDict.keys():
                racer = self.racerDict[racerId]
                if not racer.enabled or racerId == localAvatar.doId or racer.face.getX(
                ) >= self.faceEndPos[0]:
                    continue
                if self.faceEndPos[0] - racer.face.getX() < farDiff:
                    self.photoFinish = True

        if self.photoFinish:
            self.photoFinishLabel.show()
            self.placeLabelNum['text'] = ''
            self.placeLabelStr['text'] = ''
        else:
            self.photoFinishLabel.hide()
            self.placeLabelNum['text'] = str(
                self.racerDict[localAvatar.doId].place)
            self.placeLabelStr['text'] = suffix[self.racerDict[
                localAvatar.doId].place]
        minutes = int(t / 60)
        t -= minutes * 60
        seconds = int(t)
        padding = (seconds < 10 and ['0'] or [''])[0]
        t -= seconds
        fraction = str(t)[2:4]
        fraction = fraction + '0' * (2 - len(fraction))
        if self.timerEnabled and self.maxLapHit < self.race.lapCount:
            self.timeLabels[self.maxLapHit][0]['text'] = "%d'" % minutes
            self.timeLabels[self.maxLapHit][1]['text'] = "%s%d''" % (padding,
                                                                     seconds)
            self.timeLabels[self.maxLapHit][2]['text'] = '%s' % fraction
        if self.race.wrongWay and not self.wrongWaySeq.isPlaying():
            self.wrongWaySeq.loop()
        elif not self.race.wrongWay and self.wrongWaySeq.isPlaying():
            self.wrongWaySeq.finish()
    def load(self):
        self.notify.debug('load')
        DistributedMinigame.load(self)
        self.music = base.loadMusic('phase_4/audio/bgm/MG_CogThief.mid')
        self.initCogInfo()
        for barrelIndex in range(CTGG.NumBarrels):
            barrel = loader.loadModel(
                'phase_4/models/minigames/cogthief_game_gagTank')
            barrel.setPos(CTGG.BarrelStartingPositions[barrelIndex])
            barrel.setScale(self.BarrelScale)
            barrel.reparentTo(render)
            barrel.setTag('barrelIndex', str(barrelIndex))
            collSphere = CollisionSphere(0, 0, 0, 4)
            collSphere.setTangible(0)
            name = 'BarrelSphere-%d' % barrelIndex
            collSphereName = self.uniqueName(name)
            collNode = CollisionNode(collSphereName)
            collNode.setFromCollideMask(CTGG.BarrelBitmask)
            collNode.addSolid(collSphere)
            colNp = barrel.attachNewNode(collNode)
            handler = CollisionHandlerEvent()
            handler.setInPattern('barrelHit-%fn')
            base.cTrav.addCollider(colNp, handler)
            self.accept('barrelHit-' + collSphereName, self.handleEnterBarrel)
            nodeToHide = '**/gagMoneyTen'
            if barrelIndex % 2:
                nodeToHide = '**/gagMoneyFive'
            iconToHide = barrel.find(nodeToHide)
            if not iconToHide.isEmpty():
                iconToHide.hide()
            self.barrels.append(barrel)

        self.gameBoard = loader.loadModel(
            'phase_4/models/minigames/cogthief_game')
        self.gameBoard.find('**/floor_TT').hide()
        self.gameBoard.find('**/floor_DD').hide()
        self.gameBoard.find('**/floor_DG').hide()
        self.gameBoard.find('**/floor_MM').hide()
        self.gameBoard.find('**/floor_BR').hide()
        self.gameBoard.find('**/floor_DL').hide()
        zone = self.getSafezoneId()
        if zone == ToontownGlobals.ToontownCentral:
            self.gameBoard.find('**/floor_TT').show()
        elif zone == ToontownGlobals.DonaldsDock:
            self.gameBoard.find('**/floor_DD').show()
        elif zone == ToontownGlobals.DaisyGardens:
            self.gameBoard.find('**/floor_DG').show()
        elif zone == ToontownGlobals.MinniesMelodyland:
            self.gameBoard.find('**/floor_MM').show()
        elif zone == ToontownGlobals.TheBrrrgh:
            self.gameBoard.find('**/floor_BR').show()
        elif zone == ToontownGlobals.DonaldsDreamland:
            self.gameBoard.find('**/floor_DL').show()
        else:
            self.gameBoard.find('**/floor_TT').show()
        self.gameBoard.setPosHpr(0, 0, 0, 0, 0, 0)
        self.gameBoard.setScale(1.0)
        self.toonSDs = {}
        avId = self.localAvId
        toonSD = CogThiefGameToonSD.CogThiefGameToonSD(avId, self)
        self.toonSDs[avId] = toonSD
        toonSD.load()
        self.loadCogs()
        self.toonHitTracks = {}
        self.toonPieTracks = {}
        self.sndOof = base.loadSfx('phase_4/audio/sfx/MG_cannon_hit_dirt.mp3')
        self.sndRewardTick = base.loadSfx(
            'phase_3.5/audio/sfx/tick_counter.mp3')
        self.sndPerfect = base.loadSfx('phase_4/audio/sfx/ring_perfect.mp3')
        self.timer = ToontownTimer.ToontownTimer()
        self.timer.posInTopRightCorner()
        self.timer.hide()
        purchaseModels = loader.loadModel('phase_4/models/gui/purchase_gui')
        self.jarImage = purchaseModels.find('**/Jar')
        self.jarImage.reparentTo(hidden)
        self.rewardPanel = DirectLabel(parent=hidden,
                                       relief=None,
                                       pos=(1.16, 0.0, 0.45),
                                       scale=0.65,
                                       text='',
                                       text_scale=0.2,
                                       text_fg=(0.95, 0.95, 0, 1),
                                       text_pos=(0, -.13),
                                       text_font=ToontownGlobals.getSignFont(),
                                       image=self.jarImage)
        self.rewardPanelTitle = DirectLabel(parent=self.rewardPanel,
                                            relief=None,
                                            pos=(0, 0, 0.06),
                                            scale=0.08,
                                            text=TTLocalizer.CannonGameReward,
                                            text_fg=(0.95, 0.95, 0, 1),
                                            text_shadow=(0, 0, 0, 1))
        return
Exemple #37
0
 def __init__(self, doneEvent, petSeed, petNameIndex):
     zoneId = ZoneUtil.getCanonicalSafeZoneId(
         base.localAvatar.getZoneId())
     name, dna, traitSeed = PetUtil.getPetInfoFromSeed(petSeed, zoneId)
     name = PetNameGenerator.PetNameGenerator().getName(petNameIndex)
     cost = PetUtil.getPetCostFromSeed(petSeed, zoneId)
     model = loader.loadModel('phase_4/models/gui/AdoptPet')
     modelPos = (0, 0, -0.3)
     modelScale = 0.055
     DirectFrame.__init__(self,
                          relief=None,
                          state='normal',
                          geom=model,
                          geom_color=ToontownGlobals.GlobalDialogColor,
                          geom_scale=modelScale,
                          frameSize=(-1, 1, -1, 1),
                          pos=modelPos,
                          text=TTLocalizer.PetshopAdoptConfirm %
                          (name, cost),
                          text_wordwrap=12,
                          text_scale=0.05,
                          text_pos=(0, 0.55),
                          text_fg=text0Color)
     self.initialiseoptions(PetshopGUI.AdoptPetDlg)
     self.petView = self.attachNewNode('petView')
     self.petView.setPos(-0.13, 0, 0.8)
     self.petModel = Pet.Pet(forGui=1)
     self.petModel.setDNA(dna)
     self.petModel.fitAndCenterHead(0.395, forGui=1)
     self.petModel.reparentTo(self.petView)
     self.petModel.setH(130)
     self.petModel.enterNeutralHappy()
     self.moneyDisplay = DirectLabel(
         parent=self,
         relief=None,
         text=str(base.localAvatar.getTotalMoney()),
         text_scale=0.075,
         text_fg=(0.95, 0.95, 0, 1),
         text_shadow=(0, 0, 0, 1),
         text_pos=(0.225, 0.33),
         text_font=ToontownGlobals.getSignFont())
     self.accept(localAvatar.uniqueName('moneyChange'),
                 self.__moneyChange)
     self.accept(localAvatar.uniqueName('bankMoneyChange'),
                 self.__moneyChange)
     okImageList = (model.find('**/CheckButtonUp'),
                    model.find('**/CheckButtonDown'),
                    model.find('**/CheckButtonRollover'))
     cancelImageList = (model.find('**/CancelButtonUp'),
                        model.find('**/CancelButtonDown'),
                        model.find('**/CancelRollover'))
     cancelIcon = model.find('**/CancelIcon')
     checkIcon = model.find('**/CheckIcon')
     self.cancelButton = DirectButton(
         parent=self,
         relief=None,
         image=cancelImageList,
         geom=cancelIcon,
         scale=modelScale,
         text=('', TTLocalizer.PetshopGoBack),
         text_pos=(-5.8, 4.4),
         text_scale=0.7,
         pressEffect=False,
         command=lambda: messenger.send(doneEvent, [0]))
     self.okButton = DirectButton(
         parent=self,
         relief=None,
         image=okImageList,
         geom=checkIcon,
         scale=modelScale,
         text=('', TTLocalizer.PetshopAdopt),
         text_pos=(5.8, 4.4),
         text_scale=0.7,
         pressEffect=False,
         command=lambda: messenger.send(doneEvent, [1]))
     model.removeNode()
Exemple #38
0
    def __init__(self, numPlayers, avIdList, votes, directions, namesList, disconnectedList, directionToGo, directionReason, directionTotals, *args, **kwargs):
        opts = {'relief': None,
         'geom': DGG.getDefaultDialogGeom(),
         'geom_color': ToontownGlobals.GlobalDialogColor[:3] + (0.8,),
         'geom_scale': (1.75, 1, 0.25),
         'pos': (0, 0, 0.825)}
        opts.update(kwargs)
        DirectFrame.__init__(self, *args, **opts)
        self.initialiseoptions(VoteResultsTrolleyPanel)
        listMultiplier = 1
        if TravelGameGlobals.SpoofFour:
            listMultiplier = 4
        self.avIdList = avIdList * listMultiplier
        self.numPlayers = numPlayers * listMultiplier
        self.votes = votes * listMultiplier
        self.directions = directions * listMultiplier
        self.namesList = namesList * listMultiplier
        self.disconnectedList = disconnectedList * listMultiplier
        self.directionToGo = directionToGo
        self.directionReason = directionReason
        self.directionTotals = directionTotals
        self.entryList = []
        self.rowFrame = []
        self.upDownFrame = DirectFrame(parent=self, relief=None, pos=self.getRowPos(-1))
        self.upLabel = DirectLabel(parent=self, relief=None, pos=(-0.5, 0, 0.06), text=TTLocalizer.TravelGameDirections[0] + ':', text_fg=(0.0, 0.0, 1.0, 1.0), text_scale=0.05, text_align=TextNode.ARight)
        self.downLabel = DirectLabel(parent=self, relief=None, pos=(0.5, 0, 0.06), text=TTLocalizer.TravelGameDirections[1] + ':', text_fg=(1.0, 0.0, 0.0, 1.0), text_scale=0.05, text_align=TextNode.ARight)
        self.totalVotesUpLabel = DirectLabel(parent=self.upLabel, relief=None, pos=(0.2, 0, 0.0), text='0', text_fg=(0.0, 0.0, 1.0, 1.0), text_scale=0.05, text_align=TextNode.ARight)
        self.totalVotesDownLabel = DirectLabel(parent=self.downLabel, relief=None, pos=(0.2, 0, 0.0), text='0', text_fg=(1.0, 0.0, 0.0, 1.0), text_scale=0.05, text_align=TextNode.ARight)
        self.totalFrame = DirectFrame(parent=self, relief=None, pos=self.getRowPos(self.numPlayers))
        self.totalVotesLabels = [self.totalVotesUpLabel, self.totalVotesDownLabel]
        self.resultFrame = DirectFrame(parent=self, relief=None, pos=self.getRowPos(0.5))
        self.resultLabel = DirectLabel(parent=self.resultFrame, text='', text_scale=0.06, pos=(0.7, 0, 0.0), text_align=TextNode.ACenter)
        self.setupResultLabel()
        for index in range(self.numPlayers):
            frame = DirectFrame(parent=self, relief=None, pos=self.getRowPos(index))
            self.rowFrame.append(frame)
            nameLabel = DirectFrame(parent=frame, relief=None, pos=(0.46, 0.0, 0.0), text=self.namesList[index], text_fg=(0.0, 0.0, 0.0, 1.0), text_scale=0.05, text_align=TextNode.ACenter, text_font=DGG.getDefaultFont())
            votesUpLabel = DirectLabel(parent=frame, relief=None, pos=(1.2, 0.0, 0.0), text='', text_fg=(0, 0, 1, 1), text_scale=0.05, text_align=TextNode.ARight, text_font=DGG.getDefaultFont())
            votesDownLabel = DirectLabel(parent=frame, relief=None, pos=(1.43, 0.0, 0.0), text='', text_fg=(1, 0, 0, 1), text_scale=0.05, text_align=TextNode.ARight, text_font=DGG.getDefaultFont())
            nameLabel.hide()
            self.entryList.append((nameLabel, votesUpLabel, votesDownLabel))

        self.avVotesLabel = {}
        self.avArrows = {}
        matchingGameGui = loader.loadModel('phase_3.5/models/gui/matching_game_gui')
        minnieArrow = matchingGameGui.find('**/minnieArrow')
        from toontown.minigame.DistributedTravelGame import map3dToAspect2d
        for index in range(self.numPlayers):
            avId = self.avIdList[index]
            av = base.cr.doId2do.get(avId)
            if av:
                height = av.getHeight()
                avPos = av.getPos(render)
                avPos.setZ(av.getZ() + 5)
                labelPos = map3dToAspect2d(render, avPos)
                if not labelPos:
                    continue
                labelPos.setZ(labelPos.getZ() + 0.3)
                arrow = None
                if self.votes[index] > 0:
                    arrow = aspect2d.attachNewNode('avArrow')
                    minnieArrow.copyTo(arrow)
                    arrow.setScale(1.1, 1, 1.15)
                    arrow.setPos(labelPos)
                    if self.directions[index] == 0:
                        arrow.setR(-90)
                        arrow.setColorScale(0, 0, 1, 1)
                    else:
                        arrow.setR(90)
                        arrow.setColorScale(1, 0, 0, 1)
                    arrow.wrtReparentTo(self.resultFrame)
                    arrow.hide()
                    self.avArrows[index] = arrow
                fgColor = Vec4(0, 0, 0, 1)
                if self.votes[index] > 0:
                    if self.directions[index] == 0:
                        fgColor = Vec4(0, 0, 1, 1)
                    else:
                        fgColor = Vec4(1, 0, 0, 1)
                if self.votes[index] > 0:
                    newLabel = DirectLabel(parent=aspect2d, relief=None, pos=labelPos, text='test', text_fg=(1, 1, 1, 1), text_scale=0.1, text_align=TextNode.ACenter, text_font=ToontownGlobals.getSignFont(), text_pos=(0, -0.01, 0))
                else:
                    newLabel = DirectLabel(parent=aspect2d, geom=DGG.getDefaultDialogGeom(), geom_scale=(0.2, 1, 0.2), relief=None, pos=labelPos, text='test', text_fg=(0.5, 0.5, 0.5, 1), text_scale=0.1, text_align=TextNode.ACenter, text_font=ToontownGlobals.getSignFont(), text_pos=(0, -0.035, 0))
                newLabel.wrtReparentTo(self.resultFrame)
                newLabel.hide()
                self.avVotesLabel[index] = newLabel

        matchingGameGui.removeNode()
        self.curArrowSfxIndex = 0
        self.upArrowSfx = []
        self.downArrowSfx = []
        for i in range(5):
            self.upArrowSfx.append(base.loadSfx('phase_4/audio/sfx/MG_sfx_travel_game_blue_arrow.ogg'))
            self.downArrowSfx.append(base.loadSfx('phase_4/audio/sfx/MG_sfx_travel_game_red_arrow.ogg'))

        self.winVoteSfx = base.loadSfx('phase_4/audio/sfx/MG_sfx_travel_game_win_vote.ogg')
        self.noVoteSfx = base.loadSfx('phase_4/audio/sfx/MG_sfx_travel_game_square_no_vote_1.ogg')
        self.loseVoteSfx = base.loadSfx('phase_4/audio/sfx/MG_sfx_travel_game_lose_vote.ogg')
        self.localAvatarWon = False
        self.localAvatarLost = False
        localIndex = self.avIdList.index(base.localAvatar.doId)
        localDirection = self.directions[localIndex]
        localVotes = self.votes[localIndex]
        if localVotes:
            if localDirection == self.directionToGo:
                if not TravelGameGlobals.ReverseWin:
                    self.localAvatarWon = True
                else:
                    self.localAvatarLost = True
            elif not TravelGameGlobals.ReverseWin:
                self.localAvatarLost = True
            else:
                self.localAvatarWon = True
        return
 def __init__(self, doneEvent, allowWithdraw=1):
     DirectFrame.__init__(self,
                          relief=None,
                          geom=DGG.getDefaultDialogGeom(),
                          geom_color=ToontownGlobals.GlobalDialogColor,
                          geom_scale=(1.33, 1, 1.1),
                          pos=(0, 0, 0))
     self.initialiseoptions(BankGUI)
     self.doneEvent = doneEvent
     self.__transactionAmount = 0
     buttons = loader.loadModel('phase_3/models/gui/dialog_box_buttons_gui')
     jarGui = loader.loadModel('phase_3.5/models/gui/jar_gui')
     arrowGui = loader.loadModel('phase_3/models/gui/create_a_toon_gui')
     bankModel = loader.loadModel(
         'phase_5.5/models/estate/jellybeanBank.bam')
     bankModel.setDepthWrite(1)
     bankModel.setDepthTest(1)
     bankModel.find('**/jellybeans').setDepthWrite(0)
     bankModel.find('**/jellybeans').setDepthTest(0)
     okImageList = (buttons.find('**/ChtBx_OKBtn_UP'),
                    buttons.find('**/ChtBx_OKBtn_DN'),
                    buttons.find('**/ChtBx_OKBtn_Rllvr'))
     cancelImageList = (buttons.find('**/CloseBtn_UP'),
                        buttons.find('**/CloseBtn_DN'),
                        buttons.find('**/CloseBtn_Rllvr'))
     arrowImageList = (arrowGui.find('**/CrtATn_R_Arrow_UP'),
                       arrowGui.find('**/CrtATn_R_Arrow_DN'),
                       arrowGui.find('**/CrtATn_R_Arrow_RLVR'),
                       arrowGui.find('**/CrtATn_R_Arrow_UP'))
     self.cancelButton = DirectButton(parent=self,
                                      relief=None,
                                      image=cancelImageList,
                                      pos=(-0.2, 0, -0.4),
                                      text=TTLocalizer.BankGuiCancel,
                                      text_scale=0.06,
                                      text_pos=(0, -0.1),
                                      command=self.__cancel)
     self.okButton = DirectButton(parent=self,
                                  relief=None,
                                  image=okImageList,
                                  pos=(0.2, 0, -0.4),
                                  text=TTLocalizer.BankGuiOk,
                                  text_scale=0.06,
                                  text_pos=(0, -0.1),
                                  command=self.__requestTransaction)
     self.jarDisplay = DirectLabel(parent=self,
                                   relief=None,
                                   pos=(-0.4, 0, 0),
                                   scale=0.7,
                                   text=str(base.localAvatar.getMoney()),
                                   text_scale=0.2,
                                   text_fg=(0.95, 0.95, 0, 1),
                                   text_shadow=(0, 0, 0, 1),
                                   text_pos=(0, -0.1, 0),
                                   image=jarGui.find('**/Jar'),
                                   text_font=ToontownGlobals.getSignFont())
     self.bankDisplay = DirectLabel(parent=self,
                                    relief=None,
                                    pos=(0.4, 0, 0),
                                    scale=0.9,
                                    text=str(
                                        base.localAvatar.getBankMoney()),
                                    text_scale=0.2,
                                    text_fg=(0.95, 0.95, 0, 1),
                                    text_shadow=(0, 0, 0, 1),
                                    text_pos=(0, -0.1, 0),
                                    geom=bankModel,
                                    geom_scale=0.08,
                                    geom_pos=(0, 10, -0.26),
                                    geom_hpr=(0, 0, 0),
                                    text_font=ToontownGlobals.getSignFont())
     self.depositArrow = DirectButton(parent=self,
                                      relief=None,
                                      image=arrowImageList,
                                      image_scale=(1, 1, 1),
                                      image3_color=Vec4(
                                          0.6, 0.6, 0.6, 0.25),
                                      pos=(0.01, 0, 0.15))
     self.withdrawArrow = DirectButton(parent=self,
                                       relief=None,
                                       image=arrowImageList,
                                       image_scale=(-1, 1, 1),
                                       image3_color=Vec4(
                                           0.6, 0.6, 0.6, 0.25),
                                       pos=(-0.01, 0, -0.15))
     self.depositArrow.bind(DGG.B1PRESS, self.__depositButtonDown)
     self.depositArrow.bind(DGG.B1RELEASE, self.__depositButtonUp)
     self.withdrawArrow.bind(DGG.B1PRESS, self.__withdrawButtonDown)
     self.withdrawArrow.bind(DGG.B1RELEASE, self.__withdrawButtonUp)
     self.accept('bankAsleep', self.__cancel)
     self.accept(localAvatar.uniqueName('moneyChange'), self.__moneyChange)
     self.accept(localAvatar.uniqueName('bankMoneyChange'),
                 self.__bankMoneyChange)
     if allowWithdraw:
         self.depositArrow.setPos(0.01, 0, 0.15)
         self.withdrawArrow.setPos(-0.01, 0, -0.15)
     else:
         self.depositArrow.setPos(0, 0, 0)
         self.withdrawArrow.hide()
     jarGui.removeNode()
     arrowGui.removeNode()
     self.__updateTransaction(0)
    def load(self, loadModels=1, arenaModel='partyCatchTree'):
        self.notify.info('load()')
        DistributedPartyCatchActivity.notify.debug('PartyCatch: load')
        self.activityFSM = CatchActivityFSM(self)
        if __dev__:
            for o in xrange(3):
                print {
                    0: 'SPOTS PER PLAYER',
                    1: 'DROPS PER MINUTE PER SPOT DURING NORMAL DROP PERIOD',
                    2: 'DROPS PER MINUTE PER PLAYER DURING NORMAL DROP PERIOD'
                }[o]
                for i in xrange(1, self.FallRateCap_Players + 10):
                    self.defineConstants(forceNumPlayers=i)
                    numDropLocations = self.DropRows * self.DropColumns
                    numDropsPerMin = 60.0 / self.DropPeriod
                    if o == 0:
                        spotsPerPlayer = numDropLocations / float(i)
                        print '%2d PLAYERS: %s' % (i, spotsPerPlayer)
                    elif o == 1:
                        numDropsPerMinPerSpot = numDropsPerMin / numDropLocations
                        print '%2d PLAYERS: %s' % (i, numDropsPerMinPerSpot)
                    elif i > 0:
                        numDropsPerMinPerPlayer = numDropsPerMin / i
                        print '%2d PLAYERS: %s' % (i, numDropsPerMinPerPlayer)

        self.defineConstants()
        self.treesAndFence = loader.loadModel('phase_13/models/parties/%s' %
                                              arenaModel)
        self.treesAndFence.setScale(0.9)
        self.treesAndFence.find('**/fence_floor').setPos(0.0, 0.0, 0.1)
        self.treesAndFence.reparentTo(self.root)
        ground = self.treesAndFence.find('**/groundPlane')
        ground.setBin('ground', 1)
        DistributedPartyActivity.load(self)
        exitText = TextNode('PartyCatchExitText')
        exitText.setCardAsMargin(0.1, 0.1, 0.1, 0.1)
        exitText.setCardDecal(True)
        exitText.setCardColor(1.0, 1.0, 1.0, 0.0)
        exitText.setText(TTLocalizer.PartyCatchActivityExit)
        exitText.setTextColor(0.0, 8.0, 0.0, 0.9)
        exitText.setAlign(exitText.ACenter)
        exitText.setFont(ToontownGlobals.getBuildingNametagFont())
        exitText.setShadowColor(0, 0, 0, 1)
        exitText.setBin('fixed')
        if TTLocalizer.BuildingNametagShadow:
            exitText.setShadow(*TTLocalizer.BuildingNametagShadow)
        exitTextLoc = self.treesAndFence.find('**/loc_exitSignText')
        exitTextNp = exitTextLoc.attachNewNode(exitText)
        exitTextNp.setDepthWrite(0)
        exitTextNp.setScale(4)
        exitTextNp.setZ(-.5)
        self.sign.reparentTo(self.treesAndFence.find('**/loc_eventSign'))
        self.sign.wrtReparentTo(self.root)
        self.avatarNodePath = NodePath('PartyCatchAvatarNodePath')
        self.avatarNodePath.reparentTo(self.root)
        self._avatarNodePathParentToken = 3
        base.cr.parentMgr.registerParent(self._avatarNodePathParentToken,
                                         self.avatarNodePath)
        self.toonSDs = {}
        self.dropShadow = loader.loadModelOnce(
            'phase_3/models/props/drop_shadow')
        self.dropObjModels = {}
        if loadModels:
            self.__loadDropModels()
        self.sndGoodCatch = base.loadSfx(
            'phase_4/audio/sfx/SZ_DD_treasure.ogg')
        self.sndOof = base.loadSfx('phase_4/audio/sfx/MG_cannon_hit_dirt.ogg')
        self.sndAnvilLand = base.loadSfx(
            'phase_4/audio/sfx/AA_drop_anvil_miss.ogg')
        self.sndPerfect = base.loadSfx('phase_4/audio/sfx/ring_perfect.ogg')
        self.__textGen = TextNode('partyCatchActivity')
        self.__textGen.setFont(ToontownGlobals.getSignFont())
        self.__textGen.setAlign(TextNode.ACenter)
        self.activityFSM.request('Idle')
Exemple #41
0
    def load(self):
        self.patNode = render.attachNewNode('patNode')
        self.patNode2d = aspect2d.attachNewNode('patNode2d')
        gui = asyncloader.loadModel('phase_3/models/gui/pick_a_toon_gui')
        gui2 = asyncloader.loadModel('phase_3/models/gui/quit_button')
        newGui = asyncloader.loadModel(
            'phase_3/models/gui/tt_m_gui_pat_mainGui')

        self.title = OnscreenText(TTLocalizer.AvatarChooserPickAToon,
                                  scale=TTLocalizer.ACtitle,
                                  parent=hidden,
                                  fg=(1, 0.9, 0.1, 1),
                                  pos=(0.0, 0.82))

        # Quit Button
        quitHover = gui.find('**/QuitBtn_RLVR')
        self.quitHover = quitHover
        self.quitButton = DirectButton(image=(quitHover, quitHover, quitHover),
                                       relief=None,
                                       text=TTLocalizer.AvatarChooserQuit,
                                       text_font=ToontownGlobals.getSignFont(),
                                       text_fg=(0.977, 0.816, 0.133, 1),
                                       text_pos=TTLocalizer.ACquitButtonPos,
                                       text_scale=TTLocalizer.ACquitButton,
                                       image_scale=1,
                                       image1_scale=1.05,
                                       image2_scale=1.05,
                                       scale=1.05,
                                       pos=(1.08, 0, -0.907),
                                       command=self.quitGame)
        self.quitButton.reparentTo(base.a2dBottomLeft)
        self.quitButton.setPos(0.25, 0, 0.075)

        # Options Button
        self.optionsButton = DirectButton(
            image=(quitHover, quitHover, quitHover),
            relief=None,
            text='Options',
            text_font=ToontownGlobals.getSignFont(),
            text_fg=(0.977, 0.816, 0.133, 1),
            text_pos=TTLocalizer.ACquitButtonPos,
            text_scale=TTLocalizer.ACquitButton,
            image_scale=1,
            image1_scale=1.05,
            image2_scale=1.05,
            scale=1.05,
            pos=(1.08, 0, -0.907),
            command=self.openOptions)
        self.optionsButton.reparentTo(base.a2dBottomRight)
        self.optionsButton.setPos(-0.25, 0, 0.075)

        # Shard Selector Button
        self.shardsButton = DirectButton(
            image=(quitHover, quitHover, quitHover),
            relief=None,
            text='Districts',
            text_font=ToontownGlobals.getSignFont(),
            text_fg=(0.977, 0.816, 0.133, 1),
            text_pos=TTLocalizer.ACquitButtonPos,
            text_scale=0.08,
            image_scale=1,
            image1_scale=1.05,
            image2_scale=1.05,
            scale=1.05,
            pos=(1.08, 0, -0.907),
            command=self.openShardPicker)
        self.shardsButton.reparentTo(base.a2dBottomLeft)
        self.shardsButton.setPos(0.25, 0, 0.2)

        gui.removeNode()
        gui2.removeNode()
        newGui.removeNode()

        # Area toon is in
        self.area = OnscreenText(parent=self.patNode2d,
                                 font=ToontownGlobals.getToonFont(),
                                 pos=(-.1, -.1),
                                 scale=.075,
                                 text='',
                                 shadow=(0, 0, 0, 1),
                                 fg=COLORS[self.selectedToon])

        # DMENU Pat Screen Stuff
        self.play = DirectButton(relief=None,
                                 image=(quitHover, quitHover, quitHover),
                                 text='PLAY THIS TOON',
                                 text_font=ToontownGlobals.getSignFont(),
                                 text_fg=(0.977, 0.816, 0.133, 1),
                                 text_pos=(0, -.016),
                                 text_scale=0.045,
                                 image_scale=1,
                                 image1_scale=1.05,
                                 image2_scale=1.05,
                                 scale=1.4,
                                 pos=(0, 0, -0.90),
                                 command=self.playGame,
                                 parent=self.patNode2d)

        self.toon = Toon.Toon()
        self.toon.setPosHpr(-46, 0, 8.1, 90, 0, 0)
        self.toon.reparentTo(self.patNode)
        self.toon.stopLookAroundNow()

        def spawnToonButtons(*args):
            self.pickAToonGui = args[0]
            self.buttonBgs = []
            self.buttonBgs.append(
                self.pickAToonGui.find('**/tt_t_gui_pat_squareRed'))
            self.buttonBgs.append(
                self.pickAToonGui.find('**/tt_t_gui_pat_squareGreen'))
            self.buttonBgs.append(
                self.pickAToonGui.find('**/tt_t_gui_pat_squarePurple'))
            self.buttonBgs.append(
                self.pickAToonGui.find('**/tt_t_gui_pat_squareBlue'))
            self.buttonBgs.append(
                self.pickAToonGui.find('**/tt_t_gui_pat_squarePink'))
            self.buttonBgs.append(
                self.pickAToonGui.find('**/tt_t_gui_pat_squareYellow'))
            buttonIndex = []
            for av in self.avatarList:
                self.setupButtons(av, position=av.position)
                buttonIndex.append(av.position)

            for pos in xrange(0, 6):
                if pos not in buttonIndex:
                    button = self.setupButtons(position=pos)
            if self.Seq:
                self.Seq.finish()
                del self.Seq
                self.loadingCircle.removeNode()
                del self.loadingCircle

        self.loadingCircle = OnscreenImage(
            image='phase_3/maps/dmenu/loading_circle.png')
        self.loadingCircle.show()
        self.loadingCircle.setScale(0.1)
        self.loadingCircle.setTransparency(TransparencyAttrib.MAlpha)
        self.loadingCircle.reparentTo(aspect2d)
        base.graphicsEngine.renderFrame()
        self.Seq = Sequence(
            Func(self.loadingCircle.setHpr, VBase3(0, 0, 0)),
            self.loadingCircle.hprInterval(1, VBase3(0, 0, 360)))
        self.Seq.loop()
        asyncloader.loadModel('phase_3/models/gui/tt_m_gui_pat_mainGui',
                              callback=spawnToonButtons)

        # Delete Toon button
        trashcanGui = loader.loadModel('phase_3/models/gui/trashcan_gui.bam')
        self.deleteButton = DirectButton(
            parent=base.a2dBottomRight,
            geom=(trashcanGui.find('**/TrashCan_CLSD'),
                  trashcanGui.find('**/TrashCan_OPEN'),
                  trashcanGui.find('**/TrashCan_RLVR')),
            text=('', TTLocalizer.AvatarChoiceDelete,
                  TTLocalizer.AvatarChoiceDelete, ''),
            text_fg=(1, 1, 1, 1),
            text_shadow=(0, 0, 0, 1),
            text_scale=0.15,
            text_pos=(0, -0.1),
            relief=None,
            scale=.5,
            command=self.__handleDelete,
            pos=(-.2, 0, .25))

        self.changeName = DirectButton(relief=None,
                                       image=(quitHover, quitHover, quitHover),
                                       text='NAME THIS TOON',
                                       text_font=ToontownGlobals.getSignFont(),
                                       text_fg=(0.977, 0.816, 0.133, 1),
                                       text_pos=(0, -.016),
                                       text_scale=0.045,
                                       image_scale=1,
                                       image1_scale=1.05,
                                       image2_scale=1.05,
                                       scale=1.4,
                                       pos=(0, 0, -0.75),
                                       command=self.__handleNameYourToon,
                                       parent=self.patNode2d)
 def attemptFailedMsg(self):
     pLabel = DirectLabel(parent=self.npRoot, relief=None, pos=(0.0, 0.0, -0.15), text=TTLocalizer.WinterCarolingMsg, text_fg=(0.9, 0.9, 1.0, 1.0), text_scale=0.12, text_font=ToontownGlobals.getSignFont())
 def load(self):
     if self.loaded:
         return
     self.loaded = 1
     self.verify = None
     self.pictureFrame = self.attachNewNode('pictureFrame')
     self.pictureFrame.setScale(0.15)
     self.itemIndex = 0
     self.ival = None
     typeCode = self['item'].getTypeCode()
     if self['item'].needsCustomize() and (typeCode == CatalogItemTypes.WALLPAPER_ITEM or typeCode == CatalogItemTypes.FLOORING_ITEM or typeCode == CatalogItemTypes.MOULDING_ITEM or typeCode == CatalogItemTypes.FURNITURE_ITEM or typeCode == CatalogItemTypes.WAINSCOTING_ITEM or typeCode == CatalogItemTypes.TOON_STATUE_ITEM):
         if typeCode == CatalogItemTypes.WALLPAPER_ITEM:
             self.items = getAllWallpapers(self['item'].patternIndex)
         elif typeCode == CatalogItemTypes.FLOORING_ITEM:
             self.items = getAllFloorings(self['item'].patternIndex)
         elif typeCode == CatalogItemTypes.MOULDING_ITEM:
             self.items = getAllMouldings(self['item'].patternIndex)
         elif typeCode == CatalogItemTypes.FURNITURE_ITEM:
             self.items = getAllFurnitures(self['item'].furnitureType)
         elif typeCode == CatalogItemTypes.TOON_STATUE_ITEM:
             self.items = self['item'].getAllToonStatues()
         elif typeCode == CatalogItemTypes.WAINSCOTING_ITEM:
             self.items = getAllWainscotings(self['item'].patternIndex)
         self.numItems = len(self.items)
         if self.numItems > 1:
             guiItems = loader.loadModel('phase_5.5/models/gui/catalog_gui')
             nextUp = guiItems.find('**/arrow_up')
             nextRollover = guiItems.find('**/arrow_Rollover')
             nextDown = guiItems.find('**/arrow_Down')
             prevUp = guiItems.find('**/arrowUp')
             prevDown = guiItems.find('**/arrowDown1')
             prevRollover = guiItems.find('**/arrowRollover')
             self.nextVariant = DirectButton(parent=self, relief=None, image=(nextUp,
              nextDown,
              nextRollover,
              nextUp), image3_color=(1, 1, 1, 0.4), pos=(0.13, 0, 0), command=self.showNextVariant)
             self.prevVariant = DirectButton(parent=self, relief=None, image=(prevUp,
              prevDown,
              prevRollover,
              prevUp), image3_color=(1, 1, 1, 0.4), pos=(-0.13, 0, 0), command=self.showPrevVariant, state=DGG.DISABLED)
             self.variantPictures = [(None, None)] * self.numItems
         else:
             self.variantPictures = [(None, None)]
         self.showCurrentVariant()
     else:
         picture, self.ival = self['item'].getPicture(base.localAvatar)
         if picture:
             picture.reparentTo(self)
             picture.setScale(0.15)
         self.items = [self['item']]
         self.variantPictures = [(picture, self.ival)]
     self.typeLabel = DirectLabel(parent=self, relief=None, pos=(0, 0, 0.24), scale=TTLocalizer.CIPtypeLabel, text=self['item'].getTypeName(), text_fg=(0.95, 0.95, 0, 1), text_shadow=(0, 0, 0, 1), text_font=ToontownGlobals.getInterfaceFont(), text_wordwrap=CATALOG_PANEL_WORDWRAP)
     self.auxText = DirectLabel(parent=self, relief=None, scale=0.05, pos=(-0.2, 0, 0.16))
     self.auxText.setHpr(0, 0, -30)
     self.nameLabel = DirectLabel(parent=self, relief=None, text=self['item'].getDisplayName(), text_fg=(0, 0, 0, 1), text_font=ToontownGlobals.getInterfaceFont(), text_scale=TTLocalizer.CIPnameLabel, text_wordwrap=CATALOG_PANEL_WORDWRAP + TTLocalizer.CIPwordwrapOffset)
     if self['item'].getTypeCode() == CatalogItemTypes.CHAT_ITEM:
         self.nameLabel['text_wordwrap'] = CATALOG_PANEL_CHAT_WORDWRAP
         numRows = self.nameLabel.component('text0').textNode.getNumRows()
         if numRows == 1:
             namePos = (0, 0, -0.06)
         elif numRows == 2:
             namePos = (0, 0, -0.03)
         else:
             namePos = (0, 0, 0)
         nameScale = 0.063
     elif self['item'].getTypeCode() == CatalogItemTypes.ACCESSORY_ITEM:
         self.nameLabel['text_wordwrap'] = CATALOG_PANEL_ACCESSORY_WORDWRAP
         namePos = (0, 0, -.22)
         nameScale = 0.06
     else:
         namePos = (0, 0, -.22)
         nameScale = 0.06
     self.nameLabel.setPos(*namePos)
     self.nameLabel.setScale(nameScale)
     numericBeanPrice = self['item'].getPrice(self['type'])
     priceStr = str(numericBeanPrice) + ' ' + TTLocalizer.CatalogCurrency
     priceScale = 0.07
     if self['item'].isSaleItem():
         priceStr = TTLocalizer.CatalogSaleItem + priceStr
         priceScale = 0.06
     self.priceLabel = DirectLabel(parent=self, relief=None, pos=(0, 0, -0.3), scale=priceScale, text=priceStr, text_fg=(0.95, 0.95, 0, 1), text_shadow=(0, 0, 0, 1), text_font=ToontownGlobals.getSignFont(), text_align=TextNode.ACenter)
     self.createEmblemPrices(numericBeanPrice)
     buttonModels = loader.loadModel('phase_3.5/models/gui/inventory_gui')
     upButton = buttonModels.find('**/InventoryButtonUp')
     downButton = buttonModels.find('**/InventoryButtonDown')
     rolloverButton = buttonModels.find('**/InventoryButtonRollover')
     buyText = TTLocalizer.CatalogBuyText
     buyTextScale = TTLocalizer.CIPbuyButton
     if self['item'].isRental():
         buyText = TTLocalizer.CatalogRentText
     self.buyButton = DirectButton(parent=self, relief=None, pos=(0.2, 0, 0.15), scale=(0.7, 1, 0.8), text=buyText, text_scale=buyTextScale, text_pos=(-0.005, -0.01), image=(upButton,
      downButton,
      rolloverButton,
      upButton), image_color=(1.0, 0.2, 0.2, 1), image0_color=Vec4(1.0, 0.4, 0.4, 1), image3_color=Vec4(1.0, 0.4, 0.4, 0.4), command=self.__handlePurchaseRequest)
     soundIcons = loader.loadModel('phase_5.5/models/gui/catalogSoundIcons')
     soundOn = soundIcons.find('**/sound07')
     soundOff = soundIcons.find('**/sound08')
     self.soundOnButton = DirectButton(parent=self, relief=None, pos=(0.2, 0, -0.15), scale=(0.7, 1, 0.8), text_scale=buyTextScale, text_pos=(-0.005, -0.01), image=(upButton,
      downButton,
      rolloverButton,
      upButton), image_color=(0.2, 0.5, 0.2, 1), image0_color=Vec4(0.4, 0.5, 0.4, 1), image3_color=Vec4(0.4, 0.5, 0.4, 0.4), command=self.handleSoundOnButton)
     self.soundOnButton.hide()
     soundOn.setScale(0.1)
     soundOn.reparentTo(self.soundOnButton)
     self.soundOffButton = DirectButton(parent=self, relief=None, pos=(0.2, 0, -0.15), scale=(0.7, 1, 0.8), text_scale=buyTextScale, text_pos=(-0.005, -0.01), image=(upButton,
      downButton,
      rolloverButton,
      upButton), image_color=(0.2, 1.0, 0.2, 1), image0_color=Vec4(0.4, 1.0, 0.4, 1), image3_color=Vec4(0.4, 1.0, 0.4, 0.4), command=self.handleSoundOffButton)
     self.soundOffButton.hide()
     soundOff = self.soundOffButton.attachNewNode('soundOff')
     soundOn.copyTo(soundOff)
     soundOff.reparentTo(self.soundOffButton)
     upGButton = buttonModels.find('**/InventoryButtonUp')
     downGButton = buttonModels.find('**/InventoryButtonDown')
     rolloverGButton = buttonModels.find('**/InventoryButtonRollover')
     self.giftButton = DirectButton(parent=self, relief=None, pos=(0.2, 0, 0.15), scale=(0.7, 1, 0.8), text=TTLocalizer.CatalogGiftText, text_scale=buyTextScale, text_pos=(-0.005, -0.01), image=(upButton,
      downButton,
      rolloverButton,
      upButton), image_color=(1.0, 0.2, 0.2, 1), image0_color=Vec4(1.0, 0.4, 0.4, 1), image3_color=Vec4(1.0, 0.4, 0.4, 0.4), command=self.__handleGiftRequest)
     self.updateButtons()
     return
    def load(self):
        self.notify.debug('load')
        DistributedMinigame.load(self)
        self.timer = ToontownTimer.ToontownTimer()
        self.timer.posInTopRightCorner()
        self.timer.hide()
        self.room = loader.loadModel('phase_4/models/minigames/matching_room')
        self.buttonSounds = []
        for soundName in self.ButtonSoundNames:
            self.buttonSounds.append(base.loader.loadSfx(soundName))

        self.correctSound = base.loader.loadSfx(
            'phase_4/audio/sfx/MG_pos_buzzer.ogg')
        self.incorrectSound = base.loader.loadSfx(
            'phase_4/audio/sfx/MG_neg_buzzer.ogg')
        self.perfectSound = base.loader.loadSfx('phase_4/audio/sfx/MG_win.ogg')
        self.fallSound = base.loader.loadSfx('phase_4/audio/sfx/MG_Tag_A.ogg')
        self.music = base.loader.loadMusic(self.bgm)
        self.waitingText = DirectLabel(text=self.strPleaseWait,
                                       text_fg=(0.9, 0.9, 0.9, 1.0),
                                       frameColor=(1, 1, 1, 0),
                                       text_font=ToontownGlobals.getSignFont(),
                                       pos=(0, 0, -.78),
                                       scale=0.12)
        self.roundText = DirectLabel(text=self.strRound % 1,
                                     text_fg=self.normalTextColor,
                                     frameColor=(1, 1, 1, 0),
                                     text_font=ToontownGlobals.getSignFont(),
                                     pos=(0.014, 0, -.84),
                                     scale=0.12)
        self.roundText.hide()
        self.waitingText.hide()
        matchingGameGui = loader.loadModel(
            'phase_3.5/models/gui/matching_game_gui')
        minnieArrow = matchingGameGui.find('**/minnieArrow')
        minnieX = matchingGameGui.find('**/minnieX')
        minnieCircle = matchingGameGui.find('**/minnieCircle')
        self.arrows = [None] * 5
        for x in xrange(0, 5):
            self.arrows[x] = minnieArrow.copyTo(hidden)
            self.arrows[x].hide()

        self.xs = [None] * 5
        for x in xrange(0, 5):
            self.xs[x] = minnieX.copyTo(hidden)
            self.xs[x].hide()

        self.statusBalls = []
        self.totalMoves = PatternGameGlobals.INITIAL_ROUND_LENGTH + PatternGameGlobals.ROUND_LENGTH_INCREMENT * (
            PatternGameGlobals.NUM_ROUNDS - 1)
        for x in xrange(0, 4):
            self.statusBalls.append([None] * self.totalMoves)

        for x in xrange(0, 4):
            for y in xrange(0, self.totalMoves):
                self.statusBalls[x][y] = minnieCircle.copyTo(hidden)
                self.statusBalls[x][y].hide()

        minnieArrow.removeNode()
        minnieX.removeNode()
        minnieCircle.removeNode()
        matchingGameGui.removeNode()
        self.minnie = Char.Char()
        m = self.minnie
        dna = CharDNA.CharDNA()
        dna.newChar('mn')
        m.setDNA(dna)
        m.setName(TTLocalizer.Minnie)
        m.reparentTo(hidden)
        self.backRowHome = Point3(3, 11, 0)
        self.backRowXSpacing = 1.8
        self.frontRowHome = Point3(0, 18, 0)
        self.frontRowXSpacing = 3.0
        self.stdNumDanceStepPingFrames = self.minnie.getNumFrames(
            self.minnieAnimNames[0])
        self.stdNumDanceStepPingPongFrames = self.__numPingPongFrames(
            self.stdNumDanceStepPingFrames)
        self.buttonPressDelayPercent = (self.stdNumDanceStepPingFrames - 1.0
                                        ) / self.stdNumDanceStepPingPongFrames
        self.animPlayRates = []
        animPlayRate = 1.4
        animPlayRateMult = 1.06
        for i in xrange(PatternGameGlobals.NUM_ROUNDS):
            self.animPlayRates.append(animPlayRate)
            animPlayRate *= animPlayRateMult

        return
Exemple #45
0
 def __init__(self, cr):
     DistributedObject.DistributedObject.__init__(self, cr)
     self.lastCamEnterRoom = 0
     self.titleColor = (1, 1, 1, 1)
     self.titleText = OnscreenText.OnscreenText('', fg=self.titleColor, shadow=(0, 0, 0, 1), font=ToontownGlobals.getSignFont(), pos=(0, -0.5), scale=0.1, drawOrder=0, mayChange=1)
     self.titleSequence = None
     return
    def load(self):
        gui = loader.loadModel('phase_3/models/gui/tt_m_gui_mat_mainGui')
        guiAcceptUp = gui.find('**/tt_t_gui_mat_okUp')
        guiAcceptDown = gui.find('**/tt_t_gui_mat_okDown')
        guiCancelUp = gui.find('**/tt_t_gui_mat_closeUp')
        guiCancelDown = gui.find('**/tt_t_gui_mat_closeDown')
        guiNextUp = gui.find('**/tt_t_gui_mat_nextUp')
        guiNextDown = gui.find('**/tt_t_gui_mat_nextDown')
        guiNextDisabled = gui.find('**/tt_t_gui_mat_nextDisabled')
        skipTutorialUp = gui.find('**/tt_t_gui_mat_skipUp')
        skipTutorialDown = gui.find('**/tt_t_gui_mat_skipDown')
        rotateUp = gui.find('**/tt_t_gui_mat_arrowRotateUp')
        rotateDown = gui.find('**/tt_t_gui_mat_arrowRotateDown')
        self.guiTopBar = DirectFrame(relief=None,
                                     text=TTLocalizer.CreateYourToon,
                                     text_font=ToontownGlobals.getSignFont(),
                                     text_fg=(0.0, 0.65, 0.35, 1),
                                     text_scale=0.18,
                                     text_pos=(0, -0.03),
                                     pos=(0, 0, 0.86))
        self.guiTopBar.hide()
        self.guiBottomBar = DirectFrame(relief=None,
                                        image_scale=(1.25, 1, 1),
                                        pos=(0.01, 0, -0.86))
        self.guiBottomBar.hide()
        self.guiCheckButton = DirectButton(
            parent=self.guiBottomBar,
            relief=None,
            image=(guiAcceptUp, guiAcceptDown, guiAcceptUp, guiAcceptDown),
            image_scale=halfButtonScale,
            image1_scale=halfButtonHoverScale,
            image2_scale=halfButtonHoverScale,
            pos=(1.165, 0, -0.018),
            command=self.__handleNext,
            text=('', TTLocalizer.MakeAToonDone, TTLocalizer.MakeAToonDone),
            text_font=ToontownGlobals.getInterfaceFont(),
            text_scale=0.08,
            text_align=TextNode.ARight,
            text_pos=(0.075, 0.13),
            text_fg=(1, 1, 1, 1),
            text_shadow=(0, 0, 0, 1))
        self.guiCheckButton.setPos(-0.13, 0, 0.13)
        self.guiCheckButton.reparentTo(base.a2dBottomRight)
        self.guiCheckButton.hide()
        self.guiCancelButton = DirectButton(
            parent=self.guiBottomBar,
            relief=None,
            image=(guiCancelUp, guiCancelDown, guiCancelUp, guiCancelDown),
            image_scale=halfButtonScale,
            image1_scale=halfButtonHoverScale,
            image2_scale=halfButtonHoverScale,
            pos=(-1.179, 0, -0.011),
            command=self.__handleCancel,
            text=('', TTLocalizer.MakeAToonCancel,
                  TTLocalizer.MakeAToonCancel),
            text_font=ToontownGlobals.getInterfaceFont(),
            text_scale=TTLocalizer.MATguiCancelButton,
            text_pos=(0, 0.115),
            text_fg=(1, 1, 1, 1),
            text_shadow=(0, 0, 0, 1))
        self.guiCancelButton.setPos(0.13, 0, 0.13)
        self.guiCancelButton.reparentTo(base.a2dBottomLeft)
        self.guiCancelButton.hide()
        self.guiNextButton = DirectButton(
            parent=self.guiBottomBar,
            relief=None,
            image=(guiNextUp, guiNextDown, guiNextUp, guiNextDisabled),
            image_scale=(0.3, 0.3, 0.3),
            image1_scale=(0.35, 0.35, 0.35),
            image2_scale=(0.35, 0.35, 0.35),
            pos=(1.165, 0, -0.018),
            command=self.__handleNext,
            text=('', TTLocalizer.MakeAToonNext, TTLocalizer.MakeAToonNext,
                  ''),
            text_font=ToontownGlobals.getInterfaceFont(),
            text_scale=TTLocalizer.MATguiNextButton,
            text_pos=(0, 0.115),
            text_fg=(1, 1, 1, 1),
            text_shadow=(0, 0, 0, 1))
        self.guiNextButton.setPos(-0.13, 0, 0.13)
        self.guiNextButton.reparentTo(base.a2dBottomRight)
        self.guiNextButton.hide()
        self.guiLastButton = DirectButton(
            parent=self.guiBottomBar,
            relief=None,
            image=(guiNextUp, guiNextDown, guiNextUp, guiNextDown),
            image3_color=Vec4(0.5, 0.5, 0.5, 0.75),
            image_scale=(-0.3, 0.3, 0.3),
            image1_scale=(-0.35, 0.35, 0.35),
            image2_scale=(-0.35, 0.35, 0.35),
            pos=(0.825, 0, -0.018),
            command=self.__handleLast,
            text=('', TTLocalizer.MakeAToonLast, TTLocalizer.MakeAToonLast,
                  ''),
            text_font=ToontownGlobals.getInterfaceFont(),
            text_scale=0.08,
            text_pos=(0, 0.115),
            text_fg=(1, 1, 1, 1),
            text_shadow=(0, 0, 0, 1))
        self.guiLastButton.setPos(-0.37, 0, 0.13)
        self.guiLastButton.reparentTo(base.a2dBottomRight)
        self.guiLastButton.hide()
        self.rotateLeftButton = DirectButton(parent=self.guiBottomBar,
                                             relief=None,
                                             image=(rotateUp, rotateDown,
                                                    rotateUp, rotateDown),
                                             image_scale=(-0.4, 0.4, 0.4),
                                             image1_scale=(-0.5, 0.5, 0.5),
                                             image2_scale=(-0.5, 0.5, 0.5),
                                             pos=(-0.355, 0, 0.36))
        self.rotateLeftButton.reparentTo(base.a2dBottomCenter)
        self.rotateLeftButton.hide()
        self.rotateLeftButton.bind(DGG.B1PRESS, self.rotateToonLeft)
        self.rotateLeftButton.bind(DGG.B1RELEASE, self.stopToonRotateLeftTask)
        self.rotateRightButton = DirectButton(parent=self.guiBottomBar,
                                              relief=None,
                                              image=(rotateUp, rotateDown,
                                                     rotateUp, rotateDown),
                                              image_scale=(0.4, 0.4, 0.4),
                                              image1_scale=(0.5, 0.5, 0.5),
                                              image2_scale=(0.5, 0.5, 0.5),
                                              pos=(0.355, 0, 0.36))
        self.rotateRightButton.reparentTo(base.a2dBottomCenter)
        self.rotateRightButton.hide()
        self.rotateRightButton.bind(DGG.B1PRESS, self.rotateToonRight)
        self.rotateRightButton.bind(DGG.B1RELEASE,
                                    self.stopToonRotateRightTask)
        gui.removeNode()
        self.roomDropActor = Actor()
        self.roomDropActor.loadModel('phase_3/models/makeatoon/roomAnim_model')
        self.roomDropActor.loadAnims(
            {'drop': 'phase_3/models/makeatoon/roomAnim_roomDrop'})
        self.roomDropActor.reparentTo(render)
        self.dropJoint = self.roomDropActor.find('**/droppingJoint')
        self.roomSquishActor = Actor()
        self.roomSquishActor.loadModel(
            'phase_3/models/makeatoon/roomAnim_model')
        self.roomSquishActor.loadAnims(
            {'squish': 'phase_3/models/makeatoon/roomAnim_roomSquish'})
        self.roomSquishActor.reparentTo(render)
        self.squishJoint = self.roomSquishActor.find('**/scalingJoint')
        self.propSquishActor = Actor()
        self.propSquishActor.loadModel(
            'phase_3/models/makeatoon/roomAnim_model')
        self.propSquishActor.loadAnims(
            {'propSquish': 'phase_3/models/makeatoon/roomAnim_propSquish'})
        self.propSquishActor.reparentTo(render)
        self.propSquishActor.pose('propSquish', 0)
        self.propJoint = self.propSquishActor.find('**/propJoint')
        self.spotlightActor = Actor()
        self.spotlightActor.loadModel(
            'phase_3/models/makeatoon/roomAnim_model')
        self.spotlightActor.loadAnims({
            'spotlightShake':
            'phase_3/models/makeatoon/roomAnim_spotlightShake'
        })
        self.spotlightActor.reparentTo(render)
        self.spotlightJoint = self.spotlightActor.find('**/spotlightJoint')
        ee = DirectFrame(pos=(-1, 1, 1),
                         frameSize=(-.01, 0.01, -.01, 0.01),
                         frameColor=(0, 0, 0, 0.05),
                         state='normal')
        ee.bind(DGG.B1PRESS, lambda x, ee=ee: self.toggleSlide())
        self.eee = ee
        self.room = loader.loadModel(
            'phase_3/models/makeatoon/tt_m_ara_mat_room')
        self.genderWalls = self.room.find('**/genderWalls')
        self.genderProps = self.room.find('**/genderProps')
        self.bodyWalls = self.room.find('**/bodyWalls')
        self.bodyProps = self.room.find('**/bodyProps')
        self.colorWalls = self.room.find('**/colorWalls')
        self.colorProps = self.room.find('**/colorProps')
        self.clothesWalls = self.room.find('**/clothWalls')
        self.clothesProps = self.room.find('**/clothProps')
        self.nameWalls = self.room.find('**/nameWalls')
        self.nameProps = self.room.find('**/nameProps')
        self.background = self.room.find('**/background')
        self.background.reparentTo(render)
        self.floor = self.room.find('**/floor')
        self.floor.reparentTo(render)
        self.spotlight = self.room.find('**/spotlight')
        self.spotlight.reparentTo(self.spotlightJoint)
        self.spotlight.setColor(1, 1, 1, 0.3)
        self.spotlight.setPos(1.18, -1.27, 0.41)
        self.spotlight.setScale(2.6)
        self.spotlight.setHpr(0, 0, 0)
        smokeSeqNode = SequenceNode('smoke')
        smokeModel = loader.loadModel(
            'phase_3/models/makeatoon/tt_m_ara_mat_smoke')
        smokeFrameList = list(smokeModel.findAllMatches('**/smoke_*'))
        smokeFrameList.reverse()
        for smokeFrame in smokeFrameList:
            smokeSeqNode.addChild(smokeFrame.node())

        smokeSeqNode.setFrameRate(12)
        self.smoke = render.attachNewNode(smokeSeqNode)
        self.smoke.setScale(1, 1, 0.75)
        self.smoke.hide()
        if self.warp:
            self.dna = ToonDNA.ToonDNA()
            self.dna.makeFromNetString(self.namelessPotAv.dna)
            self.toon = Toon.Toon()
            self.toon.setDNA(self.dna)
            self.toon.useLOD(1000)
            self.toon.setNameVisible(0)
            self.toon.startBlink()
            self.toon.startLookAround()
        self.gs.load()
        self.bs.load()
        self.cos.load()
        self.cls.load()
        self.ns.load()
        self.music = base.loadMusic('phase_3/audio/bgm/create_a_toon.ogg')
        self.musicVolume = base.config.GetFloat('makeatoon-music-volume', 1)
        self.sfxVolume = base.config.GetFloat('makeatoon-sfx-volume', 1)
        self.soundBack = base.loadSfx(
            'phase_3/audio/sfx/GUI_create_toon_back.ogg')
        self.crashSounds = []
        self.crashSounds.append(
            base.loadSfx('phase_3/audio/sfx/tt_s_ara_mat_crash_boing.ogg'))
        self.crashSounds.append(
            base.loadSfx(
                'phase_3/audio/sfx/tt_s_ara_mat_crash_glassBoing.ogg'))
        self.crashSounds.append(
            base.loadSfx('phase_3/audio/sfx/tt_s_ara_mat_crash_wood.ogg'))
        self.crashSounds.append(
            base.loadSfx('phase_3/audio/sfx/tt_s_ara_mat_crash_woodBoing.ogg'))
        self.crashSounds.append(
            base.loadSfx('phase_3/audio/sfx/tt_s_ara_mat_crash_woodGlass.ogg'))
        return
 def createEmblemPrices(self, numericBeanPrice):
     priceScale = 0.07
     emblemPrices = self['item'].getEmblemPrices()
     if emblemPrices:
         if numericBeanPrice:
             self.priceLabel.hide()
             beanModel = loader.loadModel('phase_5.5/models/estate/jellyBean')
             beanModel.setColorScale(1, 0, 0, 1)
             self.beanPriceLabel = DirectLabel(parent=self, relief=None, pos=(0, 0, -0.3), scale=priceScale, image=beanModel, image_pos=(-0.4, 0, 0.4), text=str(numericBeanPrice), text_fg=(0.95, 0.95, 0, 1), text_shadow=(0, 0, 0, 1), text_font=ToontownGlobals.getSignFont(), text_align=TextNode.ALeft)
         else:
             self.priceLabel.hide()
         goldPrice = 0
         silverPrice = 0
         emblemIcon = loader.loadModel('phase_3.5/models/gui/tt_m_gui_gen_emblemIcons')
         silverModel = emblemIcon.find('**/tt_t_gui_gen_emblemSilver')
         goldModel = emblemIcon.find('**/tt_t_gui_gen_emblemGold')
         if ToontownGlobals.EmblemTypes.Silver < len(emblemPrices):
             silverPrice = emblemPrices[ToontownGlobals.EmblemTypes.Silver]
             if silverPrice:
                 self.silverPriceLabel = DirectLabel(parent=self, relief=None, pos=(0, 0, -0.3), scale=priceScale, image=silverModel, image_pos=(-0.4, 0, 0.4), text=str(silverPrice), text_fg=(0.95, 0.95, 0, 1), text_shadow=(0, 0, 0, 1), text_font=ToontownGlobals.getSignFont(), text_align=TextNode.ALeft)
         if ToontownGlobals.EmblemTypes.Gold < len(emblemPrices):
             goldPrice = emblemPrices[ToontownGlobals.EmblemTypes.Gold]
             if goldPrice:
                 self.goldPriceLabel = DirectLabel(parent=self, relief=None, pos=(0, 0, -0.3), scale=priceScale, image=goldModel, image_pos=(-0.4, 0, 0.4), text=str(goldPrice), text_fg=(0.95, 0.95, 0, 1), text_shadow=(0, 0, 0, 1), text_font=ToontownGlobals.getSignFont(), text_align=TextNode.ALeft)
         numPrices = 0
         if numericBeanPrice:
             numPrices += 1
         if silverPrice:
             numPrices += 1
         if goldPrice:
             numPrices += 1
         if numPrices == 2:
             if not numericBeanPrice:
                 self.silverPriceLabel.setX(-0.15)
                 self.goldPriceLabel.setX(0.15)
             if not silverPrice:
                 self.goldPriceLabel.setX(-0.15)
                 self.beanPriceLabel.setX(0.15)
             if not goldPrice:
                 self.silverPriceLabel.setX(-0.15)
                 self.beanPriceLabel.setX(0.15)
         elif numPrices == 3:
             self.silverPriceLabel.setX(-0.2)
             self.goldPriceLabel.setX(0)
             self.beanPriceLabel.setX(0.15)
     return
Exemple #48
0
    def __init__(self, doneFunction, doneEvent=None, callback=None):

        FSM.FSM.__init__(self, "CheckersTutorial")
        self.doneFunction = doneFunction
        base.localAvatar.startSleepWatch(self.handleQuit)

        self.doneEvent = doneEvent
        self.callback = callback
        self.setStateArray(["Page1", "Page2","Page3","Quit"])
        
        # initialize our base class.
        DirectFrame.__init__(self,
                             pos = (-0.7, 0.0, 0.0),
                             image_color = ToontownGlobals.GlobalDialogColor,
                             image_scale = (1.0, 1.5, 1.0),
                             text = "",
                             text_scale = 0.06,
                             )
        self.accept('stoppedAsleep', self.handleQuit)

        # For some reason, we need to set this after construction to
        # get it to work properly.
        self['image'] = DGG.getDefaultDialogGeom()

        #title this sucker
        self.title = DirectLabel(self,
                                 relief = None,
                                 text = "",
                                 text_pos = (0.0, 0.40),
                                 text_fg = (1, 0, 0, 1),
                                 text_scale = 0.13,
                                 text_font = ToontownGlobals.getSignFont(),
                                 #text_shadow = (1, 1, 1, 1),
                                 )

        #create some image frames
        images = loader.loadModel("phase_6/models/golf/regularchecker_tutorial.bam")
        #images.reparentTo("aspect2regularchecker_tutorial.egg")
        images.setTransparency(1)
        #self.iPage1 = DirectFrame(self,
         #                         image = images.find('**/tutorialPage1*'),
         #                         scale = 8.35,
         #                         pos = (0.41, -0.1, 0.05),
          #                        )
        self.iPage1 = images.find('**/tutorialPage1*')
        self.iPage1.reparentTo(aspect2d)
        self.iPage1.setPos(0.43, -0.1, 0.0)
        self.iPage1.setScale(.4)
        self.iPage1.setTransparency(1)
        self.iPage1.hide()




        self.iPage2 = images.find('**/tutorialPage2*')
        self.iPage2.reparentTo(aspect2d)
        self.iPage2.setPos(0.43, -0.1, 0.0)
        self.iPage2.setScale(.4)
        self.iPage2.setTransparency(1)
        self.iPage2.hide()


        self.iPage3 = images.find('**/tutorialPage3*')
        self.iPage3.reparentTo(aspect2d)
        self.iPage3.setPos(0.6, -0.1, 0.5)
        self.iPage3.setScale(.4)
        self.iPage3.setTransparency(1)
        self.obj = self.iPage3.find('**/king*')
        self.iPage3.hide()

        
        self.iPage4 = images.find('**/tutorialPage4*')
        self.iPage4.reparentTo(aspect2d)
        self.iPage4.setPos(0.6, -0.1, -0.5)
        self.iPage4.setScale(.4)
        self.iPage4.setTransparency(1)
        self.iPage4.hide()

        
        
        # Create some buttons.
        buttons = loader.loadModel('phase_3/models/gui/dialog_box_buttons_gui')
        gui = loader.loadModel('phase_3.5/models/gui/friendslist_gui')

        self.bNext = DirectButton(self,
                                  image = (gui.find("**/Horiz_Arrow_UP"),
                                           gui.find("**/Horiz_Arrow_DN"),
                                           gui.find("**/Horiz_Arrow_Rllvr"),
                                           gui.find("**/Horiz_Arrow_UP")),
                                  image3_color = Vec4(1, 1, 1, 0.5),
                                  relief = None,
                                  text = TTLocalizer.ChineseTutorialNext,
                                  text3_fg = Vec4(0, 0, 0, 0.5),
                                  text_scale = 0.05,
                                  text_pos = (0.0, -0.1),
                                  pos = (0.35, -0.3, -0.33),
                                  command = self.requestNext,
                                  )

        self.bPrev = DirectButton(self,
                                  image = (gui.find("**/Horiz_Arrow_UP"),
                                           gui.find("**/Horiz_Arrow_DN"),
                                           gui.find("**/Horiz_Arrow_Rllvr"),
                                           gui.find("**/Horiz_Arrow_UP")),
                                  image3_color = Vec4(1, 1, 1, 0.5),
                                  image_scale = (-1.0, 1.0, 1.0),  # make the arrow point left
                                  relief = None,
                                  text = TTLocalizer.ChineseTutorialPrev,
                                  text3_fg = Vec4(0, 0, 0, 0.5),
                                  text_scale = 0.05,
                                  text_pos = (0.0, -0.1),
                                  pos = (-0.35, -0.3, -0.33),
                                  command = self.requestPrev,
                                 )

        self.bQuit = DirectButton(self,
                                  image = (buttons.find('**/ChtBx_OKBtn_UP'),
                                           buttons.find('**/ChtBx_OKBtn_DN'),
                                           buttons.find('**/ChtBx_OKBtn_Rllvr')),
                                  relief = None,
                                  text = TTLocalizer.ChineseTutorialDone,
                                  text_scale = 0.05,
                                  text_pos = (0.0, -0.1),
                                  pos = (0.0, -0.3, -0.33),
                                  command = self.handleQuit,
                                  )
        self.bQuit.hide()

        buttons.removeNode()
        gui.removeNode()
        self.request("Page1")
Exemple #49
0
 def __init__(self, doneFunction, doneEvent=None, callback=None):
     FSM.FSM.__init__(self, 'FindFourTutorial')
     self.doneFunction = doneFunction
     base.localAvatar.startSleepWatch(self.handleQuit)
     self.doneEvent = doneEvent
     self.callback = callback
     self.setStateArray(['Page1', 'Page2', 'Page3', 'Quit'])
     DirectFrame.__init__(self,
                          pos=(-0.7, 0.0, 0.0),
                          image_color=ToontownGlobals.GlobalDialogColor,
                          image_scale=(1.0, 1.5, 1.0),
                          text='',
                          text_scale=0.06)
     self.accept('stoppedAsleep', self.handleQuit)
     self['image'] = DGG.getDefaultDialogGeom()
     self.title = DirectLabel(self,
                              relief=None,
                              text='',
                              text_pos=(0.0, 0.4),
                              text_fg=(1, 0, 0, 1),
                              text_scale=0.13,
                              text_font=ToontownGlobals.getSignFont())
     images = loader.loadModel('phase_6/models/golf/findfour_game')
     images.setTransparency(1)
     buttons = loader.loadModel('phase_3/models/gui/dialog_box_buttons_gui')
     gui = loader.loadModel('phase_3.5/models/gui/friendslist_gui')
     self.bNext = DirectButton(self,
                               image=(gui.find('**/Horiz_Arrow_UP'),
                                      gui.find('**/Horiz_Arrow_DN'),
                                      gui.find('**/Horiz_Arrow_Rllvr'),
                                      gui.find('**/Horiz_Arrow_UP')),
                               image3_color=Vec4(1, 1, 1, 0.5),
                               relief=None,
                               text=TTLocalizer.ChineseTutorialNext,
                               text3_fg=Vec4(0, 0, 0, 0.5),
                               text_scale=0.05,
                               text_pos=(0.0, -0.1),
                               pos=(0.35, -0.3, -0.33),
                               command=self.requestNext)
     self.bPrev = DirectButton(self,
                               image=(gui.find('**/Horiz_Arrow_UP'),
                                      gui.find('**/Horiz_Arrow_DN'),
                                      gui.find('**/Horiz_Arrow_Rllvr'),
                                      gui.find('**/Horiz_Arrow_UP')),
                               image3_color=Vec4(1, 1, 1, 0.5),
                               image_scale=(-1.0, 1.0, 1.0),
                               relief=None,
                               text=TTLocalizer.ChineseTutorialPrev,
                               text3_fg=Vec4(0, 0, 0, 0.5),
                               text_scale=0.05,
                               text_pos=(0.0, -0.1),
                               pos=(-0.35, -0.3, -0.33),
                               command=self.requestPrev)
     self.bQuit = DirectButton(self,
                               image=(buttons.find('**/ChtBx_OKBtn_UP'),
                                      buttons.find('**/ChtBx_OKBtn_DN'),
                                      buttons.find('**/ChtBx_OKBtn_Rllvr')),
                               relief=None,
                               text=TTLocalizer.ChineseTutorialDone,
                               text_scale=0.05,
                               text_pos=(0.0, -0.1),
                               pos=(0.0, -0.3, -0.33),
                               command=self.handleQuit)
     self.bQuit.hide()
     buttons.removeNode()
     gui.removeNode()
     self.request('Page1')
     return
 def load(self):
     self.notify.debug('Bingo card loading')
     self.loadGameTimer()
     self.loadNextGameTimer()
     textScale = 0.06
     textHeight = 0.38 * BG.CardImageScale[2]
     guiButton = loader.loadModel('phase_3/models/gui/quit_button')
     self.bingo = DirectButton(parent=self, pos=(BG.GridXOffset, 0, 0.305), scale=(0.0343, 0.035, 0.035), relief=None, state=DGG.DISABLED, geom=self.model.find('**/BINGObutton'), geom_pos=(0, 0, 0), geom_hpr=(0, 90, 0), image=(self.model.find('**/Gold_TTButtUP'), self.model.find('**/goldTTButtDown'), self.model.find('**/RolloverBingoButton1')), image_pos=(0, 0, 0), image_hpr=(0, 90, 0), image_color=BG.getButtonColor(0), pressEffect=False)
     guiButton.removeNode()
     arrowModel = loader.loadModel('phase_3.5/models/gui/speedChatGui')
     self.gameType = DirectButton(parent=self, pos=(BG.GridXOffset, 0, -8 * BG.CardImageScale[2] - 0.01), relief=None, image=arrowModel.find('**/chatArrow'), image_scale=-0.05, image_pos=(-0.2, 0, 0.025), text='', text_scale=0.045, text_fg=(1, 1, 1, 1), text_font=ToontownGlobals.getSignFont(), text_wordwrap=10.5, text_pos=(0.01, 0.008), pressEffect=False)
     arrowModel.removeNode()
     self.gameType.bind(DGG.ENTER, self.onMouseEnter)
     self.gameType.bind(DGG.EXIT, self.onMouseLeave)
     self.gameType.hide()
     self.jpText = DirectLabel(parent=self, pos=(BG.GridXOffset, 0, 0.22), relief=None, state=DGG.NORMAL, text='', text_scale=TTLocalizer.BCGjpText, text_pos=(0, 0, 0), text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), text_font=ToontownGlobals.getInterfaceFont(), text_wordwrap=TTLocalizer.BCGjpTextWordwrap)
     self.gameOver = DirectLabel(parent=self, pos=(BG.GridXOffset, 0, 0), relief=None, state=DGG.NORMAL, text='', text_scale=textScale, text_fg=(1, 1, 1, 1), text_font=ToontownGlobals.getSignFont())
     self.jpSign = DirectFrame(parent=self.parent, relief=None, state=DGG.NORMAL, pos=BG.CardPosition, scale=(0.035, 0.035, 0.035), text=TTLocalizer.FishBingoJackpot, text_scale=2, text_pos=(-1.5, 18.6), text_fg=(1, 1, 1, 1), image=self.model.find('**/jackpot'), image_pos=(0, 0, 0), image_hpr=(0, 90, 0), sortOrder=DGG.BACKGROUND_SORT_INDEX)
     self.makeJackpotLights(self.jpSign)
     self.hideJackpot()
     self.makeTutorial()
     return
Exemple #51
0
    def enterReward(self):
        numToons = 0
        toonLayouts = ((2, ), (1, 3), (0, 2, 4), (0, 1, 3, 4))
        toonPositions = (5.0, 1.75, -0.25, -1.75, -5.0)
        self.toons = []
        self.toonsKeep = []
        self.counters = []
        self.totalCounters = []
        camera.reparentTo(render)
        base.camLens.setFov(ToontownGlobals.DefaultCameraFov)
        camera.setPos(0, 16.0, 2.0)
        camera.lookAt(0, 0, 0.75)
        base.transitions.irisIn(0.4)
        self.title.reparentTo(aspect2d)
        self.foreground.reparentTo(render)
        self.backgroundL.reparentTo(render)
        self.backgroundR.reparentTo(render)
        self.sidewalk.reparentTo(render)
        self.door.reparentTo(render)
        size = 20
        z = -2.5
        floor = CollisionPolygon(Point3(-size, -size, z),
                                 Point3(size, -size, z), Point3(size, size, z),
                                 Point3(-size, size, z))
        floor.setTangible(1)
        floorNode = CollisionNode('collision_floor')
        floorNode.addSolid(floor)
        self.collisionFloor = render.attachNewNode(floorNode)
        NametagGlobals.setOnscreenChatForced(1)
        for index in xrange(len(self.ids)):
            avId = self.ids[index]
            if self.states[index] != PURCHASE_NO_CLIENT_STATE and self.states[
                    index] != PURCHASE_DISCONNECTED_STATE and avId in base.cr.doId2do:
                numToons += 1
                toon = base.cr.doId2do[avId]
                toon.stopSmooth()
                self.toons.append(toon)
                self.toonsKeep.append(
                    DelayDelete.DelayDelete(toon, 'Purchase.enterReward'))
                counter = DirectLabel(parent=hidden,
                                      relief=None,
                                      pos=(0.0, 0.0, 0.0),
                                      text=str(0),
                                      text_scale=0.2,
                                      text_fg=(0.95, 0.95, 0, 1),
                                      text_pos=(0, -0.1, 0),
                                      text_font=ToontownGlobals.getSignFont())
                counter['image'] = DGG.getDefaultDialogGeom()
                counter['image_scale'] = (0.33, 1, 0.33)
                counter.setScale(0.5)
                counter.count = 0
                counter.max = self.pointsArray[index]
                self.counters.append(counter)
                money = self.playerMoney[index]
                totalCounter = DirectLabel(
                    parent=hidden,
                    relief=None,
                    pos=(0.0, 0.0, 0.0),
                    text=str(money),
                    text_scale=0.2,
                    text_fg=(0.95, 0.95, 0, 1),
                    text_pos=(0, -0.1, 0),
                    text_font=ToontownGlobals.getSignFont(),
                    image=self.jarImage)
                totalCounter.setScale(0.5)
                totalCounter.count = money
                totalCounter.max = toon.getMaxMoney()
                self.totalCounters.append(totalCounter)

        self.accept('clientCleanup', self._handleClientCleanup)
        pos = 0
        toonLayout = toonLayouts[numToons - 1]
        for toon in self.toons:
            thisPos = toonPositions[toonLayout[pos]]
            toon.setPos(Vec3(thisPos, 1.0, -2.5))
            toon.setHpr(Vec3(0, 0, 0))
            toon.setAnimState('neutral', 1)
            toon.setShadowHeight(0)
            if not toon.isDisabled():
                toon.reparentTo(render)
            self.counters[pos].setPos(thisPos * -0.17, 0,
                                      toon.getHeight() / 10 + 0.25)
            self.counters[pos].reparentTo(aspect2d)
            self.totalCounters[pos].setPos(thisPos * -0.17, 0, -0.825)
            self.totalCounters[pos].reparentTo(aspect2d)
            pos += 1

        self.maxPoints = max(self.pointsArray)
        if self.votesArray:
            self.maxVotes = max(self.votesArray)
            numToons = len(self.toons)
            self.voteMultiplier = TravelGameGlobals.PercentOfVotesConverted[
                numToons] / 100.0
            self.maxBeansFromVotes = int(self.voteMultiplier * self.maxVotes)
        else:
            self.maxVotes = 0
            self.maxBeansFromVotes = 0

        def reqCountUp(state):
            self.countUp()
            return Task.done

        countUpDelay = DELAY_BEFORE_COUNT_UP
        taskMgr.doMethodLater(countUpDelay, reqCountUp, 'countUpTask')

        def reqCountDown(state):
            self.countDown()
            return Task.done

        countDownDelay = countUpDelay + COUNT_UP_DURATION + DELAY_AFTER_COUNT_UP
        taskMgr.doMethodLater(countDownDelay, reqCountDown, 'countDownTask')

        def celebrate(task):
            for counter in task.counters:
                counter.hide()

            winningPoints = max(task.pointsArray)
            for i in xrange(len(task.ids)):
                if task.pointsArray[i] == winningPoints:
                    avId = task.ids[i]
                    if avId in base.cr.doId2do:
                        toon = base.cr.doId2do[avId]
                        toon.setAnimState('jump', 1.0)

            base.playSfx(task.celebrateSound)
            return Task.done

        celebrateDelay = countDownDelay + COUNT_DOWN_DURATION + DELAY_AFTER_COUNT_DOWN
        celebrateTask = taskMgr.doMethodLater(celebrateDelay, celebrate,
                                              'celebrate')
        celebrateTask.counters = self.counters
        celebrateTask.pointsArray = self.pointsArray
        celebrateTask.ids = self.ids
        celebrateTask.celebrateSound = self.celebrateSound

        def reqCountVotesUp(state):
            self.countVotesUp()
            return Task.done

        def reqCountVotesDown(state):
            self.countVotesDown()
            return Task.done

        if self.metagameRound == TravelGameGlobals.FinalMetagameRoundIndex:
            countVotesUpDelay = celebrateDelay + DELAY_AFTER_CELEBRATE
            taskMgr.doMethodLater(countVotesUpDelay, reqCountVotesUp,
                                  'countVotesUpTask')
            countVotesUpTime = self.maxVotes * COUNT_UP_RATE + DELAY_AFTER_COUNT_UP
            countVotesDownDelay = countVotesUpDelay + countVotesUpTime
            taskMgr.doMethodLater(countVotesDownDelay, reqCountVotesDown,
                                  'countVotesDownTask')
            celebrateDelay += countVotesUpTime + self.maxVotes * COUNT_DOWN_RATE + DELAY_AFTER_COUNT_DOWN

        def reqPurchase(state):
            self.fsm.request('purchase')
            return Task.done

        purchaseDelay = celebrateDelay + DELAY_AFTER_CELEBRATE
        taskMgr.doMethodLater(purchaseDelay, reqPurchase, 'purchase-trans')
        if base.skipMinigameReward:
            self.fsm.request('purchase')
        return
Exemple #52
0
 def __enableControlInterface(self):
     if self.canRace:
         self.enableControls()
     taskMgr.remove('watchVehicleControls')
     taskMgr.add(self.__watchControls, 'watchVehicleControls', priority=25)
     if not self.speedometer:
         cm = CardMaker('speed')
         cm.setFrame(-0.5, 0.5, -0.5, 0.5)
         self.speedometerImages = base.a2dBottomRight.attachNewNode('SpeedometerImages')
         self.speedometerImages.setTransparency(True)
         self.speedometerImages.setPos(-0.1, 0.0, 0.03)
         self.speedometerImages.setScale(0.75)
         m = loader.loadModel('phase_6/models/karting/speedometer')
         if self.getBodyColor() == InvalidEntry:
             bodyColor = getDefaultColor()
         else:
             bodyColor = getAccessory(self.getBodyColor())
         if self.getAccessoryColor() == InvalidEntry:
             accColor = getDefaultColor()
         else:
             accColor = getAccessory(self.getAccessoryColor())
         self.speedometerImages.attachNewNode(m.find('**/*gauge').node()).setColorScale(1, 1, 1, 1)
         self.speedGauge = self.speedometerImages.attachNewNode(m.find('**/*spin').node())
         self.speedGauge.setColor(1, 1, 1, 1)
         c = (Vec4(1, 1, 1, 1) + accColor) / 2.0
         c.setW(1.0)
         self.speedometerImages.attachNewNode(m.find('**/*face').node()).setColorScale(c)
         c = (Vec4(2, 2, 2, 2) - accColor) / 2.0
         c = (bodyColor + Vec4(1, 1, 1, 1)) / 2.0
         c.setW(1.0)
         self.speedometerImages.attachNewNode(m.find('**/*tics').node()).setColorScale(c)
         c = (bodyColor + Vec4(1, 1, 1, 1)) / 2.0
         c.setW(1.0)
         self.speedometerImages.attachNewNode(m.find('**/*ring').node()).setColorScale(c)
         self.speedometer = DirectLabel(relief=None, pos=(-0.1, 0.0, 0.03), text=str(0), text_scale=0.18, text_fg=bodyColor, text_pos=(-0.04, 0.02, 0), text_font=ToontownGlobals.getSignFont())
         self.speedometer.reparentTo(base.a2dBottomRight)
     else:
         self.showSpeedometer()
     self.arrowVert = 0
     self.arrowHorz = 0
     return
 def load(self):
     self.weight = DirectLabel(parent=self, pos=(0, 0, -0.28), relief=None, state=DGG.NORMAL, text='', text_scale=0.05, text_fg=(0, 0, 0, 1), text_pos=(0, 0.0, 0), text_font=ToontownGlobals.getInterfaceFont(), text_wordwrap=10.5)
     self.value = DirectLabel(parent=self, pos=(0, 0, -0.35), relief=None, state=DGG.NORMAL, text='', text_scale=0.05, text_fg=(0, 0, 0, 1), text_pos=(0, 0, 0), text_font=ToontownGlobals.getInterfaceFont(), text_wordwrap=10.5)
     self.mystery = DirectLabel(parent=self, pos=(-0.025, 0, -0.055), relief=None, state=DGG.NORMAL, text='?', text_scale=0.25, text_fg=(0, 0, 0, 1), text_pos=(0, 0, 0), text_font=ToontownGlobals.getInterfaceFont(), text_wordwrap=10.5)
     self.extraLabel = DirectLabel(parent=self, relief=None, state=DGG.NORMAL, text='', text_fg=(0.2, 0.8, 0.4, 1), text_font=ToontownGlobals.getSignFont(), text_scale=0.08, pos=(0, 0, 0.26))
     buttons = loader.loadModel('phase_3/models/gui/dialog_box_buttons_gui')
     self.cancel = DirectButton(parent=self, pos=(0.275, 0, -0.375), relief=None, state=DGG.NORMAL, image=(buttons.find('**/CloseBtn_UP'), buttons.find('**/CloseBtn_DN'), buttons.find('**/CloseBtn_Rllvr')), image_scale=(0.6, 1, 0.6), command=self.handleCancel)
     buttons.removeNode()
     self.photo = FishPhoto.FishPhoto(parent=self)
     self.update(self.fish)
     return
 def load(self):
     ShtikerPage.ShtikerPage.load(self)
     self.title = DirectLabel(parent=self, relief=None, text=TTLocalizer.InventoryPageTitle, text_scale=0.12, textMayChange=1, pos=(0, 0, 0.62))
     self.gagFrame = DirectFrame(parent=self, relief=None, pos=(0.1, 0, -0.47), scale=(0.35, 0.35, 0.35), geom=DGG.getDefaultDialogGeom(), geom_color=ToontownGlobals.GlobalDialogColor)
     self.trackInfo = DirectFrame(parent=self, relief=None, pos=(-0.4, 0, -0.47), scale=(0.35, 0.35, 0.35), geom=DGG.getDefaultDialogGeom(), geom_scale=(1.4, 1, 1), geom_color=ToontownGlobals.GlobalDialogColor, text='', text_wordwrap=11, text_align=TextNode.ALeft, text_scale=0.12, text_pos=(-0.65, 0.3), text_fg=(0.05, 0.14, 0.4, 1))
     self.trackProgress = DirectWaitBar(parent=self.trackInfo, pos=(0, 0, -0.2), relief=DGG.SUNKEN, frameSize=(-0.6,
      0.6,
      -0.1,
      0.1), borderWidth=(0.025, 0.025), scale=1.1, frameColor=(0.4, 0.6, 0.4, 1), barColor=(0.9, 1, 0.7, 1), text='0/0', text_scale=0.15, text_fg=(0.05, 0.14, 0.4, 1), text_align=TextNode.ACenter, text_pos=(0, -0.22))
     self.trackProgress.hide()
     jarGui = loader.loadModel('phase_3.5/models/gui/jar_gui')
     self.moneyDisplay = DirectLabel(parent=self, relief=None, pos=(0.55, 0, -0.5), scale=0.8, text=str(base.localAvatar.getMoney()), text_scale=0.18, text_fg=(0.95, 0.95, 0, 1), text_shadow=(0, 0, 0, 1), text_pos=(0, -0.1, 0), image=jarGui.find('**/Jar'), text_font=ToontownGlobals.getSignFont())
     jarGui.removeNode()
     return
Exemple #55
0
    def load(self):
        self.sceneRoot = NodePath(
            self.toonName.replace(' ', '').replace('', ''))
        base.setBackgroundColor(0, 0, 0, 1)

        if self.twoSlides:
            if self.side == 'left':
                # Left Top
                titlePos = (0.1, 0.5, 0.0)
                descriptionPos = (0.2, 0.4, 0.0)
                imagePos = (-0.55, 0.0, 0.4)
                textAlignment = TextNode.ALeft
                # Right Bottom
                title2Pos = (-0.1, -0.35, 0.0)
                description2Pos = (-0.1, -0.45, 0.0)
                image2Pos = (0.55, 0.0, -0.4)
                text2Alignment = TextNode.ARight
            else:
                # Right Top
                titlePos = (-0.1, 0.5, 0.0)
                descriptionPos = (-0.1, 0.4, 0.0)
                imagePos = (0.55, 0.0, 0.4)
                textAlignment = TextNode.ARight
                # Left Bottom
                title2Pos = (0.1, -0.35, 0.0)
                description2Pos = (0.25, -0.45, 0.0)
                image2Pos = (-0.55, 0.0, -0.4)
                text2Alignment = TextNode.ALeft
        elif self.side == 'left':
            # Left Middle
            titlePos = (0.1, 0.15, 0.0)
            descriptionPos = (0.2, 0.05, 0.0)
            imagePos = (-0.5, 0.0, 0.0)
            textAlignment = TextNode.ALeft
        else:
            # Right Middle
            titlePos = (-0.1, 0.1, 0.0)
            descriptionPos = (-0.11, 0.0, 0.0)
            imagePos = (0.5, 0.0, 0.0)
            textAlignment = TextNode.ARight

        self.title = OnscreenText(text=self.toonName,
                                  pos=titlePos,
                                  scale=(0.15),
                                  fg=(1, 1, 1, 1),
                                  font=ToontownGlobals.getSignFont(),
                                  align=textAlignment)
        self.description = OnscreenText(text=self.toonDescription,
                                        pos=descriptionPos,
                                        scale=(0.06),
                                        fg=(1, 1, 1, 1),
                                        font=ToontownGlobals.getMinnieFont(),
                                        align=textAlignment)
        self.image = OnscreenImage(image='phase_4/maps/news/%s' %
                                   self.toonImage,
                                   pos=imagePos,
                                   scale=(0.5, 0.30, 0.30))
        self.elements = [self.title, self.description, self.image]

        if self.twoSlides:
            self.title2 = OnscreenText(text=self.toon2Name,
                                       pos=title2Pos,
                                       scale=(0.15),
                                       fg=(1, 1, 1, 1),
                                       font=ToontownGlobals.getSignFont(),
                                       align=text2Alignment)
            self.description2 = OnscreenText(
                text=self.toon2Description,
                pos=description2Pos,
                scale=(0.06),
                fg=(1, 1, 1, 1),
                font=ToontownGlobals.getMinnieFont(),
                align=text2Alignment)
            self.image2 = OnscreenImage(image='phase_4/maps/news/%s' %
                                        self.toon2Image,
                                        pos=image2Pos,
                                        scale=(0.5, 0.30, 0.30))
            self.elements.extend([self.title2, self.description2, self.image2])

        for node in self.elements:
            node.setTransparency(1)
            node.setColorScale(1, 1, 1, 0)
Exemple #56
0
    def __createPieWindshield(self):
        self.piePieces = []
        for piece in range(self.numPieChunks):
            self.piePieces.append(DirectLabel(relief=None, pos=(0.0, 0.0, 0.0), image=self.pieSplatter, image_scale=(0.5, 0.5, 0.5), text=' ', text_scale=0.18, text_fg=(1, 0, 1, 1), text_pos=(-0.0, 0.0, 0), text_font=ToontownGlobals.getSignFont(), textMayChange=1))
            self.piePieces[piece].hide()

        return
Exemple #57
0
    def __init__(self, doneEvent, allowWithdraw=1):
        DirectFrame.__init__(
            self,
            relief=None,
            geom=DGG.getDefaultDialogGeom(),
            geom_color=ToontownGlobals.GlobalDialogColor,
            geom_scale=(1.33, 1, 1.1),
            pos=(0, 0, 0),
        )
        self.initialiseoptions(BankGui)
        # Send this when we are done so whoever made us can get a callback
        self.doneEvent = doneEvent
        # Positive indicates a deposit, negative indicates a withdraw
        self.__transactionAmount = 0

        buttons = loader.loadModel('phase_3/models/gui/dialog_box_buttons_gui')
        jarGui = loader.loadModel("phase_3.5/models/gui/jar_gui")
        arrowGui = loader.loadModel("phase_3/models/gui/create_a_toon_gui")
        bankModel = loader.loadModel(
            "phase_5.5/models/estate/jellybeanBank.bam")
        # If we set this on the entire bank, the billboard jellybeans goes away
        # Let's just set it on the pig, the rest of the bank looks ok
        bankModel.find("**/pig").setDepthWrite(1)
        bankModel.find("**/pig").setDepthTest(1)

        # Init buttons
        okImageList = (buttons.find('**/ChtBx_OKBtn_UP'),
                       buttons.find('**/ChtBx_OKBtn_DN'),
                       buttons.find('**/ChtBx_OKBtn_Rllvr'))
        cancelImageList = (buttons.find('**/CloseBtn_UP'),
                           buttons.find('**/CloseBtn_DN'),
                           buttons.find('**/CloseBtn_Rllvr'))
        arrowImageList = (arrowGui.find("**/CrtATn_R_Arrow_UP"),
                          arrowGui.find("**/CrtATn_R_Arrow_DN"),
                          arrowGui.find("**/CrtATn_R_Arrow_RLVR"),
                          arrowGui.find("**/CrtATn_R_Arrow_UP"))

        self.cancelButton = DirectButton(
            parent=self,
            relief=None,
            image=cancelImageList,
            pos=(-0.2, 0, -0.4),
            text=TTLocalizer.BankGuiCancel,
            text_scale=0.06,
            text_pos=(0, -0.1),
            command=self.__cancel,
        )
        self.okButton = DirectButton(
            parent=self,
            relief=None,
            image=okImageList,
            pos=(0.2, 0, -0.4),
            text=TTLocalizer.BankGuiOk,
            text_scale=0.06,
            text_pos=(0, -0.1),
            command=self.__requestTransaction,
        )

        self.jarDisplay = DirectLabel(
            parent=self,
            relief=None,
            pos=(-0.4, 0, 0),
            scale=0.7,
            text=str(base.localAvatar.getMoney()),
            text_scale=0.2,
            text_fg=(0.95, 0.95, 0, 1),
            text_shadow=(0, 0, 0, 1),
            text_pos=(0, -0.1, 0),
            image=jarGui.find("**/Jar"),
            text_font=ToontownGlobals.getSignFont(),
        )
        self.bankDisplay = DirectLabel(
            parent=self,
            relief=None,
            pos=(0.4, 0, 0),
            scale=0.9,
            text=str(base.localAvatar.getBankMoney()),
            text_scale=0.2,
            text_fg=(0.95, 0.95, 0, 1),
            text_shadow=(0, 0, 0, 1),
            text_pos=(0, -0.1, 0),
            geom=bankModel,
            geom_scale=0.08,
            geom_pos=(0, 10, -0.26),
            geom_hpr=(0, 0, 0),
            text_font=ToontownGlobals.getSignFont(),
        )

        self.depositArrow = DirectButton(
            parent=self,
            relief=None,
            image=arrowImageList,
            image_scale=(1, 1, 1),
            image3_color=Vec4(0.6, 0.6, 0.6, 0.25),
            pos=(0.01, 0, 0.15),
        )
        self.withdrawArrow = DirectButton(
            parent=self,
            relief=None,
            image=arrowImageList,
            image_scale=(-1, 1, 1),
            image3_color=Vec4(0.6, 0.6, 0.6, 0.25),
            pos=(-0.01, 0, -0.15),
        )

        self.depositArrow.bind(DGG.B1PRESS, self.__depositButtonDown)
        self.depositArrow.bind(DGG.B1RELEASE, self.__depositButtonUp)

        self.withdrawArrow.bind(DGG.B1PRESS, self.__withdrawButtonDown)
        self.withdrawArrow.bind(DGG.B1RELEASE, self.__withdrawButtonUp)

        self.accept("bankAsleep", self.__cancel)
        self.accept(localAvatar.uniqueName("moneyChange"), self.__moneyChange)
        self.accept(localAvatar.uniqueName("bankMoneyChange"),
                    self.__bankMoneyChange)

        if allowWithdraw:
            self.depositArrow.setPos(0.01, 0, 0.15)
            self.withdrawArrow.setPos(-0.01, 0, -0.15)
        else:
            self.depositArrow.setPos(0, 0, 0)
            self.withdrawArrow.hide()

        buttons.removeNode()
        jarGui.removeNode()
        arrowGui.removeNode()

        # Refresh the status of the gui
        # Give it a 0 for a transaction so it does not change the values
        self.__updateTransaction(0)
    def __init__(self, beanAmount):
        if not ScavengerHuntEffect.images:
            ScavengerHuntEffect.images = loader.loadModel('phase_4/models/props/tot_jar')

        self.npRoot = DirectFrame(parent=aspect2d, relief=None, scale=0.75, pos=(0, 0, 0.6))

        if beanAmount > 0:
            self.npRoot.setColorScale(VBase4(1, 1, 1, 0))
            self.jar = DirectFrame(parent=self.npRoot, relief=None, image=ScavengerHuntEffect.images.find('**/tot_jar'))
            self.jar.hide()
            self.eventImage = NodePath('EventImage')
            self.eventImage.reparentTo(self.npRoot)
            self.countLabel = DirectLabel(parent=self.jar, relief=None, text='+0', text_pos=(0.02, -0.2), text_scale=0.25, text_fg=(0.95, 0.0, 0, 1), text_font=ToontownGlobals.getSignFont())

            def countUp(t, startVal, endVal):
                beanCountStr = startVal + t * (endVal - startVal)
                self.countLabel['text'] = '+' + `(int(beanCountStr))`

            def setCountColor(color):
                self.countLabel['text_fg'] = color

            self.track = Sequence(LerpColorScaleInterval(self.npRoot, 1, colorScale=VBase4(1, 1, 1, 1), startColorScale=VBase4(1, 1, 1, 0)), Wait(1), Func(self.jar.show), LerpColorScaleInterval(self.eventImage, 1, colorScale=VBase4(1, 1, 1, 0), startColorScale=VBase4(1, 1, 1, 1)), Parallel(LerpScaleInterval(self.npRoot, 1, scale=0.5, startScale=0.75), LerpPosInterval(self.npRoot, 1, pos=VBase3(-0.9, 0, -0.83))), LerpFunc(countUp, duration=2, extraArgs=[0, beanAmount]), Func(setCountColor, VBase4(0.95, 0.95, 0, 1)), Wait(3), Func(self.destroy))
        else:
            self.npRoot.setColorScale(VBase4(1, 1, 1, 0))
            self.attemptFailedMsg()
            self.track = Sequence(LerpColorScaleInterval(self.npRoot, 1, colorScale=VBase4(1, 1, 1, 1), startColorScale=VBase4(1, 1, 1, 0)), Wait(5), LerpColorScaleInterval(self.npRoot, 1, colorScale=VBase4(1, 1, 1, 0), startColorScale=VBase4(1, 1, 1, 1)), Func(self.destroy))
Exemple #59
0
    def load(self):
        ShtikerPage.ShtikerPage.load(self)
        frameModel = loader.loadModel('phase_3.5/models/gui/suitpage_frame')
        self.guiTop = NodePath('guiTop')
        self.guiTop.reparentTo(self)
        self.frameNode = NodePath('frameNode')
        self.frameNode.reparentTo(self.guiTop)
        self.panelNode = NodePath('panelNode')
        self.panelNode.reparentTo(self.guiTop)
        self.iconNode = NodePath('iconNode')
        self.iconNode.reparentTo(self.guiTop)
        self.enlargedPanelNode = NodePath('enlargedPanelNode')
        self.enlargedPanelNode.reparentTo(self.guiTop)
        frameModel.setScale(0.0235, 0.03, 0.045)
        frameModel.setPos(0, 20, -0.573)
        frame = frameModel.find('**/frame')
        frame.wrtReparentTo(self.frameNode)
        screws = frameModel.find('**/screws')
        screws.wrtReparentTo(self.iconNode)
        icons = frameModel.find('**/icons')
        del frameModel
        self.title = DirectLabel(parent=self.iconNode,
                                 relief=None,
                                 text=TTLocalizer.SuitPageTitle,
                                 text_scale=0.1,
                                 text_pos=(0.04, 0),
                                 textMayChange=0)
        self.radarButtons = []
        icon = icons.find('**/corp_icon')
        self.corpRadarButton = DirectButton(parent=self.iconNode,
                                            relief=None,
                                            state=DGG.DISABLED,
                                            image=icon,
                                            image_scale=(0.03375, 1, 0.045),
                                            image2_color=Vec4(
                                                1.0, 1.0, 1.0, 0.75),
                                            pos=(-0.2, 10, -0.575),
                                            command=self.toggleRadar,
                                            extraArgs=[0])
        self.radarButtons.append(self.corpRadarButton)
        icon = icons.find('**/legal_icon')
        self.legalRadarButton = DirectButton(parent=self.iconNode,
                                             relief=None,
                                             state=DGG.DISABLED,
                                             image=icon,
                                             image_scale=(0.03375, 1, 0.045),
                                             image2_color=Vec4(
                                                 1.0, 1.0, 1.0, 0.75),
                                             pos=(-0.2, 10, -0.575),
                                             command=self.toggleRadar,
                                             extraArgs=[1])
        self.radarButtons.append(self.legalRadarButton)
        icon = icons.find('**/money_icon')
        self.moneyRadarButton = DirectButton(parent=self.iconNode,
                                             relief=None,
                                             state=DGG.DISABLED,
                                             image=(icon, icon, icon),
                                             image_scale=(0.03375, 1, 0.045),
                                             image2_color=Vec4(
                                                 1.0, 1.0, 1.0, 0.75),
                                             pos=(-0.2, 10, -0.575),
                                             command=self.toggleRadar,
                                             extraArgs=[2])
        self.radarButtons.append(self.moneyRadarButton)
        icon = icons.find('**/sales_icon')
        self.salesRadarButton = DirectButton(parent=self.iconNode,
                                             relief=None,
                                             state=DGG.DISABLED,
                                             image=(icon, icon, icon),
                                             image_scale=(0.03375, 1, 0.045),
                                             image2_color=Vec4(
                                                 1.0, 1.0, 1.0, 0.75),
                                             pos=(-0.2, 10, -0.575),
                                             command=self.toggleRadar,
                                             extraArgs=[3])
        self.radarButtons.append(self.salesRadarButton)
        for radarButton in self.radarButtons:
            radarButton.building = 0
            radarButton.buildingRadarLabel = None

        gui = loader.loadModel('phase_3.5/models/gui/suitpage_gui')
        self.panelModel = gui.find('**/card')
        self.shadowModels = []
        for index in range(1, len(SuitDNA.suitHeadTypes) + 1):
            self.shadowModels.append(gui.find('**/shadow' + str(index)))

        del gui
        self.makePanels()
        self.radarOn = [0, 0, 0, 0]
        priceScale = 0.1
        emblemIcon = loader.loadModel(
            'phase_3.5/models/gui/tt_m_gui_gen_emblemIcons')
        silverModel = emblemIcon.find('**/tt_t_gui_gen_emblemSilver')
        goldModel = emblemIcon.find('**/tt_t_gui_gen_emblemGold')
        self.silverLabel = DirectLabel(
            parent=self,
            relief=None,
            pos=(-0.25, 0, -0.69),
            scale=priceScale,
            image=silverModel,
            image_pos=(-0.4, 0, 0.4),
            text=str(localAvatar.emblems[ToontownGlobals.EmblemTypes.Silver]),
            text_fg=(0.95, 0.95, 0, 1),
            text_shadow=(0, 0, 0, 1),
            text_font=ToontownGlobals.getSignFont(),
            text_align=TextNode.ALeft)
        self.goldLabel = DirectLabel(
            parent=self,
            relief=None,
            pos=(0.25, 0, -0.69),
            scale=priceScale,
            image=goldModel,
            image_pos=(-0.4, 0, 0.4),
            text=str(localAvatar.emblems[ToontownGlobals.EmblemTypes.Gold]),
            text_fg=(0.95, 0.95, 0, 1),
            text_shadow=(0, 0, 0, 1),
            text_font=ToontownGlobals.getSignFont(),
            text_align=TextNode.ALeft)
        if not base.cr.wantEmblems:
            self.silverLabel.hide()
            self.goldLabel.hide()
        self.accept(localAvatar.uniqueName('emblemsChange'),
                    self.__emblemChange)
        self.guiTop.setZ(0.625)
        return
Exemple #60
0
 def __init__(self, doneEvent, petSeeds):
     model = loader.loadModel('phase_4/models/gui/PetShopInterface')
     modelPos = (0, 0, -0.9)
     modelScale = (0.185, 0.185, 0.185)
     DirectFrame.__init__(self,
                          relief=None,
                          state='normal',
                          geom=model,
                          geom_scale=modelScale,
                          frameSize=(-1, 1, -1, 1),
                          pos=modelPos,
                          text=TTLocalizer.PetshopChooserTitle,
                          text_wordwrap=26,
                          text_scale=TTLocalizer.PGUIchooserTitle,
                          text_fg=Vec4(0.36, 0.94, 0.93, 1),
                          text_pos=(0, 1.58))
     self.initialiseoptions(PetshopGUI.ChoosePetDlg)
     adoptImageList = (model.find('**/AdoptButtonUp'),
                       model.find('**/AdoptButtonDown'),
                       model.find('**/AdoptButtonRollover'),
                       model.find('**/AdoptButtonRollover'))
     cancelImageList = (model.find('**/CancelButtonUp'),
                        model.find('**/CancelButtonDown'),
                        model.find('**/CancelButtonRollover'))
     cancelIcon = model.find('**/CancelIcon')
     pawLImageList = (model.find('**/Paw1Up'),
                      model.find('**/Paw1Down'),
                      model.find('**/Paw1Rollover'))
     pawLArrowImageList = model.find('**/Arrow1')
     pawRImageList = (model.find('**/Paw2Up'),
                      model.find('**/Paw2Down'),
                      model.find('**/Paw2Rollover'))
     pawRArrowImageList = model.find('**/Arrow2')
     self.cancelButton = DirectButton(
         parent=self,
         relief=None,
         image=cancelImageList,
         geom=cancelIcon,
         scale=modelScale,
         pressEffect=False,
         command=lambda: messenger.send(doneEvent, [-1]))
     self.pawLButton = DirectButton(
         parent=self,
         relief=None,
         image=pawLImageList,
         geom=pawLArrowImageList,
         scale=modelScale,
         pressEffect=False,
         command=lambda: self.__handlePetChange(-1))
     self.pawRButton = DirectButton(
         parent=self,
         relief=None,
         image=pawRImageList,
         geom=pawRArrowImageList,
         scale=modelScale,
         pressEffect=False,
         command=lambda: self.__handlePetChange(1))
     self.okButton = DirectButton(
         parent=self,
         relief=None,
         image=adoptImageList,
         image3_color=disabledImageColor,
         scale=modelScale,
         text=TTLocalizer.PetshopAdopt,
         text_scale=TTLocalizer.PGUIokButton,
         text_pos=TTLocalizer.PGUIokButtonPos,
         text0_fg=text0Color,
         text1_fg=text1Color,
         text2_fg=text2Color,
         text3_fg=text3Color,
         pressEffect=False,
         command=lambda: messenger.send(doneEvent, [self.curPet]))
     self.moneyDisplay = DirectLabel(
         parent=self,
         relief=None,
         text=str(base.localAvatar.getTotalMoney()),
         text_scale=0.1,
         text_fg=(0.95, 0.95, 0, 1),
         text_shadow=(0, 0, 0, 1),
         text_pos=(0.34, 0.12),
         text_font=ToontownGlobals.getSignFont())
     self.accept(localAvatar.uniqueName('moneyChange'),
                 self.__moneyChange)
     self.accept(localAvatar.uniqueName('bankMoneyChange'),
                 self.__moneyChange)
     self.petView = self.attachNewNode('petView')
     self.petView.setPos(-0.05, 0, 1.15)
     model.removeNode()
     self.petSeeds = petSeeds
     self.makePetList()
     self.showPet()