コード例 #1
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')
コード例 #2
0
 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
コード例 #3
0
 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()
コード例 #4
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))
 def enterAnnounceGameOver(self):
     whistle = base.loadSfx('phase_4/audio/sfx/AA_sound_whistle.ogg')
     base.playSfx(whistle)
     self.gameOverLbl = OnscreenText(text='Game Over!',
                                     fg=(1, 1, 1, 1),
                                     font=CIGlobals.getMinnieFont(),
                                     scale=0.1)
     self.gameOverScaleIval = LerpScaleInterval(self.gameOverLbl,
                                                duration=1.0,
                                                scale=0.1,
                                                startScale=0.0,
                                                blendType='easeOut')
 def enterShowWinner(self, winnerId):
     self.firstPerson.reallyEnd()
     avatar = self.getRemoteAvatar(winnerId)
     avatar.avatar.loop('neutral')
     avatar.detachCamera()
     self.thisPlayerWinsLbl = OnscreenText(text = "{0} Wins!".format(avatar.avatar.getName()), fg = (1, 1, 1, 1),
         font = CIGlobals.getMinnieFont(), pos = (0, 0.8), scale = 0.1)
     if winnerId == base.localAvatar.doId:
         self.thisPlayerWinsLbl.setText("You Win!")
     base.camera.reparentTo(avatar.avatar)
     base.camera.setPos(0, 7, 3)
     base.camera.setH(180)
     base.transitions.fadeIn()
     Sequence(Wait(0.5), Func(avatar.doWinDance)).start()
コード例 #7
0
    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 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()
コード例 #9
0
    def __init__(self, quest, parent=aspect2d, **kw):
        DirectFrame.__init__(self, relief=None)
        self.quest = quest

        # Let's begin building the quest poster.
        bookModel = loader.loadModel(
            'phase_3.5/models/gui/stickerbook_gui.bam')
        questCard = bookModel.find('**/questCard')
        optiondefs = (('relief', None, None), ('image', questCard, None),
                      ('image_scale', (0.8, 1.0, 0.58),
                       None), ('state', DGG.NORMAL, None))
        self.defineoptions(kw, optiondefs)
        self._deleteCallback = None
        self.questFrame = DirectFrame(parent=self, relief=None)
        self.headline = DirectLabel(parent=self.questFrame,
                                    relief=None,
                                    text='',
                                    text_font=CIGlobals.getMinnieFont(),
                                    text_fg=self.normalTextColor,
                                    text_scale=0.05,
                                    text_align=TextNode.ACenter,
                                    text_wordwrap=12.0,
                                    textMayChange=1,
                                    pos=(0, 0, 0.23))
        self.questInfo = DirectLabel(parent=self.questFrame,
                                     relief=None,
                                     text='',
                                     text_fg=self.normalTextColor,
                                     text_scale=TEXT_SCALE,
                                     text_align=TextNode.ACenter,
                                     text_wordwrap=TEXT_WORDWRAP,
                                     textMayChange=1,
                                     pos=(0, 0, -0.0625))
        self.rewardText = DirectLabel(parent=self.questFrame,
                                      relief=None,
                                      text='',
                                      text_fg=self.colors['rewardRed'],
                                      text_scale=0.0425,
                                      text_align=TextNode.ALeft,
                                      text_wordwrap=17.0,
                                      textMayChange=1,
                                      pos=(-0.36, 0, -0.26))
        self.rewardText.hide()
        self.lPictureFrame = DirectFrame(
            parent=self.questFrame,
            relief=None,
            image=bookModel.find('**/questPictureFrame'),
            image_scale=IMAGE_SCALE_SMALL,
            text='',
            text_pos=(0, -0.11),
            text_fg=self.normalTextColor,
            text_scale=TEXT_SCALE,
            text_align=TextNode.ACenter,
            text_wordwrap=11.0,
            textMayChange=1)
        self.lPictureFrame.hide()
        self.rPictureFrame = DirectFrame(
            parent=self.questFrame,
            relief=None,
            image=bookModel.find('**/questPictureFrame'),
            image_scale=IMAGE_SCALE_SMALL,
            text='',
            text_pos=(0, -0.11),
            text_fg=self.normalTextColor,
            text_scale=TEXT_SCALE,
            text_align=TextNode.ACenter,
            text_wordwrap=11.0,
            textMayChange=1,
            pos=(0.18, 0, 0.13))
        self.rPictureFrame.hide()
        self.lQuestIcon = DirectFrame(parent=self.lPictureFrame,
                                      relief=None,
                                      text=' ',
                                      text_font=CIGlobals.getSuitFont(),
                                      text_pos=(0, -0.03),
                                      text_fg=self.normalTextColor,
                                      text_scale=0.13,
                                      text_align=TextNode.ACenter,
                                      text_wordwrap=13.0,
                                      textMayChange=1)
        self.lQuestIcon.setColorOff(-1)
        self.rQuestIcon = DirectFrame(parent=self.rPictureFrame,
                                      relief=None,
                                      text=' ',
                                      text_font=CIGlobals.getSuitFont(),
                                      text_pos=(0, -0.03),
                                      text_fg=self.normalTextColor,
                                      text_scale=0.13,
                                      text_align=TextNode.ACenter,
                                      text_wordwrap=13.0,
                                      textMayChange=1)
        self.rQuestIcon.setColorOff(-1)
        self.auxText = DirectLabel(parent=self.questFrame,
                                   relief=None,
                                   text='',
                                   text_scale=QuestGlobals.QPauxText,
                                   text_fg=self.normalTextColor,
                                   text_align=TextNode.ACenter,
                                   textMayChange=1)
        self.auxText.hide()
        self.questProgress = DirectWaitBar(parent=self.questFrame,
                                           relief=DGG.SUNKEN,
                                           frameSize=(-0.95, 0.95, -0.1, 0.12),
                                           borderWidth=(0.025, 0.025),
                                           scale=0.2,
                                           frameColor=(0.945, 0.875, 0.706,
                                                       1.0),
                                           barColor=(0.5, 0.7, 0.5, 1),
                                           text='0/0',
                                           text_scale=0.19,
                                           text_fg=(0.05, 0.14, 0.4, 1),
                                           text_align=TextNode.ACenter,
                                           text_pos=(0, -0.04),
                                           pos=(0, 0, -0.195))
        self.questProgress.hide()

        # This is the rotated text on the side.
        self.sideInfo = DirectLabel(parent=self.questFrame,
                                    relief=None,
                                    text=QuestGlobals.JUST_FOR_FUN,
                                    text_fg=(0.0, 0.439, 1.0, 1.0),
                                    text_shadow=(0, 0, 0, 1),
                                    pos=(-0.2825, 0, 0.2),
                                    scale=0.03)
        self.sideInfo.setR(-30)
        self.sideInfo.hide()

        bookModel.removeNode()
        self.laffMeter = None
        return
コード例 #10
0
    def load(self):
        self.unload()
        if self.loadingText:
            self.loadingText.destroy()
            self.loadingText = None
        self.loadingText = OnscreenText(text='', 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()
        else:
            if self.levelName in ('cbhq', 'sbf'):
                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)
                    self.skyModel.setScale(self.LevelData[self.levelName].get('sky_scale', 1.0))
                if self.LevelData[self.levelName].get('occluders'):
                    self.occluders = loader.loadModel(self.LevelData[self.levelName]['occluders'])
                    for occluderNode in self.occluders.findAllMatches('**/+OccluderNode'):
                        base.render.setOccluder(occluderNode)
                        occluderNode.node().setDoubleSided(True)

                if self.levelName == 'sbf':
                    base.camLens.setFar(250)
            else:
                dnaFiles = self.LevelData[self.levelName]['dna']
                skyType = self.LevelData[self.levelName]['sky']
                skyPhase = self.SkyData[skyType]
                loadDNAFile(self.dnaStore, 'phase_4/dna/storage.pdna')
                for index in range(len(dnaFiles)):
                    if index == len(dnaFiles) - 1:
                        node = 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)
                        if self.levelName == 'ttc' and dnaFiles[index] == 'phase_4/dna/new_ttc_sz.pdna':
                            self.levelGeom.find('**/prop_gazebo_DNARoot').removeNode()
                        else:
                            self.levelGeom.flattenMedium()
                        gsg = base.win.getGsg()
                        if gsg:
                            self.levelGeom.prepareScene(gsg)
                        self.levelGeom.reparentTo(render)
                    else:
                        loadDNAFile(self.dnaStore, dnaFiles[index])

                children = self.levelGeom.findAllMatches('**/*doorFrameHole*')
                for child in children:
                    child.hide()

                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
 def getWinterDodgeballScoreText(self, color):
     text = OnscreenText(fg=color, font=CIGlobals.getMinnieFont(), scale=0.15, shadow=(0,
                                                                                       0,
                                                                                       0,
                                                                                       1))
     return text
コード例 #12
0
ファイル: GunGameLevelLoader.py プロジェクト: coginvasion/src
    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
コード例 #13
0
 def enterAnnounceGameOver(self):
     whistle = base.loadSfx('phase_4/audio/sfx/AA_sound_whistle.mp3')
     base.playSfx(whistle)
     self.gameOverLbl = OnscreenText(text='Game Over!', fg=(1, 1, 1, 1), font=CIGlobals.getMinnieFont(), scale=0.1)
     self.gameOverScaleIval = LerpScaleInterval(self.gameOverLbl, duration=1.0, scale=0.1, startScale=0.0, blendType='easeOut')
コード例 #14
0
ファイル: CIProgressScreen.py プロジェクト: coginvasion/src
 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
コード例 #15
0
 def enterShowWinner(self, winnerId):
     self.firstPerson.reallyEnd()
     avatar = self.getRemoteAvatar(winnerId)
     avatar.avatar.loop('neutral')
     avatar.detachCamera()
     self.thisPlayerWinsLbl = OnscreenText(text='{0} Wins!'.format(avatar.avatar.getName()), fg=(1, 1, 1, 1), font=CIGlobals.getMinnieFont(), pos=(0, 0.8), scale=0.1)
     if winnerId == base.localAvatar.doId:
         self.thisPlayerWinsLbl.setText('You Win!')
     base.camera.reparentTo(avatar.avatar)
     base.camera.setPos(0, 7, 3)
     base.camera.setH(180)
     base.transitions.fadeIn()
     Sequence(Wait(0.5), Func(avatar.doWinDance)).start()
コード例 #16
0
 def load(self):
     self.unload()
     if self.loadingText:
         self.loadingText.destroy()
         self.loadingText = None
     self.loadingText = OnscreenText(text = "",
         font = CIGlobals.getMinnieFont(), fg = (1, 1, 1, 1))
     self.loadingText.setBin('gui-popup', 0)
     base.graphicsEngine.renderFrame()
     base.graphicsEngine.renderFrame()
     if self.levelName == "momada":
         # momada is completely different from the other levels,
         # so it has it's own separate method for loading.
         self.__momadaLoad()
     elif self.levelName in ['cbhq', 'sbf']:
         # Cog hqs are just one model with everything in it. no dna loading needed.
         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)
             self.skyModel.setScale(self.LevelData[self.levelName].get('sky_scale', 1.0))
         if self.LevelData[self.levelName].get('occluders'):
             self.occluders = loader.loadModel(self.LevelData[self.levelName]['occluders'])
             for occluderNode in self.occluders.findAllMatches('**/+OccluderNode'):
                 base.render.setOccluder(occluderNode)
                 occluderNode.node().setDoubleSided(True)
         if self.levelName == 'sbf':
             base.camLens.setFar(250)
     else:
         # It's a playground with dna and stuff. Just do the
         # normal loading procedure.
         dnaFiles = self.LevelData[self.levelName]['dna']
         skyType = self.LevelData[self.levelName]['sky']
         skyPhase = self.SkyData[skyType]
         loadDNAFile(self.dnaStore, 'phase_4/dna/storage.pdna')
         for index in range(len(dnaFiles)):
             if index == len(dnaFiles) - 1:
                 node = 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)
                 if self.levelName == 'ttc' and dnaFiles[index] == 'phase_4/dna/new_ttc_sz.pdna':
                     self.levelGeom.find('**/prop_gazebo_DNARoot').removeNode()
                 else:
                     self.levelGeom.flattenMedium()
                 gsg = base.win.getGsg()
                 if gsg:
                     self.levelGeom.prepareScene(gsg)
                 self.levelGeom.reparentTo(render)
             else:
                 loadDNAFile(self.dnaStore, dnaFiles[index])
         children = self.levelGeom.findAllMatches('**/*doorFrameHole*')
         
         for child in children:
             child.hide()
         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
コード例 #17
0
 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