def disable(self):
     try:
         self.Toon_disabled
     except:
         self.Toon_disabled = 1
         self.backpack = None
         self.stopAnimations()
         self.removeAdminToken()
         ToonHead.delete(self)
         self.deleteCurrentToon()
         self.chatSoundDict = {}
         Avatar.Avatar.disable(self)
Esempio n. 2
0
    def disable(self):
        try:
            self.Toon_disabled
        except:
            self.Toon_disabled = 1
            self.backpack = None
            self.stopAnimations()
            self.removeAdminToken()
            ToonHead.delete(self)
            self.deleteCurrentToon()
            self.chatSoundDict = {}

        return
Esempio n. 3
0
    def createGui(self):
        base.cr.renderFrame()
        self.m = loader.loadFont('phase_3/models/fonts/MickeyFont.bam')
        self.bg = loader.loadModel('phase_3/models/gui/tt_m_gui_pat_mainGui.bam')
        self.qtbtn = loader.loadModel('phase_3/models/gui/quit_button.bam')
        self.trash_gui = loader.loadModel('phase_3/models/gui/trashcan_gui.bam')
        self.bg_img = OnscreenImage(image=self.bg.find('**/tt_t_gui_pat_background'))
        self.setTitle('Pick  A  Toon  To  Play')
        base.setBackgroundColor(self.BgColor)
        self.btn1 = DirectButton(geom=self.bg.find('**/tt_t_gui_pat_squareGreen'), relief=None, pos=(0.012, 0, 0.306), text_wordwrap=6, text_fg=(1, 1, 1, 1))
        self.btn2 = DirectButton(geom=self.bg.find('**/tt_t_gui_pat_squarePink'), relief=None, pos=(0.01, 0, -0.515), text_wordwrap=6, text_fg=(1, 1, 1, 1))
        self.btn3 = DirectButton(geom=self.bg.find('**/tt_t_gui_pat_squareRed'), relief=None, pos=(-0.84, 0, 0.36), text_wordwrap=6, text_fg=(1, 1, 1, 1))
        self.btn4 = DirectButton(geom=self.bg.find('**/tt_t_gui_pat_squareYellow'), relief=None, pos=(0.865, 0, -0.45), text_wordwrap=6, text_fg=(1, 1, 1, 1))
        self.btn5 = DirectButton(geom=self.bg.find('**/tt_t_gui_pat_squareBlue'), relief=None, pos=(-0.87, 0, -0.44), text_wordwrap=6, text_fg=(1, 1, 1, 1))
        self.btn6 = DirectButton(geom=self.bg.find('**/tt_t_gui_pat_squarePurple'), relief=None, pos=(0.873, 0, 0.335), text_wordwrap=6, text_fg=(1, 1, 1, 1))
        self.quit_btn = DirectButton(geom=(self.qtbtn.find('**/QuitBtn_RLVR'), self.qtbtn.find('**/QuitBtn_RLVR'), self.qtbtn.find('**/QuitBtn_RLVR')), relief=None, text='Quit', text_font=self.m, text_scale=0.105, text_pos=(0, -0.035), pos=(1.05, 0, -0.9), text_fg=(1, 0.9, 0.1, 1), geom1_scale=(1.02, 1, 1), geom2_scale=(1.02, 1, 1), command=self.quitGame)
        self.btnList = []
        self.btnList.append(self.btn1)
        self.btnList.append(self.btn2)
        self.btnList.append(self.btn3)
        self.btnList.append(self.btn4)
        self.btnList.append(self.btn5)
        self.btnList.append(self.btn6)
        self.headList = []
        for slot in range(6):
            if self.avChooser.hasToonInSlot(slot):
                notify.info('found existing Toon in slot %s' % str(slot))
                frame = DirectFrame(relief=None, parent=self.btnList[slot], pos=(0, 0, -0.1))
                headframe = hidden.attachNewNode('head')
                headframe.setPosHprScale(0, 5, -0.1, 180, 0, 0, 0.24, 0.24, 0.24)
                headframe.reparentTo(self.btnList[slot].stateNodePath[0], 20)
                headframe.instanceTo(self.btnList[slot].stateNodePath[1], 20)
                headframe.instanceTo(self.btnList[slot].stateNodePath[2], 20)
                toon = ToonHead(base.cr)
                self.headList.append(toon)
                gender, animal, head, headcolor = self.avChooser.getHeadInfo(slot)
                toon.generateHead(gender, animal, head, 1)
                toon.getGeomNode().setDepthWrite(1)
                toon.getGeomNode().setDepthTest(1)
                toon.startBlink()
                toon.startLookAround()
                toon.reparentTo(headframe)
                toon.setHeadColor(headcolor)
                toon.flattenLight()
                name_lbl = DirectLabel(text=self.avChooser.getNameInSlot(slot), text_scale=0.08, text_fg=(1, 1, 1, 1), text_wordwrap=7, relief=None, text_shadow=(0, 0, 0, 1))
                name_lbl.reparentTo(self.btnList[slot].stateNodePath[0], 20)
                name_lbl.instanceTo(self.btnList[slot].stateNodePath[1], 20)
                name_lbl.instanceTo(self.btnList[slot].stateNodePath[2], 20)
                name_lbl.setPos(self.name_pos[slot])
                name_lbl.setHpr(self.name_hpr[slot])
                self.btnList[slot]['text'] = ('', 'Play This Toon', 'Play This Toon', '')
                self.btnList[slot]['text_scale'] = 0.1
                self.btnList[slot]['text_pos'] = (0, 0)
                self.btnList[slot]['text_fg'] = (1, 0.9, 0, 1)
                self.btnList[slot]['text_wordwrap'] = 6
                self.btnList[slot]['text_font'] = self.m
                self.btnList[slot]['command'] = self.fadeMenu
                self.btnList[slot]['extraArgs'] = ['playGame', slot]
                delBtn = DirectButton(text=('', 'Delete', 'Delete', ''), text_scale=0.15, scale=0.5, text_pos=(0, -0.1), text_fg=(1, 1, 1, 1), relief=None, geom=(self.trash_gui.find('**/TrashCan_CLSD'), self.trash_gui.find('**/TrashCan_OPEN'), self.trash_gui.find('**/TrashCan_RLVR')), pos=self.trash_pos[slot], command=self.deleteToon, extraArgs=[self.avChooser.getAvChoiceBySlot(slot).getAvId()], text_shadow=(0, 0, 0, 1))
                delBtn.reparentTo(self.btnList[slot].stateNodePath[0], 20)
                delBtn.instanceTo(self.btnList[slot].stateNodePath[1], 20)
                delBtn.instanceTo(self.btnList[slot].stateNodePath[2], 20)
            else:
                self.btnList[slot]['text'] = 'Make A Toon'
                self.btnList[slot]['text_font'] = self.m
                self.btnList[slot]['text0_scale'] = 0.1
                self.btnList[slot]['text1_scale'] = 0.12
                self.btnList[slot]['text2_scale'] = 0.12
                self.btnList[slot]['text3_scale'] = 0.1
                self.btnList[slot]['text0_fg'] = (0, 1, 0.8, 0.5)
                self.btnList[slot]['text1_fg'] = (0, 1, 0.8, 1)
                self.btnList[slot]['text2_fg'] = (0.3, 1, 0.9, 1)
                self.btnList[slot]['text3_fg'] = (0, 1, 0.8, 0.5)
                self.btnList[slot]['text_font'] = self.m
                self.btnList[slot]['command'] = self.fadeMenu
                self.btnList[slot]['extraArgs'] = ['mat', slot]
                self.btnList[slot]['text_wordwrap'] = 6

        return
    def generateOtherPlayerGui(self):
        for avId in self.doId2Frame.keys():
            self.avId2otherPlayerAvIds2otherPlayerHeadsFrame[avId] = {}
            headNumber = -1
            frame = self.doId2Frame[avId][0]
            otherPlayerHeadsFrame = DirectFrame(relief=None,
                                                scale=0.85,
                                                parent=frame)
            otherPlayerHeadsFrame['image'] = frame['image']
            otherPlayerHeadsFrame['image_color'] = frame['image_color']
            otherPlayerHeadsFrame[
                'image_scale'] = self.otherPlayerHeadHolderTransforms['scale']
            otherPlayerHeadsFrame.setPos(
                self.otherPlayerHeadHolderTransforms['pos'])
            otherPlayerHeadsFrame.setBin('gui-popup', 70)
            self.frameList.append(otherPlayerHeadsFrame)
            for otherAvId in self.doId2Frame.keys():
                if otherAvId != avId:
                    headNumber += 1
                    otherAv = base.cr.doId2do.get(otherAvId)
                    gender = otherAv.getGender()
                    head, color = otherAv.getHeadStyle()
                    animal = otherAv.getAnimal()

                    headFrame = otherPlayerHeadsFrame.attachNewNode(
                        'otherPlayerHeadFrame')
                    headFrame.setPosHprScale(
                        self.otherPlayerHeadXValues[headNumber], 5, -0.1, 180,
                        0, 0, 0.2, 0.2, 0.2)
                    headFrame.setColorScale(self.state2Color[0])
                    toon = ToonHead(None)
                    toon.generateHead(gender, animal, head)
                    r, g, b, _ = color
                    color = (r, g, b, 1.0)
                    toon.setHeadColor(color)
                    toon.setDepthWrite(1)
                    toon.setDepthTest(1)
                    toon.reparentTo(headFrame)

                    self.avId2otherPlayerAvIds2otherPlayerHeadsFrame[avId][
                        otherAvId] = headFrame
Esempio n. 5
0
 def generate(self,
              gender,
              head,
              headtype,
              color,
              doId,
              name,
              valueLabel=1):
     gui = loader.loadModel('phase_3/models/gui/pick_a_toon_gui.bam')
     bg = gui.find('**/av-chooser_Square_UP')
     container = DirectFrame(relief=None, scale=0.3, parent=base.a2dTopLeft)
     container['image'] = bg
     container['image_color'] = self.frameColors[len(self.frameList)]
     container.setBin('gui-popup', 60)
     container.setPos(self.framePositions[len(self.frameList)])
     headframe = container.attachNewNode('head')
     headframe.setPosHprScale(0, 5, -0.1, 180, 0, 0, 0.24, 0.24, 0.24)
     toon = ToonHead(None)
     toon.generateHead(gender, head, headtype)
     r, g, b = color
     color = (r, g, b, 1.0)
     toon.setHeadColor(color)
     toon.setDepthWrite(1)
     toon.setDepthTest(1)
     toon.reparentTo(headframe)
     nameLbl = DirectLabel(text=name,
                           text_wordwrap=7.0,
                           parent=container,
                           text_scale=0.13,
                           text_fg=(1, 1, 1, 1),
                           text_shadow=(0, 0, 0, 1),
                           relief=None,
                           pos=(0, 0, 0.25))
     if valueLabel:
         someValueToBroadcast = DirectLabel(text='0',
                                            parent=container,
                                            text_scale=0.15,
                                            text_fg=(1, 1, 1, 1),
                                            text_shadow=(0, 0, 0, 1),
                                            relief=None,
                                            pos=(0.26, 0, -0.28))
     self.frameList.append(container)
     if valueLabel:
         self.doId2Frame[doId] = tuple(
             (container, headframe, toon, nameLbl, someValueToBroadcast))
     else:
         self.doId2Frame[doId] = tuple(
             (container, headframe, toon, nameLbl))
     return
Esempio n. 6
0
    def generateOtherPlayerGui(self):
        for avId in self.doId2Frame.keys():
            self.avId2otherPlayerAvIds2otherPlayerHeadsFrame[avId] = {}
            headNumber = -1
            frame = self.doId2Frame[avId][0]
            otherPlayerHeadsFrame = DirectFrame(relief=None, scale=0.85, parent=frame)
            otherPlayerHeadsFrame['image'] = frame['image']
            otherPlayerHeadsFrame['image_color'] = frame['image_color']
            otherPlayerHeadsFrame['image_scale'] = self.otherPlayerHeadHolderTransforms['scale']
            otherPlayerHeadsFrame.setPos(self.otherPlayerHeadHolderTransforms['pos'])
            otherPlayerHeadsFrame.setBin('gui-popup', 70)
            self.frameList.append(otherPlayerHeadsFrame)
            for otherAvId in self.doId2Frame.keys():
                if otherAvId != avId:
                    headNumber += 1
                    otherAv = base.cr.doId2do.get(otherAvId)
                    gender = otherAv.getGender()
                    head, color = otherAv.getHeadStyle()
                    animal = otherAv.getAnimal()
                    headFrame = otherPlayerHeadsFrame.attachNewNode('otherPlayerHeadFrame')
                    headFrame.setPosHprScale(self.otherPlayerHeadXValues[headNumber], 5, -0.1, 180, 0, 0, 0.2, 0.2, 0.2)
                    headFrame.setColorScale(self.state2Color[0])
                    toon = ToonHead(None)
                    toon.generateHead(gender, animal, head)
                    r, g, b, _ = color
                    color = (r,
                     g,
                     b,
                     1.0)
                    toon.setHeadColor(color)
                    toon.setDepthWrite(1)
                    toon.setDepthTest(1)
                    toon.reparentTo(headFrame)
                    self.avId2otherPlayerAvIds2otherPlayerHeadsFrame[avId][otherAvId] = headFrame

        return
Esempio n. 7
0
 def generateHead(self, pat = 0):
     gender = self.getGender()
     head = self.getAnimal()
     headtype = self.getHead()
     ToonHead.generateHead(self, gender, head, headtype)
Esempio n. 8
0
    def __init__(self, cr, mat = 0):
        self.cr = cr
        try:
            self.Toon_initialized
            return
        except:
            self.Toon_initialized = 1

        Avatar.Avatar.__init__(self, mat)
        ToonDNA.ToonDNA.__init__(self)
        ToonHead.__init__(self, cr)
        self.forwardSpeed = 0.0
        self.rotateSpeed = 0.0
        self.avatarType = CIGlobals.Toon
        self.track = None
        self.standWalkRunReverse = None
        self.playingAnim = None
        self.tag = None
        self.money = 0
        self.lookAtTrack = None
        self.portal1 = None
        self.portal2 = None
        self.gunAttached = False
        self.gun = None
        self.tokenIcon = None
        self.tokenIconIval = None
        self.backpack = None
        self.forcedTorsoAnim = None
        self.fallSfx = base.audio3d.loadSfx('phase_4/audio/sfx/MG_cannon_hit_dirt.mp3')
        base.audio3d.attachSoundToObject(self.fallSfx, self)
        self.eyes = loader.loadTexture('phase_3/maps/eyes.jpg', 'phase_3/maps/eyes_a.rgb')
        self.myTaskId = random.uniform(0, 1231231232132131231232L)
        self.closedEyes = loader.loadTexture('phase_3/maps/eyesClosed.jpg', 'phase_3/maps/eyesClosed_a.rgb')
        self.soundChatBubble = loader.loadSfx('phase_3/audio/sfx/GUI_balloon_popup.mp3')
        self.shadowCaster = None
        self.chatSoundDict = {}
        self.animFSM = ClassicFSM('Toon', [State('off', self.enterOff, self.exitOff),
         State('neutral', self.enterNeutral, self.exitNeutral),
         State('swim', self.enterSwim, self.exitSwim),
         State('walk', self.enterWalk, self.exitWalk),
         State('run', self.enterRun, self.exitRun),
         State('openBook', self.enterOpenBook, self.exitOpenBook),
         State('readBook', self.enterReadBook, self.exitReadBook),
         State('closeBook', self.enterCloseBook, self.exitCloseBook),
         State('teleportOut', self.enterTeleportOut, self.exitTeleportOut),
         State('teleportIn', self.enterTeleportIn, self.exitTeleportIn),
         State('died', self.enterDied, self.exitDied),
         State('fallFWD', self.enterFallFWD, self.exitFallFWD),
         State('fallBCK', self.enterFallBCK, self.exitFallBCK),
         State('jump', self.enterJump, self.exitJump),
         State('leap', self.enterLeap, self.exitLeap),
         State('laugh', self.enterLaugh, self.exitLaugh),
         State('happy', self.enterHappyJump, self.exitHappyJump),
         State('shrug', self.enterShrug, self.exitShrug),
         State('hdance', self.enterHDance, self.exitHDance),
         State('wave', self.enterWave, self.exitWave),
         State('scientistEmcee', self.enterScientistEmcee, self.exitScientistEmcee),
         State('scientistWork', self.enterScientistWork, self.exitScientistWork),
         State('scientistGame', self.enterScientistGame, self.exitScientistGame),
         State('scientistJealous', self.enterScientistJealous, self.exitScientistJealous),
         State('cringe', self.enterCringe, self.exitCringe),
         State('conked', self.enterConked, self.exitConked),
         State('win', self.enterWin, self.exitWin),
         State('walkBack', self.enterWalkBack, self.exitWalkBack),
         State('deadNeutral', self.enterDeadNeutral, self.exitDeadNeutral),
         State('deadWalk', self.enterDeadWalk, self.exitDeadWalk),
         State('squish', self.enterSquish, self.exitSquish),
         State('Happy', self.enterHappy, self.exitHappy),
         State('Sad', self.enterSad, self.exitSad)], 'off', 'off')
        animStateList = self.animFSM.getStates()
        self.animFSM.enterInitialState()
        if not hasattr(base, 'localAvatar') or not base.localAvatar == self:
            Avatar.Avatar.initializeBodyCollisions(self, self.avatarType, 3, 1)
        return
Esempio n. 9
0
 def generate(self, gender, head, headtype, color, doId, name):
     gui = loader.loadModel("phase_3/models/gui/pick_a_toon_gui.bam")
     bg = gui.find("**/av-chooser_Square_UP")
     container = DirectFrame(relief=None, scale=0.3, parent=base.a2dTopLeft)
     container["image"] = bg
     container["image_color"] = self.frameColors[len(self.frameList)]
     container.setPos(self.framePositions[len(self.frameList)])
     headframe = container.attachNewNode("head")
     headframe.setPosHprScale(0, 5, -0.1, 180, 0, 0, 0.24, 0.24, 0.24)
     toon = ToonHead(None)
     toon.generateHead(gender, head, headtype)
     r, g, b = color
     color = (r, g, b, 1.0)
     toon.setHeadColor(color)
     toon.setDepthWrite(1)
     toon.setDepthTest(1)
     toon.reparentTo(headframe)
     nameLbl = DirectLabel(
         text=name,
         text_wordwrap=7.0,
         parent=container,
         text_scale=0.13,
         text_fg=(1, 1, 1, 1),
         text_shadow=(0, 0, 0, 1),
         relief=None,
         pos=(0, 0, 0.25),
     )
     cardCount = DirectLabel(
         text="0",
         parent=container,
         text_scale=0.15,
         text_fg=(1, 1, 1, 1),
         text_shadow=(0, 0, 0, 1),
         relief=None,
         pos=(0.26, 0, -0.28),
     )
     self.frameList.append(container)
     self.doId2Frame[doId] = tuple((container, headframe, toon, nameLbl, cardCount))
     return
 def generateHead(self, pat=0):
     gender = self.getGender()
     head = self.getAnimal()
     headtype = self.getHead()
     ToonHead.generateHead(self, gender, head, headtype)
    def __init__(self, cr, mat=0):
        self.cr = cr
        try:
            self.Toon_initialized
            return
        except:
            self.Toon_initialized = 1
        Avatar.Avatar.__init__(self, mat)
        ToonDNA.ToonDNA.__init__(self)
        ToonHead.__init__(self, cr)
        self.forwardSpeed = 0.0
        self.rotateSpeed = 0.0
        self.strafeSpeed = 0.0
        self.avatarType = CIGlobals.Toon
        self.track = None
        self.standWalkRunReverse = None
        self.playingAnim = None
        self.playingRate = None
        self.tag = None
        self.money = 0
        self.lookAtTrack = None
        self.portal1 = None
        self.portal2 = None
        self.gunAttached = False
        self.gun = None
        self.tokenIcon = None
        self.tokenIconIval = None
        self.forcedTorsoAnim = None
        self.fallSfx = base.audio3d.loadSfx(
            "phase_4/audio/sfx/MG_cannon_hit_dirt.ogg")
        base.audio3d.attachSoundToObject(self.fallSfx, self)
        self.eyes = loader.loadTexture("phase_3/maps/eyes.jpg",
                                       "phase_3/maps/eyes_a.rgb")
        self.myTaskId = random.uniform(0, 1231231232132131231232)
        self.closedEyes = loader.loadTexture("phase_3/maps/eyesClosed.jpg",
                                             "phase_3/maps/eyesClosed_a.rgb")
        self.soundChatBubble = loader.loadSfx(
            "phase_3/audio/sfx/GUI_balloon_popup.ogg")
        self.shadowCaster = None
        self.chatSoundDict = {}
        self.backpack = None
        self.animFSM = ClassicFSM('Toon', [
            State('off', self.enterOff, self.exitOff),
            State('neutral', self.enterNeutral, self.exitNeutral),
            State('swim', self.enterSwim, self.exitSwim),
            State('walk', self.enterWalk, self.exitWalk),
            State('run', self.enterRun, self.exitRun),
            State('openBook', self.enterOpenBook, self.exitOpenBook),
            State('readBook', self.enterReadBook, self.exitReadBook),
            State('closeBook', self.enterCloseBook, self.exitCloseBook),
            State('teleportOut', self.enterTeleportOut, self.exitTeleportOut),
            State('teleportIn', self.enterTeleportIn, self.exitTeleportIn),
            State('died', self.enterDied, self.exitDied),
            State('fallFWD', self.enterFallFWD, self.exitFallFWD),
            State('fallBCK', self.enterFallBCK, self.exitFallBCK),
            State('jump', self.enterJump, self.exitJump),
            State('leap', self.enterLeap, self.exitLeap),
            State('laugh', self.enterLaugh, self.exitLaugh),
            State('happy', self.enterHappyJump, self.exitHappyJump),
            State('shrug', self.enterShrug, self.exitShrug),
            State('hdance', self.enterHDance, self.exitHDance),
            State('wave', self.enterWave, self.exitWave),
            State('scientistEmcee', self.enterScientistEmcee,
                  self.exitScientistEmcee),
            State('scientistWork', self.enterScientistWork,
                  self.exitScientistWork),
            State('scientistGame', self.enterScientistGame,
                  self.exitScientistGame),
            State('scientistJealous', self.enterScientistJealous,
                  self.exitScientistJealous),
            State('cringe', self.enterCringe, self.exitCringe),
            State('conked', self.enterConked, self.exitConked),
            State('win', self.enterWin, self.exitWin),
            State('walkBack', self.enterWalkBack, self.exitWalkBack),
            State('deadNeutral', self.enterDeadNeutral, self.exitDeadNeutral),
            State('deadWalk', self.enterDeadWalk, self.exitDeadWalk),
            State('squish', self.enterSquish, self.exitSquish),
            State('Happy', self.enterHappy, self.exitHappy),
            State('Sad', self.enterSad, self.exitSad)
        ], 'off', 'off')
        animStateList = self.animFSM.getStates()
        self.animFSM.enterInitialState()

        if not hasattr(base, 'localAvatar') or not base.localAvatar == self:
            Avatar.Avatar.initializeBodyCollisions(self, self.avatarType, 3, 1)
 def __init__(self, mg, king, points):
     DirectFrame.__init__(self, parent=aspect2d)
     self.setBin('gui-popup', 60)
     self.mg = mg
     box = DGG.getDefaultDialogGeom()
     self.bg = OnscreenImage(image=box, color=(1, 1, 0.75, 1), scale=(1.9, 1.4,
                                                                      1.4), parent=self)
     toonFont = CIGlobals.getToonFont()
     minnieFont = CIGlobals.getMinnieFont()
     name = 'Nobody'
     if king:
         name = king.getName()
         self.kingId = king.doId
     else:
         king = base.localAvatar
         self.kingId = 0
     self.title = OnscreenText(text='%s is King!' % name, pos=(0, 0.5, 0), font=toonFont, scale=0.12, parent=self, shadow=(0.5,
                                                                                                                           0.5,
                                                                                                                           0.5,
                                                                                                                           0.6))
     headFrame = self.attachNewNode('head')
     headFrame.setPosHprScale(0, 0, -0.1, 180, 0, 0, 0.3, 0.3, 0.3)
     toon = ToonHead(None)
     toon.generateHead(king.getGender(), king.getAnimal(), king.getHead())
     r, g, b, a = king.getHeadColor()
     color = (r, g, b, a)
     toon.setHeadColor(color)
     toon.setDepthWrite(1)
     toon.setDepthTest(1)
     toon.reparentTo(headFrame)
     self.amt_label = OnscreenText(text='Your Points: 0', pos=(-0.012, -0.4, 0), font=toonFont, scale=0.12, parent=self, shadow=(0.5,
                                                                                                                                 0.5,
                                                                                                                                 0.5,
                                                                                                                                 0.6))
     self.amt_label.hide()
     self.motivator = OnscreenText(text='Better luck next time!', pos=(0, -0.6,
                                                                       0), font=minnieFont, scale=0.125, parent=self, fg=(1,
                                                                                                                          0,
                                                                                                                          0,
                                                                                                                          1), shadow=(0.2,
                                                                                                                                      0.2,
                                                                                                                                      0.2,
                                                                                                                                      1))
     self.motivator.hide()
     self.easterEgg = False
     if 50 < points != 100:
         self.motivator['fg'] = (0, 1, 0, 1)
         self.motivator.setText('Great job!')
     else:
         if points == 100:
             self.motivator['fg'] = (0, 1, 0, 1)
             if random.randint(0, 100) <= 10:
                 self.motivator.setText('YOU THE REAL MVP!')
                 self.easterEgg = True
             else:
                 self.motivator.setText('AMAZING!')
     self.zeroPointsSfx = loader.loadSfx('phase_4/audio/sfx/MG_neg_buzzer.ogg')
     self.poorScoreSfx = loader.loadSfx('phase_4/audio/sfx/MG_sfx_travel_game_no_bonus.ogg')
     self.goodScoreSfx = loader.loadSfx('phase_4/audio/sfx/MG_pairing_match_bonus_both.ogg')
     self.stomperSfx = loader.loadSfx('phase_4/audio/sfx/CHQ_FACT_stomper_small.ogg')
     self.fireworkSfx = loader.loadSfx('phase_4/audio/sfx/firework_explosion_02.ogg')
     self.perfectSfx = loader.loadSfx('phase_5/audio/sfx/SZ_MM_fanfare.ogg')
     self.tick_fastSfx = loader.loadSfx('phase_4/audio/sfx/MG_maze_pickup.ogg')
     self.tick_slowSfx = loader.loadSfx('phase_3.5/audio/sfx/tick_counter.ogg')
     self.easterEggSfx = loader.loadSfx('phase_4/audio/sfx/avatar_emotion_very_sad.ogg')
     self.pointsSeq = Sequence(Func(self.amt_label.show), Wait(0.25))
     self.seqLevel = 0
     self.fakeNumber = 0
     self.points = points
     return
Esempio n. 13
0
 def generate(self, gender, head, headtype, color, doId, name, valueLabel = 1):
     gui = loader.loadModel('phase_3/models/gui/pick_a_toon_gui.bam')
     bg = gui.find('**/av-chooser_Square_UP')
     container = DirectFrame(relief=None, scale=0.3, parent=base.a2dTopLeft)
     container['image'] = bg
     container['image_color'] = self.frameColors[len(self.frameList)]
     container.setBin('gui-popup', 60)
     container.setPos(self.framePositions[len(self.frameList)])
     headframe = container.attachNewNode('head')
     headframe.setPosHprScale(0, 5, -0.1, 180, 0, 0, 0.24, 0.24, 0.24)
     toon = ToonHead(None)
     toon.generateHead(gender, head, headtype)
     r, g, b = color
     color = (r,
      g,
      b,
      1.0)
     toon.setHeadColor(color)
     toon.setDepthWrite(1)
     toon.setDepthTest(1)
     toon.reparentTo(headframe)
     nameLbl = DirectLabel(text=name, text_wordwrap=7.0, parent=container, text_scale=0.13, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), relief=None, pos=(0, 0, 0.25))
     if valueLabel:
         someValueToBroadcast = DirectLabel(text='0', parent=container, text_scale=0.15, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), relief=None, pos=(0.26, 0, -0.28))
     self.frameList.append(container)
     if valueLabel:
         self.doId2Frame[doId] = tuple((container,
          headframe,
          toon,
          nameLbl,
          someValueToBroadcast))
     else:
         self.doId2Frame[doId] = tuple((container,
          headframe,
          toon,
          nameLbl))
     return
Esempio n. 14
0
    def createGui(self):
        base.cr.renderFrame()

        self.m = loader.loadFont("phase_3/models/fonts/MickeyFont.bam")
        self.bg = loader.loadModel(
            "phase_3/models/gui/tt_m_gui_pat_mainGui.bam")
        self.qtbtn = loader.loadModel("phase_3/models/gui/quit_button.bam")

        self.trash_gui = loader.loadModel(
            "phase_3/models/gui/trashcan_gui.bam")

        self.bg_img = OnscreenImage(
            image=self.bg.find('**/tt_t_gui_pat_background'))

        self.setTitle("Pick  A  Toon  To  Play")

        base.setBackgroundColor(self.BgColor)

        self.btn1 = DirectButton(
            geom=self.bg.find('**/tt_t_gui_pat_squareGreen'),
            relief=None,
            pos=(0.012, 0, 0.306),
            text_wordwrap=6,
            text_fg=(1, 1, 1, 1))
        self.btn2 = DirectButton(
            geom=self.bg.find('**/tt_t_gui_pat_squarePink'),
            relief=None,
            pos=(0.01, 0, -0.515),
            text_wordwrap=6,
            text_fg=(1, 1, 1, 1))
        self.btn3 = DirectButton(
            geom=self.bg.find('**/tt_t_gui_pat_squareRed'),
            relief=None,
            pos=(-0.84, 0, 0.36),
            text_wordwrap=6,
            text_fg=(1, 1, 1, 1))
        self.btn4 = DirectButton(
            geom=self.bg.find('**/tt_t_gui_pat_squareYellow'),
            relief=None,
            pos=(0.865, 0, -0.45),
            text_wordwrap=6,
            text_fg=(1, 1, 1, 1))
        self.btn5 = DirectButton(
            geom=self.bg.find('**/tt_t_gui_pat_squareBlue'),
            relief=None,
            pos=(-0.87, 0, -0.44),
            text_wordwrap=6,
            text_fg=(1, 1, 1, 1))
        self.btn6 = DirectButton(
            geom=self.bg.find('**/tt_t_gui_pat_squarePurple'),
            relief=None,
            pos=(0.873, 0, 0.335),
            text_wordwrap=6,
            text_fg=(1, 1, 1, 1))

        self.quit_btn = DirectButton(geom=(self.qtbtn.find('**/QuitBtn_RLVR'),
                                           self.qtbtn.find('**/QuitBtn_RLVR'),
                                           self.qtbtn.find('**/QuitBtn_RLVR')),
                                     relief=None,
                                     text="Quit",
                                     text_font=self.m,
                                     text_scale=0.105,
                                     text_pos=(0, -0.035),
                                     pos=(1.05, 0, -0.9),
                                     text_fg=(1, 0.9, 0.1, 1),
                                     geom1_scale=(1.02, 1, 1),
                                     geom2_scale=(1.02, 1, 1),
                                     command=self.quitGame)

        self.btnList = []
        self.btnList.append(self.btn1)
        self.btnList.append(self.btn2)
        self.btnList.append(self.btn3)
        self.btnList.append(self.btn4)
        self.btnList.append(self.btn5)
        self.btnList.append(self.btn6)

        self.headList = []

        #datafiler = open("toons/data.txt", "r")
        #if datafiler.read() == "-":
        #	for btn in self.btnList:
        #		btn['state'] = DGG.DISABLED
        #	self.quit_btn['state'] = DGG.DISABLED
        #	self.tutorial.askTutorial()
        #	datafilew = open("toons/data.txt", "w")
        #	datafilew.write("+")
        #	datafilew.flush()
        #	datafilew.close()
        #datafiler.close()

        for slot in range(6):
            if self.avChooser.hasToonInSlot(slot):
                notify.info("found existing Toon in slot %s" % (str(slot)))
                frame = DirectFrame(relief=None,
                                    parent=self.btnList[slot],
                                    pos=(0, 0, -0.1))
                headframe = hidden.attachNewNode('head')
                headframe.setPosHprScale(0, 5, -0.1, 180, 0, 0, 0.24, 0.24,
                                         0.24)
                headframe.reparentTo(self.btnList[slot].stateNodePath[0], 20)
                headframe.instanceTo(self.btnList[slot].stateNodePath[1], 20)
                headframe.instanceTo(self.btnList[slot].stateNodePath[2], 20)
                toon = ToonHead(base.cr)
                self.headList.append(toon)
                gender, animal, head, headcolor = self.avChooser.getHeadInfo(
                    slot)
                toon.generateHead(gender, animal, head, 1)
                toon.getGeomNode().setDepthWrite(1)
                toon.getGeomNode().setDepthTest(1)
                toon.startBlink()
                toon.startLookAround()
                toon.reparentTo(headframe)
                toon.setHeadColor(headcolor)
                toon.flattenLight()
                name_lbl = DirectLabel(text=self.avChooser.getNameInSlot(slot),
                                       text_scale=0.08,
                                       text_fg=(1, 1, 1, 1),
                                       text_wordwrap=7,
                                       relief=None,
                                       text_shadow=(0, 0, 0, 1))
                name_lbl.reparentTo(self.btnList[slot].stateNodePath[0], 20)
                name_lbl.instanceTo(self.btnList[slot].stateNodePath[1], 20)
                name_lbl.instanceTo(self.btnList[slot].stateNodePath[2], 20)
                name_lbl.setPos(self.name_pos[slot])
                name_lbl.setHpr(self.name_hpr[slot])
                self.btnList[slot]['text'] = ("", "Play This Toon",
                                              "Play This Toon", "")
                self.btnList[slot]['text_scale'] = 0.1
                self.btnList[slot]['text_pos'] = (0, 0)
                self.btnList[slot]['text_fg'] = (1, 0.9, 0, 1)
                self.btnList[slot]['text_wordwrap'] = 6
                self.btnList[slot]['text_font'] = self.m
                self.btnList[slot]['command'] = self.fadeMenu
                self.btnList[slot]['extraArgs'] = ["playGame", slot]
                delBtn = DirectButton(
                    text=("", "Delete", "Delete", ""),
                    text_scale=0.15,
                    scale=0.5,
                    text_pos=(0, -0.1),
                    text_fg=(1, 1, 1, 1),
                    relief=None,
                    geom=(self.trash_gui.find('**/TrashCan_CLSD'),
                          self.trash_gui.find('**/TrashCan_OPEN'),
                          self.trash_gui.find('**/TrashCan_RLVR')),
                    pos=self.trash_pos[slot],
                    command=self.deleteToon,
                    extraArgs=[
                        self.avChooser.getAvChoiceBySlot(slot).getAvId()
                    ],
                    text_shadow=(0, 0, 0, 1))
                delBtn.reparentTo(self.btnList[slot].stateNodePath[0], 20)
                delBtn.instanceTo(self.btnList[slot].stateNodePath[1], 20)
                delBtn.instanceTo(self.btnList[slot].stateNodePath[2], 20)
            else:
                self.btnList[slot]['text'] = "Make A Toon"
                self.btnList[slot]['text_font'] = self.m
                self.btnList[slot]['text0_scale'] = 0.1
                self.btnList[slot]['text1_scale'] = 0.12
                self.btnList[slot]['text2_scale'] = 0.12
                self.btnList[slot]['text3_scale'] = 0.1
                self.btnList[slot]['text0_fg'] = (0, 1, 0.8, 0.5)
                self.btnList[slot]['text1_fg'] = (0, 1, 0.8, 1)
                self.btnList[slot]['text2_fg'] = (0.3, 1, 0.9, 1)
                self.btnList[slot]['text3_fg'] = (0, 1, 0.8, 0.5)
                self.btnList[slot]['text_font'] = self.m
                self.btnList[slot]['command'] = self.fadeMenu
                self.btnList[slot]['extraArgs'] = ["mat", slot]
                self.btnList[slot]['text_wordwrap'] = 6