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 __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
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()
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()
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()
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
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
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
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')
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
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()
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
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