def enter(self, requestStatus, visibilityFlag = 1, arrowsOn = 1): teleportDebug(requestStatus, 'Street.enter(%s)' % (requestStatus,)) self._ttfToken = None self.fsm.enterInitialState() base.playMusic(self.loader.music, looping=1, volume=0.8) self.loader.geom.reparentTo(render) if visibilityFlag: self.visibilityOn() base.localAvatar.setGeom(self.loader.geom) base.localAvatar.setOnLevelGround(1) self._telemLimiter = TLGatherAllAvs('Street', RotationLimitToH) NametagGlobals.setMasterArrowsOn(arrowsOn) self.zone = ZoneUtil.getBranchZone(requestStatus['zoneId']) def __lightDecorationOn__(): geom = base.cr.playGame.getPlace().loader.geom self.halloweenLights = geom.findAllMatches('**/*light*') self.halloweenLights += geom.findAllMatches('**/*lamp*') self.halloweenLights += geom.findAllMatches('**/prop_snow_tree*') for light in self.halloweenLights: light.setColorScaleOff(1) if base.cr.newsManager.isHolidayRunning(ToontownGlobals.HALLOWEEN) and self.loader.hood.spookySkyFile: lightsOff = Sequence(LerpColorScaleInterval(base.cr.playGame.hood.loader.geom, 0.1, Vec4(0.55, 0.55, 0.65, 1)), Func(self.loader.hood.startSpookySky)) lightsOff.start() else: self.loader.hood.startSky() lightsOn = LerpColorScaleInterval(base.cr.playGame.hood.loader.geom, 0.1, Vec4(1, 1, 1, 1)) lightsOn.start() self.accept('doorDoneEvent', self.handleDoorDoneEvent) self.accept('DistributedDoor_doorTrigger', self.handleDoorTrigger) self.enterZone(requestStatus['zoneId']) self.tunnelOriginList = base.cr.hoodMgr.addLinkTunnelHooks(self, self.loader.nodeList) self.fsm.request(requestStatus['how'], [requestStatus])
def __unmakeGui(self): self.notify.debug('__unmakeGui') if not self.madeGui: return if self.flashingLabel: self.flashingLabel.finish() self.flashingLabel = None NametagGlobals.setMasterArrowsOn(1) self.__disableAimInterface() self.upButton.unbind(DGG.B1PRESS) self.upButton.unbind(DGG.B1RELEASE) self.downButton.unbind(DGG.B1PRESS) self.downButton.unbind(DGG.B1RELEASE) self.leftButton.unbind(DGG.B1PRESS) self.leftButton.unbind(DGG.B1RELEASE) self.rightButton.unbind(DGG.B1PRESS) self.rightButton.unbind(DGG.B1RELEASE) self.aimPad.destroy() del self.aimPad del self.fireButton del self.upButton del self.downButton del self.leftButton del self.rightButton self.madeGui = 0 return
def exit(self): self.ignoreAll() messenger.send('exitToonInterior') self._telemLimiter.destroy() del self._telemLimiter NametagGlobals.setMasterArrowsOn(0) self.loader.activityMusic.stop()
def enterControlled(self, avId): self.avId = avId self.toon = base.cr.doId2do.get(avId, None) if self.toon: self.toon.stopSmooth() self.toon.stopPosHprBroadcast() for feet in self.toon.getPieces(('legs', 'feet')): feet.hide() self.toon.reparentTo(self.toonSeat) self.toon.dropShadow.hide() self.notify.debug('setting pos of toon%s' % self.toon.doId) self.toon.setPosHpr(0, 0, 0, 0, 0, 0) self.toon.loop('sit') if self.toon.doId == localAvatar.doId: self.notify.debug('calling send currentPosition') self.toon.sendCurrentPosition() self.doHeadScale(self.toon, 1.75) self.toon.setShear(0, 0, 0) NametagGlobals.setOnscreenChatForced(1) if self.localVehicle: camera.reparentTo(self.cameraNode) camera.setPosHpr(0, -33, 16, 0, -10, 0) self.physicsMgr.attachPhysicalNode(self.node()) self.__enableControlInterface() self.__createPieWindshield() self.startPosHprBroadcast() self.engineSfxTrack = self.generateEngineStartTrack() self.engineSfxTrack.start() else: self.startSmooth() taskName = 'updateNonlocalVehicle-%s' % avId self.updateNonLocalTask = taskMgr.add(self.__updateNonlocalVehicle, taskName) return
def commence(self=self): NametagGlobals.setMasterArrowsOn(1) self.fsm.request(requestStatus['how'], [requestStatus]) base.playMusic(self.music, looping=1, volume=0.8) base.transitions.irisIn() stage = bboard.get(DistributedStage.DistributedStage.ReadyPost) self.loader.hood.spawnTitleText(stage.stageId)
def __enableControlInterface(self): gui = loader.loadModel('phase_3.5/models/gui/avatar_panel_gui') self.closeButton = DirectButton(parent=base.a2dBottomRight, image=(gui.find('**/CloseBtn_UP'), gui.find('**/CloseBtn_DN'), gui.find('**/CloseBtn_Rllvr'), gui.find('**/CloseBtn_UP')), relief=None, scale=2, text=TTLocalizer.CashbotCraneLeave, text_scale=0.04, text_pos=(0, -0.07), text_fg=VBase4(1, 1, 1, 1), pos=(-0.25, 0, 0.175), command=self.__exitCrane) self.accept('escape', self.__exitCrane) self.accept(base.JUMP, self.__controlPressed) self.accept('control-up', self.__controlReleased) self.accept('InputState-forward', self.__upArrow) self.accept('InputState-reverse', self.__downArrow) self.accept('InputState-turnLeft', self.__leftArrow) self.accept('InputState-turnRight', self.__rightArrow) taskMgr.add(self.__watchControls, 'watchCraneControls') taskMgr.doMethodLater(5, self.__displayCraneAdvice, self.craneAdviceName) taskMgr.doMethodLater(10, self.__displayMagnetAdvice, self.magnetAdviceName) NametagGlobals.setOnscreenChatForced(1) self.arrowVert = 0 self.arrowHorz = 0 return
def exitControlled(self): if self.localVehicle: self.stopPosHprBroadcast() self.__disableControlInterface() self.physicsMgr.removePhysicalNode(self.node()) self.cleanupParticles() camera.reparentTo(localAvatar) camera.setPos(localAvatar.cameraPositions[0][0]) camera.setHpr(0, 0, 0) self.engineSfxTrack.finish() self.engineSfxTrack = self.generateEngineStopTrack() else: self.stopSmooth() taskMgr.remove(self.updateNonLocalTask) if self.toon and not self.toon.isDisabled() and not self.toon.isEmpty(): self.toon.dropShadow.show() self.doHeadScale(self.toon, None) self.toon.setPosHpr(self.geom[0], 0, 8, 0, 0, 0, 0) for feet in self.toon.getPieces(('legs', 'feet')): feet.show() self.toon.reparentTo(render) self.toon.loop('neutral') self.toon.startSmooth() NametagGlobals.setOnscreenChatForced(0) base.camLens.setMinFov(settings['fov']/(4./3.))
def commence(self = self): NametagGlobals.setMasterArrowsOn(1) self.fsm.request(requestStatus['how'], [requestStatus]) base.playMusic(self.music, looping=1, volume=0.8) base.transitions.irisIn() CountryClub = bboard.get(DistributedCountryClub.DistributedCountryClub.ReadyPost) self.loader.hood.spawnTitleText(CountryClub.countryClubId)
def exitReward(self): self.notify.debug('exitReward()') self.ignore('resumeAfterReward') self.movie.resetReward(finish=1) self._removeMembersKeep() NametagGlobals.setMasterArrowsOn(1) Emote.globalEmote.releaseAll(base.localAvatar, 'dbattle, exitReward')
def exitReward(self): self.ignore('clientCleanup') taskMgr.remove('countUpTask') taskMgr.remove('countDownTask') taskMgr.remove('celebrate') taskMgr.remove('purchase-trans') taskMgr.remove('delayAdd') taskMgr.remove('delaySubtract') for toon in self.toons: toon.detachNode() del self.toons if hasattr(self, 'toonsKeep'): for delayDelete in self.toonsKeep: delayDelete.destroy() del self.toonsKeep for counter in self.counters: counter.reparentTo(hidden) for total in self.totalCounters: total.reparentTo(hidden) self.foreground.reparentTo(hidden) self.backgroundL.reparentTo(hidden) self.backgroundR.reparentTo(hidden) self.sidewalk.reparentTo(hidden) self.sidewalkL.reparentTo(hidden) self.sidewalkR.reparentTo(hidden) self.door.reparentTo(hidden) self.title.reparentTo(self.frame) self.rewardDoubledJellybeanLabel.hide() base.camLens.setMinFov(settings['fov'] / (4. / 3.)) NametagGlobals.setOnscreenChatForced(0)
def exitReward(self): self.ignore('clientCleanup') taskMgr.remove('countUpTask') taskMgr.remove('countDownTask') taskMgr.remove('celebrate') taskMgr.remove('purchase-trans') taskMgr.remove('delayAdd') taskMgr.remove('delaySubtract') for toon in self.toons: toon.detachNode() del self.toons if hasattr(self, 'toonsKeep'): for delayDelete in self.toonsKeep: delayDelete.destroy() del self.toonsKeep for counter in self.counters: counter.reparentTo(hidden) for total in self.totalCounters: total.reparentTo(hidden) self.foreground.reparentTo(hidden) self.backgroundL.reparentTo(hidden) self.backgroundR.reparentTo(hidden) self.sidewalk.reparentTo(hidden) self.sidewalkL.reparentTo(hidden) self.sidewalkR.reparentTo(hidden) self.door.reparentTo(hidden) self.title.reparentTo(self.frame) self.rewardDoubledJellybeanLabel.hide() base.camLens.setMinFov(settings['fov']/(4./3.)) NametagGlobals.setOnscreenChatForced(0)
def exitReward(self): self.notify.info('exitReward()') self.clearInterval(self.uniqueName('floorReward')) self._removeMembersKeep() NametagGlobals.setMasterArrowsOn(1) for toon in self.toons: toon.startSmooth()
def exitReward(self): self.notify.debug("exitReward()") self.clearInterval(self.uniqueName("floorReward"), finish=1) self._removeMembersKeep() NametagGlobals.setMasterArrowsOn(1) for toon in self.toons: toon.startSmooth()
def commence(self = self): NametagGlobals.setMasterArrowsOn(1) self.fsm.request(requestStatus['how'], [requestStatus]) base.playMusic(self.music, looping=1, volume=0.8) base.transitions.irisIn() mint = bboard.get(DistributedMint.DistributedMint.ReadyPost) self.loader.hood.spawnTitleText(mint.mintId, mint.floorNum)
def exitFLM(self): self.notify.debug('FriendsListManager: exitFLM()') if self._preserveFriendsList: return if not self._entered: return self._entered = False self.ignore('openFriendsList') self.ignore('clickedNametag') base.localAvatar.setFriendsListButtonActive(0) NametagGlobals.setMasterNametagsActive(0) if self.avatarPanel: self.avatarPanel.cleanup() self.avatarPanel = None self.ignore('gotoAvatar') self.ignore('friendAvatar') self.ignore('avatarDetails') FriendsListPanel.hideFriendsList() if base.cr.friendManager: base.cr.friendManager.setAvailable(0) self.ignore('friendInvitation') FriendInviter.hideFriendInviter() ToonAvatarDetailPanel.hideAvatarDetail() ToonTeleportPanel.hideTeleportPanel() return
def enterBattleFour(self): self.cleanupIntervals() self.releaseToons(finalBattle=1) self.accept('clickedNametag', self.__clickedNameTag) self.accept('friendAvatar', self.__handleFriendAvatar) self.accept('avatarDetails', self.__handleAvatarDetails) NametagGlobals.setMasterArrowsOn(0) NametagGlobals.setMasterNametagsActive(1)
def exitIntroduction(self): self.notify.debug('DistributedBossCog.exitIntroduction:') intervalName = 'IntroductionMovie' self.clearInterval(intervalName) self.unstickToons() self.releaseToons() NametagGlobals.setMasterArrowsOn(1) ElevatorUtils.closeDoors(self.leftDoor, self.rightDoor, self.elevatorType)
def enterStageReward(self, ts): self.notify.debug('enterStageReward()') self.disableCollision() self.delayDeleteMembers() if self.hasLocalToon(): NametagGlobals.setMasterArrowsOn(0) if self.bossBattle: messenger.send('localToonConfrontedStageBoss') self.movie.playReward(ts, self.uniqueName('building-reward'), self.__handleStageRewardDone, noSkip=True)
def enterIntroduction(self): self.controlToons() ElevatorUtils.openDoors(self.leftDoor, self.rightDoor, self.elevatorType) NametagGlobals.setMasterArrowsOn(0) intervalName = 'IntroductionMovie' delayDeletes = [] seq = Parallel(self.showTitleText(), Sequence(self.makeIntroductionMovie(delayDeletes), Func(self.__beginBattleOne)), name=intervalName) seq.delayDeletes = delayDeletes seq.start() self.storeInterval(seq, intervalName)
def exit(self): NametagGlobals.setMasterArrowsOn(0) self._telemLimiter.destroy() del self._telemLimiter if hasattr(base, 'factoryReady'): del base.factoryReady base.localAvatar.inventory.setRespectInvasions(1) self.fsm.requestFinalState() self.loader.music.stop() self.music.stop() self.ignoreAll()
def exitPrepareBattleThree(self): intervalName = 'PrepareBattleThreeMovie' self.clearInterval(intervalName) self.unstickToons() self.releaseToons() if self.newState == 'BattleThree': self.movieCrane.request('Free') self.movieSafe.request('Initial') NametagGlobals.setMasterArrowsOn(1) ElevatorUtils.closeDoors(self.leftDoor, self.rightDoor, ElevatorConstants.ELEVATOR_CFO) taskMgr.remove(self.uniqueName('physics'))
def enter(self, requestStatus): self.zoneId = requestStatus['zoneId'] self.fsm.enterInitialState() messenger.send('enterToonInterior') self.accept('doorDoneEvent', self.handleDoorDoneEvent) self.accept('DistributedDoor_doorTrigger', self.handleDoorTrigger) volume = requestStatus.get('musicVolume', 0.7) base.playMusic(self.loader.activityMusic, looping=1, volume=volume) self._telemLimiter = TLGatherAllAvs('ToonInterior', RotationLimitToH) NametagGlobals.setMasterArrowsOn(1) self.fsm.request(requestStatus['how'], [requestStatus])
def enter(self, requestStatus, bossCog): self.zoneId = requestStatus['zoneId'] BattlePlace.BattlePlace.enter(self) self.fsm.enterInitialState() self.bossCog = bossCog if self.bossCog: self.bossCog.d_avatarEnter() self._telemLimiter = TLGatherAllAvs('CogHQBossBattle', RotationLimitToH) NametagGlobals.setMasterArrowsOn(1) base.localAvatar.inventory.setRespectInvasions(0) self.fsm.request(requestStatus['how'], [requestStatus])
def exit(self): NametagGlobals.setMasterArrowsOn(0) bboard.remove(DistributedMint.DistributedMint.ReadyPost) self._telemLimiter.destroy() del self._telemLimiter base.cr.forbidCheesyEffects(0) base.localAvatar.inventory.setRespectInvasions(1) self.fsm.requestFinalState() self.loader.music.stop() self.music.stop() self.ignoreAll() del self.mintReadyWatcher
def exit(self): NametagGlobals.setMasterArrowsOn(0) self._telemLimiter.destroy() del self._telemLimiter bboard.remove(DistributedStage.DistributedStage.ReadyPost) base.cr.forbidCheesyEffects(0) base.localAvatar.inventory.setRespectInvasions(1) self.fsm.requestFinalState() self.loader.music.stop() self.music.stop() self.ignoreAll() del self.stageReadyWatcher
def enterWaitForToons(self): self.cleanupIntervals() self.hide() if self.gotAllToons: self.__doneWaitForToons() else: self.accept('gotAllToons', self.__doneWaitForToons) self.transitions = Transitions.Transitions(loader) self.transitions.IrisModelName = 'phase_3/models/misc/iris' self.transitions.FadeModelName = 'phase_3/models/misc/fade' self.transitions.fadeScreen(alpha=1) NametagGlobals.setMasterArrowsOn(0)
def enter(self, requestStatus): self.zoneId = requestStatus['zoneId'] BattlePlace.BattlePlace.enter(self) self.fsm.enterInitialState() base.playMusic(self.loader.music, looping=1, volume=0.8) self.loader.geom.reparentTo(render) self.nodeList = [self.loader.geom] self._telemLimiter = TLGatherAllAvs('CogHQExterior', RotationLimitToH) self.accept('doorDoneEvent', self.handleDoorDoneEvent) self.accept('DistributedDoor_doorTrigger', self.handleDoorTrigger) NametagGlobals.setMasterArrowsOn(1) self.tunnelOriginList = base.cr.hoodMgr.addLinkTunnelHooks(self, self.nodeList) how = requestStatus['how'] self.fsm.request(how, [requestStatus])
def enter(self, requestStatus): self.zoneId = requestStatus['zoneId'] BattlePlace.BattlePlace.enter(self) self.fsm.enterInitialState() base.playMusic(self.loader.music, looping=1, volume=0.8) self.loader.geom.reparentTo(render) self.nodeList = [self.loader.geom] self._telemLimiter = TLGatherAllAvs('CogHQExterior', RotationLimitToH) self.accept('doorDoneEvent', self.handleDoorDoneEvent) self.accept('DistributedDoor_doorTrigger', self.handleDoorTrigger) NametagGlobals.setMasterArrowsOn(1) self.tunnelOriginList = base.cr.hoodMgr.addLinkTunnelHooks( self, self.nodeList) how = requestStatus['how'] self.fsm.request(how, [requestStatus])
def exit(self, visibilityFlag=1): if visibilityFlag: self.visibilityOff() self.loader.geom.reparentTo(hidden) self._telemLimiter.destroy() del self._telemLimiter def __lightDecorationOff__(): for light in self.halloweenLights: light.reparentTo(hidden) NametagGlobals.setMasterArrowsOn(0) self.loader.hood.stopSky() self.loader.music.stop() base.localAvatar.setGeom(render) base.localAvatar.setOnLevelGround(0)
def exit(self, visibilityFlag = 1): if visibilityFlag: self.visibilityOff() self.loader.geom.reparentTo(hidden) self._telemLimiter.destroy() del self._telemLimiter def __lightDecorationOff__(): for light in self.halloweenLights: light.reparentTo(hidden) NametagGlobals.setMasterArrowsOn(0) self.loader.hood.stopSky() self.loader.music.stop() base.localAvatar.setGeom(render) base.localAvatar.setOnLevelGround(0)
def enterFLM(self): self.notify.debug('FriendsListManager: enterFLM()') if self._preserveFriendsList: self._preserveFriendsList = 0 return self._entered = True self.accept('openFriendsList', self.__openFriendsList) self.accept('clickedNametag', self.__handleClickedNametag) base.localAvatar.setFriendsListButtonActive(1) NametagGlobals.setMasterNametagsActive(1) self.accept('gotoAvatar', self.__handleGotoAvatar) self.accept('friendAvatar', self.__handleFriendAvatar) self.accept('avatarDetails', self.__handleAvatarDetails) self.accept('friendInvitation', self.__handleFriendInvitation) if base.cr.friendManager: base.cr.friendManager.setAvailable(1)
def enterPrepareBattleThree(self): self.controlToons() NametagGlobals.setMasterArrowsOn(0) intervalName = 'PrepareBattleThreeMovie' delayDeletes = [] self.movieCrane = self.cranes[0] self.movieSafe = self.safes[1] self.movieCrane.request('Movie') seq = Sequence(self.makePrepareBattleThreeMovie(delayDeletes, self.movieCrane, self.movieSafe), Func(self.__beginBattleThree), name=intervalName) seq.delayDeletes = delayDeletes seq.start() self.storeInterval(seq, intervalName) self.endVault.unstash() self.evWalls.stash() self.midVault.unstash() self.__showResistanceToon(False) taskMgr.add(self.__doPhysics, self.uniqueName('physics'), priority=25)
def enterReward(self, ts): self.notify.debug('enterReward()') self.disableCollision() self.delayDeleteMembers() Emote.globalEmote.disableAll(base.localAvatar, 'dbattle, enterReward') if self.hasLocalToon(): NametagGlobals.setMasterArrowsOn(0) if self.localToonActive() == 0: self.removeInactiveLocalToon(base.localAvatar) for toon in self.toons: toon.startSmooth() self.accept('resumeAfterReward', self.handleResumeAfterReward) prop = self.getInteractiveProp() if prop: prop.gotoVictory() self.playReward(ts)
def __disableControlInterface(self): self.__turnOffMagnet() if self.closeButton: self.closeButton.destroy() self.closeButton = None self.__cleanupCraneAdvice() self.__cleanupMagnetAdvice() self.ignore('escape') self.ignore(base.JUMP) self.ignore('control-up') self.ignore('InputState-forward') self.ignore('InputState-reverse') self.ignore('InputState-turnLeft') self.ignore('InputState-turnRight') self.arrowVert = 0 self.arrowHorz = 0 NametagGlobals.setOnscreenChatForced(0) taskMgr.remove('watchCraneControls') self.__setMoveSound(None) return
def exit(self): if not self.entered: return self.entered = 0 messenger.send('stickerBookExited') base.playSfx(self.closeSound) self.pages[self.currPageIndex].exit() base.render.show() setBlackBackground = 0 for obj in base.cr.doId2do.values(): if isinstance(obj, DistributedFireworkShow.DistributedFireworkShow ) or isinstance( obj, DistributedPartyFireworksActivity. DistributedPartyFireworksActivity): setBlackBackground = 1 if setBlackBackground: base.setBackgroundColor(Vec4(0, 0, 0, 1)) else: base.setBackgroundColor(ToontownGlobals.DefaultBackgroundColor) gsg = base.win.getGsg() if gsg: base.render.prepareScene(gsg) NametagGlobals.setMin2dAlpha(self.oldMin2dAlpha) NametagGlobals.setMax2dAlpha(self.oldMax2dAlpha) base.setCellsAvailable([base.rightCells[0]], 1) self.__isOpen = 0 self.hide() self.hideButton() cleanupDialog('globalDialog') self.pageTabFrame.hide() self.ignore('shtiker-page-done') self.ignore(ToontownGlobals.StickerBookHotkey) self.ignore(ToontownGlobals.OptionsPageHotkey) self.ignore(self.tempRight) self.ignore(self.tempLeft) self.ignore('disable-hotkeys') self.ignore('enable-hotkeys') if base.config.GetBool('want-qa-regression', 0): self.notify.info('QA-REGRESSION: SHTICKERBOOK: Close')
def enter(self, requestStatus, visibilityFlag=1, arrowsOn=1): teleportDebug(requestStatus, 'Street.enter(%s)' % (requestStatus, )) self._ttfToken = None self.fsm.enterInitialState() base.playMusic(self.loader.music, looping=1, volume=0.8) self.loader.geom.reparentTo(render) if visibilityFlag: self.visibilityOn() base.localAvatar.setGeom(self.loader.geom) base.localAvatar.setOnLevelGround(1) self._telemLimiter = TLGatherAllAvs('Street', RotationLimitToH) NametagGlobals.setMasterArrowsOn(arrowsOn) self.zone = ZoneUtil.getBranchZone(requestStatus['zoneId']) def __lightDecorationOn__(): geom = base.cr.playGame.getPlace().loader.geom self.halloweenLights = geom.findAllMatches('**/*light*') self.halloweenLights += geom.findAllMatches('**/*lamp*') self.halloweenLights += geom.findAllMatches('**/prop_snow_tree*') for light in self.halloweenLights: light.setColorScaleOff(1) if base.cr.newsManager.isHolidayRunning( ToontownGlobals.HALLOWEEN) and self.loader.hood.spookySkyFile: lightsOff = Sequence( LerpColorScaleInterval(base.cr.playGame.hood.loader.geom, 0.1, Vec4(0.55, 0.55, 0.65, 1)), Func(self.loader.hood.startSpookySky)) lightsOff.start() else: self.loader.hood.startSky() lightsOn = LerpColorScaleInterval( base.cr.playGame.hood.loader.geom, 0.1, Vec4(1, 1, 1, 1)) lightsOn.start() self.accept('doorDoneEvent', self.handleDoorDoneEvent) self.accept('DistributedDoor_doorTrigger', self.handleDoorTrigger) self.enterZone(requestStatus['zoneId']) self.tunnelOriginList = base.cr.hoodMgr.addLinkTunnelHooks( self, self.loader.nodeList) self.fsm.request(requestStatus['how'], [requestStatus])
def enter(self): if base.config.GetBool('want-qa-regression', 0): self.notify.info('QA-REGRESSION: SHTICKERBOOK: Open') if self.entered: return self.entered = 1 messenger.send('releaseDirector') messenger.send('stickerBookEntered') base.playSfx(self.openSound) base.disableMouse() base.render.hide() base.setBackgroundColor(0.05, 0.15, 0.4) base.setCellsAvailable([base.rightCells[0]], 0) self.oldMin2dAlpha = NametagGlobals.getMin2dAlpha() self.oldMax2dAlpha = NametagGlobals.getMax2dAlpha() NametagGlobals.setMin2dAlpha(0.8) NametagGlobals.setMax2dAlpha(1.0) self.__isOpen = 1 self.__setButtonVisibility() self.show() self.showPageArrows() self.tempLeft = 'arrow_left' self.tempRight = 'arrow_right' if not self.safeMode: self.accept('shtiker-page-done', self.__pageDone) self.accept(ToontownGlobals.StickerBookHotkey, self.__close) self.accept(ToontownGlobals.OptionsPageHotkey, self.__close) self.pageTabFrame.show() self.pages[self.currPageIndex].enter()
def enter(self, requestStatus): self.zoneId = requestStatus['zoneId'] # Load the CogHQ DNA file: dnaStore = DNAStorage() dnaFileName = self.genDNAFileName(self.zoneId) if not dnaFileName.endswith('13200.pdna'): loadDNAFileAI(dnaStore, dnaFileName) # Collect all of the vis group zone IDs: self.zoneVisDict = {} for i in xrange(dnaStore.getNumDNAVisGroupsAI()): groupFullName = dnaStore.getDNAVisGroupName(i) visGroup = dnaStore.getDNAVisGroupAI(i) visZoneId = int(base.cr.hoodMgr.extractGroupName(groupFullName)) visibles = [] for i in xrange(visGroup.getNumVisibles()): visibles.append(int(visGroup.getVisible(i))) visibles.append(ZoneUtil.getBranchZone(visZoneId)) self.zoneVisDict[visZoneId] = visibles # Next, we want interest in all vis groups due to this being a Cog HQ: base.cr.sendSetZoneMsg(self.zoneId, self.zoneVisDict.values()[0]) BattlePlace.BattlePlace.enter(self) self.fsm.enterInitialState() base.playMusic(self.loader.music, looping=1, volume=0.8) self.loader.geom.reparentTo(render) self.nodeList = [self.loader.geom] self.loader.hood.startSky() self._telemLimiter = TLGatherAllAvs('FactoryExterior', RotationLimitToH) self.accept('doorDoneEvent', self.handleDoorDoneEvent) self.accept('DistributedDoor_doorTrigger', self.handleDoorTrigger) NametagGlobals.setMasterArrowsOn(1) self.tunnelOriginList = base.cr.hoodMgr.addLinkTunnelHooks(self, self.nodeList) how = requestStatus['how'] self.fsm.request(how, [requestStatus])
def commence(self = self): NametagGlobals.setMasterArrowsOn(1) self.fsm.request(requestStatus['how'], [requestStatus]) base.playMusic(self.music, looping=1, volume=0.8) base.transitions.irisIn()
def __faceOff(self, ts, name, callback): if len(self.suits) == 0: self.notify.warning('__faceOff(): no suits.') return if len(self.toons) == 0: self.notify.warning('__faceOff(): no toons.') return suit = self.suits[0] point = self.suitPoints[0][0] suitPos = point[0] suitHpr = VBase3(point[1], 0.0, 0.0) toon = self.toons[0] point = self.toonPoints[0][0] toonPos = point[0] toonHpr = VBase3(point[1], 0.0, 0.0) p = toon.getPos(self) toon.setPos(self, p[0], p[1], 0.0) toon.setShadowHeight(0) suit.setState('Battle') suitTrack = Sequence() toonTrack = Sequence() suitTrack.append(Func(suit.loop, 'neutral')) suitTrack.append(Func(suit.headsUp, toon)) taunt = SuitBattleGlobals.getFaceoffTaunt(suit.getStyleName(), suit.doId) suitTrack.append( Func(suit.setChatAbsolute, taunt, CFSpeech | CFTimeout)) toonTrack.append(Func(toon.loop, 'neutral')) toonTrack.append(Func(toon.headsUp, suit)) suitHeight = suit.getHeight() suitOffsetPnt = Point3(0, 0, suitHeight) faceoffTime = self.calcFaceoffTime(self.getPos(), self.initialSuitPos) faceoffTime = max(faceoffTime, BATTLE_SMALL_VALUE) delay = FACEOFF_TAUNT_T if self.hasLocalToon(): MidTauntCamHeight = suitHeight * 0.66 MidTauntCamHeightLim = suitHeight - 1.8 if MidTauntCamHeight < MidTauntCamHeightLim: MidTauntCamHeight = MidTauntCamHeightLim TauntCamY = 16 TauntCamX = random.choice((-5, 5)) TauntCamHeight = random.choice((MidTauntCamHeight, 1, 11)) camTrack = Sequence() camTrack.append(Func(camera.wrtReparentTo, suit)) camTrack.append( Func(base.camLens.setMinFov, self.camFOFov / (4. / 3.))) camTrack.append( Func(camera.setPos, TauntCamX, TauntCamY, TauntCamHeight)) camTrack.append(Func(camera.lookAt, suit, suitOffsetPnt)) camTrack.append(Wait(delay)) camTrack.append( Func(base.camLens.setMinFov, self.camFov / (4. / 3.))) camTrack.append(Func(camera.wrtReparentTo, self)) camTrack.append(Func(camera.setPos, self.camFOPos)) camTrack.append(Func(camera.lookAt, suit.getPos(self))) camTrack.append(Wait(faceoffTime)) suitTrack.append(Wait(delay)) toonTrack.append(Wait(delay)) suitTrack.append(Func(suit.headsUp, self, suitPos)) suitTrack.append(Func(suit.clearChat)) toonTrack.append(Func(toon.headsUp, self, toonPos)) suitTrack.append(Func(suit.loop, 'walk')) suitTrack.append( LerpPosInterval(suit, faceoffTime, suitPos, other=self)) suitTrack.append(Func(suit.loop, 'neutral')) suitTrack.append(Func(suit.setHpr, self, suitHpr)) toonTrack.append(Func(toon.loop, 'run')) toonTrack.append( LerpPosInterval(toon, faceoffTime, toonPos, other=self)) toonTrack.append(Func(toon.loop, 'neutral')) toonTrack.append(Func(toon.setHpr, self, toonHpr)) if base.localAvatar == toon: soundTrack = Sequence( Wait(delay), SoundInterval(base.localAvatar.soundRun, loop=1, duration=faceoffTime, node=base.localAvatar)) else: soundTrack = Wait(delay + faceoffTime) mtrack = Parallel(suitTrack, toonTrack, soundTrack) if self.hasLocalToon(): NametagGlobals.setMasterArrowsOn(0) mtrack = Parallel(mtrack, camTrack) done = Func(callback) track = Sequence(mtrack, done, name=name) track.delayDeletes = [ DelayDelete.DelayDelete(toon, '__faceOff'), DelayDelete.DelayDelete(suit, '__faceOff') ] track.start(ts) self.storeInterval(track, name)
def enterReward(self): numToons = 0 toonLayouts = ((2, ), (1, 3), (0, 2, 4), (0, 1, 3, 4)) toonPositions = (5.0, 1.75, -0.25, -1.75, -5.0) self.toons = [] self.toonsKeep = [] self.counters = [] self.totalCounters = [] camera.reparentTo(render) camera.setPos(0, 16.0, 2.0) camera.lookAt(0, 0, 0.75) base.transitions.irisIn(0.4) base.camLens.setMinFov(60 / (4. / 3.)) base.setBackgroundColor(Vec4(0, 0.6, 1, 1)) self.title.reparentTo(aspect2d) self.foreground.reparentTo(render) self.backgroundL.reparentTo(render) self.backgroundR.reparentTo(render) self.sidewalk.reparentTo(render) self.sidewalkL.reparentTo(render) self.sidewalkR.reparentTo(render) self.door.reparentTo(render) size = 20 z = -2.5 floor = CollisionPolygon(Point3(-size, -size, z), Point3(size, -size, z), Point3(size, size, z), Point3(-size, size, z)) floor.setTangible(1) floorNode = CollisionNode('collision_floor') floorNode.addSolid(floor) self.collisionFloor = render.attachNewNode(floorNode) NametagGlobals.setOnscreenChatForced(1) for index in xrange(len(self.ids)): avId = self.ids[index] if self.states[index] != PURCHASE_NO_CLIENT_STATE and self.states[ index] != PURCHASE_DISCONNECTED_STATE and avId in base.cr.doId2do: numToons += 1 toon = base.cr.doId2do[avId] toon.stopSmooth() self.toons.append(toon) self.toonsKeep.append( DelayDelete.DelayDelete(toon, 'Purchase.enterReward')) counter = DirectLabel(parent=hidden, relief=None, pos=(0.0, 0.0, 0.0), text=str(0), text_scale=0.2, text_fg=(0.95, 0.95, 0, 1), text_pos=(0, -0.1, 0), text_font=ToontownGlobals.getSignFont()) counter['image'] = DGG.getDefaultDialogGeom() counter['image_scale'] = (0.33, 1, 0.33) counter.setScale(0.5) counter.count = 0 counter.max = self.pointsArray[index] self.counters.append(counter) money = self.playerMoney[index] totalCounter = DirectLabel( parent=hidden, relief=None, pos=(0.0, 0.0, 0.0), text=str(money), text_scale=0.2, text_fg=(0.95, 0.95, 0, 1), text_pos=(0, -0.1, 0), text_font=ToontownGlobals.getSignFont(), image=self.jarImage) totalCounter.setScale(0.5) totalCounter.count = money totalCounter.max = toon.getMaxMoney() self.totalCounters.append(totalCounter) self.accept('clientCleanup', self._handleClientCleanup) pos = 0 toonLayout = toonLayouts[numToons - 1] for toon in self.toons: thisPos = toonPositions[toonLayout[pos]] toon.setPos(Vec3(thisPos, 1.0, -2.5)) toon.setHpr(Vec3(0, 0, 0)) toon.setAnimState('neutral', 1) toon.setShadowHeight(0) if not toon.isDisabled(): toon.reparentTo(render) self.counters[pos].setPos(thisPos * -0.17, 0, toon.getHeight() / 10 + 0.25) self.counters[pos].reparentTo(aspect2d) self.totalCounters[pos].setPos(thisPos * -0.17, 0, -0.825) self.totalCounters[pos].reparentTo(aspect2d) pos += 1 self.maxPoints = max(self.pointsArray) def reqCountUp(state): self.countUp() return Task.done countUpDelay = DELAY_BEFORE_COUNT_UP taskMgr.doMethodLater(countUpDelay, reqCountUp, 'countUpTask') def reqCountDown(state): self.countDown() return Task.done countDownDelay = countUpDelay + COUNT_UP_DURATION + DELAY_AFTER_COUNT_UP taskMgr.doMethodLater(countDownDelay, reqCountDown, 'countDownTask') def celebrate(task): for counter in task.counters: counter.hide() winningPoints = max(task.pointsArray) for i in xrange(len(task.ids)): if task.pointsArray[i] == winningPoints: avId = task.ids[i] if avId in base.cr.doId2do: toon = base.cr.doId2do[avId] toon.setAnimState('jump', 1.0) base.playSfx(task.celebrateSound) return Task.done celebrateDelay = countDownDelay + COUNT_DOWN_DURATION + DELAY_AFTER_COUNT_DOWN celebrateTask = taskMgr.doMethodLater(celebrateDelay, celebrate, 'celebrate') celebrateTask.counters = self.counters celebrateTask.pointsArray = self.pointsArray celebrateTask.ids = self.ids celebrateTask.celebrateSound = self.celebrateSound def reqPurchase(state): self.fsm.request('purchase') return Task.done purchaseDelay = celebrateDelay + DELAY_AFTER_CELEBRATE taskMgr.doMethodLater(purchaseDelay, reqPurchase, 'purchase-trans') if base.skipMinigameReward: self.fsm.request('purchase') return