def __init__(self):
     DirectFrame.__init__(self,
                          parent=base.a2dTopLeft,
                          relief=None,
                          pos=(0.275, 1, -0.7),
                          sortOrder=0)
     self.pointsSfx = loader.loadSfx('phase_4/audio/sfx/MG_maze_pickup.ogg')
     self.points = 0
     gui = loader.loadModel('phase_4/models/gui/purchase_gui.bam')
     panel = gui.find('**/yellowPanel')
     self.bg = OnscreenImage(image=panel, parent=self)
     self.title = OnscreenText(text='Capture Points',
                               font=CIGlobals.getMinnieFont(),
                               parent=self,
                               scale=0.0475,
                               pos=(0, 0.18),
                               fg=(1, 0, 0, 1),
                               shadow=(0.2, 0.2, 0.2, 1))
     self.amt_label = OnscreenText(text=str(self.points),
                                   font=CIGlobals.getToonFont(),
                                   parent=self,
                                   scale=0.15,
                                   pos=(0, 0.03525),
                                   shadow=(0.5, 0.5, 0.5, 0.6))
     self.info = OnscreenText(
         text=
         'First Toon to 100 points wins!\nEarn points by standing on the\nhill after capturing it.',
         parent=self,
         font=CIGlobals.getToonFont(),
         scale=0.035,
         pos=(0, -0.05),
         fg=(1.5, 0, 0, 1),
         shadow=(0.2, 0.2, 0.2, 1))
     self.hide()
     return
Beispiel #2
0
    def enterDisplayPage(self):
        self.book.createPageButtons(False, False)
        self.book.setTitle('Display Options')
        dialog_gui = loader.loadModel('phase_3/models/gui/dialog_box_buttons_gui.bam')
        width, height, fs, music, sfx, tex_detail, model_detail, aa, af = SettingsManager().getSettings('settings.json')
        self.width = width
        self.height = height
        self.windowType = [fs]
        self.buttons = [DirectRadioButton(text='Windowed', variable=self.windowType, value=[False], scale=0.1, pos=(-0.45, 0.15, 0.15)), DirectRadioButton(text='Fullscreen', variable=self.windowType, value=[True], scale=0.1, pos=(-0.45, -0.15, -0.15))]
        for button in self.buttons:
            button.setOthers(self.buttons)

        self.resoLbl = DirectLabel(text='%sx%s' % (width, height), scale=0.08, relief=None, pos=(0.25, 0, 0))
        self.resSlider = DirectSlider(range=(0, 200), pageSize=50, command=self.setResoText, scale=0.3, orientation=DGG.VERTICAL, pos=(0.6, 0, 0))
        self.okBtn = DirectButton(text='OK', geom=CIGlobals.getOkayBtnGeom(), relief=None, pos=(-0.5, -0.5, -0.5), text_scale=0.05, text_pos=(0, -0.11), command=self.applyDisplaySettings)
        self.cancelBtn = DirectButton(text='Cancel', geom=CIGlobals.getCancelBtnGeom(), relief=None, pos=(-0.3, -0.5, -0.5), text_scale=0.05, text_pos=(0, -0.11), command=self.cancelDisplaySettings)
        if self.resoLbl['text'] == '640x480':
            self.resSlider['value'] = 0
        elif self.resoLbl['text'] == '800x600':
            self.resSlider['value'] = 50
        elif self.resoLbl['text'] == '1024x768':
            self.resSlider['value'] = 100
        elif self.resoLbl['text'] == '1280x1024':
            self.resSlider['value'] = 150
        elif self.resoLbl['text'] == '1600x1200':
            self.resSlider['value'] = 200
        return
Beispiel #3
0
 def setChatAbsolute(self, chatString = None):
     if not chatString or chatString.isspace() or len(chatString) == 0:
         return
     self.clearChat()
     self.taskId = random.randint(0, 1000000000000000000000000000000L)
     if self.nameTag:
         self.getNameTag().hide()
     if self.isThought(chatString):
         chatString = self.removeThoughtPrefix(chatString)
         bubble = loader.loadModel(CIGlobals.ThoughtBubble)
     else:
         length = math.sqrt(len(chatString)) / self.LENGTH_FACTOR
         if length < self.MIN_LENGTH:
             length = self.MIN_LENGTH
         if length > self.MAX_LENGTH:
             length = self.MAX_LENGTH
         bubble = loader.loadModel(CIGlobals.ChatBubble)
         if self.autoClearChat:
             taskMgr.doMethodLater(length, self.clearChatTask, 'clearAvatarChat-%s' % str(self.taskId))
     if self.avatarType == CIGlobals.Suit:
         font = CIGlobals.getSuitFont()
     else:
         font = CIGlobals.getToonFont()
     self.chatBubble = ChatBalloon(bubble).generate(chatString, font)
     self.chatBubble.setEffect(BillboardEffect.make(Vec3(0, 0, 1), True, False, 3.0, camera, Point3(0, 0, 0)))
     if self.nameTag:
         self.chatBubble.setZ(self.getNameTag().getZ())
     elif self.avatarType == CIGlobals.Suit:
         self.chatBubble.setZ(CIGlobals.SuitNameTagPos[self.head])
     if hasattr(self.avatar, 'getGhost'):
         if not self.avatar.getGhost() or self.avatar.doId == base.localAvatar.doId:
             self.chatBubble.reparentTo(self)
     else:
         self.chatBubble.reparentTo(self)
     LabelScaler().resize(self.chatBubble)
Beispiel #4
0
    def enterDisplayPage(self):
        self.book.createPageButtons(False, False)
        self.book.setTitle("Display Options")
        dialog_gui = loader.loadModel(
            "phase_3/models/gui/dialog_box_buttons_gui.bam")
        width, height, fs, music, sfx, tex_detail, model_detail, aa, af = SettingsManager(
        ).getSettings("settings.json")
        self.width = width
        self.height = height
        self.windowType = [fs]
        self.buttons = [
            DirectRadioButton(text="Windowed",
                              variable=self.windowType,
                              value=[False],
                              scale=0.1,
                              pos=(-0.45, 0.15, 0.15)),
            DirectRadioButton(text="Fullscreen",
                              variable=self.windowType,
                              value=[True],
                              scale=0.1,
                              pos=(-0.45, -0.15, -0.15))
        ]

        for button in self.buttons:
            button.setOthers(self.buttons)

        self.resoLbl = DirectLabel(text="%sx%s" % (width, height),
                                   scale=0.08,
                                   relief=None,
                                   pos=(0.25, 0, 0))
        self.resSlider = DirectSlider(range=(0, 200),
                                      pageSize=50,
                                      command=self.setResoText,
                                      scale=0.3,
                                      orientation=DGG.VERTICAL,
                                      pos=(0.6, 0, 0))
        self.okBtn = DirectButton(text="OK",
                                  geom=CIGlobals.getOkayBtnGeom(),
                                  relief=None,
                                  pos=(-0.5, -0.5, -0.5),
                                  text_scale=0.05,
                                  text_pos=(0, -0.11),
                                  command=self.applyDisplaySettings)
        self.cancelBtn = DirectButton(text="Cancel",
                                      geom=CIGlobals.getCancelBtnGeom(),
                                      relief=None,
                                      pos=(-0.3, -0.5, -0.5),
                                      text_scale=0.05,
                                      text_pos=(0, -0.11),
                                      command=self.cancelDisplaySettings)
        if self.resoLbl['text'] == "640x480":
            self.resSlider['value'] = 0
        elif self.resoLbl['text'] == "800x600":
            self.resSlider['value'] = 50
        elif self.resoLbl['text'] == "1024x768":
            self.resSlider['value'] = 100
        elif self.resoLbl['text'] == "1280x1024":
            self.resSlider['value'] = 150
        elif self.resoLbl['text'] == "1600x1200":
            self.resSlider['value'] = 200
 def __init__(self, index):
     DirectFrame.__init__(self, scale=0.5)
     stickergui = loader.loadModel(
         'phase_3.5/models/gui/stickerbook_gui.bam')
     self['image'] = stickergui.find('**/paper_note')
     self.setPos(self.spots[index])
     self.headingText = OnscreenText(parent=self,
                                     text='',
                                     font=CIGlobals.getToonFont(),
                                     pos=self.HeadingTextPos,
                                     scale=self.HeadingTextScale)
     self.taskInfoText = OnscreenText(parent=self,
                                      text='',
                                      font=CIGlobals.getToonFont(),
                                      pos=self.TaskInfoTextPos,
                                      scale=self.NonHeadingTextScale)
     self.progressText = OnscreenText(parent=self,
                                      text='',
                                      font=CIGlobals.getToonFont(),
                                      pos=self.ProgressTextPos,
                                      scale=self.ProgressTextScale)
     self.rewardText = OnscreenText(parent=self,
                                    text='',
                                    font=CIGlobals.getToonFont(),
                                    pos=self.RewardTextPos,
                                    scale=self.RewardTextScale)
     self.hide()
Beispiel #6
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
 def setup(self, title='CHOOSE WHAT YOU WANT TO BUY'):
     font = CIGlobals.getMickeyFont()
     txtFg = (0, 0, 0, 1)
     txtScale = 0.05
     txtPos = (0, -0.1)
     buttons = loader.loadModel('phase_3.5/models/gui/QT_buttons.bam')
     self.window = OnscreenImage(image=self.bgImage,
                                 scale=(0.9, 1, 0.7),
                                 parent=self)
     self.title = DirectLabel(text=title,
                              relief=None,
                              pos=(0, 0, 0.5),
                              text_wordwrap=10,
                              text_font=font,
                              text_fg=(1, 1, 0, 1),
                              scale=0.1,
                              parent=self)
     self.updateTurretCount()
     self.infoLbl = DirectLabel(text='Welcome!',
                                relief=None,
                                text_scale=0.075,
                                text_fg=txtFg,
                                text_shadow=(0, 0, 0, 0),
                                pos=(0, 0, 0.215))
     self.okBtn = DirectButton(geom=CIGlobals.getOkayBtnGeom(),
                               relief=None,
                               text='OK',
                               text_fg=txtFg,
                               text_scale=txtScale,
                               text_pos=txtPos,
                               pos=(-0.1, 0, -0.5),
                               parent=self)
     self.clBtn = DirectButton(geom=CIGlobals.getCancelBtnGeom(),
                               relief=None,
                               text='Cancel',
                               text_fg=txtFg,
                               text_scale=txtScale,
                               text_pos=txtPos,
                               pos=(0.1, 0, -0.5),
                               parent=self)
     buttonGeom = (buttons.find('**/QT_back'), buttons.find('**/QT_back'),
                   buttons.find('**/QT_back'), buttons.find('**/QT_back'))
     self.backBtn = DirectButton(geom=buttonGeom,
                                 relief=None,
                                 scale=0.05,
                                 pos=(-0.3, 0, -0.25),
                                 parent=self,
                                 command=self.changePage,
                                 extraArgs=[0])
     self.nextBtn = DirectButton(geom=buttonGeom,
                                 relief=None,
                                 scale=0.05,
                                 pos=(0.3, 0, -0.25),
                                 hpr=(0, 0, 180),
                                 command=self.changePage,
                                 extraArgs=[1],
                                 parent=self)
     self.hideInfo()
     return
Beispiel #8
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
Beispiel #9
0
 def __init__(self, parent=None, style=NoButtons, **kw):
     if parent == None:
         parent = aspect2d
     self.style = style
     if self.style == YesNo or self.style == YesCancel:
         okButtons = CIGlobals.getOkayBtnGeom()
         cancelButtons = CIGlobals.getCancelBtnGeom()
         buttonImage = [okButtons, cancelButtons]
         buttonValues = [DGG.DIALOG_OK, DGG.DIALOG_CANCEL]
         if 'buttonText' in kw:
             buttonText = kw['buttonText']
             del kw['buttonText']
         else:
             buttonText = [CIGlobals.DialogYes]
             if self.style == YesNo:
                 buttonText.append(CIGlobals.DialogNo)
             elif self.style == YesCancel:
                 buttonText.append(CIGlobals.DialogCancel)
     else:
         if self.style == Ok:
             okButtons = CIGlobals.getOkayBtnGeom()
             buttonImage = [okButtons]
             buttonText = [CIGlobals.DialogOk]
             buttonValues = [DGG.DIALOG_OK]
         else:
             if self.style == Cancel:
                 cancelButtons = CIGlobals.getCancelBtnGeom()
                 buttonImage = [cancelButtons]
                 buttonText = [CIGlobals.DialogCancel]
                 buttonValues = [DGG.DIALOG_CANCEL]
             else:
                 if self.style == NoButtons:
                     buttonImage = []
                     buttonText = []
                     buttonValues = []
                 else:
                     self.notify.error('Style %s does not exist.' %
                                       self.style)
     optiondefs = (('buttonImageList', buttonImage, DGG.INITOPT),
                   ('buttonTextList', buttonText, DGG.INITOPT),
                   ('buttonValueList', buttonValues,
                    DGG.INITOPT), ('buttonPadSF', 2.2, DGG.INITOPT),
                   ('text_font', DGG.getDefaultFont(),
                    None), ('text_wordwrap', 18, None), ('text_scale', 0.07,
                                                         None),
                   ('buttonSize', (-0.05, 0.05, -0.05, 0.05),
                    None), ('button_pad', (0, 0), None), ('button_relief',
                                                          None, None),
                   ('button_text_pos', (0, -0.1),
                    None), ('fadeScreen', 0.5,
                            None), ('image_color', CIGlobals.DialogColor,
                                    None), ('image',
                                            DGG.getDefaultDialogGeom(),
                                            None), ('relief', None, None))
     self.defineoptions(kw, optiondefs)
     DirectDialog.__init__(self, parent)
     self.initialiseoptions(Dialog)
     return
Beispiel #10
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
Beispiel #11
0
 def __init__(self, index):
     DirectFrame.__init__(self, scale=0.5)
     stickergui = loader.loadModel('phase_3.5/models/gui/stickerbook_gui.bam')
     self['image'] = stickergui.find('**/paper_note')
     self.setPos(self.spots[index])
     self.headingText = OnscreenText(parent=self, text='', font=CIGlobals.getToonFont(), pos=self.HeadingTextPos, scale=self.HeadingTextScale)
     self.taskInfoText = OnscreenText(parent=self, text='', font=CIGlobals.getToonFont(), pos=self.TaskInfoTextPos, scale=self.NonHeadingTextScale)
     self.progressText = OnscreenText(parent=self, text='', font=CIGlobals.getToonFont(), pos=self.ProgressTextPos, scale=self.ProgressTextScale)
     self.rewardText = OnscreenText(parent=self, text='', font=CIGlobals.getToonFont(), pos=self.RewardTextPos, scale=self.RewardTextScale)
     self.hide()
Beispiel #12
0
 def __init__(self, parent=None, style=NoButtons, **kw):
     if parent == None:
         parent = aspect2d
     self.style = style
     if self.style == YesNo or self.style == YesCancel:
         okButtons = CIGlobals.getOkayBtnGeom()
         cancelButtons = CIGlobals.getCancelBtnGeom()
         buttonImage = [okButtons, cancelButtons]
         buttonValues = [DGG.DIALOG_OK, DGG.DIALOG_CANCEL]
         if "buttonText" in kw:
             buttonText = kw["buttonText"]
             del kw["buttonText"]
         else:
             buttonText = [CIGlobals.DialogYes]
             if self.style == YesNo:
                 buttonText.append(CIGlobals.DialogNo)
             elif self.style == YesCancel:
                 buttonText.append(CIGlobals.DialogCancel)
     elif self.style == Ok:
         okButtons = CIGlobals.getOkayBtnGeom()
         buttonImage = [okButtons]
         buttonText = [CIGlobals.DialogOk]
         buttonValues = [DGG.DIALOG_OK]
     elif self.style == Cancel:
         cancelButtons = CIGlobals.getCancelBtnGeom()
         buttonImage = [cancelButtons]
         buttonText = [CIGlobals.DialogCancel]
         buttonValues = [DGG.DIALOG_CANCEL]
     elif self.style == NoButtons:
         buttonImage = []
         buttonText = []
         buttonValues = []
     else:
         self.notify.error("Style %s does not exist." % self.style)
     optiondefs = (
         ("buttonImageList", buttonImage, DGG.INITOPT),
         ("buttonTextList", buttonText, DGG.INITOPT),
         ("buttonValueList", buttonValues, DGG.INITOPT),
         ("buttonPadSF", 2.2, DGG.INITOPT),
         ("text_font", DGG.getDefaultFont(), None),
         ("text_wordwrap", 18, None),
         ("text_scale", 0.07, None),
         ("buttonSize", (-0.05, 0.05, -0.05, 0.05), None),
         ("button_pad", (0, 0), None),
         ("button_relief", None, None),
         ("button_text_pos", (0, -0.1), None),
         ("fadeScreen", 0.5, None),
         ("image_color", CIGlobals.DialogColor, None),
         ("image", DGG.getDefaultDialogGeom(), None),
         ("relief", None, None),
     )
     self.defineoptions(kw, optiondefs)
     DirectDialog.__init__(self, parent)
     self.initialiseoptions(Dialog)
     return
    def createGui(self):
        """ Create the GUI that will tell the client how much
        running power they have. """
        self.powerFrame = DirectFrame()
        self.powerBg = OnscreenImage(image=DGG.getDefaultDialogGeom(),
                                     scale=(0.5, 1.0, 0.5),
                                     pos=(1.02, 0, 0.7),
                                     parent=self.powerFrame,
                                     color=CIGlobals.DialogColor)
        self.powerBar = DirectWaitBar(barColor=(0, 0.7, 0, 1),
                                      range=20.0,
                                      value=0,
                                      parent=self.powerFrame,
                                      scale=(0.15, 0, 1.1),
                                      pos=(1.02, 0, 0.66))
        self.powerBar.setR(-90)
        self.powerTitle = DirectLabel(text="POWER",
                                      text_scale=0.08,
                                      pos=(1.02, 0, 0.85),
                                      relief=None,
                                      parent=self.powerFrame,
                                      text_fg=(1, 1, 0, 1),
                                      text_font=CIGlobals.getMickeyFont())

        self.boostFrame = DirectFrame()
        self.boostBg = OnscreenImage(image=DGG.getDefaultDialogGeom(),
                                     scale=(0.5, 1.0, 0.5),
                                     pos=(0.45, 0, 0.7),
                                     parent=self.boostFrame,
                                     color=CIGlobals.DialogColor)
        self.boostBar = DirectWaitBar(barColor=self.defaultBoostBarColor,
                                      range=10,
                                      value=0,
                                      parent=self.boostFrame,
                                      scale=(0.15, 0, 1.1),
                                      pos=(0.45, 0, 0.66))
        self.boostBar.setR(-90)
        self.boostTitle = DirectLabel(text="BOOST",
                                      text_scale=0.08,
                                      pos=(0.45, 0, 0.85),
                                      relief=None,
                                      parent=self.boostFrame,
                                      text_fg=(1, 1, 0, 1),
                                      text_font=CIGlobals.getMickeyFont())
        self.boostFullLbl = DirectLabel(text="BOOST READY",
                                        text_scale=0.065,
                                        pos=(0.45, 0, 0.3),
                                        relief=None,
                                        parent=self.boostFrame,
                                        text_fg=self.fullBoostBarColor,
                                        text_shadow=(0.4, 0.4, 0.4, 1.0),
                                        text_font=CIGlobals.getToonFont())
        self.boostFullLbl.hide()
Beispiel #14
0
 def __init__(self):
     self.defaultLogoScale = 1
     self.defaultLogoZ = 0.65
     self.bgm = loader.loadModel(
         "phase_3/models/gui/progress-background.bam")
     self.bgm.find('**/logo').stash()
     self.bg = self.bgm.find('**/bg')
     self.logo = loader.loadTexture("phase_3/maps/CogInvasion_Logo.png")
     self.logoNode = hidden.attachNewNode('logoNode')
     self.logoNode.setScale(self.defaultLogoScale)
     self.logoNode.setPos(0, self.defaultLogoZ, 0)
     self.logoImg = OnscreenImage(image=self.logo,
                                  scale=(0.685, 0, 0.325),
                                  parent=self.logoNode)
     self.logoImg.setTransparency(True)
     self.bg_img = OnscreenImage(image=self.bg, parent=hidden)
     self.bg_img.setSx(1.35)
     self.bg_img.hide()
     self.progress_bar = DirectWaitBar(value=0,
                                       pos=(0, 0, -0.85),
                                       parent=hidden,
                                       text_pos=(0, 0, 0.2))
     self.progress_bar.setSx(1.064)
     self.progress_bar.setSz(0.38)
     toontipgui = loader.loadModel(
         'phase_3.5/models/gui/stickerbook_gui.bam')
     poster = toontipgui.find('**/questCard')
     self.toontipFrame = DirectFrame(image=poster,
                                     image_scale=(1.4, 1, 1),
                                     parent=hidden,
                                     relief=None,
                                     pos=(0, 0, -0.1),
                                     scale=0.85)
     self.toontipLbl = OnscreenText(text="",
                                    parent=self.toontipFrame,
                                    fg=(89.0 / 255, 95.0 / 255, 98.0 / 255,
                                        1),
                                    font=CIGlobals.getToonFont(),
                                    wordwrap=14.5,
                                    pos=(-0.59, 0.25),
                                    align=TextNode.ALeft,
                                    scale=0.08)
     self.loading_lbl = DirectLabel(text="",
                                    relief=None,
                                    scale=0.08,
                                    pos=(-1.0725, 0, -0.79),
                                    text_align=TextNode.ALeft,
                                    sortOrder=100,
                                    text_fg=(89.0 / 255, 95.0 / 255,
                                             98.0 / 255, 1.0),
                                    text_font=CIGlobals.getMinnieFont(),
                                    parent=hidden,
                                    text_shadow=(0, 0, 0, 1))
Beispiel #15
0
 def enterAvChoose(self):
     if base.cr.holidayManager.getHoliday() == HolidayType.CHRISTMAS:
         base.cr.music.stop()
         base.cr.music = base.loadMusic(CIGlobals.getHolidayTheme())
         base.cr.music.setLoop(True)
         base.cr.music.setVolume(0.75)
         base.cr.music.play()
         whisper = WhisperPopup(HolidayGlobals.CHRISTMAS_TIME,
                                CIGlobals.getToonFont(),
                                ChatGlobals.WTSystem)
         whisper.manage(base.marginManager)
     self.pickAToon = CharSelection(self)
     self.pickAToon.load()
Beispiel #16
0
 def askTutorial(self):
     self.firstTimeMsg = YesNoDialog(text=CIGlobals.FirstTimeMsg,
                                     text_scale=0.07,
                                     text_wordwrap=18,
                                     buttonGeomList=[
                                         CIGlobals.getOkayBtnGeom(),
                                         CIGlobals.getCancelBtnGeom()
                                     ],
                                     button_relief=None,
                                     button_text_pos=(0, -0.1),
                                     command=self.handleTutorialDecision,
                                     image_color=CIGlobals.DialogColor,
                                     fadeScreen=1)
 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
Beispiel #18
0
 def __init__(self):
     DirectFrame.__init__(self, parent=base.a2dTopRight, pos=(-0.25, 0.0, -0.46))
     gui = loader.loadModel('phase_3.5/models/gui/friendslist_gui.bam')
     self['image'] = gui.find('**/FriendsBox_Open')
     self.headingText = OnscreenText(text='', parent=self, pos=(0.01, 0.2), fg=(0.1, 0.1, 0.4, 1.0), scale=0.04)
     self.frameForNames = DirectScrolledList(frameSize=(0.0, 0.35, 0, 0.35), incButton_geom=(gui.find('**/FndsLst_ScrollUp'),
      gui.find('**/FndsLst_ScrollDN'),
      gui.find('**/FndsLst_ScrollUp_Rllvr'),
      gui.find('**/FndsLst_ScrollUp')), incButton_relief=None, incButton_hpr=(0, 0, 180), incButton_pos=(0.17, 0, -0.04), decButton_geom=(gui.find('**/FndsLst_ScrollUp'),
      gui.find('**/FndsLst_ScrollDN'),
      gui.find('**/FndsLst_ScrollUp_Rllvr'),
      gui.find('**/FndsLst_ScrollUp')), decButton_relief=None, decButton_pos=(0.17, 0, 0.395), pos=(-0.1625, 0.0, -0.27), parent=self, numItemsVisible=9, forceHeight=0.04, itemFrame_frameSize=(-0.15, 0.15, 0, -0.35), itemFrame_pos=(0, 0, 0.3275), itemFrame_relief=None, relief=None)
     self.fwdBtn = 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.17, 0.0, -0.38), command=self.doState)
     self.backBtn = 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.15, 0.0, -0.38), hpr=(180, 0, 0), command=self.doState)
     self.closeBtn = DirectButton(geom=CIGlobals.getCancelBtnGeom(), relief=None, parent=self, command=self.exitClicked)
     self.closeBtn.setPos(0.015, 0.0, -0.375)
     gui.removeNode()
     del gui
     self.hide()
     self.friends = {}
     self.onlineFriends = {}
     self.fsm = ClassicFSM.ClassicFSM('FriendsList', [State.State('off', self.enterOff, self.exitOff), State.State('onlineFriendsList', self.enterOnlineFriendsList, self.exitOnlineFriendsList), State.State('allFriendsList', self.enterAllFriendsList, self.exitAllFriendsList)], 'off', 'off')
     self.fsm.enterInitialState()
     self.accept('gotFriendsList', self.handleFriendsList)
     return
Beispiel #19
0
 def __init__(self, cr):
     try:
         self.DistributedCogBattle_initialized
         return
     except:
         self.DistributedCogBattle_initialized = 1
     DistributedObject.__init__(self, cr)
     self.hoodIndex = None
     self.totalCogs = None
     self.cogsRemaining = None
     self.cogProgressBar = None
     self.DNCSigns = []
     self.introMessageSeq = None
     self.victorySeq = None
     self.turretManager = None
     self.isGettingBeans = False
     self.getBeansLabel = OnscreenText(
         text="Hurry and pick up all of the jellybeans!",
         fg=(1, 1, 1, 1),
         shadow=(0, 0, 0, 1),
         pos=(0, 0.7),
         font=CIGlobals.getMinnieFont())
     self.getBeansLabel.hide()
     self.timer = Timer()
     self.timer.setZeroCommand(self.getBeansTimeUp)
     # Give toons 30 seconds to get the beans at the end.
     self.timer.setInitialTime(60)
     self.endMusic = base.loadMusic(
         'phase_7/audio/bgm/encntr_toon_winning_indoor.ogg')
     self.balloonSound = base.loadSfx(
         'phase_3/audio/sfx/GUI_balloon_popup.ogg')
def generateBodyPart(toon, bodyPart, partType, partPhase, pantType):
    partAnimations = {}
    mdlPath = BASE_MODEL % (partPhase, partType, pantType, bodyPart,
                            str(CIGlobals.getModelDetail(toon.avatarType)))
    if '_-' in mdlPath:
        mdlPath = mdlPath.replace('_-', '-')
    if '__' in mdlPath:
        mdlPath = mdlPath.replace('__', '_')
    toon.loadModel(mdlPath, bodyPart)
    for animName in ANIMATIONS:
        animationData = ANIMATIONS[animName]
        animPath = None
        if len(animationData) == 2:
            animPhase = animationData[0]
            animFile = animationData[1]
            animPath = BASE_MODEL % (animPhase, partType, pantType, bodyPart,
                                     animFile)
            if '_-' in animPath:
                animPath = animPath.replace('_-', '-')
            if '__' in animPath:
                animPath = animPath.replace('__', '_')
        partAnimations[animName] = animPath

    toon.loadAnims(partAnimations, bodyPart)
    return
    def createSystemMessage(self, message, important=1):
        try:
            taskMgr.remove('clearSystemMessage-' + self.taskName)
            self.bubble.remove_node()
            self.bubble = None
        except:
            pass

        self.taskName = str(random.uniform(0, 10101010100L))
        msg_color = (0.8, 0.3, 0.6, 0.6)
        sysmsg_data = [[Point3(0.075, 0, -0.2), base.a2dLeftCenter],
                       [Point3(-0.6, 0, -0.7), base.a2dRightCenter],
                       [Point3(-0.6, 0, -0.2), base.a2dRightCenter],
                       [Point3(0.075, 0, -0.7), base.a2dLeftCenter],
                       [Point3(0.35, 0, 0.2), base.a2dBottomCenter],
                       [Point3(-0.2, 0, 0.2), base.a2dBottomCenter],
                       [Point3(-0.8, 0, 0.2), base.a2dBottomCenter]]
        data = random.choice(sysmsg_data)
        sfx = loader.loadSfx('phase_3.5/audio/sfx/GUI_whisper_3.ogg')
        SoundInterval(sfx).start()
        length = math.sqrt(len(message)) / self.LENGTH_FACTOR
        self.bubble = ChatBalloon(
            loader.loadModel(
                'phase_3/models/props/chatbox_noarrow.bam')).generate(
                    message, CIGlobals.getToonFont(), balloonColor=msg_color)
        self.bubble.reparent_to(data[1])
        self.bubble.set_pos(data[0])
        self.bubble.set_scale(0.05)
        taskMgr.doMethodLater(length, self.clearSystemMessage,
                              'clearSystemMessage-' + self.taskName)
        return
 def friendLeftYourList(self, avatarId):
     whisper = WhisperPopup(
         self.LeftListMessage % self.getAvatarName(avatarId),
         CIGlobals.getToonFont(), ChatGlobals.WTSystem)
     whisper.manage(base.marginManager)
     base.localAvatar.panel.maybeUpdateFriendButton()
     self.d_requestFriendsList()
Beispiel #23
0
 def load(self):
     StateData.load(self)
     self.loadingLabel = OnscreenText(text='Loading...',
                                      font=CIGlobals.getToonFont(),
                                      pos=(0, 0.1, 0),
                                      scale=0.08,
                                      parent=aspect2d)
Beispiel #24
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
Beispiel #25
0
 def toonOffline(self, avatarId, name):
     print "toon offline"
     if avatarId in base.localAvatar.friends:
         print "they are in my friends list"
         whisper = WhisperPopup(self.GoingOfflineMessage % name, CIGlobals.getToonFont(), ChatGlobals.WTSystem)
         whisper.manage(base.marginManager)
         self.d_requestFriendsList()
Beispiel #26
0
    def __init__(self, mat=0):
        try:
            self.Avatar_initialized
            return
        except:
            self.Avatar_initialized = 1

        ToonTalker.ToonTalker.__init__(self)
        Actor.__init__(self, None, None, None, flattenable=0, setFinal=1)#self.setColorOff()
        
        self.mat = mat
        self._name = ''
        self.chat = ''

        self.nametagNodePath = None
        self.__nameVisible = 1
        self.nametag = NametagGroup()
        self.nametag.setAvatar(self)
        font = CIGlobals.getToonFont()
        self.nametag.setFont(font)
        self.nametag.setChatFont(font)
        self.nametag3d = self.attachNewNode('nametag3d')
        self.nametag3d.setTag('cam', 'nametag')
        self.setTwoSided(False)

        self.avatarType = None
        self.charName = None
        self._name = None
        self.tag = None
        self.height = 0
        return
 def makeMoreDetailsPanel(self):
     self.actionFSM.request('off')
     self.removeMoreDetailsPanel()
     self.removeActionPanel()
     self.makeActionPanel()
     zoneId = self.avatarInfo[5]
     shardId = self.avatarInfo[6]
     isOnline = self.avatarInfo[7]
     shardName = 'Unknown District'
     hoodName = ZoneUtil.getHoodId(zoneId, 1)
     for district in base.cr.activeDistricts.values():
         if district.doId == shardId:
             shardName = district.getDistrictName()
             break
     if not isOnline:
         hoodName = 'Offline'
         shardName = 'Offline'
     self.locationText = OnscreenText('Location: {0}'.format(hoodName),
                                      parent=self.actionFrame,
                                      pos=(-0.3, 0.05, 0),
                                      align=TextNode.ALeft,
                                      scale=0.04)
     self.shardText = OnscreenText('District: {0}'.format(shardName),
                                   parent=self.actionFrame,
                                   pos=(-0.3, 0.0, 0),
                                   align=TextNode.ALeft,
                                   scale=0.04)
     self.detailsExitBtn = DirectButton(geom=CIGlobals.getCancelBtnGeom(),
                                        parent=self.actionFrame,
                                        relief=None,
                                        scale=0.8,
                                        pos=(-0.3, 0.0, -0.175),
                                        command=self.removeMoreDetailsPanel)
Beispiel #28
0
 def load(self):
     font = CIGlobals.getToonFont()
     box = DGG.getDefaultDialogGeom()
     self.finalScoreContainer = DirectFrame()
     self.finalScoreBg = OnscreenImage(image=box,
                                       color=(1, 1, 0.75, 1),
                                       scale=(1.9, 1.4, 1.4),
                                       parent=self.finalScoreContainer)
     self.finalScoreTitle = OnscreenText(text="Waiting for final scores...",
                                         pos=(0, 0.5, 0),
                                         font=font,
                                         scale=(0.12),
                                         parent=self.finalScoreContainer)
     self.finalScoreNameLbl = OnscreenText(text="",
                                           scale=0.095,
                                           pos=(-0.85, 0.3, 0),
                                           font=font,
                                           align=TextNode.ALeft,
                                           parent=self.finalScoreContainer)
     self.finalScorePointLbl = OnscreenText(text="",
                                            scale=0.095,
                                            pos=(0.85, 0.3, 0),
                                            font=font,
                                            align=TextNode.ARight,
                                            parent=self.finalScoreContainer)
     self.finalScoreContainer.hide()
     self.finalScoreContainer.setBin('gui-popup', 60)
     del font
     del box
Beispiel #29
0
    def start(self, avatar):
        self.avatar = avatar
        self.cleanupLocationSeeker()
        self.buildButton()
        self.button.reparentTo(self.avatar.find('**/def_joint_left_hold'))

        track = Sequence(
            ActorInterval(self.avatar,
                          self.buttonAnim,
                          startFrame=0,
                          endFrame=self.chooseLocFrame,
                          playRate=self.playRate))

        if self.avatar == base.localAvatar:
            self.locationSeeker = LocationSeeker(self.avatar, self.minDistance,
                                                 self.maxDistance)
            self.locationSeeker.setShadowType(self.isCircle, self.shadowScale)
            self.avatar.acceptOnce(
                self.locationSeeker.getLocationSelectedName(),
                base.localAvatar.releaseGag)
            track.append(Func(self.locationSeeker.startSeeking))

            self.helpInfo = OnscreenText(
                text='Move the shadow with your mouse\nClick to release',
                pos=(0, -0.75),
                font=CIGlobals.getToonFont(),
                fg=(1, 1, 1, 1),
                shadow=(0, 0, 0, 1))

        track.start()
    def __init__(self):
        # Let's load up the DirectFrame
        DirectFrame.__init__(self,
                             parent=base.a2dTopLeft,
                             relief=None,
                             pos=(0.275, 1, -0.7),
                             sortOrder=0)

        # The variables we're going to be using.
        self.pointsSfx = loader.loadSfx('phase_4/audio/sfx/MG_maze_pickup.ogg')
        self.points = 0

        # Background because it won't work for whatever reason.
        gui = loader.loadModel('phase_4/models/gui/purchase_gui.bam')
        panel = gui.find('**/yellowPanel')
        self.bg = OnscreenImage(image=panel, parent=self)

        # Let's setup the header text.
        self.title = OnscreenText(text='Capture Points',
                                  font=CIGlobals.getMinnieFont(),
                                  parent=self,
                                  scale=0.0475,
                                  pos=(0, 0.18),
                                  fg=(1, 0, 0, 1),
                                  shadow=(0.2, 0.2, 0.2, 1))

        # Let's setup the amount text.
        self.amt_label = OnscreenText(text=str(self.points),
                                      font=CIGlobals.getToonFont(),
                                      parent=self,
                                      scale=0.15,
                                      pos=(0, 0.03525),
                                      shadow=(0.5, 0.5, 0.5, 0.6))

        # Let's setup the info text.
        self.info = OnscreenText(
            text=
            'First Toon to 100 points wins!\nEarn points by standing on the\nhill after capturing it.',
            parent=self,
            font=CIGlobals.getToonFont(),
            scale=0.035,
            pos=(0, -0.05),
            fg=(1.5, 0, 0, 1),
            shadow=(0.2, 0.2, 0.2, 1))

        # We're not ready to show the GUI yet.
        self.hide()
    def setChatAbsolute(self, chatString=None):
        if not chatString or chatString.isspace() or len(chatString) == 0:
            return

        self.clearChat()
        self.taskId = random.randint(0, 1000000000000000000000000000000)
        if self.nameTag:
            self.getNameTag().hide()

        if self.isThought(chatString):
            chatString = self.removeThoughtPrefix(chatString)
            bubble = loader.loadModel(CIGlobals.ThoughtBubble)
        else:
            length = math.sqrt(len(chatString)) / self.LENGTH_FACTOR
            if length < self.MIN_LENGTH:
                length = self.MIN_LENGTH
            if length > self.MAX_LENGTH:
                length = self.MAX_LENGTH
            bubble = loader.loadModel(CIGlobals.ChatBubble)
            if self.autoClearChat:
                taskMgr.doMethodLater(
                    length, self.clearChatTask,
                    "clearAvatarChat-%s" % (str(self.taskId)))

        if self.avatarType == CIGlobals.Suit:
            font = CIGlobals.getSuitFont()
        else:
            font = CIGlobals.getToonFont()

        self.chatBubble = ChatBalloon(bubble).generate(chatString, font)
        self.chatBubble.setEffect(
            BillboardEffect.make(Vec3(0, 0, 1), True, False, 3.0, camera,
                                 Point3(0, 0, 0)))
        if self.nameTag:
            self.chatBubble.setZ(self.getNameTag().getZ())
        else:
            if self.avatarType == CIGlobals.Suit:
                self.chatBubble.setZ(CIGlobals.SuitNameTagPos[self.head])

        if hasattr(self.avatar, 'getGhost'):
            if not self.avatar.getGhost(
            ) or self.avatar.doId == base.localAvatar.doId:
                self.chatBubble.reparentTo(self)
        else:
            self.chatBubble.reparentTo(self)

        LabelScaler().resize(self.chatBubble)
Beispiel #32
0
 def setSuit(self, suitType, head, team, skeleton):
     self.type = suitType
     self.head = head
     self.team = team
     self.skeleton = skeleton
     self.health = CIGlobals.getSuitHP(self.level)
     self.maxHealth = self.health
     self.itemDropper.calculate()
Beispiel #33
0
 def setupCountdownText(self):
     tn = TextNode('countdownText')
     tn.setFont(CIGlobals.getMickeyFont())
     tn.setTextColor(VBase4(0.5, 0.5, 0.5, 1.0))
     tn.setAlign(TextNode.ACenter)
     self.countdownTextNP = self.getElevatorModel().attachNewNode(tn)
     self.countdownTextNP.setScale(2)
     self.countdownTextNP.setPos(0, 1, 7)
 def enterAnnounceGameOver(self):
     whistleSfx = base.loadSfx("phase_4/audio/sfx/AA_sound_whistle.mp3")
     whistleSfx.play()
     del whistleSfx
     self.gameOverLbl = DirectLabel(
         text="GAME\nOVER!", relief=None, scale=0.35, text_font=CIGlobals.getMickeyFont(), text_fg=(1, 0, 0, 1)
     )
     return
 def toonOnline(self, avatarId, name):
     if avatarId in base.localAvatar.friends:
         whisper = WhisperPopup(self.ComingOnlineMessage % name,
                                CIGlobals.getToonFont(),
                                ChatGlobals.WTSystem)
         whisper.setClickable(name, avatarId, isPlayer=1)
         whisper.manage(base.marginManager)
         self.d_requestFriendsList()
Beispiel #36
0
 def load(self):
     self.ammo_gui = loader.loadModel("phase_4/models/minigames/gun_ammo_gui.egg")
     self.ammo_gui.setScale(0.15)
     self.ammo_gui.setPos(0.38, 0, 0.1)
     self.hp_meter = DirectWaitBar(
         text=str(self.base.hp),
         text_roll=-90,
         text_scale=0.2,
         text_pos=(-0.025, 0),
         relief=DGG.RAISED,
         barColor=(1, 0, 0, 1),
         range=self.base.max_hp,
         value=self.base.hp,
         parent=base.a2dBottomRight,
         scale=0.4,
         pos=(-0.12, 0, 0.2),
         frameSize=(-0.4, 0.4, -0.2, 0.2),
     )
     self.hp_meter.setR(-90)
     self.hp_meter.hide()
     self.crosshair = OnscreenImage(image="phase_4/maps/crosshair.png", scale=0.04)
     self.crosshair.setTransparency(True)
     self.crosshair.hide()
     font = CIGlobals.getToonFont()
     box = DGG.getDefaultDialogGeom()
     if self.base.__class__.__name__ == "GunGameToonFPS":
         self.stats_container = DirectFrame(parent=base.a2dTopLeft, pos=(0.3, 0.2, -0.185))
         self.stats_bg = OnscreenImage(
             image=box, color=(1, 1, 0.75, 1), scale=(0.5, 0.3, 0.3), parent=self.stats_container
         )
         self.stats_lbl = OnscreenText(font=font, text="Stats", pos=(-0.01, 0.08, 0), parent=self.stats_container)
         self.kills_lbl = OnscreenText(
             font=font,
             text="Kills: " + str(self.base.kills),
             pos=(-0.235, 0.025, 0),
             scale=0.055,
             parent=self.stats_container,
             align=TextNode.ALeft,
         )
         self.deaths_lbl = OnscreenText(
             font=font,
             text="Deaths: " + str(self.base.deaths),
             pos=(-0.235, -0.04, 0),
             scale=0.055,
             parent=self.stats_container,
             align=TextNode.ALeft,
         )
         self.points_lbl = OnscreenText(
             font=font,
             text="Points: " + str(self.base.points),
             pos=(-0.235, -0.105, 0),
             scale=0.055,
             parent=self.stats_container,
             align=TextNode.ALeft,
         )
         self.stats_container.hide()
         del font
         del box
Beispiel #37
0
 def setSuit(self, plan, variant = 0, tutorial = None):
     self.suitPlan = plan
     self.variant = Variant.getVariantById(variant)
     self.maxHealth = CIGlobals.getSuitHP(self.level)
     self.health = self.maxHealth
     self.itemDropper.calculate(tutorial)
     if self.level == 0:
         self.maxHealth = 1
         self.health = self.maxHealth
Beispiel #38
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
Beispiel #39
0
 def enterAnnounceGameOver(self):
     whistleSfx = base.loadSfx("phase_4/audio/sfx/AA_sound_whistle.ogg")
     whistleSfx.play()
     del whistleSfx
     self.gameOverLbl = DirectLabel(text="GAME\nOVER!",
                                    relief=None,
                                    scale=0.35,
                                    text_font=CIGlobals.getMickeyFont(),
                                    text_fg=(1, 0, 0, 1))
Beispiel #40
0
    def generateChar(self, charType):
        self.charType = charType
        if charType == CIGlobals.Mickey or charType == CIGlobals.Minnie:
            self.loadModel('phase_3/models/char/' + charType.lower() + '-' + str(CIGlobals.ModelDetail(self.avatarType)) + '.bam')
            self.loadAnims({'neutral': 'phase_3/models/char/' + charType.lower() + '-wait.bam', 'walk': 'phase_3/models/char/' + charType.lower() + '-walk.bam', 
               'run': 'phase_3/models/char/' + charType.lower() + '-run.bam', 
               'left-start': 'phase_3.5/models/char/' + charType.lower() + '-left-start.bam', 
               'left': 'phase_3.5/models/char/' + charType.lower() + '-left.bam', 
               'right-start': 'phase_3.5/models/char/' + charType.lower() + '-right-start.bam', 
               'right': 'phase_3.5/models/char/' + charType.lower() + '-right.bam'})
            if charType == CIGlobals.Mickey:
                self.mickeyEye = self.controlJoint(None, 'modelRoot', 'joint_pupilR')
                self.mickeyEye.setY(0.025)
            for bundle in self.getPartBundleDict().values():
                bundle = bundle['modelRoot'].getBundle()
                earNull = bundle.findChild('sphere3')
                if not earNull:
                    earNull = bundle.findChild('*sphere3')
                earNull.clearNetTransforms()

            for bundle in self.getPartBundleDict().values():
                charNodepath = bundle['modelRoot'].partBundleNP
                bundle = bundle['modelRoot'].getBundle()
                earNull = bundle.findChild('sphere3')
                if not earNull:
                    earNull = bundle.findChild('*sphere3')
                ears = charNodepath.find('**/sphere3')
                if ears.isEmpty():
                    ears = charNodepath.find('**/*sphere3')
                ears.clearEffect(CharacterJointEffect.getClassType())
                earRoot = charNodepath.attachNewNode('earRoot')
                earPitch = earRoot.attachNewNode('earPitch')
                earPitch.setP(40.0)
                ears.reparentTo(earPitch)
                earNull.addNetTransform(earRoot.node())
                ears.clearMat()
                ears.node().setPreserveTransform(ModelNode.PTNone)
                ears.setP(-40.0)
                ears.flattenMedium()
                ears.setBillboardAxis()
                self.startBlink()

        else:
            if charType == CIGlobals.Pluto:
                self.loadModel('phase_6/models/char/pluto-1000.bam')
                self.loadAnims({'walk': 'phase_6/models/char/pluto-walk.bam', 'neutral': 'phase_6/models/char/pluto-neutral.bam', 
                   'sit': 'phase_6/models/char/pluto-sit.bam', 
                   'stand': 'phase_6/models/char/pluto-stand.bam'})
            else:
                if charType == CIGlobals.Goofy:
                    self.loadModel('phase_6/models/char/TT_G-1500.bam')
                    self.loadAnims({'neutral': 'phase_6/models/char/TT_GWait.bam', 'walk': 'phase_6/models/char/TT_GWalk.bam'})
                else:
                    raise StandardError('unknown char %s!' % charType)
        Avatar.Avatar.initShadow(self)
        return
Beispiel #41
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
Beispiel #42
0
 def enterAvChoose(self):
     ModelPool.garbageCollect()
     TexturePool.garbageCollect()
     self.avChooser.load()
     self.avChooser.enter()
     if not self.music:
         self.music = base.loadMusic(CIGlobals.getThemeSong())
         base.playMusic(self.music, volume=0.75, looping=1)
     self.accept('enterMakeAToon', self.__handleMakeAToonReq)
     self.accept('avChooseDone', self.__handleAvChooseDone)
Beispiel #43
0
 def setup(self, title = 'CHOOSE WHAT YOU WANT TO BUY'):
     font = CIGlobals.getMickeyFont()
     txtFg = (0, 0, 0, 1)
     txtScale = 0.05
     txtPos = (0, -0.1)
     buttons = loader.loadModel('phase_3.5/models/gui/QT_buttons.bam')
     self.window = OnscreenImage(image=self.bgImage, scale=(0.9, 1, 0.7), parent=self)
     self.title = DirectLabel(text=title, relief=None, pos=(0, 0, 0.5), text_wordwrap=10, text_font=font, text_fg=(1, 1, 0, 1), scale=0.1, parent=self)
     self.infoLbl = DirectLabel(text='Welcome!', relief=None, text_scale=0.075, text_fg=txtFg, text_shadow=(0, 0, 0, 0), pos=(0, 0, 0.215))
     self.okBtn = DirectButton(geom=CIGlobals.getOkayBtnGeom(), relief=None, text='OK', text_fg=txtFg, text_scale=txtScale, text_pos=txtPos, pos=(-0.1, 0, -0.5), parent=self)
     self.clBtn = DirectButton(geom=CIGlobals.getCancelBtnGeom(), relief=None, text='Cancel', text_fg=txtFg, text_scale=txtScale, text_pos=txtPos, pos=(0.1, 0, -0.5), parent=self)
     buttonGeom = (buttons.find('**/QT_back'),
      buttons.find('**/QT_back'),
      buttons.find('**/QT_back'),
      buttons.find('**/QT_back'))
     self.backBtn = DirectButton(geom=buttonGeom, relief=None, scale=0.05, pos=(-0.3, 0, -0.25), parent=self, command=self.changePage, extraArgs=[0])
     self.nextBtn = DirectButton(geom=buttonGeom, relief=None, scale=0.05, pos=(0.3, 0, -0.25), hpr=(0, 0, 180), command=self.changePage, extraArgs=[1], parent=self)
     self.hideInfo()
     return
 def generateStation(self):
     GroupStation.generateStation(self, self.Slots)
     circleTexture = loader.loadTexture("phase_13/maps/stand_here_cog.png")
     for circle in self.circles:
         circle.setTexture(circleTexture, 1)
     title = DirectLabel(text=self.Title, relief=None, text_fg=(0.5, 0.5, 0.5, 1.0),
                         text_decal=True, text_font=CIGlobals.getMickeyFont(), text_pos = (0, 0),
                         parent=self.sign.find('**/signText_locator'), text_scale=0.3,
                         text_wordwrap=7.0)
     title.setBillboardAxis(2)
 def enterCountdown(self):
     base.localAvatar.chatInput.disableKeyboardShortcuts()
     base.localAvatar.disableChatInput()
     base.setBackgroundColor(CIGlobals.DefaultBackgroundColor)
     base.render.show()
     self.playMinigameMusic()
     self.countdownLbl = OnscreenText(text='', fg=(1, 1, 1, 1), font=CIGlobals.getMinnieFont(), scale=0.1)
     self.countdownTrack = Sequence(Func(self.countdownLbl.setText, '5'), Wait(1.0), Func(self.countdownLbl.setText, '4'), Wait(1.0), Func(self.countdownLbl.setText, '3'), Wait(1.0), Func(self.countdownLbl.setText, '2'), Wait(1.0), Func(self.countdownLbl.setText, '1'), Wait(1.0), Func(self.fsm.request, 'play'))
     self.countdownTrack.start()
     self.firstPerson.start()
     self.firstPerson.disableMouse()
Beispiel #46
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
 def generate(self):
     DistributedObject.announceGenerate(self)
     self.trolleyStation = self.cr.playGame.hood.loader.geom.find('**/prop_trolley_station_DNARoot')
     self.trolleyCar = self.trolleyStation.find('**/trolley_car')
     self.trolleyKey = self.trolleyStation.find('**/key')
     tn = TextNode('trolleycountdowntext')
     tn.setFont(CIGlobals.getMickeyFont())
     tn.setTextColor(1, 0, 0, 1)
     self.countdownText = self.trolleyStation.attachNewNode(tn)
     self.countdownText.setScale(3.0)
     self.countdownText.setPos(14.58, 10.77, 11.17)
     self.acceptOnce('entertrolley_sphere', self.__handleTrolleyTrigger)
Beispiel #48
0
 def load(self):
     font = CIGlobals.getToonFont()
     box = DGG.getDefaultDialogGeom()
     self.finalScoreContainer = DirectFrame()
     self.finalScoreBg = OnscreenImage(image=box, color=(1, 1, 0.75, 1), scale=(1.9, 1.4, 1.4), parent=self.finalScoreContainer)
     self.finalScoreTitle = OnscreenText(text='Waiting for final scores...', pos=(0, 0.5, 0), font=font, scale=0.12, parent=self.finalScoreContainer)
     self.finalScoreNameLbl = OnscreenText(text='', scale=0.095, pos=(-0.85, 0.3, 0), font=font, align=TextNode.ALeft, parent=self.finalScoreContainer)
     self.finalScorePointLbl = OnscreenText(text='', scale=0.095, pos=(0.85, 0.3, 0), font=font, align=TextNode.ARight, parent=self.finalScoreContainer)
     self.finalScoreContainer.hide()
     self.finalScoreContainer.setBin('gui-popup', 60)
     del font
     del box
Beispiel #49
0
 def setupNameTag(self, tempName = None):
     if not self.name and not tempName:
         return
     offset = 0.0
     if self.avatarType:
         if self.avatarType == CIGlobals.Suit:
             if self.charName:
                 offset = 0.5
                 z = SuitBank.getSuitByName(self.charName).getNametagZ()
         elif self.avatarType == CIGlobals.CChar:
             z = 5
         elif self.avatarType == CIGlobals.Toon:
             offset = 0.5
         else:
             z = 0
     self.deleteNameTag()
     if tempName:
         name = tempName
     else:
         name = self.name
     tag = NameTag(name, self.avatarType)
     tag.setTextColor(tag.NameTagColors[self.avatarType]['fg'])
     tag.setCardColor(tag.NameTagBackgrounds['up'])
     self.nameTag = tag
     np = tag.getNodePath()
     np.setEffect(BillboardEffect.make(Vec3(0, 0, 1), True, False, 3.0, camera, Point3(0, 0, 0)))
     ToonTalker.ToonTalker.setAvatar(self, self, np)
     np.reparentTo(self)
     if self.avatarType == CIGlobals.Toon:
         np.setZ(self.getHeight() + offset)
         self.nameTag.setClickable(1)
     elif self.avatarType == CIGlobals.Suit or self.avatarType == CIGlobals.CChar:
         np.setZ(z + offset)
     if self.avatarType == CIGlobals.Suit:
         self.nameTag.setFont(CIGlobals.getSuitFont())
     else:
         self.nameTag.setFont(CIGlobals.getToonFont())
     ls = LabelScaler()
     ls.resize(np)
 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
Beispiel #51
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
Beispiel #52
0
 def enter(self, requestStatus):
     StateData.enter(self)
     hoodId = requestStatus['hoodId']
     zoneId = requestStatus['zoneId']
     rootZone = ZoneUtil.getZoneId(hoodId)
     if base.localAvatar.getLastHood() != rootZone and hoodId != CIGlobals.MinigameArea:
         base.localAvatar.b_setLastHood(rootZone)
     if not base.localAvatar.hasDiscoveredHood(rootZone):
         hoodsDiscovered = list(base.localAvatar.getHoodsDiscovered())
         hoodsDiscovered.append(rootZone)
         base.localAvatar.b_setHoodsDiscovered(hoodsDiscovered)
     text = self.getHoodText(zoneId)
     self.titleText = OnscreenText(text, fg=self.titleColor, font=CIGlobals.getMickeyFont(), scale=0.15, pos=(0, -0.65))
     self.titleText.hide()
Beispiel #53
0
 def generateTorso(self):
     torsotype = self.getTorso()
     self.loadModel('phase_3/models/char/tt_a_chr_' + torsotype + '_torso_' + str(CIGlobals.getModelDetail(self.avatarType)) + '.bam', 'torso')
     self.loadAnims({'neutral': 'phase_3/models/char/tt_a_chr_' + torsotype + '_torso_neutral.bam',
      'run': 'phase_3/models/char/tt_a_chr_' + torsotype + '_torso_run.bam',
      'walk': 'phase_3.5/models/char/tt_a_chr_' + torsotype + '_torso_walk.bam',
      'pie': 'phase_3.5/models/char/tt_a_chr_' + torsotype + '_torso_pie-throw.bam',
      'fallb': 'phase_4/models/char/tt_a_chr_' + torsotype + '_torso_slip-backward.bam',
      'fallf': 'phase_4/models/char/tt_a_chr_' + torsotype + '_torso_slip-forward.bam',
      'lose': 'phase_5/models/char/tt_a_chr_' + torsotype + '_torso_lose.bam',
      'win': 'phase_3.5/models/char/tt_a_chr_' + torsotype + '_torso_victory-dance.bam',
      'squirt': 'phase_5/models/char/tt_a_chr_' + torsotype + '_torso_water-gun.bam',
      'zend': 'phase_3.5/models/char/tt_a_chr_' + torsotype + '_torso_jump-zend.bam',
      'tele': 'phase_3.5/models/char/tt_a_chr_' + torsotype + '_torso_teleport.bam',
      'book': 'phase_3.5/models/char/tt_a_chr_' + torsotype + '_torso_book.bam',
      'leap': 'phase_3.5/models/char/tt_a_chr_' + torsotype + '_torso_leap_zhang.bam',
      'jump': 'phase_3.5/models/char/tt_a_chr_' + torsotype + '_torso_jump-zhang.bam',
      'happy': 'phase_3.5/models/char/tt_a_chr_' + torsotype + '_torso_jump.bam',
      'shrug': 'phase_3.5/models/char/tt_a_chr_' + torsotype + '_torso_shrug.bam',
      'hdance': 'phase_5/models/char/tt_a_chr_' + torsotype + '_torso_happy-dance.bam',
      'wave': 'phase_3.5/models/char/tt_a_chr_' + torsotype + '_torso_wave.bam',
      'scemcee': 'phase_4/models/char/tt_a_chr_dgm_shorts_torso_scientistEmcee.bam',
      'scwork': 'phase_4/models/char/tt_a_chr_' + torsotype + '_torso_scientistWork.bam',
      'scgame': 'phase_4/models/char/tt_a_chr_' + torsotype + '_torso_scientistGame.bam',
      'scjealous': 'phase_4/models/char/tt_a_chr_' + torsotype + '_torso_scientistJealous.bam',
      'swim': 'phase_4/models/char/tt_a_chr_' + torsotype + '_torso_swim.bam',
      'toss': 'phase_5/models/char/tt_a_chr_' + torsotype + '_torso_toss.bam',
      'cringe': 'phase_3.5/models/char/tt_a_chr_' + torsotype + '_torso_cringe.bam',
      'conked': 'phase_3.5/models/char/tt_a_chr_' + torsotype + '_torso_conked.bam',
      'catchneutral': 'phase_4/models/char/tt_a_chr_' + torsotype + '_torso_gameneutral.bam',
      'catchrun': 'phase_4/models/char/tt_a_chr_' + torsotype + '_torso_gamerun.bam',
      'hold-bottle': 'phase_5/models/char/tt_a_chr_' + torsotype + '_torso_hold-bottle.bam',
      'push-button': 'phase_3.5/models/char/tt_a_chr_' + torsotype + '_torso_press-button.bam',
      'happy-dance': 'phase_5/models/char/tt_a_chr_' + torsotype + '_torso_happy-dance.bam',
      'juggle': 'phase_5/models/char/tt_a_chr_' + torsotype + '_torso_juggle.bam',
      'shout': 'phase_5/models/char/tt_a_chr_' + torsotype + '_torso_shout.bam',
      'dneutral': 'phase_4/models/char/tt_a_chr_' + torsotype + '_torso_sad-neutral.bam',
      'dwalk': 'phase_4/models/char/tt_a_chr_' + torsotype + '_torso_losewalk.bam',
      'smooch': 'phase_5/models/char/tt_a_chr_' + torsotype + '_torso_smooch.bam',
      'conked': 'phase_3.5/models/char/tt_a_chr_' + torsotype + '_torso_conked.bam',
      'sound': 'phase_5/models/char/tt_a_chr_' + torsotype + '_torso_shout.bam',
      'sprinkle-dust': 'phase_5/models/char/tt_a_chr_' + torsotype + '_torso_sprinkle-dust.bam',
      'start-sit': 'phase_4/models/char/tt_a_chr_' + torsotype + '_torso_intoSit.bam',
      'sit': 'phase_4/models/char/tt_a_chr_' + torsotype + '_torso_sit.bam'}, 'torso')
Beispiel #54
0
 def createGui(self):
     self.deleteGui()
     uno_gui = loader.loadModel('phase_4/models/minigames/mg_uno_call_btn_gui.egg')
     gui = loader.loadModel('phase_3/models/gui/quit_button.bam')
     self.drawBtn = DirectButton(text='Draw', relief=None, text_scale=0.055, scale=1, parent=base.a2dBottomLeft, geom=(gui.find('**/QuitBtn_UP'),
      gui.find('**/QuitBtn_DN'),
      gui.find('**/QuitBtn_RLVR'),
      gui.find('**/QuitBtn_UP')), pos=(0.18, 0, 0.1), geom_scale=(0.6, 1.0, 1.0), command=self.d_requestNewCard)
     self.callBtn = DirectButton(geom=(uno_gui.find('**/mg_uno_call_btn-idle'),
      uno_gui.find('**/mg_uno_call_btn-down'),
      uno_gui.find('**/mg_uno_call_btn-rlvr'),
      uno_gui.find('**/mg_uno_call_btn-disabled')), relief=None, scale=0.3, parent=base.a2dBottomLeft, pos=(0.18, 0, 0.305), command=self.d_callUno)
     self.callBtn['state'] = DGG.DISABLED
     self.playByPlay = OnscreenText(text='', font=CIGlobals.getMickeyFont(), scale=0.1, fg=(0, 0.8, 0, 1), pos=(0, 0.85), wordwrap=15.0)
     self.cardDeck.generate()
     self.createTimer()
     gui.removeNode()
     del gui
     return
Beispiel #55
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
Beispiel #56
0
 def __init__(self):
     self.bgm = loader.loadModel('phase_3/models/gui/progress-background.bam')
     self.bgm.find('**/logo').stash()
     self.bg = self.bgm.find('**/bg')
     self.logo = loader.loadTexture('phase_3/maps/CogInvasion_Logo.png')
     self.logoImg = OnscreenImage(image=self.logo, scale=(0.5, 0, 0.3), pos=(0, 0, 0), parent=hidden)
     self.logoImg.setTransparency(True)
     self.bg_img = OnscreenImage(image=self.bg, parent=hidden)
     self.bg_img.setSx(1.35)
     self.bg_img.hide()
     self.progress_bar = DirectWaitBar(value=0, pos=(0, 0, -0.85), parent=hidden, text_pos=(0, 0, 0.2))
     self.progress_bar.setSx(1.064)
     self.progress_bar.setSz(0.38)
     self.loading_lbl = DirectLabel(text='', relief=None, scale=0.08, pos=(-1.0725, 0, -0.79), text_align=TextNode.ALeft, sortOrder=100, text_fg=(0.343, 0.343, 0.343, 1.0), text_font=CIGlobals.getMinnieFont(), parent=hidden, text_shadow=(0, 0, 0, 1))
     return
Beispiel #57
0
 def setupHealthLabel(self):
     self.healthLabel = DirectLabel(text='', text_fg=CIGlobals.PositiveTextColor, scale=0.75, relief=None, text_decal=True, text_font=CIGlobals.getMickeyFont(), text_align=TextNode.ACenter)
     self.healthLabel.reparentTo(self)
     self.healthLabel.setBillboardPointEye()
     self.healthLabel.stash()
     return
Beispiel #58
0
    def load(self):
        self.unload()
        if self.loadingText:
            self.loadingText.destroy()
            self.loadingText = None
        self.loadingText = OnscreenText(text='Loading ' + self.getNameOfCurrentLevel() + '...', font=CIGlobals.getMinnieFont(), fg=(1, 1, 1, 1))
        self.loadingText.setBin('gui-popup', 0)
        base.graphicsEngine.renderFrame()
        base.graphicsEngine.renderFrame()
        if self.levelName == 'momada':
            self.__momadaLoad()
        elif self.levelName in ('cbhq',):
            modelPath = self.LevelData[self.levelName]['model']
            self.levelGeom = loader.loadModel(modelPath)
            self.levelGeom.flattenMedium()
            self.levelGeom.reparentTo(render)
            if self.LevelData[self.levelName]['sky'] != None:
                self.skyModel = loader.loadModel(self.SkyData['cog'] + '/cog_sky.bam')
                self.skyUtil = SkyUtil()
                self.skyUtil.startSky(self.skyModel)
                self.skyModel.reparentTo(render)
        else:
            dnaFiles = self.LevelData[self.levelName]['dna']
            skyType = self.LevelData[self.levelName]['sky']
            skyPhase = self.SkyData[skyType]
            loader.loadDNAFile(self.dnaStore, 'phase_4/dna/storage.dna')
            for index in range(len(dnaFiles)):
                if index == len(dnaFiles) - 1:
                    node = loader.loadDNAFile(self.dnaStore, dnaFiles[index])
                    if node.getNumParents() == 1:
                        self.levelGeom = NodePath(node.getParent(0))
                        self.levelGeom.reparentTo(hidden)
                    else:
                        self.levelGeom = hidden.attachNewNode(node)
                    self.levelGeom.flattenMedium()
                    gsg = base.win.getGsg()
                    if gsg:
                        self.levelGeom.prepareScene(gsg)
                    self.levelGeom.reparentTo(render)
                else:
                    loader.loadDNAFile(self.dnaStore, dnaFiles[index])

            self.skyModel = loader.loadModel(skyPhase + '/' + skyType + '_sky.bam')
            self.skyUtil = SkyUtil()
            self.skyUtil.startSky(self.skyModel)
            self.skyModel.reparentTo(camera)
            ce = CompassEffect.make(NodePath(), CompassEffect.PRot | CompassEffect.PZ)
            self.skyModel.node().setEffect(ce)
        if self.loadingText:
            self.loadingText.destroy()
            self.loadingText = None
        return
Beispiel #59
0
 def generateStation(self, game):
     self.game = game
     numSlots = self.game2maxPlayers[game]
     GroupStation.generateStation(self, numSlots)
     title = DirectLabel(text=game + '\n' + self.game2dateCreated[game], relief=None, text_fg=(0.7, 0.3, 0.5, 1.0), text_decal=True, text_font=CIGlobals.getMickeyFont(), text_pos=(0, 0.1), parent=self.sign.find('**/signText_locator'), text_scale=0.3, text_wordwrap=7.0)
     title.setBillboardAxis(2)
     return
Beispiel #60
0
def announceHood(hood):
    nameLbl = OnscreenText(text='%s\n%s' % (hood, CIGlobals.Playground), scale=0.15, font=CIGlobals.getMickeyFont(), pos=(0, -0.65), fg=(1, 0.3, 0.5, 1.0))
    Sequence(Wait(2.5), Func(startFade, nameLbl), Wait(1), Func(nameLbl.destroy)).start()