Example #1
0
 def enterPanel(self):
     self.nameText = OnscreenText(text=self.avatarInfo[1], parent=self, pos=(0, 0.2), scale=0.035, wordwrap=8)
     self.nameText.setBin('gui-popup', 60)
     dna = ToonDNA.ToonDNA()
     dna.setDNAStrand(self.avatarInfo[2])
     self.head = ToonHead.ToonHead(base.cr)
     self.head.generateHead(dna.gender, dna.animal, dna.head, 1)
     self.head.setHeadColor(dna.headcolor)
     self.head.reparentTo(self)
     self.head.setDepthWrite(1)
     self.head.setDepthTest(1)
     self.head.setH(180)
     self.head.setScale(self.animal2HeadData[dna.animal][0])
     self.head.setZ(self.animal2HeadData[dna.animal][1])
     self.laffMeter = LaffOMeter()
     r, g, b, _ = dna.headcolor
     self.laffMeter.generate(r, g, b, dna.animal, self.avatarInfo[3], self.avatarInfo[4])
     self.laffMeter.reparentTo(self)
     self.laffMeter.setBin('gui-popup', 60)
     self.laffMeter.setScale(0.045)
     self.laffMeter.setPos(0, 0, -0.1)
     self.friendButton = DirectButton(geom=CIGlobals.getDefaultBtnGeom(), text='Add Friend', scale=0.58, relief=None, text_scale=0.058, geom_scale=(1.25, 0, 0.9), text_pos=(0, -0.0125), parent=self, pos=(0, 0, -0.12), command=self.doAction, extraArgs=['waitOnAvatarFriendListResponse'])
     self.friendButton.setPos(0, 0.0, -0.225)
     self.maybeUpdateFriendButton()
     self.teleportButton = DirectButton(geom=CIGlobals.getDefaultBtnGeom(), text='Teleport', scale=0.58, relief=None, text_scale=0.058, geom_scale=(1.25, 0, 0.9), text_pos=(0, -0.0125), parent=self, pos=(0, 0, -0.12), command=self.doAction, extraArgs=['waitOnAvatarTeleportResponse'])
     self.teleportButton.setPos(0, 0, -0.275)
     self.exitButton = DirectButton(geom=CIGlobals.getCancelBtnGeom(), parent=self, relief=None, scale=0.6, pos=(-0.127, 0.0, -0.3425), command=self.exitClicked)
     return
Example #2
0
 def enterSysMsgSection(self):
     self.book.createPageButtons(None, None)
     self.book.setTitle('System Message')
     geom = CIGlobals.getDefaultBtnGeom()
     self.infoLbl = OnscreenText(
         text='Inform all online players about something.', pos=(0, 0.45))
     self.msgEntry = DirectEntry(
         initialText='System Message...',
         scale=0.055,
         width=15,
         numLines=4,
         command=self.sendSystemMessageCommand,
         focusInCommand=base.localAvatar.chatInput.disableKeyboardShortcuts,
         focusOutCommand=base.localAvatar.chatInput.enableKeyboardShortcuts,
         pos=(-0.4, 0, 0))
     self.sendBtn = DirectButton(geom=geom,
                                 text_scale=0.04,
                                 relief=None,
                                 scale=1.0,
                                 text='Send',
                                 pos=(0, 0, -0.35),
                                 text_pos=(0, -0.01),
                                 command=self.sendSystemMessageCommand)
     self.cancelBtn = DirectButton(geom=geom,
                                   text_scale=0.04,
                                   relief=None,
                                   scale=1.0,
                                   text='Cancel',
                                   pos=(-0.45, 0.15, -0.55),
                                   text_pos=(0, -0.01),
                                   command=self.fsm.request,
                                   extraArgs=['basePage'])
     return
Example #3
0
 def enterSysMsgSection(self):
     self.book.createPageButtons(None, None)
     self.book.setTitle('System Message')
     geom = CIGlobals.getDefaultBtnGeom()
     self.infoLbl = OnscreenText(text='Inform all online players about something.', pos=(0, 0.45))
     self.msgEntry = DirectEntry(initialText='System Message...', scale=0.055, width=15, numLines=4, command=self.sendSystemMessageCommand, focusInCommand=base.localAvatar.chatInput.disableKeyboardShortcuts, focusOutCommand=base.localAvatar.chatInput.enableKeyboardShortcuts, pos=(-0.4, 0, 0))
     self.sendBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text='Send', pos=(0, 0, -0.35), text_pos=(0, -0.01), command=self.sendSystemMessageCommand)
     self.cancelBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text='Cancel', pos=(-0.45, 0.15, -0.55), text_pos=(0, -0.01), command=self.fsm.request, extraArgs=['basePage'])
     return
Example #4
0
 def enterKickSection(self):
     self.book.createPageButtons(None, None)
     self.book.setTitle('Kick Player')
     geom = CIGlobals.getDefaultBtnGeom()
     self.infoLbl = OnscreenText(text='Type the ID of the player you want to boot out.', pos=(0, 0.45))
     self.idEntry = DirectEntry(width=10, scale=0.12, pos=(-0.59, 0, 0.15), command=self.sendKickMessage, focusInCommand=base.localAvatar.chatInput.disableKeyboardShortcuts, focusOutCommand=base.localAvatar.chatInput.enableKeyboardShortcuts)
     self.kickBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text='Kick', pos=(0, 0, -0.15), text_pos=(0, -0.01), command=self.sendKickMessage)
     self.banBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text='Ban', pos=(0, 0, -0.25), text_pos=(0, -0.01), command=self.sendKickMessage, extraArgs=[None, 1])
     self.cancelBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text='Cancel', pos=(-0.45, 0.15, -0.45), text_pos=(0, -0.01), command=self.fsm.request, extraArgs=['basePage'])
     return
Example #5
0
 def enterChooseGun(self):
     font = CIGlobals.getToonFont()
     box = DGG.getDefaultDialogGeom()
     geom = CIGlobals.getDefaultBtnGeom()
     self.container = DirectFrame()
     self.bg = OnscreenImage(image=box, color=(1, 1, 0.75, 1), scale=(1.9, 1.4, 1.4), parent=self.container)
     self.title = OnscreenText(text='Choose A Gun', pos=(0, 0.5, 0), font=font, scale=0.12, parent=self.container)
     self.pistolBtn = DirectButton(geom=geom, text='Pistol', relief=None, text_scale=0.055, text_pos=(0, -0.01), command=self.__gunChoice, extraArgs=['pistol'], pos=(0, 0, 0.35), parent=self.container)
     self.shotgunBtn = DirectButton(geom=geom, text='Shotgun', relief=None, text_scale=0.055, text_pos=(0, -0.01), command=self.__gunChoice, extraArgs=['shotgun'], pos=(0, 0, 0.25), parent=self.container)
     return
Example #6
0
 def createTurretButton(self):
     self.makeTurretBtn = DirectButton(relief=None, geom=CIGlobals.getDefaultBtnGeom(), text='Turret', text_scale=0.055, command=self.handleMakeTurretBtn, pos=(-0.47,
                                                                                                                                                                0,
                                                                                                                                                                0.1), geom_scale=(0.5,
                                                                                                                                                                                  1.0,
                                                                                                                                                                                  1.0), text_pos=(0,
                                                                                                                                                                                                  -0.01), parent=base.a2dBottomRight)
     if base.localAvatar.getPUInventory()[0]:
         self.setGag(base.localAvatar.getPUInventory()[1])
     return
 def createTurretButton(self):
     self.makeTurretBtn = DirectButton(relief=None,
                                       geom=CIGlobals.getDefaultBtnGeom(),
                                       text="Turret",
                                       text_scale=0.055,
                                       command=self.handleMakeTurretBtn,
                                       pos=(-0.47, 0, 0.1),
                                       geom_scale=(0.5, 1.0, 1.0),
                                       text_pos=(0, -0.01),
                                       parent=base.a2dBottomRight)
    def __init__(self, book, parentFSM):
        self.book = book
        self.parentFSM = parentFSM
        StateData.__init__(self, 'namePageDone')
        self.fsm = ClassicFSM('NamePage', [
            State('off', self.enterOff, self.exitOff),
            State('basePage', self.enterBasePage, self.exitBasePage)
        ], 'off', 'off')
        self.fsm.enterInitialState()
        self.parentFSM.getStateNamed('namePage').addChild(self.fsm)
        self.nameServ = base.cr.nameServicesManager
        self.baseRequestIndex = 0
        self.requestsPerCluster = 5

        # GUI elements
        self.requestsContainer = {}
        self.loadingLabel = None
        self.selectedName = None
        self.nameButtons = []
        self.avId2NameData = {}

        geom = CIGlobals.getDefaultBtnGeom()
        self.acceptBtn = DirectButton(
            geom=geom,
            text_scale=0.04,
            relief=None,
            scale=0.5,
            text="Accept",
            pos=(0.5, posY, 0),
            text_pos=(0, -0.01),
            command=self.acceptName,
        )
        self.acceptBtn.hide()
        self.declineBtn = DirectButton(
            geom=geom,
            text_scale=0.04,
            relief=None,
            scale=0.5,
            text="Decline",
            pos=(0.75, posY, 0),
            text_pos=(0, -0.01),
            command=self.declineName,
        )
        self.declineBtn.hide()
        self.avIdLbl = OnscreenText(text="",
                                    scale=0.08,
                                    pos=(0.3, 0, 0.5),
                                    align=TextNode.ACenter)
        self.avIdLbl.hide()
        self.accIdLbl = OnscreenText(text="",
                                     scale=0.08,
                                     pos=(0.3, 0, 0.3),
                                     align=TextNode.ACenter)
        self.accIdLbl.hide()
Example #9
0
    def enterEditGags(self):
        self.initialLoadout = []
        for instance in base.localAvatar.backpack.getLoadout():
            self.initialLoadout.append(instance.getID())

        self.newLoadout = list(self.initialLoadout)
        self.editButton['text'] = 'Stop Editing'
        self.editButton['command'] = self.fsm.request
        self.editButton['extraArgs'] = ['idle']
        self.switchButton = DirectButton(relief=None, image=CIGlobals.getDefaultBtnGeom(), text='Add Gags', text_scale=0.045, text_pos=(0, -0.01), pos=(0.5, 0, -0.4))
        self.editFSM.request('add')
        return
Example #10
0
 def showGagButton(self):
     geom = CIGlobals.getDefaultBtnGeom()
     self.gagThrowBtn = DirectButton(geom=geom,
                                     geom_scale=(0.75, 1, 1),
                                     text="Throw Gag",
                                     text_scale=0.05,
                                     text_pos=(0, -0.01),
                                     relief=None,
                                     parent=base.a2dTopCenter,
                                     pos=(0, 0, -0.1))
     self.gagThrowBtn.setBin('gui-popup', 60)
     self.gagThrowBtn.hide()
Example #11
0
    def createGUI(self):
        for i in xrange(len(GagGlobals.TrackNameById)):
            trackName = GagGlobals.TrackNameById[i]
            self.__makeTrack(trackName)
            for j in xrange(len(GagGlobals.TrackGagNamesByTrackName[trackName])):
                gagName = GagGlobals.TrackGagNamesByTrackName[trackName][j]
                gagId = GagGlobals.gagIdByName[gagName]
                if gagId in base.localAvatar.getBackpackAmmo()[0]:
                    self.__makeGagButton(gagName, trackName)

        self.editButton = DirectButton(relief=None, image=CIGlobals.getDefaultBtnGeom(), text='Edit Loadout', text_scale=0.045, text_pos=(0, -0.01), pos=(-0.5, 0, -0.4))
        self.fsm.request('idle')
        return
 def createTurretButton(self):
     self.makeTurretBtn = DirectButton(
         relief=None,
         geom=CIGlobals.getDefaultBtnGeom(),
         text="Turret",
         text_scale=0.055,
         command=self.handleMakeTurretBtn,
         pos=(-0.47, 0, 0.1),
         geom_scale=(0.5, 1.0, 1.0),
         text_pos=(0, -0.01),
         parent=base.a2dBottomRight,
     )
     return
 def makeSelectionGUI(self):
     font = CIGlobals.getMickeyFont()
     box = loader.loadModel('phase_3/models/gui/dialog_box_gui.bam')
     imp = CIGlobals.getToonFont()
     geom = CIGlobals.getDefaultBtnGeom()
     self.container = DirectFrame()
     self.bg = OnscreenImage(image=box,
                             color=(1, 1, 0.75, 1),
                             scale=(1.9, 1.4, 1.4),
                             parent=self.container)
     self.title = OnscreenText(text='Join  a  Team',
                               pos=(0, 0.5, 0),
                               font=font,
                               scale=0.12,
                               parent=self.container,
                               fg=(1, 0.9, 0.3, 1))
     self.btnFrame = DirectFrame(parent=self.container, pos=(0.14, 0, 0))
     self.team1BtnFrame = DirectFrame(parent=self.btnFrame,
                                      pos=(-0.5, 0, 0))
     self.team2BtnFrame = DirectFrame(parent=self.btnFrame,
                                      pos=(0.22, 0, 0))
     self.team1Btn = DirectButton(parent=self.team1BtnFrame,
                                  relief=None,
                                  pressEffect=0,
                                  image=self.team1BtnImg,
                                  image_scale=(0.9, 1, 1),
                                  scale=0.4,
                                  command=self.choseTeam,
                                  extraArgs=[TEAM1])
     self.team1Plyrs_Lbl = OnscreenText(parent=self.team1BtnFrame,
                                        text=str(self.playersByTeam[TEAM1]),
                                        pos=(0, -0.46, 0),
                                        font=imp)
     self.team2Btn = DirectButton(parent=self.team2BtnFrame,
                                  relief=None,
                                  pressEffect=0,
                                  image=self.team2BtnImg,
                                  image_scale=(0.9, 1, 1),
                                  scale=0.4,
                                  command=self.choseTeam,
                                  extraArgs=[TEAM2])
     self.team2Plyrs_Lbl = OnscreenText(parent=self.team2BtnFrame,
                                        text=str(self.playersByTeam[TEAM2]),
                                        pos=(0, -0.46, 0),
                                        font=imp)
     self.teamFull_Lbl = OnscreenText(parent=self.container,
                                      text='',
                                      pos=(0, -0.6, 0),
                                      font=imp)
     return
    def enterEditGags(self):
        self.initialLoadout = []
        for instance in base.localAvatar.backpack.getLoadout():
            self.initialLoadout.append(instance.getID())

        self.newLoadout = list(self.initialLoadout)
        self.editButton['text'] = 'Stop Editing'
        self.editButton['command'] = self.fsm.request
        self.editButton['extraArgs'] = ['idle']
        self.switchButton = DirectButton(relief=None, image=CIGlobals.getDefaultBtnGeom(), text='Add Gags', text_scale=0.045, text_pos=(0,
                                                                                                                                        -0.01), pos=(0.5,
                                                                                                                                                     0,
                                                                                                                                                     -0.4))
        self.editFSM.request('add')
        return
Example #15
0
 def enter(self):
     Shop.enter(self)
     self.starting_turret = base.localAvatar.getPUInventory()[0]
     self.turret_btn = DirectButton(relief=None,
                                    geom=CIGlobals.getDefaultBtnGeom(),
                                    text="Turret",
                                    text_scale=0.055,
                                    command=self.purchasePU,
                                    extraArgs=[0])
     self.turret_lbl = DirectLabel(relief=None,
                                   scale=0.05,
                                   text="{0}/{1}".format(
                                       base.localAvatar.getPUInventory()[0],
                                       self.maxPU),
                                   pos=(0, 0, -0.1))
    def createGUI(self):
        for i in xrange(len(GagGlobals.TrackNameById)):
            trackName = GagGlobals.TrackNameById[i]
            self.__makeTrack(trackName)
            for j in xrange(len(GagGlobals.TrackGagNamesByTrackName[trackName])):
                gagName = GagGlobals.TrackGagNamesByTrackName[trackName][j]
                gagId = GagGlobals.gagIdByName[gagName]
                if base.localAvatar.getBackpack().hasGag(gagId):
                    self.__makeGagButton(gagName, trackName)

        self.editButton = DirectButton(relief=None, image=CIGlobals.getDefaultBtnGeom(), text='Edit Loadout', text_scale=0.045, text_pos=(0,
                                                                                                                                          -0.01), pos=(-0.5,
                                                                                                                                                       0,
                                                                                                                                                       -0.4))
        self.fsm.request('idle')
        return
 def enterChooseGun(self):
     font = CIGlobals.getToonFont()
     box = DGG.getDefaultDialogGeom()
     geom = CIGlobals.getDefaultBtnGeom()
     self.container = DirectFrame()
     self.bg = OnscreenImage(image=box,
                             color=(1, 1, 0.75, 1),
                             scale=(1.9, 1.4, 1.4),
                             parent=self.container)
     self.title = OnscreenText(text='Choose a Gun',
                               pos=(0, 0.5, 0),
                               font=font,
                               scale=0.12,
                               parent=self.container)
     self.pistolBtn = DirectButton(geom=geom,
                                   text='Pistol',
                                   relief=None,
                                   text_scale=0.055,
                                   text_pos=(0, -0.01),
                                   command=self.__gunChoice,
                                   extraArgs=['pistol'],
                                   pos=(0, 0, 0.35),
                                   parent=self.container)
     self.shotgunBtn = DirectButton(geom=geom,
                                    text='Shotgun',
                                    relief=None,
                                    text_scale=0.055,
                                    text_pos=(0, -0.01),
                                    command=self.__gunChoice,
                                    extraArgs=['shotgun'],
                                    pos=(0, 0, 0.25),
                                    parent=self.container)
     self.sniperBtn = DirectButton(geom=geom,
                                   text='Sniper',
                                   relief=None,
                                   text_scale=0.055,
                                   text_pos=(0, -0.01),
                                   command=self.__gunChoice,
                                   extraArgs=['sniper'],
                                   pos=(0, 0, 0.15),
                                   parent=self.container)
     return
Example #18
0
 def enterKickSection(self):
     self.book.createPageButtons(None, None)
     self.book.setTitle('Kick Player')
     geom = CIGlobals.getDefaultBtnGeom()
     self.infoLbl = OnscreenText(
         text='Type the ID of the player you want to boot out.',
         pos=(0, 0.45))
     self.idEntry = DirectEntry(
         width=10,
         scale=0.12,
         pos=(-0.59, 0, 0.15),
         command=self.sendKickMessage,
         focusInCommand=base.localAvatar.chatInput.disableKeyboardShortcuts,
         focusOutCommand=base.localAvatar.chatInput.enableKeyboardShortcuts)
     self.kickBtn = DirectButton(geom=geom,
                                 text_scale=0.04,
                                 relief=None,
                                 scale=1.0,
                                 text='Kick',
                                 pos=(0, 0, -0.15),
                                 text_pos=(0, -0.01),
                                 command=self.sendKickMessage)
     self.banBtn = DirectButton(geom=geom,
                                text_scale=0.04,
                                relief=None,
                                scale=1.0,
                                text='Ban',
                                pos=(0, 0, -0.25),
                                text_pos=(0, -0.01),
                                command=self.sendKickMessage,
                                extraArgs=[None, 1])
     self.cancelBtn = DirectButton(geom=geom,
                                   text_scale=0.04,
                                   relief=None,
                                   scale=1.0,
                                   text='Cancel',
                                   pos=(-0.45, 0.15, -0.45),
                                   text_pos=(0, -0.01),
                                   command=self.fsm.request,
                                   extraArgs=['basePage'])
     return
Example #19
0
 def enterBasePage(self):
     self.book.createPageButtons('releaseNotesPage', None)
     self.book.setTitle('Admin Stuff')
     geom = CIGlobals.getDefaultBtnGeom()
     self.suitSpawnerBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text='', pos=(-0.45, 0.15, 0.5), text_pos=(0, -0.01), command=self.sendSuitCommand, extraArgs=['suitSpawner'])
     self.killCogsBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text='Kill All Cogs', pos=(-0.45, 0.15, 0.4), text_pos=(0, -0.01), command=self.sendSuitCommand, extraArgs=['killCogs'])
     self.makeTournamentBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text='Make Cog Tournament', pos=(-0.45, 0.15, 0.3), text_pos=(0, -0.01), command=self.sendSuitCommand, extraArgs=['tournament'])
     self.makeInvasionBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text='Make Cog Invasion', pos=(-0.45, 0.15, 0.2), text_pos=(0, -0.01), command=self.sendSuitCommand, extraArgs=['invasion'])
     self.makeCogBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text='Make Cog', pos=(-0.45, 0.15, 0.1), text_pos=(0, -0.01), command=self.sendSuitCommand, extraArgs=['suit'])
     self.ghostBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text='', pos=(0.45, 0.15, 0.5), text_pos=(0, -0.01), command=self.changeGhost)
     self.bgBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text='Toggle Background', pos=(0.45, 0.15, 0.4), text_pos=(0, -0.01), command=self.toggleBackground)
     self.idBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text='Toggle Player Ids', pos=(0.45, 0.15, 0.3), text_pos=(0, -0.01), command=self.togglePlayerIds)
     self.kickBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text='Kick Player', pos=(0.45, 0.15, 0.2), text_pos=(0, -0.01), command=self.openKickPage)
     self.systemMsgBtn = DirectButton(geom=geom, text_scale=0.04, relief=None, scale=1.0, text='System Message', pos=(0.45, 0.15, 0.1), text_pos=(0, -0.01), command=self.openSysMsgPage)
     if base.localAvatar.getGhost():
         self.ghostBtn['text'] = 'Turn Ghost Off'
     else:
         self.ghostBtn['text'] = 'Turn Ghost On'
     base.cr.playGame.getPlace().maybeUpdateAdminPage()
     del geom
     return
    def enterMapPage(self):
        if base.localAvatar.getAdminToken() > -1:
            self.createPageButtons('inventoryPage', 'adminPage')
        else:
            self.createPageButtons('inventoryPage', None)
        self.setTitle("")

        themap = loader.loadModel('phase_3.5/models/gui/toontown_map.bam')
        self.frame = DirectFrame(parent=aspect2d,
                                 relief=None,
                                 image=themap,
                                 image_scale=(1.8, 1, 1.35),
                                 scale=0.97,
                                 pos=(0, 0, 0.0775))
        cloudpos = [[(-0.61, 0, 0.18), (0.55, 0.25, 0.37), (180, 0, 0)],
                    [(-0.54, 0, 0.34), (0.76, 0.4, 0.55), (180, 0, 0)],
                    [(-0.55, 0, -0.09), (0.72, 0.4, 0.55), (0, 0, 0)],
                    [(-0.67, 0, -0.51), (0.5, 0.29, 0.38), (180, 0, 0)],
                    [(-0.67, 0, 0.51), (0.50, 0.29, 0.38), (0, 0, 0)],
                    [(0.67, 0, 0.51), (0.5, 0.29, 0.38), (0, 0, 0)],
                    [(0.35, 0, -0.46), (0.63, 0.35, 0.45), (0, 0, 0)],
                    [(0.18, 0, -0.45), (0.52, 0.27, 0.32), (0, 0, 0)],
                    [(0.67, 0, -0.44), (0.63, 0.35, 0.48), (180, 0, 0)]]
        hoodclouds = [  #[(0.02, 0, -0.17),  (0.63, 0.35, 0.48), (180, 0, 0), CIGlobals.ToontownCentral],
            [(0.63, 0, -0.13), (0.63, 0.35, 0.40), (0, 0, 0),
             CIGlobals.DonaldsDock],
            [(0.51, 0, 0.25), (0.57, 0.35, 0.40), (0, 0, 0),
             CIGlobals.TheBrrrgh],
            [(0.03, 0, 0.19), (0.63, 0.35, 0.40), (180, 0, 0),
             CIGlobals.MinniesMelodyland],
            [(-0.08, 0, 0.46), (0.54, 0.35, 0.40), (0, 0, 0),
             CIGlobals.DonaldsDreamland],
            [(-0.28, 0, -0.49), (0.60, 0.35, 0.45), (0, 0, 0),
             CIGlobals.DaisyGardens]
        ]
        self.clouds = []
        self.labels = []

        for pos, scale, hpr in cloudpos:
            cloud = loader.loadModel('phase_3.5/models/gui/cloud.bam')
            cloud.reparentTo(self.frame)
            cloud.setPos(pos)
            cloud.setScale(scale)
            cloud.setHpr(hpr)
            self.clouds.append(cloud)

        for pos, scale, hpr, hood in hoodclouds:
            if not base.localAvatar.hasDiscoveredHood(
                    ZoneUtil.getZoneId(hood)):
                cloud = loader.loadModel('phase_3.5/models/gui/cloud.bam')
                cloud.reparentTo(self.frame)
                cloud.setPos(pos)
                cloud.setScale(scale)
                cloud.setHpr(hpr)
                self.clouds.append(cloud)

        labeldata = [[(0, 0, -0.2), CIGlobals.ToontownCentral],
                     [(0.65, 0, -0.125), CIGlobals.DonaldsDock],
                     [(0.07, 0, 0.18), CIGlobals.MinniesMelodyland],
                     [(-0.1, 0, 0.45), CIGlobals.DonaldsDreamland],
                     [(0.5, 0, 0.25), CIGlobals.TheBrrrgh],
                     [(-0.37, 0, -0.525), CIGlobals.DaisyGardens]]

        for pos, name in labeldata:
            if base.localAvatar.hasDiscoveredHood(ZoneUtil.getZoneId(name)):
                text = name
                if base.localAvatar.hasTeleportAccess(
                        ZoneUtil.getZoneId(name)):
                    text = 'Go To\n' + text
                label = DirectButton(parent=self.frame,
                                     relief=None,
                                     pos=pos,
                                     pad=(0.2, 0.16),
                                     text=('', text, text, ''),
                                     text_bg=Vec4(1, 1, 1, 0.4),
                                     text_scale=0.055,
                                     text_wordwrap=8,
                                     rolloverSound=None,
                                     clickSound=None,
                                     pressEffect=0,
                                     sortOrder=1,
                                     text_font=CIGlobals.getToonFont())
                if base.localAvatar.hasTeleportAccess(
                        ZoneUtil.getZoneId(name)):
                    label['command'] = self.finished
                    label['extraArgs'] = [ZoneUtil.getZoneId(name)]
                label.resetFrameSize()
                self.labels.append(label)

        currHoodName = base.cr.playGame.hood.id
        currLocation = ''
        if base.localAvatar.zoneId == CIGlobals.MinigameAreaId or base.localAvatar.getMyBattle(
        ) is not None:
            currLocation = ''
        elif ZoneUtil.getWhereName(base.localAvatar.zoneId) == 'playground':
            currLocation = 'Playground'
        elif ZoneUtil.getWhereName(
                base.localAvatar.zoneId) in ['street', 'interior']:
            currLocation = CIGlobals.BranchZone2StreetName[
                ZoneUtil.getBranchZone(base.localAvatar.zoneId)]
        self.infoLabel = DirectLabel(relief=None,
                                     text='You are in: {0}\n{1}'.format(
                                         currHoodName, currLocation),
                                     scale=0.06,
                                     pos=(-0.4, 0, -0.74),
                                     parent=self.frame,
                                     text_align=TextNode.ACenter)

        if currHoodName in [CIGlobals.MinigameArea, CIGlobals.BattleTTC]:
            currHoodName = base.cr.playGame.lastHood
        btpText = "Back to Playground"
        btpEA = [ZoneUtil.getZoneId(currHoodName)]
        self.BTPButton = DirectButton(relief=None,
                                      text=btpText,
                                      geom=CIGlobals.getDefaultBtnGeom(),
                                      text_pos=(0, -0.018),
                                      geom_scale=(1.3, 1.11, 1.11),
                                      text_scale=0.06,
                                      parent=self.frame,
                                      text_font=CIGlobals.getToonFont(),
                                      pos=(0.25, 0, -0.75),
                                      command=self.finished,
                                      extraArgs=btpEA,
                                      scale=0.7)
        if base.localAvatar.zoneId != CIGlobals.MinigameAreaId:
            self.MGAButton = DirectButton(relief=None,
                                          text="Minigame Area",
                                          geom=CIGlobals.getDefaultBtnGeom(),
                                          text_pos=(0, -0.018),
                                          geom_scale=(1, 1.11, 1.11),
                                          text_scale=0.06,
                                          parent=self.frame,
                                          text_font=CIGlobals.getToonFont(),
                                          pos=(0.625, 0, -0.75),
                                          command=self.finished,
                                          extraArgs=[CIGlobals.MinigameAreaId],
                                          scale=0.7)
    def enterPanel(self):
        adminToken = self.avatarInfo[8]
        text_color = CIGlobals.TextColorByAdminToken[adminToken]
        self.nameText = OnscreenText(text=self.avatarInfo[1],
                                     parent=self,
                                     pos=(0, 0.2),
                                     scale=0.035,
                                     wordwrap=8,
                                     fg=text_color)
        self.nameText.setBin('gui-popup', 60)

        dna = ToonDNA.ToonDNA()
        dna.setDNAStrand(self.avatarInfo[2])

        self.head = ToonHead.ToonHead(base.cr)
        self.head.generateHead(dna.gender, dna.animal, dna.head, 1)
        self.head.setHeadColor(dna.headcolor)
        self.head.reparentTo(self)
        self.head.setDepthWrite(1)
        self.head.setDepthTest(1)
        self.head.setH(180)
        self.head.setScale(self.animal2HeadData[dna.animal][0])
        self.head.setZ(self.animal2HeadData[dna.animal][1])

        self.laffMeter = LaffOMeter()
        r, g, b, _ = dna.headcolor
        self.laffMeter.generate(r, g, b, dna.animal, self.avatarInfo[3],
                                self.avatarInfo[4])
        self.laffMeter.reparentTo(self)
        self.laffMeter.setBin('gui-popup', 60)
        self.laffMeter.setScale(0.045)
        self.laffMeter.setPos(0, 0, -0.1)

        self.friendButton = DirectButton(
            geom=CIGlobals.getDefaultBtnGeom(),
            text="Add Friend",
            scale=0.58,
            relief=None,
            text_scale=0.058,
            geom_scale=(1.25, 0, 0.9),
            text_pos=(0, -0.0125),
            parent=self,
            pos=(0, 0, -0.12),
            command=self.doAction,
            extraArgs=['waitOnAvatarFriendListResponse'])
        self.friendButton.setPos(0, 0.0, -0.225)
        self.maybeUpdateFriendButton()

        self.teleportButton = DirectButton(
            geom=CIGlobals.getDefaultBtnGeom(),
            text="Teleport",
            scale=0.58,
            relief=None,
            text_scale=0.058,
            geom_scale=(1.25, 0, 0.9),
            text_pos=(0, -0.0125),
            parent=self,
            pos=(0, 0, -0.12),
            command=self.doAction,
            extraArgs=['waitOnAvatarTeleportResponse'])
        self.teleportButton.setPos(0, 0, -0.275)

        self.whisperButton = DirectButton(
            geom=CIGlobals.getDefaultBtnGeom(),
            text="Whisper",
            scale=0.58,
            relief=None,
            text_scale=0.058,
            geom_scale=(1.25, 0, 0.9),
            text_pos=(0, -0.0125),
            parent=self,
            pos=(0, 0, -0.12),
            command=base.localAvatar.handleClickedWhisper,
            extraArgs=[self.avatarInfo[1], self.avatarInfo[0], 1])
        self.whisperButton.setPos(0, 0, -0.325)

        self.exitButton = DirectButton(geom=CIGlobals.getCancelBtnGeom(),
                                       parent=self,
                                       relief=None,
                                       scale=0.6,
                                       pos=(0, 0.0, -0.39),
                                       command=self.exitClicked)
        gui = loader.loadModel("phase_3.5/models/gui/friendslist_gui.bam")
        self.moreDetailsBtn = DirectButton(
            geom=(gui.find('**/Horiz_Arrow_UP'), gui.find('**/Horiz_Arrow_DN'),
                  gui.find('**/Horiz_Arrow_Rllvr'),
                  gui.find('**/Horiz_Arrow_UP')),
            relief=None,
            parent=self,
            pos=(-0.127, 0.0, -0.39),
            geom_hpr=(180, 0, 0),
            command=self.makeMoreDetailsPanel,
            scale=0.77,
            text=('', 'More Details', 'More Details', ''),
            text_scale=0.045,
            text_fg=(1, 1, 1, 1),
            text_shadow=(0, 0, 0, 1),
            text_pos=(-0.08, -0.01),
            text_align=TextNode.ARight)
Example #22
0
 def enterBasePage(self):
     self.book.createPageButtons('mapPage', None)
     self.book.setTitle('Admin Stuff')
     geom = CIGlobals.getDefaultBtnGeom()
     self.suitSpawnerBtn = DirectButton(geom=geom,
                                        text_scale=0.04,
                                        relief=None,
                                        scale=1.0,
                                        text='',
                                        pos=(-0.45, 0.15, 0.5),
                                        text_pos=(0, -0.01),
                                        command=self.sendSuitCommand,
                                        extraArgs=['suitSpawner'])
     self.killCogsBtn = DirectButton(geom=geom,
                                     text_scale=0.04,
                                     relief=None,
                                     scale=1.0,
                                     text='Kill All Cogs',
                                     pos=(-0.45, 0.15, 0.4),
                                     text_pos=(0, -0.01),
                                     command=self.sendSuitCommand,
                                     extraArgs=['killCogs'])
     self.makeTournamentBtn = DirectButton(geom=geom,
                                           text_scale=0.04,
                                           relief=None,
                                           scale=1.0,
                                           text='Make Cog Tournament',
                                           pos=(-0.45, 0.15, 0.3),
                                           text_pos=(0, -0.01),
                                           command=self.sendSuitCommand,
                                           extraArgs=['tournament'])
     self.makeInvasionBtn = DirectButton(geom=geom,
                                         text_scale=0.04,
                                         relief=None,
                                         scale=1.0,
                                         text='Make Cog Invasion',
                                         pos=(-0.45, 0.15, 0.2),
                                         text_pos=(0, -0.01),
                                         command=self.sendSuitCommand,
                                         extraArgs=['invasion'])
     self.makeCogBtn = DirectButton(geom=geom,
                                    text_scale=0.04,
                                    relief=None,
                                    scale=1.0,
                                    text='Make Cog',
                                    pos=(-0.45, 0.15, 0.1),
                                    text_pos=(0, -0.01),
                                    command=self.sendSuitCommand,
                                    extraArgs=['suit'])
     self.ghostBtn = DirectButton(geom=geom,
                                  text_scale=0.04,
                                  relief=None,
                                  scale=1.0,
                                  text='',
                                  pos=(0.45, 0.15, 0.5),
                                  text_pos=(0, -0.01),
                                  command=self.changeGhost)
     self.bgBtn = DirectButton(geom=geom,
                               text_scale=0.04,
                               relief=None,
                               scale=1.0,
                               text='Toggle Background',
                               pos=(0.45, 0.15, 0.4),
                               text_pos=(0, -0.01),
                               command=self.toggleBackground)
     self.idBtn = DirectButton(geom=geom,
                               text_scale=0.04,
                               relief=None,
                               scale=1.0,
                               text='Toggle Player Ids',
                               pos=(0.45, 0.15, 0.3),
                               text_pos=(0, -0.01),
                               command=self.togglePlayerIds)
     self.kickBtn = DirectButton(geom=geom,
                                 text_scale=0.04,
                                 relief=None,
                                 scale=1.0,
                                 text='Kick Player',
                                 pos=(0.45, 0.15, 0.2),
                                 text_pos=(0, -0.01),
                                 command=self.openKickPage)
     self.systemMsgBtn = DirectButton(geom=geom,
                                      text_scale=0.04,
                                      relief=None,
                                      scale=1.0,
                                      text='System Message',
                                      pos=(0.45, 0.15, 0.1),
                                      text_pos=(0, -0.01),
                                      command=self.openSysMsgPage)
     if base.localAvatar.getGhost():
         self.ghostBtn['text'] = 'Turn Ghost Off'
     else:
         self.ghostBtn['text'] = 'Turn Ghost On'
     base.cr.playGame.getPlace().maybeUpdateAdminPage()
     del geom
     return
 def enterVoteGameMode(self):
     render.hide()
     font = CIGlobals.getMickeyFont()
     imp = CIGlobals.getToonFont()
     box = DGG.getDefaultDialogGeom()
     geom = CIGlobals.getDefaultBtnGeom()
     self.container = DirectFrame()
     self.bg = OnscreenImage(image=box,
                             color=(1, 1, 0.75, 1),
                             scale=(2.4, 1.4, 1.4),
                             parent=self.container)
     self.title = OnscreenText(text="Vote  on  Game  Mode",
                               pos=(0, 0.5, 0),
                               font=font,
                               scale=(0.12),
                               parent=self.container,
                               fg=(1, 0.9, 0.3, 1))
     self.btnFrame = DirectFrame(parent=self.container, pos=(0.14, 0, 0))
     self.casualFrame = DirectFrame(parent=self.btnFrame, pos=(-0.80, 0, 0))
     self.ctfFrame = DirectFrame(parent=self.btnFrame, pos=(-0.125, 0, 0))
     self.kothFrame = DirectFrame(parent=self.btnFrame, pos=(0.55, 0, 0))
     self.casual = DirectButton(parent=self.casualFrame,
                                relief=None,
                                pressEffect=0,
                                image=('phase_4/maps/casual_neutral.png',
                                       'phase_4/maps/casual_hover.png',
                                       'phase_4/maps/casual_hover.png'),
                                image_scale=(0.9, 1, 1),
                                scale=0.4,
                                command=self.__pickedGameMode,
                                extraArgs=[GGG.GameModes.CASUAL])
     self.casual_votesLbl = OnscreenText(parent=self.casualFrame,
                                         text="0",
                                         pos=(0, -0.46, 0),
                                         font=imp)
     self.ctf = DirectButton(parent=self.ctfFrame,
                             relief=None,
                             pressEffect=0,
                             image=('phase_4/maps/ctf_neutral.png',
                                    'phase_4/maps/ctf_hover.png',
                                    'phase_4/maps/ctf_hover.png'),
                             image_scale=(0.9, 1, 1),
                             scale=0.4,
                             command=self.__pickedGameMode,
                             extraArgs=[GGG.GameModes.CTF])
     self.ctf_votesLbl = OnscreenText(parent=self.ctfFrame,
                                      text="0",
                                      pos=(0, -0.46, 0),
                                      font=imp)
     self.koth = DirectButton(parent=self.kothFrame,
                              relief=None,
                              pressEffect=0,
                              image=('phase_4/maps/koth_neutral.png',
                                     'phase_4/maps/koth_hover.png',
                                     'phase_4/maps/koth_hover.png'),
                              image_scale=(0.9, 1, 1),
                              scale=0.4,
                              command=self.__pickedGameMode,
                              extraArgs=[GGG.GameModes.KOTH])
     self.koth_votesLbl = OnscreenText(parent=self.kothFrame,
                                       text="0",
                                       pos=(0, -0.46, 0),
                                       font=imp)
     self.outcomeLbl = OnscreenText(parent=self.container,
                                    text="",
                                    pos=(0, -0.6, 0),
                                    font=imp,
                                    scale=0.1)
Example #24
0
 def showPieButton(self):
     geom = CIGlobals.getDefaultBtnGeom()
     self.pieThrowBtn = DirectButton(geom=geom, geom_scale=(0.75, 1, 1), text='Throw Gag', text_scale=0.05, text_pos=(0, -0.01), relief=None, parent=base.a2dTopCenter, pos=(0, 0, -0.1))
     self.pieThrowBtn.setBin('gui-popup', 60)
     return
Example #25
0
    def enterMapPage(self):
        self.createPageButtons('inventoryPage', 'releaseNotesPage')
        self.setTitle('')
        themap = loader.loadModel('phase_3.5/models/gui/toontown_map.bam')
        self.frame = DirectFrame(parent=aspect2d, relief=None, image=themap, image_scale=(1.8, 1, 1.35), scale=0.97, pos=(0, 0, 0.0775))
        cloudpos = [[(-0.61, 0, 0.18), (0.55, 0.25, 0.37), (180, 0, 0)],
         [(-0.54, 0, 0.34), (0.76, 0.4, 0.55), (180, 0, 0)],
         [(-0.55, 0, -0.09), (0.72, 0.4, 0.55), (0, 0, 0)],
         [(-0.67, 0, -0.51), (0.5, 0.29, 0.38), (180, 0, 0)],
         [(-0.67, 0, 0.51), (0.5, 0.29, 0.38), (0, 0, 0)],
         [(0.67, 0, 0.51), (0.5, 0.29, 0.38), (0, 0, 0)],
         [(0.35, 0, -0.46), (0.63, 0.35, 0.45), (0, 0, 0)],
         [(0.18, 0, -0.45), (0.52, 0.27, 0.32), (0, 0, 0)],
         [(0.67, 0, -0.44), (0.63, 0.35, 0.48), (180, 0, 0)]]
        hoodclouds = [[(0.63, 0, -0.13),
          (0.63, 0.35, 0.4),
          (0, 0, 0),
          CIGlobals.DonaldsDock],
         [(0.51, 0, 0.25),
          (0.57, 0.35, 0.4),
          (0, 0, 0),
          CIGlobals.TheBrrrgh],
         [(0.03, 0, 0.19),
          (0.63, 0.35, 0.4),
          (180, 0, 0),
          CIGlobals.MinniesMelodyland],
         [(-0.08, 0, 0.46),
          (0.54, 0.35, 0.4),
          (0, 0, 0),
          CIGlobals.DonaldsDreamland],
         [(-0.28, 0, -0.49),
          (0.6, 0.35, 0.45),
          (0, 0, 0),
          CIGlobals.DaisyGardens]]
        self.clouds = []
        self.labels = []
        for pos, scale, hpr in cloudpos:
            cloud = loader.loadModel('phase_3.5/models/gui/cloud.bam')
            cloud.reparentTo(self.frame)
            cloud.setPos(pos)
            cloud.setScale(scale)
            cloud.setHpr(hpr)
            self.clouds.append(cloud)

        for pos, scale, hpr, hood in hoodclouds:
            if not base.localAvatar.hasDiscoveredHood(ZoneUtil.getZoneId(hood)):
                cloud = loader.loadModel('phase_3.5/models/gui/cloud.bam')
                cloud.reparentTo(self.frame)
                cloud.setPos(pos)
                cloud.setScale(scale)
                cloud.setHpr(hpr)
                self.clouds.append(cloud)

        labeldata = [[(0, 0, -0.2), CIGlobals.ToontownCentral],
         [(0.65, 0, -0.125), CIGlobals.DonaldsDock],
         [(0.07, 0, 0.18), CIGlobals.MinniesMelodyland],
         [(-0.1, 0, 0.45), CIGlobals.DonaldsDreamland],
         [(0.5, 0, 0.25), CIGlobals.TheBrrrgh],
         [(-0.37, 0, -0.525), CIGlobals.DaisyGardens]]
        for pos, name in labeldata:
            if base.localAvatar.hasDiscoveredHood(ZoneUtil.getZoneId(name)):
                text = name
                if base.localAvatar.hasTeleportAccess(ZoneUtil.getZoneId(name)):
                    text = 'Go To\n' + text
                label = DirectButton(parent=self.frame, relief=None, pos=pos, pad=(0.2, 0.16), text=('', text, text), text_bg=Vec4(1, 1, 1, 0.4), text_scale=0.055, text_wordwrap=8, rolloverSound=None, clickSound=None, pressEffect=0, sortOrder=1, text_font=CIGlobals.getToonFont())
                if base.localAvatar.hasTeleportAccess(ZoneUtil.getZoneId(name)):
                    label['command'] = self.finished
                    label['extraArgs'] = [ZoneUtil.getZoneId(name)]
                label.resetFrameSize()
                self.labels.append(label)

        currHoodName = base.cr.playGame.hood.id
        currLocation = ''
        if base.localAvatar.zoneId == CIGlobals.MinigameAreaId:
            currLocation = ''
        elif base.localAvatar.getMyBattle() != None:
            currLocation = 'CogTropolis'
        elif ZoneUtil.getWhereName(base.localAvatar.zoneId) == 'playground':
            currLocation = 'Playground'
        elif ZoneUtil.getWhereName(base.localAvatar.zoneId) in ('street', 'interior'):
            currLocation = CIGlobals.BranchZone2StreetName[ZoneUtil.getBranchZone(base.localAvatar.zoneId)]
        self.infoLabel = DirectLabel(relief=None, text='You are in: {0}\n{1}'.format(currHoodName, currLocation), scale=0.06, pos=(-0.4, 0, -0.74), parent=self.frame, text_align=TextNode.ACenter)
        if currHoodName in [CIGlobals.MinigameArea, CIGlobals.BattleTTC]:
            currHoodName = base.cr.playGame.lastHood
        self.BTPButton = DirectButton(relief=None, text='Back to Playground', geom=CIGlobals.getDefaultBtnGeom(), text_pos=(0, -0.018), geom_scale=(1.3, 1.11, 1.11), text_scale=0.06, parent=self.frame, text_font=CIGlobals.getToonFont(), pos=(0.25, 0, -0.75), command=self.finished, extraArgs=[ZoneUtil.getZoneId(currHoodName)], scale=0.7)
        if base.localAvatar.zoneId != CIGlobals.MinigameAreaId:
            self.MGAButton = DirectButton(relief=None, text='Minigame Area', geom=CIGlobals.getDefaultBtnGeom(), text_pos=(0, -0.018), geom_scale=(1, 1.11, 1.11), text_scale=0.06, parent=self.frame, text_font=CIGlobals.getToonFont(), pos=(0.625, 0, -0.75), command=self.finished, extraArgs=[CIGlobals.MinigameAreaId], scale=0.7)
        return
	)
)
sfx = base.loadSfx('phase_3/audio/sfx/GUI_balloon_popup.mp3')
music = base.loadMusic('phase_7/audio/bgm/encntr_suit_winning_indoor.ogg')
def spot():
	pulse.start()
	base.playSfx(sfx)
	base.playMusic(music)

base.accept('s', spot)
"""

font = CIGlobals.getMickeyFont()
box = loader.loadModel('phase_3/models/gui/dialog_box_gui.bam')
imp = CIGlobals.getToonFont()
geom = CIGlobals.getDefaultBtnGeom()
container = DirectFrame()
bg = OnscreenImage(image=box,
                   color=(1, 1, 0.75, 1),
                   scale=(1.9, 1.4, 1.4),
                   parent=container)
title = OnscreenText(text="Vote  on  Game  Mode",
                     pos=(0, 0.5, 0),
                     font=font,
                     scale=(0.12),
                     parent=container,
                     fg=(1, 0.9, 0.3, 1))
btnFrame = DirectFrame(parent=container, pos=(0.14, 0, 0))
casualFrame = DirectFrame(parent=btnFrame, pos=(-0.5, 0, 0))
ctfFrame = DirectFrame(parent=btnFrame, pos=(0.22, 0, 0))
casual = DirectButton(
Example #27
0
    def load(self):
        base.cr.renderFrame()
        base.camLens.setMinFov(CIGlobals.DefaultCameraFov / (4.0 / 3.0))
        self.__setupStageToon()
        self.world = loader.loadModel('phase_9/models/cogHQ/SellbotHQExterior.bam')
        self.world.reparentTo(base.render)
        self.world.setPos(0, 227.09, -25.36)
        self.sky = loader.loadModel('phase_9/models/cogHQ/cog_sky.bam')
        self.sky.setScale(1)
        self.sky.reparentTo(base.render)
        self.sky.find('**/InnerGroup').removeNode()
        self.fog = Fog('charSelectFog')
        self.fog.setColor(0.2, 0.2, 0.2)
        self.fog.setExpDensity(0.003)
        base.render.setFog(self.fog)
        self.title = DirectLabel(text=self.TITLE, text_font=CIGlobals.getMickeyFont(), text_fg=(1, 0.9, 0.1, 1), relief=None, text_scale=0.13, pos=(0, 0, 0.82))
        self.charNameLabel = OnscreenText(text='', font=CIGlobals.getMickeyFont(), pos=(-0.25, 0.5, 0), fg=(1, 0.9, 0.1, 1.0))
        self.charNameLabel.hide()
        self.playOrCreateButton = DirectButton(text='', pos=(0.8125, 0, -0.735), command=self.__action, geom=CIGlobals.getDefaultBtnGeom(), text_scale=0.06, relief=None, text_pos=(0, -0.01))
        self.playOrCreateButton.hide()
        self.deleteButton = DirectButton(text='Delete', pos=(0.8125, 0, -0.835), command=self.__action, extraArgs=['delete'], geom=CIGlobals.getDefaultBtnGeom(), text_scale=0.06, relief=None, text_pos=(0, -0.01))
        self.deleteButton.hide()
        self.quitButton = DirectButton(text='Quit', pos=(-1.1, 0, -0.925), command=self.__action, extraArgs=['quit'], text_scale=0.06, geom=CIGlobals.getDefaultBtnGeom(), relief=None, text_pos=(0, -0.01))
        textRolloverColor = Vec4(1, 1, 0, 1)
        textDownColor = Vec4(0.5, 0.9, 1, 1)
        textDisabledColor = Vec4(0.4, 0.8, 0.4, 1)
        for slot in range(6):
            if self.avChooser.hasToonInSlot(slot):
                choice = self.avChooser.getAvChoiceBySlot(slot)
                text = choice.name
            else:
                text = self.NO_TOON
            btn = DirectButton(relief=None, text=text, text_scale=0.06, text_align=TextNode.ALeft, text1_bg=textDownColor, text2_bg=textRolloverColor, text3_fg=textDisabledColor, textMayChange=0, command=self.__handleCharButton, extraArgs=[slot], text_pos=(0, 0, 0.0))
            btn.setPythonTag('slot', slot)
            self.charButtons.append(btn)
            btn['state'] = DGG.NORMAL

        gui = loader.loadModel('phase_3.5/models/gui/friendslist_gui.bam')
        listXorigin = -0.02
        listFrameSizeX = 0.625
        listZorigin = -0.96
        listFrameSizeZ = 1.04
        arrowButtonScale = 1.3
        itemFrameXorigin = -0.237
        itemFrameZorigin = 0.365
        buttonXstart = itemFrameXorigin + 0.293
        self.charList = DirectScrolledList(relief=None, pos=(0.75, 0, 0.08), incButton_image=(gui.find('**/FndsLst_ScrollUp'),
         gui.find('**/FndsLst_ScrollDN'),
         gui.find('**/FndsLst_ScrollUp_Rllvr'),
         gui.find('**/FndsLst_ScrollUp')), incButton_relief=None, incButton_scale=(arrowButtonScale, arrowButtonScale, -arrowButtonScale), incButton_pos=(buttonXstart, 0, itemFrameZorigin - 0.999), incButton_image3_color=Vec4(1, 1, 1, 0.2), decButton_image=(gui.find('**/FndsLst_ScrollUp'),
         gui.find('**/FndsLst_ScrollDN'),
         gui.find('**/FndsLst_ScrollUp_Rllvr'),
         gui.find('**/FndsLst_ScrollUp')), decButton_relief=None, decButton_scale=(arrowButtonScale, arrowButtonScale, arrowButtonScale), decButton_pos=(buttonXstart, 0, itemFrameZorigin + 0.125), decButton_image3_color=Vec4(1, 1, 1, 0.2), itemFrame_pos=(itemFrameXorigin, 0, itemFrameZorigin), itemFrame_scale=1.0, itemFrame_relief=DGG.SUNKEN, itemFrame_frameSize=(listXorigin,
         listXorigin + listFrameSizeX,
         listZorigin,
         listZorigin + listFrameSizeZ), itemFrame_frameColor=(0.85, 0.95, 1, 1), itemFrame_borderWidth=(0.01, 0.01), numItemsVisible=15, forceHeight=0.075, items=self.charButtons)
        base.camera.setPos(75.12, 63.22, -23)
        base.camera.setHpr(26.57, 9.62, 0)
        return
Example #28
0
    def load(self):
        base.cr.renderFrame()
        base.camLens.setMinFov(CIGlobals.DefaultCameraFov / (4./3.))

        self.__setupStageToon()
        holidayMgr = base.cr.holidayManager

        self.props = []
        self.world = loader.loadModel('phase_9/models/cogHQ/SellbotHQExterior.bam')
        self.world.reparentTo(base.render)
        self.world.setPos(0, 227.09, -25.36)
        self.sky = loader.loadModel('phase_9/models/cogHQ/cog_sky.bam')
        self.sky.setScale(1)
        self.sky.reparentTo(base.render)
        self.sky.find('**/InnerGroup').removeNode()
        self.fog = Fog('charSelectFog')
        self.fog.setColor(0.2, 0.2, 0.2)
        self.fog.setExpDensity(0.003)
        base.render.setFog(self.fog)
        
        # Let's fix the flickering doors.
        doors = self.world.find('**/doors').getChildren()
        
        for door in doors:
            for frameHole in door.findAllMatches('**/doorFrameHole*'): frameHole.removeNode()

        if holidayMgr.getHoliday() == HolidayType.CHRISTMAS:
            piles = {
                'half' : {'pos' : (57.28, 86.47, -25.00), 'hpr' : (46.79, 0, 0)},
                'full' : {'pos' : (71.23, 85.2, -25.00), 'hpr' : (290.82, 0, 0)},
                'half_2' : {'pos' : (-15, 128.69, -25), 'hpr' : (60.26, 0, 0)}
            }

            for pileType, info in piles.items():
                if '_' in pileType:
                    pileType = pileType[:-2]
                pile = loader.loadModel('phase_8/models/props/snow_pile_%s.bam' % (pileType))
                pile.reparentTo(render)
                pile.setPos(info['pos'])
                pile.setHpr(info['hpr'])
                self.props.append(pile)

            self.world.find('**/TopRocks').removeNode()

            snowTxt = loader.loadTexture('winter/maps/sbhq_snow.png')
            self.world.find('**/Ground').setTexture(snowTxt, 1)

            self.particles = ParticleLoader.loadParticleEffect('phase_8/etc/snowdisk.ptf')
            self.particles.setPos(0, 0, 5)
            self.particlesRender = self.world.attachNewNode('snowRender')
            self.particlesRender.setDepthWrite(0)
            self.particlesRender.setBin('fixed', 1)
            self.particles.start(parent = camera, renderParent = self.particlesRender)
            self.fog.setColor(0.486, 0.784, 1)
            self.fog.setExpDensity(0.006)
            base.render.setFog(self.fog)


        self.title = DirectLabel(text=self.TITLE, text_font=CIGlobals.getMickeyFont(), text_fg=(1, 0.9, 0.1, 1),
                                relief=None, text_scale=0.13, pos=(0, 0, 0.82))
        self.charNameLabel = OnscreenText(text = "", font = CIGlobals.getMickeyFont(),
                                        pos = (-0.25, 0.5, 0), fg = (1, 0.9, 0.1, 1.0))
        self.charNameLabel.hide()
        self.frame = DirectFrame()
        self.frame['image'] = DGG.getDefaultDialogGeom()
        self.frame['image_color'] = CIGlobals.DialogColor
        self.frame['image_scale'] = (-0.9, -0.9, 0.8)
        self.frame['image_pos'] = (0.82, 0, -0.125)
        self.playOrCreateButton = DirectButton(text = "", pos = (0.8125, 0, -0.35), command = self.__action,
                                            geom = CIGlobals.getDefaultBtnGeom(), text_scale = 0.06,
                                            relief = None, text_pos = (0, -0.01))
        self.playOrCreateButton.hide()
        self.deleteButton = DirectButton(text = "Delete", pos = (0.8125, 0, -0.45),
                                        command = self.__action, extraArgs = ['delete'],
                                        geom = CIGlobals.getDefaultBtnGeom(), text_scale = 0.06,
                                        relief = None, text_pos = (0, -0.01))
        self.deleteButton.hide()
        self.quitButton = DirectButton(text = "Quit", pos = (-1.10, 0, -0.925), command = self.__action,
                                    extraArgs = ['quit'], text_scale = 0.06, geom = CIGlobals.getDefaultBtnGeom(),
                                    relief = None, text_pos = (0, -0.01))

        textRolloverColor = Vec4(1, 1, 0, 1)
        textDownColor = Vec4(0.5, 0.9, 1, 1)
        textDisabledColor = Vec4(0.4, 0.8, 0.4, 1)

        for slot in range(6):
            if self.avChooser.hasToonInSlot(slot):
                choice = self.avChooser.getAvChoiceBySlot(slot)
                text = choice.name
            else:
                text = self.NO_TOON
            btn = DirectButton(
                relief=None, text = text, text_scale=0.06,
                text_align=TextNode.ALeft, text1_bg=textDownColor, text2_bg=textRolloverColor,
                text3_fg=textDisabledColor, textMayChange=0, command=self.__handleCharButton,
                extraArgs=[slot], text_pos = (0, 0, 0.0)
            )
            btn.setPythonTag('slot', slot)
            self.charButtons.append(btn)
            btn['state'] = DGG.NORMAL

        gui = loader.loadModel('phase_3.5/models/gui/friendslist_gui.bam')
        listXorigin = -0.02
        listFrameSizeX = 0.625
        listZorigin = -0.43
        listFrameSizeZ = 0.51
        arrowButtonScale = 0.0
        itemFrameXorigin = -0.237
        itemFrameZorigin = 0.365
        buttonXstart = itemFrameXorigin + 0.293

        self.charList = DirectScrolledList(
            relief=None,
            pos=(0.75, 0, -0.225),
            incButton_image=None,
            #incButton_relief=None,
            incButton_scale=(arrowButtonScale, arrowButtonScale, -arrowButtonScale),
            #incButton_pos=(buttonXstart, 0, itemFrameZorigin - 0.999),
            #incButton_image3_color=Vec4(1, 1, 1, 0.2),
            decButton_image=None,
            #decButton_relief=None,
            decButton_scale=(arrowButtonScale, arrowButtonScale, arrowButtonScale),
            #decButton_pos=(buttonXstart, 0, itemFrameZorigin + 0.125),
            #decButton_image3_color=Vec4(1, 1, 1, 0.2),
            itemFrame_pos=(itemFrameXorigin, 0, itemFrameZorigin),
            itemFrame_scale=1.0,
            itemFrame_relief=DGG.SUNKEN,
            itemFrame_frameSize=(listXorigin,
                listXorigin + listFrameSizeX,
                listZorigin,
                listZorigin + listFrameSizeZ),
            itemFrame_frameColor=(0.85, 0.95, 1, 1),
            itemFrame_borderWidth=(0.01, 0.01),
            numItemsVisible=15,
            forceHeight=0.075,
            items=self.charButtons,
            parent = self.frame
        )

        base.camera.setPos(75.12, 63.22, -23)
        base.camera.setHpr(26.57, 9.62, 0)