def __setupNamePlateCustom(self):
        self.notify.debug("__setupNamePlateCustom")

        # name plate above door
        if self.namePlate:
            self.namePlate.removeNode()
            del self.namePlate
            self.namePlate = None

        nameText = TextNode('nameText')
        nameText.setCardAsMargin(0.1, 0.1, 0.1, 0.1)
        nameText.setCardDecal(True)
        nameText.setCardColor(1.0, 1.0, 1.0, 0.0)

        r = self.randomGenerator.random()
        g = self.randomGenerator.random()
        b = self.randomGenerator.random()
        nameText.setTextColor(r, g, b, 1)
        nameText.setAlign(nameText.ACenter)
        nameText.setFont(ToontownGlobals.getBuildingNametagFont())
        nameText.setShadowColor(0, 0, 0, 1)
        nameText.setBin('fixed')
        if TTLocalizer.BuildingNametagShadow:
            nameText.setShadow(*TTLocalizer.BuildingNametagShadow)
        nameText.setWordwrap(16.0)
        xScale = 1.0
        numLines = 0
        if (self.name == ""):
            # don't bother putting an empty string up
            return
        else:
            # make the name fit nicely on the floor mat
            houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(
                self.name)

        nameText.setText(houseName)
        self.nameText = nameText

        # Since the text is wordwrapped, it may flow over more
        # than one line.  Try to adjust the scale and position of
        # the sign accordingly.
        textHeight = nameText.getHeight() - 2
        textWidth = nameText.getWidth()
        xScale = 1.0
        if textWidth > 16:
            xScale = 16.0 / textWidth

        sign_origin = self.house.find("**/sign_origin")
        #debugAxis = loader.loadModel("models/misc/xyzAxis")
        #debugAxis.reparentTo(sign_origin)
        #debugAxis.wrtReparentTo(render)
        pos = sign_origin.getPos()
        sign_origin.setPosHpr(pos[0], pos[1], pos[2] + .15 * textHeight, 90, 0,
                              0)
        self.namePlate = sign_origin.attachNewNode(self.nameText)
        self.namePlate.setDepthWrite(0)
        self.namePlate.setPos(0, -0.05, 0)
        self.namePlate.setScale(xScale)

        return nameText
Exemple #2
0
 def setupNametag(self):
     if self.nametag == None:
         self.nametag = NametagGroup()
         self.nametag.setFont(ToontownGlobals.getBuildingNametagFont())
         if TTLocalizer.BuildingNametagShadow:
             self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow)
         self.nametag.setContents(Nametag.CName)
         self.nametag.setColorCode(NametagGroup.CCSuitBuilding)
         self.nametag.setActive(0)
         self.nametag.setAvatar(self.getElevatorModel())
         name = self.cr.playGame.dnaStore.getTitleFromBlockNumber(
             self.bldg.block)
         if self.bldg.mode == 'cogdo' and not name:
             name = TTLocalizer.Cogdominiums
         else:
             if self.bldg.mode == 'cogdo':
                 name += TTLocalizer.CogdominiumsExt
             else:
                 if not name:
                     name = TTLocalizer.CogsInc
                 else:
                     name += TTLocalizer.CogsIncExt
         self.nametag.setName(name)
         self.nametag.manage(base.marginManager)
     return
 def attachHostNameToSign(self, locator):
     if self.hostName == "":
         return
     nameText = TextNode("nameText")
     nameText.setCardAsMargin(0.1, 0.1, 0.1, 0.1)
     nameText.setCardDecal(True)
     nameText.setCardColor(1.0, 1.0, 1.0, 0.0)
     r = 232.0 / 255.0
     g = 169.0 / 255.0
     b = 23.0 / 255.0
     nameText.setTextColor(r, g, b, 1)
     nameText.setAlign(nameText.ACenter)
     nameText.setFont(ToontownGlobals.getBuildingNametagFont())
     nameText.setShadowColor(0, 0, 0, 1)
     nameText.setBin("fixed")
     if TTLocalizer.BuildingNametagShadow:
         nameText.setShadow(*TTLocalizer.BuildingNametagShadow)
     nameWordWrap = 11.0
     nameText.setWordwrap(nameWordWrap)
     scaleMult = 0.48
     houseName = self.hostName
     nameText.setText(houseName)
     textWidth = nameText.getWidth()
     xScale = 1.0 * scaleMult
     if textWidth > nameWordWrap:
         xScale = nameWordWrap / textWidth * scaleMult
     sign_origin = locator
     namePlate = sign_origin.attachNewNode(nameText)
     namePlate.setDepthWrite(0)
     namePlate.setPos(0, 0, 0)
     namePlate.setScale(xScale)
 def attachHostNameToSign(self, locator):
     if self.hostName == '':
         return
     nameText = TextNode('nameText')
     nameText.setCardAsMargin(0.1, 0.1, 0.1, 0.1)
     nameText.setCardDecal(True)
     nameText.setCardColor(1.0, 1.0, 1.0, 0.0)
     r = 232.0 / 255.0
     g = 169.0 / 255.0
     b = 23.0 / 255.0
     nameText.setTextColor(r, g, b, 1)
     nameText.setAlign(nameText.ACenter)
     nameText.setFont(ToontownGlobals.getBuildingNametagFont())
     nameText.setShadowColor(0, 0, 0, 1)
     nameText.setBin('fixed')
     if TTLocalizer.BuildingNametagShadow:
         nameText.setShadow(*TTLocalizer.BuildingNametagShadow)
     nameWordWrap = 11.0
     nameText.setWordwrap(nameWordWrap)
     scaleMult = 0.48
     houseName = self.hostName
     nameText.setText(houseName)
     textWidth = nameText.getWidth()
     xScale = 1.0 * scaleMult
     if textWidth > nameWordWrap:
         xScale = nameWordWrap / textWidth * scaleMult
     sign_origin = locator
     namePlate = sign_origin.attachNewNode(nameText)
     namePlate.setDepthWrite(0)
     namePlate.setPos(0, 0, 0)
     namePlate.setScale(xScale)
 def setupNametag(self):
     if not self.wantsNametag():
         return
         
     if self.doorIndex != 0:
         # Avoid duplicated nametags (eg hq doors)
         return
         
     if self.nametag == None:
         self.nametag = NametagGroup()
         self.nametag.setFont(ToontownGlobals.getBuildingNametagFont())
         
         if TTLocalizer.BuildingNametagShadow:
             self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow)
             
         self.nametag.setContents(Nametag.CName)
         self.nametag.setColorCode(NametagGroup.CCToonBuilding)
         self.nametag.setActive(0)
         self.nametag.setAvatar(self.getDoorNodePath())
         self.nametag.setObjectCode(self.block)
         
         name = self.cr.playGame.dnaStore.getTitleFromBlockNumber(self.block)
         self.nametag.setName(name)
         
         self.nametag.manage(base.marginManager)
    def setupNametag(self):
        if not self.wantsNametag():
            return

        if self.doorIndex != 0:
            # Avoid duplicated nametags (eg hq doors)
            return

        if self.nametag == None:
            self.nametag = NametagGroup()
            self.nametag.setFont(ToontownGlobals.getBuildingNametagFont())

            if TTLocalizer.BuildingNametagShadow:
                self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow)

            self.nametag.setContents(Nametag.CName)
            self.nametag.setColorCode(NametagGroup.CCToonBuilding)
            self.nametag.setActive(0)
            self.nametag.setAvatar(self.getDoorNodePath())
            self.nametag.setObjectCode(self.block)

            name = self.cr.playGame.dnaStore.getTitleFromBlockNumber(
                self.block)
            self.nametag.setName(name)

            self.nametag.manage(base.marginManager)
Exemple #7
0
 def load(self, loadModels=1, arenaModel='partyCatchTree'):
     self.notify.info('load()')
     DistributedPartyCatchActivity.notify.debug('PartyCatch: load')
     self.activityFSM = CatchActivityFSM(self)
     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.loader.loadSfx(
         'phase_4/audio/sfx/SZ_DD_treasure.ogg')
     self.sndOof = base.loader.loadSfx(
         'phase_4/audio/sfx/MG_cannon_hit_dirt.ogg')
     self.sndAnvilLand = base.loader.loadSfx(
         'phase_4/audio/sfx/AA_drop_anvil_miss.ogg')
     self.sndPerfect = base.loader.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 #8
0
 def getFontByName(self, fontname):
     if fontname == 'toon':
         return ToontownGlobals.getToonFont()
     elif fontname == 'building':
         return ToontownGlobals.getBuildingNametagFont()
     elif fontname == 'minnie':
         return ToontownGlobals.getMinnieFont()
     elif fontname == 'suit':
         return ToontownGlobals.getSuitFont()
     else:
         return MagicWordManager.MagicWordManager.getFontByName(self, fontname)
 def getFontByName(self, fontname):
     if fontname == 'toon':
         return ToontownGlobals.getToonFont()
     elif fontname == 'building':
         return ToontownGlobals.getBuildingNametagFont()
     elif fontname == 'minnie':
         return ToontownGlobals.getMinnieFont()
     elif fontname == 'suit':
         return ToontownGlobals.getSuitFont()
     else:
         return MagicWordManager.MagicWordManager.getFontByName(self, fontname)
 def load(self):
     if self.isToon:
         self.barGeom = loader.loadModel('phase_3.5/models/gui/exp_bar')
         self.color = self.style.getHeadColor()
         self.bgBar = DirectFrame(parent=base.a2dBottomLeft,
                                  relief=None,
                                  geom=self.barGeom,
                                  pos=(.6, 0, .3),
                                  geom_scale=(0.3, 0.25, 0.1),
                                  geom_color=self.color)
         self.expBar = DirectWaitBar(parent=self.bgBar,
                                     guiId='expBar',
                                     pos=(0.0, 0, 0),
                                     relief=DGG.SUNKEN,
                                     frameSize=(-2.0, 2.0, -0.1, 0.1),
                                     borderWidth=(0.01, 0.01),
                                     scale=0.25,
                                     range=self.maxExp,
                                     sortOrder=50,
                                     frameColor=(0.5, 0.5, 0.5, 0.5),
                                     barColor=(0.0, 1.0, 0.0, 0.5),
                                     text=str(self.exp) + '/' +
                                     str(self.maxExp),
                                     text_scale=0.2,
                                     text_fg=(1, 1, 1, 1),
                                     text_align=TextNode.ACenter,
                                     text_pos=(0, -0.05))
         self.expBar['value'] = self.exp
         if self.level == ToontownGlobals.MaxToonLevel:
             self.expBar['range'] = 1
             self.expBar['value'] = 1
             self.expBar['text'] = 'MAX'
         self.levelLabel = OnscreenText(
             parent=self.bgBar,
             text=TTLocalizer.ExpBarLevel + str(self.level + 1),
             pos=(0.0, 0.05),
             scale=0.05,
             font=ToontownGlobals.getBuildingNametagFont(),
             fg=(1, 1, 1, 1))
         self.levelLabel.hide()
         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'),
                       gui.find('**/tt_t_gui_mat_shuffleArrowUp'),
                       gui.find('**/tt_t_gui_mat_shuffleArrowDisabled'))
         self.visToggle = DirectButton(parent=self.bgBar,
                                       relief=None,
                                       geom=arrowImage,
                                       hpr=(0, 0, 0),
                                       pos=(.53, 0, 0),
                                       scale=(0.4, 0.4, 0.4),
                                       command=self.toggleVis)
         if not settings.get('experienceBarMode'):
             self.hide()
 def getFontByName(self, fontname):
     if fontname == "toon":
         return ToontownGlobals.getToonFont()
     elif fontname == "building":
         return ToontownGlobals.getBuildingNametagFont()
     elif fontname == "minnie":
         return ToontownGlobals.getMinnieFont()
     elif fontname == "suit":
         return ToontownGlobals.getSuitFont()
     else:
         return MagicWordManager.MagicWordManager.getFontByName(self, fontname)
Exemple #12
0
 def getFontByName(self, fontname):
     if fontname == "toon":
         return ToontownGlobals.getToonFont()
     elif fontname == "building":
         return ToontownGlobals.getBuildingNametagFont()
     elif fontname == "minnie":
         return ToontownGlobals.getMinnieFont()
     elif fontname == "suit":
         return ToontownGlobals.getSuitFont()
     else:
         return MagicWordManager.MagicWordManager.getFontByName(self, fontname)
Exemple #13
0
    def __setupFloorMat(self, changeColor=True):

        if self.floorMat:
            self.floorMat.removeNode()
            del self.floorMat
            self.floorMat = None

        mat = self.house.find("**/mat")
        if changeColor:
            mat.setColor(0.400, 0.357, 0.259, 1.000)

        color = HouseGlobals.houseColors[self.housePosInd]

        matText = TextNode('matText')
        matText.setTextColor(color[0], color[1], color[2], 1)
        matText.setAlign(matText.ACenter)
        matText.setFont(ToontownGlobals.getBuildingNametagFont())
        matText.setShadowColor(0, 0, 0, 1)
        matText.setBin('fixed')
        if TTLocalizer.BuildingNametagShadow:
            matText.setShadow(*TTLocalizer.BuildingNametagShadow)
        matText.setWordwrap(10.0)
        xScale = 1.0
        numLines = 0
        if (self.name == ""):
            # don't bother putting an empty string up
            return
        else:
            # make the name fit nicely on the floor mat
            houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(
                self.name)

        matText.setText(houseName)
        self.matText = matText

        # Since the text is wordwrapped, it may flow over more
        # than one line.  Try to adjust the scale and position of
        # the sign accordingly.
        textHeight = matText.getHeight() - 2
        textWidth = matText.getWidth()
        xScale = 1.0
        if textWidth > 8:
            xScale = 8.0 / textWidth
        mat_origin = self.house.find("**/mat_origin")
        pos = mat_origin.getPos()
        mat_origin.setPosHpr(pos[0] - .15 * textHeight, pos[1], pos[2], 90,
                             -90, 0)
        self.floorMat = mat_origin.attachNewNode(self.matText)
        self.floorMat.setDepthWrite(0)
        self.floorMat.setPos(0, -.025, 0)
        self.floorMat.setScale(.45 * xScale)
Exemple #14
0
 def createStat(self, y, x=-0.8):
     if x < 0:
         align = TextNode.ALeft
     else:
         align = TextNode.ARight
     row = DirectLabel(parent=self.statsPageNode,
                       relief=None,
                       text_align=align,
                       text='',
                       text_scale=0.045,
                       text_font=ToontownGlobals.getBuildingNametagFont(),
                       text_wordwrap=16,
                       text_style=3)
     row.setPos(x, 0, y)
     return row
 def load(self, loadModels = 1, arenaModel = 'partyCatchTree'):
     self.notify.info('load()')
     DistributedPartyCatchActivity.notify.debug('PartyCatch: load')
     self.activityFSM = CatchActivityFSM(self)
     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')
 def setupNametag(self):
     if self.nametag == None:
         self.nametag = NametagGroup()
         self.nametag.setFont(ToontownGlobals.getBuildingNametagFont())
         if TTLocalizer.BuildingNametagShadow:
             self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow)
         self.nametag.setContents(Nametag.CName)
         self.nametag.setColorCode(NametagGroup.CCSuitBuilding)
         self.nametag.setActive(0)
         self.nametag.setAvatar(self.getElevatorModel())
         name = self.cr.playGame.dnaStore.getTitleFromBlockNumber(self.bldg.block)
         if not name:
             name = TTLocalizer.CogsInc
         else:
             name += TTLocalizer.CogsIncExt
         self.nametag.setName(name)
         self.nametag.manage(base.marginManager)
 def setupNametag(self):
     if not self.wantsNametag():
         return
     if self.nametag == None:
         self.nametag = NametagGroup()
         self.nametag.setFont(ToontownGlobals.getBuildingNametagFont())
         if TTLocalizer.BuildingNametagShadow:
             self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow)
         self.nametag.setContents(Nametag.CName)
         self.nametag.setColorCode(NametagGroup.CCToonBuilding)
         self.nametag.setActive(0)
         self.nametag.setAvatar(self.getDoorNodePath())
         self.nametag.setObjectCode(self.block)
         name = self.cr.playGame.dnaData.getBlock(self.block).title
         self.nametag.setName(name)
         self.nametag.manage(base.marginManager)
     return
Exemple #18
0
    def attachHostNameToSign(self, locator):
        if (self.hostName == ""):
            # don't bother putting an empty string up
            return
        nameText = TextNode('nameText')
        nameText.setCardAsMargin(0.1, 0.1, 0.1, 0.1)
        nameText.setCardDecal(True)
        nameText.setCardColor(1.0, 1.0, 1.0, 0.0)

        r = 232.0 /255.0 #self.randomGenerator.random()
        g = 169.0 / 255.0  #self.randomGenerator.random()
        b = 23.0 / 255.0 #self.randomGenerator.random()
        nameText.setTextColor(r,g,b,1)
        nameText.setAlign(nameText.ACenter)
        nameText.setFont(ToontownGlobals.getBuildingNametagFont())
        nameText.setShadowColor(0, 0, 0, 1)
        nameText.setBin('fixed')
        if TTLocalizer.BuildingNametagShadow:
            nameText.setShadow(*TTLocalizer.BuildingNametagShadow)
        nameWordWrap = 11.0
        nameText.setWordwrap(nameWordWrap)
        scaleMult = 0.48
        #xScale = 1.0 * scaleMult
        #numLines = 0

        houseName = self.hostName

        nameText.setText(houseName)
        #self.nameText = nameText

        # Since the text is wordwrapped, it may flow over more
        # than one line.  Try to adjust the scale and position of
        # the sign accordingly.
        #textHeight = nameText.getHeight() - 2
        textWidth = nameText.getWidth()
        xScale = 1.0 * scaleMult
        if textWidth > nameWordWrap:
            xScale = nameWordWrap / textWidth * scaleMult

        sign_origin = locator # self.house.find("**/sign_origin")
        #pos = sign_origin.getPos()
        #sign_origin.setPosHpr(pos[0],pos[1],pos[2]+.15*textHeight,90,0,0)
        namePlate = sign_origin.attachNewNode(nameText)
        namePlate.setDepthWrite(0)
        namePlate.setPos(0,0,0)
        namePlate.setScale(xScale)
Exemple #19
0
 def setupNametag(self):
     if not self.wantsNametag():
         return
     if self.nametag is None:
         self.nametag = NametagGroup()
         self.nametag.setFont(ToontownGlobals.getBuildingNametagFont())
         if TTLocalizer.BuildingNametagShadow:
             self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow)
         self.nametag.setContents(Nametag.CName)
         self.nametag.setColorCode(NametagGroup.CCToonBuilding)
         self.nametag.setActive(0)
         self.nametag.setAvatar(self.getDoorNodePath())
         self.nametag.setObjectCode(self.block)
         name = self.cr.playGame.dnaData.getBlock(self.block).title
         self.nametag.setName(name)
         self.nametag.manage(base.marginManager)
     return
Exemple #20
0
 def _DistributedHouse__setupNamePlateCustom(self):
     self.notify.debug('__setupNamePlateCustom')
     if self.namePlate:
         self.namePlate.removeNode()
         del self.namePlate
         self.namePlate = None
     
     nameText = TextNode('nameText')
     nameText.setCardAsMargin(0.10000000000000001, 0.10000000000000001, 0.10000000000000001, 0.10000000000000001)
     nameText.setCardDecal(True)
     nameText.setCardColor(1.0, 1.0, 1.0, 0.0)
     r = self.randomGenerator.random()
     g = self.randomGenerator.random()
     b = self.randomGenerator.random()
     nameText.setTextColor(r, g, b, 1)
     nameText.setAlign(nameText.ACenter)
     nameText.setFont(ToontownGlobals.getBuildingNametagFont())
     nameText.setShadowColor(0, 0, 0, 1)
     nameText.setBin('fixed')
     if TTLocalizer.BuildingNametagShadow:
         nameText.setShadow(*TTLocalizer.BuildingNametagShadow)
     
     nameText.setWordwrap(16.0)
     xScale = 1.0
     numLines = 0
     if self.name == '':
         return None
     else:
         houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(self.name)
     nameText.setText(houseName)
     self.nameText = nameText
     textHeight = nameText.getHeight() - 2
     textWidth = nameText.getWidth()
     xScale = 1.0
     if textWidth > 16:
         xScale = 16.0 / textWidth
     
     sign_origin = self.house.find('**/sign_origin')
     pos = sign_origin.getPos()
     sign_origin.setPosHpr(pos[0], pos[1], pos[2] + 0.14999999999999999 * textHeight, 90, 0, 0)
     self.namePlate = sign_origin.attachNewNode(self.nameText)
     self.namePlate.setDepthWrite(0)
     self.namePlate.setPos(0, -0.050000000000000003, 0)
     self.namePlate.setScale(xScale)
     return nameText
Exemple #21
0
 def __setupNametag(self):
     if self.nametag:
         self.clearNametag()
     if self.name == '':
         houseName = ''
     else:
         houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(self.name)
     self.nametag = NametagGroup()
     self.nametag.setFont(ToontownGlobals.getBuildingNametagFont())
     if TTLocalizer.BuildingNametagShadow:
         self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow)
     self.nametag.setContents(Nametag.CName)
     self.nametag.setColorCode(NametagGroup.CCToonBuilding)
     self.nametag.setActive(0)
     self.nametag.setAvatar(self.house)
     self.nametag.setObjectCode(self.doId)
     self.nametag.setName(houseName)
     self.nametag.manage(base.marginManager)
 def __setupNametag(self):
     if self.nametag:
         self.clearNametag()
     if self.name == '':
         houseName = ''
     else:
         houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(self.name)
     self.nametag = NametagGroup()
     self.nametag.setFont(ToontownGlobals.getBuildingNametagFont())
     if TTLocalizer.BuildingNametagShadow:
         self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow)
     self.nametag.setContents(Nametag.CName)
     self.nametag.setColorCode(NametagGroup.CCHouseBuilding)
     self.nametag.setActive(0)
     self.nametag.setAvatar(self.house)
     self.nametag.setObjectCode(self.doId)
     self.nametag.setName(houseName)
     self.nametag.manage(base.marginManager)
Exemple #23
0
 def load(self):
     if self.isToon:
         self.barGeom = loader.loadModel('phase_3.5/models/gui/exp_bar')
         self.color = self.style.getHeadColor()
         self.bgBar = DirectFrame(relief=None,
                                  geom=self.barGeom,
                                  pos=(0.0, 0, -0.95),
                                  geom_scale=(0.3, 0.25, 0.1),
                                  geom_color=self.color)
         self.expBar = DirectWaitBar(parent=self.bgBar,
                                     guiId='expBar',
                                     pos=(0.0, 0, 0),
                                     relief=DGG.SUNKEN,
                                     frameSize=(-2.0, 2.0, -0.1, 0.1),
                                     borderWidth=(0.01, 0.01),
                                     scale=0.25,
                                     range=self.maxExp,
                                     sortOrder=50,
                                     frameColor=(0.5, 0.5, 0.5, 0.5),
                                     barColor=(0.0, 1.0, 0.0, 0.5),
                                     text=str(self.exp) + '/' +
                                     str(self.maxExp),
                                     text_scale=0.2,
                                     text_fg=(1, 1, 1, 1),
                                     text_align=TextNode.ACenter,
                                     text_pos=(0, -0.05))
         self.expBar['value'] = self.exp
         if self.level == ToontownGlobals.MaxToonLevel:
             self.expBar['range'] = 1
             self.expBar['value'] = 1
             self.expBar['text'] = 'MAX'
         self.levelLabel = OnscreenText(
             parent=self.bgBar,
             text=TTLocalizer.ExpBarLevel + str(self.level + 1),
             pos=(0.0, 0.05),
             scale=0.05,
             font=ToontownGlobals.getBuildingNametagFont(),
             fg=(1, 1, 1, 1))
         self.levelLabel.hide()
         gui = loader.loadModel('phase_3/models/gui/tt_m_gui_mat_mainGui')
         if not settings.get('experienceBarMode'):
             self.hide()
 def __setupNamePlateCustom(self):
     self.notify.debug('__setupNamePlateCustom')
     if self.namePlate:
         self.namePlate.removeNode()
         del self.namePlate
         self.namePlate = None
     nameText = TextNode('nameText')
     nameText.setCardAsMargin(0.1, 0.1, 0.1, 0.1)
     nameText.setCardDecal(True)
     nameText.setCardColor(1.0, 1.0, 1.0, 0.0)
     r = self.randomGenerator.random()
     g = self.randomGenerator.random()
     b = self.randomGenerator.random()
     nameText.setTextColor(r, g, b, 1)
     nameText.setAlign(nameText.ACenter)
     nameText.setFont(ToontownGlobals.getBuildingNametagFont())
     nameText.setShadowColor(0, 0, 0, 1)
     nameText.setBin('fixed')
     if TTLocalizer.BuildingNametagShadow:
         nameText.setShadow(*TTLocalizer.BuildingNametagShadow)
     nameText.setWordwrap(16.0)
     xScale = 1.0
     numLines = 0
     if self.name == '':
         return
     else:
         houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(self.name)
     nameText.setText(houseName)
     self.nameText = nameText
     textHeight = nameText.getHeight() - 2
     textWidth = nameText.getWidth()
     xScale = 1.0
     if textWidth > 16:
         xScale = 16.0 / textWidth
     sign_origin = self.house.find('**/sign_origin')
     pos = sign_origin.getPos()
     sign_origin.setPosHpr(pos[0], pos[1], pos[2] + 0.15 * textHeight, 90, 0, 0)
     self.namePlate = sign_origin.attachNewNode(self.nameText)
     self.namePlate.setDepthWrite(0)
     self.namePlate.setPos(0, -0.05, 0)
     self.namePlate.setScale(xScale)
     return nameText
Exemple #25
0
 def _DistributedHouse__setupFloorMat(self, changeColor = True):
     if self.floorMat:
         self.floorMat.removeNode()
         del self.floorMat
         self.floorMat = None
     
     mat = self.house.find('**/mat')
     if changeColor:
         mat.setColor(0.40000000000000002, 0.35699999999999998, 0.25900000000000001, 1.0)
     
     color = HouseGlobals.houseColors[self.housePosInd]
     matText = TextNode('matText')
     matText.setTextColor(color[0], color[1], color[2], 1)
     matText.setAlign(matText.ACenter)
     matText.setFont(ToontownGlobals.getBuildingNametagFont())
     matText.setShadowColor(0, 0, 0, 1)
     matText.setBin('fixed')
     if TTLocalizer.BuildingNametagShadow:
         matText.setShadow(*TTLocalizer.BuildingNametagShadow)
     
     matText.setWordwrap(10.0)
     xScale = 1.0
     numLines = 0
     if self.name == '':
         return None
     else:
         houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(self.name)
     matText.setText(houseName)
     self.matText = matText
     textHeight = matText.getHeight() - 2
     textWidth = matText.getWidth()
     xScale = 1.0
     if textWidth > 8:
         xScale = 8.0 / textWidth
     
     mat_origin = self.house.find('**/mat_origin')
     pos = mat_origin.getPos()
     mat_origin.setPosHpr(pos[0] - 0.14999999999999999 * textHeight, pos[1], pos[2], 90, -90, 0)
     self.floorMat = mat_origin.attachNewNode(self.matText)
     self.floorMat.setDepthWrite(0)
     self.floorMat.setPos(0, -0.025000000000000001, 0)
     self.floorMat.setScale(0.45000000000000001 * xScale)
 def setupNametag(self):
     if self.nametag == None:
         self.nametag = NametagGroup()
         self.nametag.setFont(ToontownGlobals.getBuildingNametagFont())
         if TTLocalizer.BuildingNametagShadow:
             self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow)
         self.nametag.hideChat()
         self.nametag.hideThought()
         nametagColor = NametagGlobals.NametagColors[NametagGlobals.CCSuitBuilding]
         self.nametag.setNametagColor(nametagColor)
         self.nametag.setActive(False)
         self.nametag.setAvatar(self.getElevatorModel())
         name = self.cr.playGame.dnaStore.getTitleFromBlockNumber(self.bldg.block)
         if not name:
             name = TTLocalizer.CogsInc
         else:
             name += TTLocalizer.CogsIncExt
         self.nametag.setText(name)
         self.nametag.manage(base.marginManager)
         self.nametag.updateAll()
 def setupNametag(self):
     if self.nametag == None:
         self.nametag = NametagGroup()
         self.nametag.setFont(ToontownGlobals.getBuildingNametagFont())
         if TTLocalizer.BuildingNametagShadow:
             self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow)
         self.nametag.hideChat()
         self.nametag.hideThought()
         nametagColor = NametagGlobals.NametagColors[NametagGlobals.CCSuitBuilding]
         self.nametag.setNametagColor(nametagColor)
         self.nametag.setActive(False)
         self.nametag.setAvatar(self.getElevatorModel())
         name = self.cr.playGame.dnaStore.getTitleFromBlockNumber(self.bldg.block)
         if not name:
             name = TTLocalizer.CogsInc
         else:
             name += TTLocalizer.CogsIncExt
         self.nametag.setText(name)
         self.nametag.manage(base.marginManager)
         self.nametag.updateAll()
Exemple #28
0
 def __setupNametag(self):
     if self.nametag:
         self.clearNametag()
     if self.name == '':
         houseName = ''
     else:
         houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(self.name)
     self.nametag = NametagGroup()
     self.nametag.setNametag3d(None)
     self.nametag.setFont(ToontownGlobals.getBuildingNametagFont())
     if TTLocalizer.BuildingNametagShadow:
         self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow)
     self.nametag.hideChat()
     self.nametag.hideThought()
     nametagColor = NametagGlobals.NametagColors[NametagGlobals.CCToonBuilding]
     self.nametag.setNametagColor(nametagColor)
     self.nametag.setActive(False)
     self.nametag.setAvatar(self.house)
     self.nametag.setText(houseName)
     self.nametag.manage(base.marginManager)
     self.nametag.updateAll()
 def __setupNametag(self):
     if self.nametag:
         self.clearNametag()
     if self.name == '':
         houseName = ''
     else:
         houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(self.name)
     self.nametag = NametagGroup()
     self.nametag.setNametag3d(None)
     self.nametag.setFont(ToontownGlobals.getBuildingNametagFont())
     if TTLocalizer.BuildingNametagShadow:
         self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow)
     self.nametag.hideChat()
     self.nametag.hideThought()
     nametagColor = NametagGlobals.NametagColors[NametagGlobals.CCToonBuilding]
     self.nametag.setNametagColor(nametagColor)
     self.nametag.setActive(False)
     self.nametag.setAvatar(self.house)
     self.nametag.setText(houseName)
     self.nametag.manage(base.marginManager)
     self.nametag.updateAll()
Exemple #30
0
 def setupNametag(self):
     assert (self.debugPrint("setupNametag()"))
     if not self.wantsNametag():
         return
     if self.nametag == None:
         self.nametag = NametagGroup()
         self.nametag.setFont(ToontownGlobals.getBuildingNametagFont())
         if TTLocalizer.BuildingNametagShadow:
             self.nametag.setShadow(*TTLocalizer.BuildingNametagShadow)
         self.nametag.setContents(Nametag.CName)
         self.nametag.setColorCode(NametagGroup.CCToonBuilding)
         self.nametag.setActive(0)
         self.nametag.setAvatar(self.getDoorNodePath())
         # Since some buildings have multiple doors for the same
         # building, we'll apply a uniquifying code so the
         # building doesn't appear to have multiple nametags.
         # Only the nearest door will be tagged.
         self.nametag.setObjectCode(self.block)
         name = self.cr.playGame.dnaStore.getTitleFromBlockNumber(
             self.block)
         self.nametag.setName(name)
         self.nametag.manage(base.marginManager)
 def __setupFloorMat(self, changeColor = True):
     if self.floorMat:
         self.floorMat.removeNode()
         del self.floorMat
         self.floorMat = None
     mat = self.house.find('**/mat')
     if changeColor:
         mat.setColor(0.4, 0.357, 0.259, 1.0)
     color = HouseGlobals.houseColors[self.housePosInd]
     matText = TextNode('matText')
     matText.setTextColor(color[0], color[1], color[2], 1)
     matText.setAlign(matText.ACenter)
     matText.setFont(ToontownGlobals.getBuildingNametagFont())
     matText.setShadowColor(0, 0, 0, 1)
     matText.setBin('fixed')
     if TTLocalizer.BuildingNametagShadow:
         matText.setShadow(*TTLocalizer.BuildingNametagShadow)
     matText.setWordwrap(10.0)
     xScale = 1.0
     numLines = 0
     if self.name == '':
         return
     else:
         houseName = TTLocalizer.AvatarsHouse % TTLocalizer.GetPossesive(self.name)
     matText.setText(houseName)
     self.matText = matText
     textHeight = matText.getHeight() - 2
     textWidth = matText.getWidth()
     xScale = 1.0
     if textWidth > 8:
         xScale = 8.0 / textWidth
     mat_origin = self.house.find('**/mat_origin')
     pos = mat_origin.getPos()
     mat_origin.setPosHpr(pos[0] - 0.15 * textHeight, pos[1], pos[2], 90, -90, 0)
     self.floorMat = mat_origin.attachNewNode(self.matText)
     self.floorMat.setDepthWrite(0)
     self.floorMat.setPos(0, -.025, 0)
     self.floorMat.setScale(0.45 * xScale)
     return
    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')
 def __init__(self, tracks, timeout):
     DirectFrame.__init__(self,
                          relief=None,
                          geom=DGG.getDefaultDialogGeom(),
                          geom_color=Vec4(0.8, 0.6, 0.4, 1),
                          geom_scale=(1.5, 1, 1.5),
                          geom_hpr=(0, 0, -90),
                          pos=(-0.85, 0, 0))
     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'))
     self.downArrow = DirectButton(parent=self,
                                   relief=None,
                                   image=arrowImage,
                                   pos=(-0.30, 0, -0.5),
                                   command=self.setPage,
                                   extraArgs=[-1])
     self.upArrow = DirectButton(parent=self,
                                 relief=None,
                                 image=arrowImage,
                                 pos=(0.30, 0, -0.5),
                                 scale=-1,
                                 command=self.setPage,
                                 extraArgs=[1])
     gui.removeNode()
     self.initialiseoptions(TrackChoiceGui)
     guiButton = loader.loadModel('phase_3/models/gui/quit_button')
     self.cancelButton = DirectButton(
         parent=self,
         relief=None,
         image=(guiButton.find('**/QuitBtn_UP'),
                guiButton.find('**/QuitBtn_DN'),
                guiButton.find('**/QuitBtn_RLVR')),
         image_scale=(0.7, 1, 1),
         text=TTLocalizer.TrackChoiceGuiCancel,
         pos=(0.4, 0, -0.625),
         text_scale=0.06,
         text_pos=(0, -0.02),
         command=self.chooseTrack,
         extraArgs=[-1])
     guiButton.removeNode()
     self.trackName = DirectLabel(
         parent=self,
         relief=None,
         pos=(0, 0, -0.55),
         text='',
         text_font=ToontownGlobals.getBuildingNametagFont(),
         text_scale=0.1,
         text_fg=(1, 1, 1, 1))
     self.index = 0
     self.timer = ToontownTimer.ToontownTimer()
     self.timer.reparentTo(self)
     self.timer.setScale(0.35)
     self.timer.setPos(0, 0, 0.6)
     self.timer.countdown(timeout, self.timeout)
     self.trackChoicePosters = []
     trackAccess = base.localAvatar.getTrackAccess()
     for trackId in xrange(ToontownBattleGlobals.NUM_GAG_TRACKS):
         if trackAccess[trackId] == 0:
             tp = TrackPoster(trackId, self.chooseTrack)
             tp.reparentTo(self)
             self.trackChoicePosters.append(tp)
     for track in self.trackChoicePosters:
         track.setPos(0, 0, 0)
         track.setScale(1.5)
         track.hide()
     self.setPage(self.index)
     return
    def load(self):
        self.title = DirectLabel(parent=self,
                                 relief=None,
                                 text=TTLocalizer.TrackPageTitle,
                                 text_scale=0.1,
                                 pos=(0, 0, 0.65))
        self.pointDesc = DirectLabel(parent=self,
                                     relief=None,
                                     text=TTLocalizer.TrackPageSubtitle,
                                     text_scale=0.075,
                                     pos=(0, 0, 0.55))
        self.pointLabel = DirectLabel(
            parent=self,
            relief=None,
            text=str(base.localAvatar.getTrainingPoints()),
            text_font=ToontownGlobals.getBuildingNametagFont(),
            text_fg=(0, 0.75, 0.75, 1),
            text_scale=0.1,
            pos=(0, 0, 0.45))
        self.trackRows = []
        self.trackNameLabels = []
        self.trackProgressLabels = []
        self.buttons = []
        TrackYOffset = 0.35
        TrackYSpacing = -0.12
        ButtonXOffset = -0.28
        ButtonXSpacing = 0.26
        self.buttonModels = loader.loadModel(
            'phase_3.5/models/gui/inventory_gui')
        self.upButton = self.buttonModels.find('**/InventoryButtonUp')
        self.downButton = self.buttonModels.find('**/InventoryButtonDown')
        self.rolloverButton = self.buttonModels.find(
            '**/InventoryButtonRollover')
        self.flatButton = self.buttonModels.find('**/InventoryButtonFlat')
        self.rowModel = self.buttonModels.find('**/TrainingPointRow')
        for track in xrange(len(ToontownBattleGlobals.Tracks)):
            trackFrame = DirectFrame(
                parent=self,
                image=self.rowModel,
                scale=(1.05, 0.8, 1.1),
                pos=(0, 0.3, TrackYOffset + track * TrackYSpacing),
                image_color=(ToontownBattleGlobals.TrackColors[track][0],
                             ToontownBattleGlobals.TrackColors[track][1],
                             ToontownBattleGlobals.TrackColors[track][2], 1),
                state=DGG.NORMAL,
                relief=None)
            self.trackRows.append(trackFrame)
            self.trackNameLabels.append(
                DirectLabel(text=TextEncoder.upper(
                    ToontownBattleGlobals.Tracks[track]),
                            parent=self.trackRows[track],
                            pos=(-0.78825, -0.1, 0.01),
                            scale=TTLocalizer.INtrackNameLabels,
                            relief=None,
                            text_fg=(0.2, 0.2, 0.2, 1),
                            text_font=ToontownGlobals.getInterfaceFont(),
                            text_align=TextNode.ALeft,
                            textMayChange=0))
            self.trackProgressLabels.append(
                DirectLabel(text='',
                            parent=self.trackRows[track],
                            pos=(-0.78825, -0.1, -0.025),
                            scale=TTLocalizer.INtrackNameLabels / 2,
                            relief=None,
                            text_fg=(0.2, 0.2, 0.2, 1),
                            text_font=ToontownGlobals.getInterfaceFont(),
                            text_align=TextNode.ALeft,
                            textMayChange=0))
            self.buttons.append([])
            for item in xrange(5):
                button = DirectButton(
                    parent=self.trackRows[track],
                    image=(self.upButton, self.downButton, self.rolloverButton,
                           self.flatButton),
                    text='',
                    text_scale=0.04,
                    text_align=TextNode.ARight,
                    geom_scale=0.7,
                    geom_pos=(-0.01, -0.1, 0),
                    text_fg=Vec4(1, 1, 1, 1),
                    text_pos=(0.07, -0.04),
                    textMayChange=1,
                    relief=None,
                    image_color=(0, 0.6, 1, 1),
                    image_scale=(1.05, 1, 1),
                    pos=(ButtonXOffset + item * ButtonXSpacing + -0.06825,
                         -0.1, 0),
                    command=self.upgradeMe,
                    extraArgs=[track])
                self.buttons[track].append(button)

        self.accept('skillPointChange', self.updatePage)
Exemple #35
0
    def load(self):
        normalTextColor = (0.3, 0.25, 0.2, 1)
        buttonXOffset = 0.15
        buttonYOffset = 0.15
        self.buttonsOne = []
        self.buttonsTwo = []
        self.gui = loader.loadModel('phase_3/models/gui/tt_m_gui_mat_mainGui')
        guiRArrowUp = self.gui.find('**/tt_t_gui_mat_arrowUp')
        guiRArrowRollover = self.gui.find('**/tt_t_gui_mat_arrowUp')
        guiRArrowDown = self.gui.find('**/tt_t_gui_mat_arrowDown')
        guiRArrowDisabled = self.gui.find('**/tt_t_gui_mat_arrowDisabled')
        shuffleFrame = self.gui.find('**/tt_t_gui_mat_shuffleFrame')
        shuffleUp = self.gui.find('**/tt_t_gui_mat_shuffleUp')
        shuffleDown = self.gui.find('**/tt_t_gui_mat_shuffleDown')
        shuffleImage = (self.gui.find('**/tt_t_gui_mat_shuffleArrowUp'),
                        self.gui.find('**/tt_t_gui_mat_shuffleArrowDown'),
                        self.gui.find('**/tt_t_gui_mat_shuffleArrowUp'),
                        self.gui.find('**/tt_t_gui_mat_shuffleArrowDisabled'))
        bookModel = loader.loadModel('phase_3.5/models/gui/stickerbook_gui')
        invModel = loader.loadModel('phase_3.5/models/gui/inventory_icons')
        poster = bookModel.find('**/questCard')
        self.parentFrame = self.getNewFrame()
        self.pgFrame = DirectFrame(parent=self.parentFrame,
                                   image=shuffleFrame,
                                   image_scale=halfButtonInvertScale,
                                   relief=None,
                                   pos=(-3, 0, -0.7),
                                   hpr=(0, 0, -3),
                                   scale=1.1,
                                   frameColor=(1, 1, 1, 1),
                                   text='',
                                   text_scale=0.046875,
                                   text_pos=(-0.001, -0.015),
                                   text_fg=(1, 1, 1, 1))
        self.pgLButton = DirectButton(parent=self.pgFrame,
                                      relief=None,
                                      image=shuffleImage,
                                      image_scale=halfButtonScale,
                                      image1_scale=halfButtonHoverScale,
                                      image2_scale=halfButtonHoverScale,
                                      pos=(-0.2, 0, 0),
                                      command=self.__swapPG,
                                      extraArgs=[-1])
        self.pgRButton = DirectButton(parent=self.pgFrame,
                                      relief=None,
                                      image=shuffleImage,
                                      image_scale=halfButtonInvertScale,
                                      image1_scale=halfButtonInvertHoverScale,
                                      image2_scale=halfButtonInvertHoverScale,
                                      pos=(0.2, 0, 0),
                                      command=self.__swapPG,
                                      extraArgs=[1])
        self.pgInfo = DirectFrame(
            parent=self.pgFrame,
            relief=None,
            text='Starting Playground:',
            text_font=ToontownGlobals.getBuildingNametagFont(),
            text_scale=0.05,
            text_fg=(1, 1, 1, 1),
            text_wordwrap=8.0,
            pos=(0, 0, 0.25))
        self.gagFrame = DirectFrame(
            parent=self.parentFrame,
            image=poster,
            image_scale=(1, 1, 3),
            relief=None,
            pos=(0, 0, -0.5),
            scale=1.1,
            frameColor=(1, 1, 1, 1),
            text='',
            text_scale=0.046875,
            text_pos=(-0.001, -0.015),
            text_font=ToontownGlobals.getBuildingNametagFont(),
            text_fg=(1, 1, 1, 1))
        for trackId in xrange(len(ToontownBattleGlobals.Tracks)):
            iconGeom = invModel.find(
                '**/' + ToontownBattleGlobals.AvPropsNew[trackId][0])
            if trackId == 4 or trackId == 5:
                button = DirectButton(parent=self.gagFrame,
                                      image=iconGeom,
                                      relief=None,
                                      pos=(0, 0,
                                           .45 - (buttonYOffset * trackId)),
                                      image_color=(0.3, 0.3, 0.3, 1),
                                      state=DGG.DISABLED)
                button2 = DirectButton(parent=self.gagFrame,
                                       image=iconGeom,
                                       relief=None,
                                       pos=(buttonXOffset, 0,
                                            .45 - (buttonYOffset * trackId)),
                                       image_color=(0.3, 0.3, 0.3, 1),
                                       state=DGG.DISABLED)
            else:
                button = DirectButton(parent=self.gagFrame,
                                      image=iconGeom,
                                      relief=None,
                                      pos=(0, 0,
                                           .45 - (buttonYOffset * trackId)),
                                      command=self.chooseGag,
                                      extraArgs=[trackId])
                button2 = DirectButton(parent=self.gagFrame,
                                       image=iconGeom,
                                       relief=None,
                                       pos=(buttonXOffset, 0,
                                            .45 - (buttonYOffset * trackId)),
                                       command=self.chooseGag,
                                       extraArgs=[trackId, 1])
            self.buttonsOne.append(button)
            self.buttonsTwo.append(button2)

        self.__swapPG(0)
        self.parentFrame.hide()
Exemple #36
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 #37
0
 def __init__(self, parent=aspect2dp, rotateCard=False, **kw):
     optiondefs = (('NPCID', 'Uninitialized', None), ('relief', None, None),
                   ('doneEvent', None, None))
     self.defineoptions(kw, optiondefs)
     DirectFrame.__init__(self, parent=parent)
     self.initialiseoptions(NPCFriendCard)
     cardModel = loader.loadModel('phase_3.5/models/gui/playingCard')
     self.front = DirectFrame(parent=self,
                              relief=None,
                              image=cardModel.find('**/card_front'))
     self.front.hide()
     self.back = DirectFrame(parent=self,
                             relief=None,
                             image=cardModel.find('**/card_back'),
                             geom=cardModel.find('**/logo'))
     callButtonPosZ = -0.9
     textWordWrap = 16.0
     textScale = 0.4
     textPosZ = 1.15
     nameScale = 0.4
     namePosZ = -0.45
     rarityScale = 0.2
     rarityPosZ = -1.2
     self.NPCHeadDim = 1.2
     self.NPCHeadPosZ = 0.45
     self.sosCountInfoPosZ = -0.9
     self.sosCountInfoScale = 0.4
     self.sosCountInfo2PosZ = -0.9
     self.sosCountInfo2Scale = 0.5
     if rotateCard:
         self.front.component('image0').configure(pos=(0, 0, 0.22),
                                                  hpr=(0, 0, -90),
                                                  scale=1.35)
         self.back.component('image0').configure(hpr=(0, 0, -90),
                                                 scale=(-1.35, 1.35, 1.35))
         callButtonPosZ = -2.1
         textWordWrap = 7.0
         textScale = 0.5
         textPosZ = 2.0
         nameScale = 0.5
         namePosZ = -0.89
         rarityScale = 0.25
         rarityPosZ = -2.4
         self.NPCHeadDim = 1.8
         self.NPCHeadPosZ = 0.4
         self.sosCountInfoPosZ = -2.1
         self.sosCountInfoScale = 0.4
         self.sosCountInfo2PosZ = -2.0
         self.sosCountInfo2Scale = 0.55
     self.sosTypeInfo = DirectLabel(
         parent=self.front,
         relief=None,
         text='',
         text_font=ToontownGlobals.getBuildingNametagFont(),
         text_fg=(1, 1, 1, 1),
         text_scale=textScale,
         text_align=TextNode.ACenter,
         text_wordwrap=textWordWrap,
         pos=(0, 0, textPosZ))
     self.NPCHead = None
     self.NPCName = DirectLabel(parent=self.front,
                                relief=None,
                                text='',
                                text_fg=self.normalTextColor,
                                text_scale=nameScale,
                                text_align=TextNode.ACenter,
                                text_wordwrap=8.0,
                                pos=(0, 0, namePosZ))
     buttonModels = loader.loadModel('phase_3.5/models/gui/inventory_gui')
     upButton = buttonModels.find('**/InventoryButtonUp')
     downButton = buttonModels.find('**/InventoryButtonDown')
     rolloverButton = buttonModels.find('**/InventoryButtonRollover')
     self.sosCallButton = DirectButton(
         parent=self.front,
         relief=None,
         text=TTLocalizer.NPCCallButtonLabel,
         text_fg=self.normalTextColor,
         text_scale=0.28,
         text_align=TextNode.ACenter,
         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),
         image_scale=(4.4, 1, 3.6),
         image_pos=Vec3(0, 0, 0.08),
         pos=(-1.15, 0, callButtonPosZ),
         scale=1.25,
         command=self.__chooseNPCFriend)
     self.sosCallButton.hide()
     self.sosCountInfo = DirectLabel(parent=self.front,
                                     relief=None,
                                     text='',
                                     text_fg=self.normalTextColor,
                                     text_scale=0.75,
                                     text_align=TextNode.ALeft,
                                     textMayChange=1,
                                     pos=(0.0, 0, -1.0))
     star = loader.loadModel('phase_3.5/models/gui/name_star')
     self.rarityStars = []
     for i in xrange(self.maxRarity):
         label = DirectLabel(parent=self.front,
                             relief=None,
                             image=star,
                             image_scale=rarityScale,
                             image_color=Vec4(0.502, 0.251, 0.251, 1.0),
                             pos=(1.1 - i * 0.24, 0, rarityPosZ))
         label.hide()
         self.rarityStars.append(label)