def enterStreet(self, requestStatus):
     teleportDebug(requestStatus, 'enterStreet(%s)' % requestStatus)
     self.acceptOnce(self.placeDoneEvent, self.streetDone)
     self.place = self.streetClass(self, self.fsm, self.placeDoneEvent)
     self.place.load()
     base.cr.playGame.setPlace(self.place)
     self.place.enter(requestStatus)
Пример #2
0
 def enterStreet(self, requestStatus):
     teleportDebug(requestStatus, 'enterStreet(%s)' % requestStatus)
     self.acceptOnce(self.placeDoneEvent, self.streetDone)
     self.place = self.streetClass(self, self.fsm, self.placeDoneEvent)
     self.place.load()
     base.cr.playGame.setPlace(self.place)
     self.place.enter(requestStatus)
Пример #3
0
 def enterDFACallback(self, requestStatus, doneStatus):
     teleportDebug(
         requestStatus, 'enterDFACallback%s' %
         ((requestStatus, doneStatus),))
     self.dfa.exit()
     del self.dfa
     if doneStatus['mode'] == 'complete':
         if requestStatus.get('tutorial', 0):
             out = {'teleportIn': 'tunnelOut'}
             requestStatus['zoneId'] = 22000
             requestStatus['hoodId'] = 22000
         else:
             out = {'teleportIn': 'teleportOut',
                    'tunnelIn': 'tunnelOut',
                    'doorIn': 'doorOut'}
         teleportDebug(
             requestStatus,
             'requesting %s, requestStatus=%s' %
             (out[
                 requestStatus['how']],
                 requestStatus))
         self.fsm.request(out[requestStatus['how']], [requestStatus])
     elif doneStatus['mode'] == 'incomplete':
         self.fsm.request('DFAReject')
     else:
         Place.notify.error(
             'Unknown done status for DownloadForceAcknowledge: ' +
             repr(doneStatus))
Пример #4
0
 def enterTrialerFA(self, requestStatus):
     teleportDebug(requestStatus, 'enterTrialerFA(%s)' % requestStatus)
     self.acceptOnce(self.trialerFADoneEvent, self.trialerFACallback,
                     [requestStatus])
     self.trialerFA = TrialerForceAcknowledge.TrialerForceAcknowledge(
         self.trialerFADoneEvent)
     self.trialerFA.enter(requestStatus['hoodId'])
Пример #5
0
 def _teleportToFriend(self, requestStatus):
     avId = requestStatus['avId']
     hoodId = requestStatus['hoodId']
     zoneId = requestStatus['zoneId']
     if avId != -1:
         if avId not in base.cr.doId2do:
             if self.teleportAttempts < 10:
                 taskMgr.doMethodLater(0,
                                       self._teleportToFriend,
                                       'Street_teleportToFriend',
                                       extraArgs=[requestStatus],
                                       appendTask=False)
                 return
             teleportDebug(
                 requestStatus,
                 "couldn't find friend %s, teleporting back to playground" %
                 avId)
             handle = base.cr.identifyFriend(avId)
             requestStatus = {
                 'how': 'teleportIn',
                 'hoodId': hoodId,
                 'zoneId': hoodId,
                 'shardId': None,
                 'loader': 'safeZoneLoader',
                 'where': 'playground',
                 'avId': avId
             }
             self.fsm.request('final')
             self.__teleportOutDone(requestStatus)
     if self.teleportAttempts:
         self.teleportAttempts = 0
     return
Пример #6
0
    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])
Пример #7
0
 def enterTownLoader(self, requestStatus):
     teleportDebug(
         requestStatus,
         'ToonHood.enterTownLoader, status=%s' % (requestStatus, ))
     self.accept(self.loaderDoneEvent, self.handleTownLoaderDone)
     self.loader.enter(requestStatus)
     self.spawnTitleText(requestStatus['zoneId'])
Пример #8
0
 def enterTeleportIn(self, requestStatus):
     self.enterZone(requestStatus['zoneId'])
     teleportDebug(requestStatus,
                   'Street.enterTeleportIn(%s)' % (requestStatus, ))
     self._ttfToken = self.addSetZoneCompleteCallback(
         Functor(self._teleportToFriend, requestStatus))
     BattlePlace.BattlePlace.enterTeleportIn(self, requestStatus)
Пример #9
0
 def __portalOutDone(self, requestStatus):
     teleportDebug(requestStatus, 'Playground.__portalOutDone(%s)' % (requestStatus,))
     if hasattr(self, 'activityFsm'):
         self.activityFsm.requestFinalState()
     teleportDebug(requestStatus, 'different hood/zone')
     self.doneStatus = requestStatus
     messenger.send(self.doneEvent)
Пример #10
0
 def enterDFACallback(self, requestStatus, doneStatus):
     teleportDebug(requestStatus,
                   'enterDFACallback%s' % ((requestStatus, doneStatus), ))
     self.dfa.exit()
     del self.dfa
     if doneStatus['mode'] == 'complete':
         if requestStatus.get('tutorial', 0):
             out = {'teleportIn': 'tunnelOut'}
             requestStatus['zoneId'] = 22000
             requestStatus['hoodId'] = 22000
         else:
             out = {
                 'teleportIn': 'teleportOut',
                 'tunnelIn': 'tunnelOut',
                 'doorIn': 'doorOut'
             }
         teleportDebug(
             requestStatus, 'requesting %s, requestStatus=%s' %
             (out[requestStatus['how']], requestStatus))
         self.fsm.request(out[requestStatus['how']], [requestStatus])
     elif doneStatus['mode'] == 'incomplete':
         self.fsm.request('DFAReject')
     else:
         Place.notify.error(
             'Unknown done status for DownloadForceAcknowledge: ' +
             ` doneStatus `)
Пример #11
0
 def enterTownLoader(self, requestStatus):
     teleportDebug(
         requestStatus, 'ToonHood.enterTownLoader, status=%s' %
         (requestStatus,))
     self.accept(self.loaderDoneEvent, self.handleTownLoaderDone)
     self.loader.enter(requestStatus)
     self.spawnTitleText(requestStatus['zoneId'])
Пример #12
0
 def enterDFA(self, requestStatus):
     teleportDebug(requestStatus, 'enterDFA(%s)' % (requestStatus, ))
     self.acceptOnce(self.dfaDoneEvent, self.enterDFACallback,
                     [requestStatus])
     self.dfa = DownloadForceAcknowledge.DownloadForceAcknowledge(
         self.dfaDoneEvent)
     self.dfa.enter(
         base.cr.hoodMgr.getPhaseFromHood(requestStatus['hoodId']))
Пример #13
0
 def enterDFA(self, requestStatus):
     base.localAvatar.cleanupGreenEffectIntervals()
     teleportDebug(requestStatus, 'enterDFA(%s)' % (requestStatus, ))
     self.acceptOnce(self.dfaDoneEvent, self.enterDFACallback,
                     [requestStatus])
     self.dfa = DownloadForceAcknowledge.DownloadForceAcknowledge(
         self.dfaDoneEvent)
     self.dfa.enter(
         base.cr.hoodMgr.getPhaseFromHood(requestStatus['hoodId']))
Пример #14
0
 def enterTrialerFA(self, requestStatus):
     teleportDebug(requestStatus, 'enterTrialerFA(%s)' % requestStatus)
     self.acceptOnce(
         self.trialerFADoneEvent,
         self.trialerFACallback,
         [requestStatus])
     self.trialerFA = TrialerForceAcknowledge.TrialerForceAcknowledge(
         self.trialerFADoneEvent)
     self.trialerFA.enter(requestStatus['hoodId'])
Пример #15
0
    def _placeTeleportInPostZoneComplete(self, requestStatus):
        teleportDebug(
            requestStatus,
            '_placeTeleportInPostZoneComplete(%s)' % (requestStatus, ))
        NametagGlobals.setMasterArrowsOn(0)
        base.localAvatar.laffMeter.start()
        base.localAvatar.startQuestMap()
        base.localAvatar.reconsiderCheesyEffect()
        base.localAvatar.obscureMoveFurnitureButton(1)
        avId = requestStatus.get('avId', -1)
        if avId != -1:

            def doTeleport(avId, teleported):
                if avId in base.cr.doId2do:
                    teleportDebug(requestStatus, 'teleport to avatar')
                    avatar = base.cr.doId2do[avId]
                    avatar.forceToTruePosition()
                    base.localAvatar.gotoNode(avatar)
                    base.localAvatar.b_teleportGreeting(avId)
                else:
                    friend = base.cr.identifyAvatar(avId)
                    if friend is not None:
                        # The avatar might be in another zone or not generated yet.
                        if not teleported:
                            # Try again one more time.
                            teleportDebug(requestStatus,
                                          'Retrying teleport...')
                            taskMgr.doMethodLater(0.2,
                                                  doTeleport,
                                                  uniqueName('doTeleport'),
                                                  extraArgs=[avId, True])
                            return

                        teleportDebug(requestStatus,
                                      'friend not here, giving up')
                        base.localAvatar.setSystemMessage(
                            avId, OTPLocalizer.WhisperTargetLeftVisit %
                            (friend.getName(), ))
                        friend.d_teleportGiveup(base.localAvatar.doId)

            taskMgr.doMethodLater(0.3,
                                  doTeleport,
                                  uniqueName('doTeleport'),
                                  extraArgs=[avId, False])

        base.transitions.irisIn()
        self.nextState = requestStatus.get('nextState', 'walk')
        base.localAvatar.attachCamera()
        base.localAvatar.startUpdateSmartCamera()
        base.localAvatar.startPosHprBroadcast()
        globalClock.tick()
        base.localAvatar.b_setAnimState('TeleportIn',
                                        1,
                                        callback=self.teleportInDone)
        base.localAvatar.d_broadcastPositionNow()
        base.localAvatar.b_setParent(ToontownGlobals.SPRender)
        return
Пример #16
0
    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.80000000000000004)
        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)

        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)

        newsManager = base.cr.newsManager
        if newsManager:
            holidayIds = base.cr.newsManager.getDecorationHolidayId()
            if (ToontownGlobals.HALLOWEEN_COSTUMES in holidayIds
                    or ToontownGlobals.SPOOKY_COSTUMES
                    in holidayIds) and self.loader.hood.spookySkyFile:
                lightsOff = Sequence(
                    LerpColorScaleInterval(
                        base.cr.playGame.hood.loader.geom, 0.10000000000000001,
                        Vec4(0.55000000000000004, 0.55000000000000004,
                             0.65000000000000002, 1)),
                    Func(self.loader.hood.startSpookySky))
                lightsOff.start()
            else:
                self.loader.hood.startSky()
                lightsOn = LerpColorScaleInterval(
                    base.cr.playGame.hood.loader.geom, 0.10000000000000001,
                    Vec4(1, 1, 1, 1))
                lightsOn.start()
        else:
            self.loader.hood.startSky()
            lightsOn = LerpColorScaleInterval(
                base.cr.playGame.hood.loader.geom, 0.10000000000000001,
                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.zoneId)
        self.fsm.request(requestStatus['how'], [requestStatus])
        self.replaceStreetSignTextures()
Пример #17
0
 def enterDFA(self, requestStatus):
     teleportDebug(requestStatus, 'enterDFA(%s)' % (requestStatus,))
     self.acceptOnce(
         self.dfaDoneEvent,
         self.enterDFACallback,
         [requestStatus])
     self.dfa = DownloadForceAcknowledge.DownloadForceAcknowledge(
         self.dfaDoneEvent)
     self.dfa.enter(
         base.cr.hoodMgr.getPhaseFromHood(
             requestStatus['hoodId']))
 def doTeleport(task):
     if friend.getDoId() in base.cr.doId2do:
         friendAv = base.cr.doId2do.get(friend.getDoId())
     else:
         teleportDebug(requestStatus, 'friend not here, giving up')
         base.localAvatar.setSystemMessage(avId, OTPLocalizer.WhisperTargetLeftVisit % (friend.getName(),))
         friend.d_teleportGiveup(base.localAvatar.doId)
         return task.done
     base.localAvatar.gotoNode(friendAv)
     base.localAvatar.b_teleportGreeting(friend.getDoId())
     return task.done
Пример #19
0
    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.80000000000000004)
        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)

        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)

        newsManager = base.cr.newsManager
        if newsManager:
            holidayIds = base.cr.newsManager.getDecorationHolidayId()
            if (
                ToontownGlobals.HALLOWEEN_COSTUMES in holidayIds or ToontownGlobals.SPOOKY_COSTUMES in holidayIds
            ) and self.loader.hood.spookySkyFile:
                lightsOff = Sequence(
                    LerpColorScaleInterval(
                        base.cr.playGame.hood.loader.geom,
                        0.10000000000000001,
                        Vec4(0.55000000000000004, 0.55000000000000004, 0.65000000000000002, 1),
                    ),
                    Func(self.loader.hood.startSpookySky),
                )
                lightsOff.start()
            else:
                self.loader.hood.startSky()
                lightsOn = LerpColorScaleInterval(
                    base.cr.playGame.hood.loader.geom, 0.10000000000000001, Vec4(1, 1, 1, 1)
                )
                lightsOn.start()
        else:
            self.loader.hood.startSky()
            lightsOn = LerpColorScaleInterval(base.cr.playGame.hood.loader.geom, 0.10000000000000001, 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.zoneId)
        self.fsm.request(requestStatus["how"], [requestStatus])
        self.replaceStreetSignTextures()
Пример #20
0
 def enterQuietZone(self, requestStatus):
     teleportDebug(requestStatus, 'Hood.enterQuietZone: status=%s' % requestStatus)
     self._quietZoneDoneEvent = uniqueName('quietZoneDone')
     self.acceptOnce(self._quietZoneDoneEvent, self.handleQuietZoneDone)
     self.quietZoneStateData = QuietZoneState.QuietZoneState(self._quietZoneDoneEvent)
     self._enterWaitForSetZoneResponseMsg = self.quietZoneStateData.getEnterWaitForSetZoneResponseMsg()
     self.acceptOnce(self._enterWaitForSetZoneResponseMsg, self.handleWaitForSetZoneResponse)
     self._quietZoneLeftEvent = self.quietZoneStateData.getQuietZoneLeftEvent()
     if base.placeBeforeObjects:
         self.acceptOnce(self._quietZoneLeftEvent, self.handleLeftQuietZone)
     self.quietZoneStateData.load()
     self.quietZoneStateData.enter(requestStatus)
Пример #21
0
 def enterDFACallback(self, requestStatus, doneStatus):
     teleportDebug(requestStatus, "enterDFACallback%s" % ((requestStatus, doneStatus),))
     self.dfa.exit()
     del self.dfa
     if doneStatus["mode"] == "complete":
         if requestStatus.get("tutorial", 0):
             out = {"teleportIn": "tunnelOut"}
             requestStatus["zoneId"] = 22000
             requestStatus["hoodId"] = 22000
         else:
             out = {"teleportIn": "teleportOut", "tunnelIn": "tunnelOut", "doorIn": "doorOut"}
         teleportDebug(requestStatus, "requesting %s, requestStatus=%s" % (out[requestStatus["how"]], requestStatus))
         self.fsm.request(out[requestStatus["how"]], [requestStatus])
     elif doneStatus["mode"] == "incomplete":
         self.fsm.request("DFAReject")
     else:
         Place.notify.error("Unknown done status for DownloadForceAcknowledge: " + ` doneStatus `)
Пример #22
0
 def _teleportToFriend(self, requestStatus):
     avId = requestStatus['avId']
     hoodId = requestStatus['hoodId']
     zoneId = requestStatus['zoneId']
     if avId != -1:
         if not base.cr.doId2do.has_key(avId):
             teleportDebug(requestStatus, "couldn't find friend %s" % avId)
             handle = base.cr.identifyFriend(avId)
             requestStatus = {'how': 'teleportIn',
              'hoodId': hoodId,
              'zoneId': hoodId,
              'shardId': None,
              'loader': 'safeZoneLoader',
              'where': 'playground',
              'avId': avId}
             self.fsm.request('final')
             self.__teleportOutDone(requestStatus)
     return
Пример #23
0
 def _teleportToFriend(self, requestStatus):
     avId = requestStatus['avId']
     hoodId = requestStatus['hoodId']
     zoneId = requestStatus['zoneId']
     if avId != -1:
         if not base.cr.doId2do.has_key(avId):
             teleportDebug(requestStatus, "couldn't find friend %s" % avId)
             handle = base.cr.identifyFriend(avId)
             requestStatus = {'how': 'teleportIn',
              'hoodId': hoodId,
              'zoneId': hoodId,
              'shardId': None,
              'loader': 'safeZoneLoader',
              'where': 'playground',
              'avId': avId}
             self.fsm.request('final')
             self.__teleportOutDone(requestStatus)
     return
Пример #24
0
 def _placePortalInPostZoneComplete(self, requestStatus):
     teleportDebug(requestStatus,
                   '_placePortalInPostZoneComplete(%s)' % (requestStatus, ))
     NametagGlobals.setMasterArrowsOn(0)
     base.localAvatar.laffMeter.start()
     base.localAvatar.startQuestMap()
     base.localAvatar.reconsiderCheesyEffect()
     base.localAvatar.obscureMoveFurnitureButton(1)
     base.transitions.irisIn()
     self.nextState = requestStatus.get('nextState', 'walk')
     base.localAvatar.attachCamera()
     base.localAvatar.startUpdateSmartCamera()
     base.localAvatar.startPosHprBroadcast()
     globalClock.tick()
     base.localAvatar.b_setAnimState('PortalIn',
                                     1,
                                     callback=self.portalInDone)
     base.localAvatar.d_broadcastPositionNow()
     base.localAvatar.b_setParent(ToontownGlobals.SPRender)
Пример #25
0
 def _teleportToFriend(self, requestStatus):
     avId = requestStatus["avId"]
     hoodId = requestStatus["hoodId"]
     zoneId = requestStatus["zoneId"]
     if avId != -1:
         if not base.cr.doId2do.has_key(avId):
             teleportDebug(requestStatus, "couldn't find friend %s" % avId)
             handle = base.cr.identifyFriend(avId)
             requestStatus = {
                 "how": "teleportIn",
                 "hoodId": hoodId,
                 "zoneId": hoodId,
                 "shardId": None,
                 "loader": "safeZoneLoader",
                 "where": "playground",
                 "avId": avId,
             }
             self.fsm.request("final")
             self._Street__teleportOutDone(requestStatus)
    def _placeTeleportInPostZoneComplete(self, requestStatus):
        teleportDebug(requestStatus, '_placeTeleportInPostZoneComplete(%s)' % (requestStatus,))
        NametagGlobals.setWant2dNametags(False)
        base.localAvatar.laffMeter.start()
        base.localAvatar.startQuestMap()
        base.localAvatar.reconsiderCheesyEffect()
        base.localAvatar.obscureMoveFurnitureButton(1)
        avId = requestStatus.get('avId', -1)
        if avId != -1:

            def doTeleport(avId, teleported):
                if avId in base.cr.doId2do:
                    teleportDebug(requestStatus, 'teleport to avatar')
                    avatar = base.cr.doId2do[avId]
                    avatar.forceToTruePosition()
                    base.localAvatar.gotoNode(avatar)
                    base.localAvatar.b_teleportGreeting(avId)
                else:
                    friend = base.cr.identifyAvatar(avId)
                    if friend is not None:
                        # The avatar might be in another zone or not generated yet.
                        if not teleported:
                            # Try again one more time.
                            teleportDebug(requestStatus, 'Retrying teleport...')
                            taskMgr.doMethodLater(0.2, doTeleport, uniqueName('doTeleport'), extraArgs=[avId, True])
                            return

                        teleportDebug(requestStatus, 'friend not here, giving up')
                        base.localAvatar.setSystemMessage(avId, OTPLocalizer.WhisperTargetLeftVisit % (friend.getName(),))
                        friend.d_teleportGiveup(base.localAvatar.doId)

            taskMgr.doMethodLater(0.3, doTeleport, uniqueName('doTeleport'), extraArgs=[avId, False])

        base.transitions.irisIn()
        self.nextState = requestStatus.get('nextState', 'walk')
        base.localAvatar.attachCamera()
        base.localAvatar.startUpdateSmartCamera()
        base.localAvatar.startPosHprBroadcast()
        globalClock.tick()
        base.localAvatar.b_setAnimState('TeleportIn', 1, callback=self.teleportInDone)
        base.localAvatar.d_broadcastPositionNow()
        base.localAvatar.b_setParent(ToontownGlobals.SPRender)
        return
Пример #27
0
 def _placeTeleportInPostZoneComplete(self, requestStatus):
     if not self.teleportAttempts:
         teleportDebug(
             requestStatus,
             '_placeTeleportInPostZoneComplete(%s)' % (requestStatus, ))
     NametagGlobals.setMasterArrowsOn(0)
     base.localAvatar.laffMeter.start()
     base.localAvatar.startQuestMap()
     base.localAvatar.reconsiderCheesyEffect()
     base.localAvatar.obscureMoveFurnitureButton(1)
     avId = requestStatus.get('avId', -1)
     if avId != -1:
         if base.cr.doId2do.has_key(avId):
             teleportDebug(requestStatus, 'teleport to avatar')
             avatar = base.cr.doId2do[avId]
             avatar.forceToTruePosition()
             base.localAvatar.gotoNode(avatar)
             base.localAvatar.b_teleportGreeting(avId)
         else:
             friend = base.cr.identifyAvatar(avId)
             if friend != None:
                 self.teleportAttempts += 1
                 if self.teleportAttempts < 10:
                     teleportDebug(
                         requestStatus,
                         'friend not here, attempting again in next frame. %d/10 attempts'
                         % self.teleportAttempts)
                     taskMgr.doMethodLater(
                         0,
                         self._placeTeleportInPostZoneComplete,
                         'place_TeleportInPostZoneComplete',
                         extraArgs=[requestStatus])
                     return
                 teleportDebug(requestStatus, 'friend not here, giving up')
                 base.localAvatar.setSystemMessage(
                     avId, OTPLocalizer.WhisperTargetLeftVisit %
                     (friend.getName(), ))
                 friend.d_teleportGiveup(base.localAvatar.doId)
     base.transitions.irisIn()
     self.nextState = requestStatus.get('nextState', 'walk')
     base.localAvatar.attachCamera()
     base.localAvatar.startUpdateSmartCamera()
     base.localAvatar.startPosHprBroadcast()
     globalClock.tick()
     base.localAvatar.b_setAnimState('TeleportIn',
                                     1,
                                     callback=self.teleportInDone)
     base.localAvatar.d_broadcastPositionNow()
     base.localAvatar.b_setParent(ToontownGlobals.SPRender)
     if self.teleportAttempts:
         self.teleportAttempts = 0
     return
Пример #28
0
 def _placeTeleportInPostZoneComplete(self, requestStatus):
     teleportDebug(requestStatus, '_placeTeleportInPostZoneComplete(%s)' % (requestStatus,))
     NametagGlobals.setWant2dNametags(False)
     base.localAvatar.laffMeter.start()
     base.localAvatar.startQuestMap()
     base.localAvatar.reconsiderCheesyEffect()
     base.localAvatar.obscureMoveFurnitureButton(1)
     avId = requestStatus.get('avId', -1)
     if avId != -1:
         if avId in base.cr.doId2do:
             teleportDebug(requestStatus, 'teleport to avatar')
             avatar = base.cr.doId2do[avId]
             avatar.forceToTruePosition()
             base.localAvatar.gotoNode(avatar)
             base.localAvatar.b_teleportGreeting(avId)
         else:
             friend = base.cr.identifyAvatar(avId)
             if friend != None:
                 teleportDebug(requestStatus, 'friend not here, giving up')
                 base.localAvatar.setSystemMessage(avId, OTPLocalizer.WhisperTargetLeftVisit % (friend.getName(),))
                 friend.d_teleportGiveup(base.localAvatar.doId)
     base.transitions.irisIn()
     self.nextState = requestStatus.get('nextState', 'walk')
     base.localAvatar.attachCamera()
     base.localAvatar.startUpdateSmartCamera()
     base.localAvatar.startPosHprBroadcast()
     globalClock.tick()
     base.localAvatar.b_setAnimState('TeleportIn', 1, callback=self.teleportInDone)
     base.localAvatar.d_broadcastPositionNow()
     base.localAvatar.b_setParent(ToontownGlobals.SPRender)
     return
 def _placeTeleportInPostZoneComplete(self, requestStatus):
     teleportDebug(requestStatus, '_placeTeleportInPostZoneComplete(%s)' % (requestStatus,))
     NametagGlobals.setMasterArrowsOn(0)
     base.localAvatar.laffMeter.start()
     base.localAvatar.startQuestMap()
     base.localAvatar.reconsiderCheesyEffect()
     base.localAvatar.obscureMoveFurnitureButton(1)
     avId = requestStatus.get('avId', -1)
     if avId != -1:
         if base.cr.doId2do.has_key(avId):
             teleportDebug(requestStatus, 'teleport to avatar')
             avatar = base.cr.doId2do[avId]
             avatar.forceToTruePosition()
             base.localAvatar.gotoNode(avatar)
             base.localAvatar.b_teleportGreeting(avId)
         else:
             friend = base.cr.identifyAvatar(avId)
             if friend != None:
                 teleportDebug(requestStatus, 'friend not here, giving up')
                 base.localAvatar.setSystemMessage(avId, OTPLocalizer.WhisperTargetLeftVisit % (friend.getName(),))
                 friend.d_teleportGiveup(base.localAvatar.doId)
     base.transitions.irisIn()
     self.nextState = requestStatus.get('nextState', 'walk')
     base.localAvatar.attachCamera()
     base.localAvatar.startUpdateSmartCamera()
     base.localAvatar.startPosHprBroadcast()
     globalClock.tick()
     base.localAvatar.b_setAnimState('TeleportIn', 1, callback=self.teleportInDone)
     base.localAvatar.d_broadcastPositionNow()
     base.localAvatar.b_setParent(ToontownGlobals.SPRender)
     return
Пример #30
0
            def doTeleport(avId, teleported):
                if avId in base.cr.doId2do:
                    teleportDebug(requestStatus, 'teleport to avatar')
                    avatar = base.cr.doId2do[avId]
                    avatar.forceToTruePosition()
                    base.localAvatar.gotoNode(avatar)
                    base.localAvatar.b_teleportGreeting(avId)
                else:
                    friend = base.cr.identifyAvatar(avId)
                    if friend is not None:
                        # The avatar might be in another zone or not generated yet.
                        if not teleported:
                            # Try again one more time.
                            teleportDebug(requestStatus,
                                          'Retrying teleport...')
                            taskMgr.doMethodLater(0.2,
                                                  doTeleport,
                                                  uniqueName('doTeleport'),
                                                  extraArgs=[avId, True])
                            return

                        teleportDebug(requestStatus,
                                      'friend not here, giving up')
                        base.localAvatar.setSystemMessage(
                            avId, OTPLocalizer.WhisperTargetLeftVisit %
                            (friend.getName(), ))
                        friend.d_teleportGiveup(base.localAvatar.doId)
Пример #31
0
 def handleSafeZoneLoaderDone(self):
     doneStatus = self.loader.getDoneStatus()
     teleportDebug(doneStatus, 'handleSafeZoneLoaderDone, doneStatus=%s' % doneStatus)
     if self.isSameHood(doneStatus) and doneStatus['where'] != 'party' or doneStatus['loader'] == 'minigame':
         teleportDebug(doneStatus, 'same hood')
         self.fsm.request('quietZone', [doneStatus])
     else:
         teleportDebug(doneStatus, 'different hood')
         self.doneStatus = doneStatus
         messenger.send(self.doneEvent)
 def handlePlaygroundDone(self):
     status = self.place.doneStatus
     teleportDebug(status, 'handlePlaygroundDone, doneStatus=%s' % (status,))
     if ZoneUtil.getBranchZone(status['zoneId']) == self.hood.hoodId and status['shardId'] == None:
         teleportDebug(status, 'same branch')
         self.fsm.request('quietZone', [status])
     else:
         self.doneStatus = status
         teleportDebug(status, 'different hood')
         messenger.send(self.doneEvent)
Пример #33
0
 def handleTownLoaderDone(self):
     doneStatus = self.loader.getDoneStatus()
     teleportDebug(doneStatus, 'handleTownLoaderDone, doneStatus=%s' % (doneStatus,))
     if self.isSameHood(doneStatus):
         teleportDebug(doneStatus, 'same hood')
         self.fsm.request('quietZone', [doneStatus])
     else:
         teleportDebug(doneStatus, 'different hood')
         self.doneStatus = doneStatus
         messenger.send(self.doneEvent)
Пример #34
0
 def handleTownLoaderDone(self):
     doneStatus = self.loader.getDoneStatus()
     teleportDebug(doneStatus, 'handleTownLoaderDone, doneStatus=%s' % (doneStatus,))
     if self.isSameHood(doneStatus):
         teleportDebug(doneStatus, 'same hood')
         self.fsm.request('quietZone', [doneStatus])
     else:
         teleportDebug(doneStatus, 'different hood')
         self.doneStatus = doneStatus
         messenger.send(self.doneEvent)
Пример #35
0
 def handleSafeZoneLoaderDone(self):
     doneStatus = self.loader.getDoneStatus()
     teleportDebug(doneStatus, "handleSafeZoneLoaderDone, doneStatus=%s" % doneStatus)
     if self.isSameHood(doneStatus) or doneStatus["where"] != "party" or doneStatus["loader"] == "minigame":
         teleportDebug(doneStatus, "same hood")
         self.fsm.request("quietZone", [doneStatus])
     else:
         teleportDebug(doneStatus, "different hood")
         self.doneStatus = doneStatus
         messenger.send(self.doneEvent)
Пример #36
0
 def handlePlaygroundDone(self):
     status = self.place.doneStatus
     teleportDebug(status, "handlePlaygroundDone, doneStatus=%s" % (status,))
     if ZoneUtil.getBranchZone(status["zoneId"]) == self.hood.hoodId and status["shardId"] == None:
         teleportDebug(status, "same branch")
         self.fsm.request("quietZone", [status])
     else:
         self.doneStatus = status
         teleportDebug(status, "different hood")
         messenger.send(self.doneEvent)
     return
Пример #37
0
 def handlePlaygroundDone(self):
     status = self.place.doneStatus
     teleportDebug(status, 'handlePlaygroundDone, doneStatus=%s' % (status,))
     if ZoneUtil.getBranchZone(status['zoneId']) == self.hood.hoodId and status['shardId'] == None:
         teleportDebug(status, 'same branch')
         self.fsm.request('quietZone', [status])
     else:
         self.doneStatus = status
         teleportDebug(status, 'different hood')
         messenger.send(self.doneEvent)
     return
Пример #38
0
 def _placeTeleportInPostZoneComplete(self, requestStatus):
     teleportDebug(
         requestStatus,
         '_placeTeleportInPostZoneComplete(%s)' % (requestStatus, ))
     NametagGlobals.setMasterArrowsOn(0)
     if base.localAvatar.zoneId == ToontownGlobals.OldDaisyGardens:
         pass
     else:
         if base.cr.currentEpisode == 'short_work':
             pass
         else:
             if base.cr.currentEpisode == 'gyro_tale':
                 pass
             else:
                 base.localAvatar.laffMeter.start()
     base.localAvatar.startQuestMap()
     base.localAvatar.reconsiderCheesyEffect()
     base.localAvatar.obscureMoveFurnitureButton(1)
     avId = requestStatus.get('avId', -1)
     if avId != -1:
         if base.cr.doId2do.has_key(avId):
             teleportDebug(requestStatus, 'teleport to avatar')
             avatar = base.cr.doId2do[avId]
             avatar.forceToTruePosition()
             base.localAvatar.gotoNode(avatar)
             base.localAvatar.b_teleportGreeting(avId)
         else:
             friend = base.cr.identifyAvatar(avId)
             if friend != None:
                 teleportDebug(requestStatus, 'friend not here, giving up')
                 base.localAvatar.setSystemMessage(
                     avId, OTPLocalizer.WhisperTargetLeftVisit %
                     (friend.getName(), ))
                 friend.d_teleportGiveup(base.localAvatar.doId)
     if base.localAvatar.zoneId != ToontownGlobals.SellbotWestWing or base.localAvatar.zoneId != ToontownGlobals.CashbotShortChangeOffice or base.localAvatar.zoneId != ToontownGlobals.CashbotHighriseHallway or base.localAvatar.zoneId != ToontownGlobals.CashbotBathroom:
         base.transitions.irisIn()
     self.nextState = requestStatus.get('nextState', 'walk')
     if base.cr.currentEpisode == 'short_work':
         pass
     else:
         if base.cr.currentEpisode == 'gyro_tale':
             pass
         else:
             base.localAvatar.attachCamera()
             base.localAvatar.startUpdateSmartCamera()
     base.localAvatar.startPosHprBroadcast()
     globalClock.tick()
     base.localAvatar.b_setAnimState('TeleportIn',
                                     1,
                                     callback=self.teleportInDone)
     base.localAvatar.d_broadcastPositionNow()
     base.localAvatar.b_setParent(ToontownGlobals.SPRender)
     return
Пример #39
0
 def __teleportOutDone(self, requestStatus):
     teleportDebug(requestStatus, 'Playground.__teleportOutDone(%s)' % (requestStatus,))
     if hasattr(self, 'activityFsm'):
         self.activityFsm.requestFinalState()
     hoodId = requestStatus['hoodId']
     zoneId = requestStatus['zoneId']
     avId = requestStatus['avId']
     shardId = requestStatus['shardId']
     if hoodId == self.loader.hood.hoodId and zoneId == self.loader.hood.hoodId and shardId == None:
         teleportDebug(requestStatus, 'same playground')
         self.fsm.request('deathAck', [requestStatus])
     elif hoodId == ToontownGlobals.MyEstate:
         teleportDebug(requestStatus, 'estate')
         self.getEstateZoneAndGoHome(requestStatus)
     else:
         teleportDebug(requestStatus, 'different hood/zone')
         self.doneStatus = requestStatus
         messenger.send(self.doneEvent)
     return
Пример #40
0
 def __teleportOutDone(self, requestStatus):
     teleportDebug(requestStatus, 'Playground.__teleportOutDone(%s)' % (requestStatus,))
     if hasattr(self, 'activityFsm'):
         self.activityFsm.requestFinalState()
     hoodId = requestStatus['hoodId']
     zoneId = requestStatus['zoneId']
     avId = requestStatus['avId']
     shardId = requestStatus['shardId']
     if hoodId == self.loader.hood.hoodId and zoneId == self.loader.hood.hoodId and shardId == None:
         teleportDebug(requestStatus, 'same playground')
         self.fsm.request('deathAck', [requestStatus])
     elif hoodId == ToontownGlobals.MyEstate:
         teleportDebug(requestStatus, 'estate')
         self.getEstateZoneAndGoHome(requestStatus)
     else:
         teleportDebug(requestStatus, 'different hood/zone')
         self.doneStatus = requestStatus
         messenger.send(self.doneEvent)
     return
            def doTeleport(avId, teleported):
                if avId in base.cr.doId2do:
                    teleportDebug(requestStatus, 'teleport to avatar')
                    avatar = base.cr.doId2do[avId]
                    avatar.forceToTruePosition()
                    base.localAvatar.gotoNode(avatar)
                    base.localAvatar.b_teleportGreeting(avId)
                else:
                    friend = base.cr.identifyAvatar(avId)
                    if friend is not None:
                        # The avatar might be in another zone or not generated yet.
                        if not teleported:
                            # Try again one more time.
                            teleportDebug(requestStatus, 'Retrying teleport...')
                            taskMgr.doMethodLater(0.2, doTeleport, uniqueName('doTeleport'), extraArgs=[avId, True])
                            return

                        teleportDebug(requestStatus, 'friend not here, giving up')
                        base.localAvatar.setSystemMessage(avId, OTPLocalizer.WhisperTargetLeftVisit % (friend.getName(),))
                        friend.d_teleportGiveup(base.localAvatar.doId)
Пример #42
0
 def _placeTeleportInPostZoneComplete(self, requestStatus):
     teleportDebug(requestStatus, '_placeTeleportInPostZoneComplete(%s)' % (requestStatus,))
     NametagGlobals.setWant2dNametags(False)
     base.localAvatar.laffMeter.start()
     base.localAvatar.startQuestMap()
     base.localAvatar.reconsiderCheesyEffect()
     base.localAvatar.obscureMoveFurnitureButton(1)
     avId = requestStatus.get('avId', -1)
     if avId != -1:
         if avId in base.cr.doId2do:
             teleportDebug(requestStatus, 'teleport to avatar')
             avatar = base.cr.doId2do[avId]
             avatar.forceToTruePosition()
             base.localAvatar.gotoNode(avatar)
             base.localAvatar.b_teleportGreeting(avId)
         else:
             friend = base.cr.identifyAvatar(avId)
             if friend == None:
                 teleportDebug(requestStatus, 'friend not here, giving up')
                 base.localAvatar.setSystemMessage(avId, OTPLocalizer.WhisperTargetLeftVisit % (friend.getName(),))
                 friend.d_teleportGiveup(base.localAvatar.doId)
             else:
                 def doTeleport(task):
                     avatar = base.cr.doId2do[friend.getDoId()]
                     base.localAvatar.gotoNode(avatar)
                     base.localAvatar.b_teleportGreeting(friend.getDoId())
                     return task.done
                 self.acceptOnce('generate-%d' % friend.getDoId(), lambda x: taskMgr.doMethodLater(1, doTeleport, uniqueName('doTeleport')))
     base.transitions.irisIn()
     self.nextState = requestStatus.get('nextState', 'walk')
     base.localAvatar.attachCamera()
     base.localAvatar.startUpdateSmartCamera()
     base.localAvatar.startPosHprBroadcast()
     globalClock.tick()
     base.localAvatar.b_setAnimState('TeleportIn', 1, callback=self.teleportInDone)
     base.localAvatar.d_broadcastPositionNow()
     base.localAvatar.b_setParent(ToontownGlobals.SPRender)
     return
 def doRequestLeave(self, requestStatus):
     teleportDebug(requestStatus, 'requestLeave(%s)' % (requestStatus,))
     self.fsm.request('DFA', [requestStatus])
Пример #44
0
 def enter(self, requestStatus):
     teleportDebug(requestStatus, 'TownLoader.enter(%s)' % requestStatus)
     self.fsm.enterInitialState()
     teleportDebug(requestStatus,
                   'setting state: %s' % requestStatus['where'])
     self.setState(requestStatus['where'], requestStatus)
Пример #45
0
    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)

        def __lightDecorationOn__():
            geom = base.cr.playGame.getPlace().loader.geom
            self.loader.hood.eventLights = geom.findAllMatches('**/*light*')
            self.loader.hood.eventLights += geom.findAllMatches('**/*lamp*')
            self.loader.hood.eventLights += geom.findAllMatches(
                '**/prop_snow_tree*')
            self.loader.hood.eventLights += geom.findAllMatches(
                '**/prop_tree*')
            self.loader.hood.eventLights += geom.findAllMatches(
                '**/*christmas*')
            for light in self.loader.hood.eventLights:
                light.setColorScaleOff(1)

        newsManager = base.cr.newsManager
        if newsManager:
            holidayIds = base.cr.newsManager.getDecorationHolidayId()
            if (ToontownGlobals.HALLOWEEN_COSTUMES in holidayIds
                    or ToontownGlobals.SPOOKY_COSTUMES in holidayIds
                    or 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()
            if (ToontownGlobals.WINTER_DECORATIONS in holidayIds
                    or ToontownGlobals.WACKY_WINTER_DECORATIONS
                    in holidayIds) and self.loader.hood.snowySkyFile:
                lightsOff = Sequence(
                    LerpColorScaleInterval(base.cr.playGame.hood.loader.geom,
                                           0.1, Vec4(0.7, 0.7, 0.8, 1)),
                    Func(self.loader.hood.startSnowySky),
                    Func(__lightDecorationOn__))
                lightsOff.start()
                self.snowEvent = BattleParticles.loadParticleFile(
                    'snowdisk.ptf')
                self.snowEvent.setPos(0, 30, 10)
                self.snowEvent2 = BattleParticles.loadParticleFile(
                    'snowdisk.ptf')
                self.snowEvent2.setPos(0, 10, 10)
                self.snowEvent3 = BattleParticles.loadParticleFile(
                    'snowdisk.ptf')
                self.snowEvent3.setPos(0, 20, 5)
                self.snowEventRender = base.cr.playGame.hood.loader.geom.attachNewNode(
                    'snowRender')
                self.snowEventRender.setDepthWrite(2)
                self.snowEventRender.setBin('fixed', 1)
                self.snowEventFade = None
                self.snowEvent.start(camera, self.snowEventRender)
                self.snowEvent2.start(camera, self.snowEventRender)
                self.snowEvent3.start(camera, self.snowEventRender)
            else:
                self.loader.hood.startSky()
                lightsOn = LerpColorScaleInterval(
                    base.cr.playGame.hood.loader.geom, 0.1, Vec4(1, 1, 1, 1))
                lightsOn.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.zoneId)
        self.fsm.request(requestStatus['how'], [requestStatus])
        self.replaceStreetSignTextures()
        return
 def requestLeave(self, requestStatus):
     teleportDebug(requestStatus, 'requestLeave(%s)' % (requestStatus,))
     if hasattr(self, 'fsm'):
         self.doRequestLeave(requestStatus)
Пример #47
0
 def handleLeftQuietZone(self):
     status = self.quietZoneStateData.getRequestStatus()
     teleportDebug(status, 'handleLeftQuietZone, status=%s' % status)
     teleportDebug(status, 'requesting %s' % status['loader'])
     self.fsm.request(status['loader'], [status])
Пример #48
0
    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)

        def __lightDecorationOn__():
            geom = base.cr.playGame.getPlace().loader.geom
            self.loader.hood.eventLights = geom.findAllMatches('**/*light*')
            self.loader.hood.eventLights += geom.findAllMatches('**/*lamp*')
            self.loader.hood.eventLights += geom.findAllMatches('**/prop_snow_tree*')
            self.loader.hood.eventLights += geom.findAllMatches('**/prop_tree*')
            self.loader.hood.eventLights += geom.findAllMatches('**/*christmas*')
            for light in self.loader.hood.eventLights:
                light.setColorScaleOff(1)

        newsManager = base.cr.newsManager
        if newsManager:
            holidayIds = base.cr.newsManager.getDecorationHolidayId()
            #Halloween Event
            if (ToontownGlobals.HALLOWEEN_COSTUMES in holidayIds or ToontownGlobals.SPOOKY_COSTUMES in holidayIds) 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()
            #Christmas Event
            if (ToontownGlobals.WINTER_DECORATIONS in holidayIds or ToontownGlobals.WACKY_WINTER_DECORATIONS in holidayIds) and self.loader.hood.snowySkyFile:
                lightsOff = Sequence(LerpColorScaleInterval(base.cr.playGame.hood.loader.geom, 0.1, Vec4(0.7, 0.7, 0.8, 1)), Func(self.loader.hood.startSnowySky), Func(__lightDecorationOn__))
                lightsOff.start()
                self.snowEvent = BattleParticles.loadParticleFile('snowdisk.ptf')
                self.snowEvent.setPos(0, 30, 10)
                #2 and 3 are only for the blizzard event and should be removed
                self.snowEvent2 = BattleParticles.loadParticleFile('snowdisk.ptf')
                self.snowEvent2.setPos(0, 10, 10)
                self.snowEvent3 = BattleParticles.loadParticleFile('snowdisk.ptf')
                self.snowEvent3.setPos(0, 20, 5)
                self.snowEventRender = base.cr.playGame.hood.loader.geom.attachNewNode('snowRender')
                self.snowEventRender.setDepthWrite(2)
                self.snowEventRender.setBin('fixed', 1)
                self.snowEventFade = None
                self.snowEvent.start(camera, self.snowEventRender)
                #2 and 3 are only for the blizzard event and should be removed
                self.snowEvent2.start(camera, self.snowEventRender)
                self.snowEvent3.start(camera, self.snowEventRender)
            else:
                self.loader.hood.startSky()
                lightsOn = LerpColorScaleInterval(base.cr.playGame.hood.loader.geom, 0.1, Vec4(1, 1, 1, 1))
                lightsOn.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)
        
        # add street branch interest
        self.branchInterest = base.cr.addInterest(localAvatar.defaultShard, ZoneUtil.getBranchZone(requestStatus['zoneId']), "")
        
        self.enterZone(requestStatus['zoneId'])
        
        self.tunnelOriginList = base.cr.hoodMgr.addLinkTunnelHooks(self, self.loader.nodeList, self.zoneId)
        self.fsm.request(requestStatus['how'], [requestStatus])
        self.replaceStreetSignTextures()
Пример #49
0
 def enterTeleportIn(self, requestStatus):
     teleportDebug(requestStatus, "Street.enterTeleportIn(%s)" % (requestStatus,))
     zoneId = requestStatus["zoneId"]
     self._ttfToken = self.addSetZoneCompleteCallback(Functor(self._teleportToFriend, requestStatus))
     self.enterZone(zoneId)
     BattlePlace.BattlePlace.enterTeleportIn(self, requestStatus)
Пример #50
0
 def requestLeave(self, requestStatus):
     teleportDebug(requestStatus, "requestLeave(%s)" % (requestStatus,))
     if hasattr(self, "fsm"):
         self.doRequestLeave(requestStatus)
Пример #51
0
 def doRequestLeave(self, requestStatus):
     teleportDebug(requestStatus, "requestLeave(%s)" % (requestStatus,))
     self.fsm.request("DFA", [requestStatus])
Пример #52
0
 def requestLeave(self, requestStatus):
     teleportDebug(requestStatus, 'requestLeave(%s)' % (requestStatus, ))
     if hasattr(self, 'fsm'):
         self.doRequestLeave(requestStatus)
Пример #53
0
Файл: Hood.py Проект: nate97/src
 def handleLeftQuietZone(self):
     status = self.quietZoneStateData.getRequestStatus()
     teleportDebug(status, 'handleLeftQuietZone, status=%s' % status)
     teleportDebug(status, 'requesting %s' % status['loader'])
     self.fsm.request(status['loader'], [status])
Пример #54
0
 def doRequestLeave(self, requestStatus):
     teleportDebug(requestStatus, 'requestLeave(%s)' % (requestStatus, ))
     self.fsm.request('DFA', [requestStatus])
Пример #55
0
    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__():
            try:
                geom = base.cr.playGame.getPlace().loader.geom
            except:
                loaderId = ZoneUtil.getBranchLoaderName(
                    2000)  # TEMP hack. This will port you to ttc if ^ fails
                whereId = ZoneUtil.getToonWhereName(200)
                how = 'teleportIn'
                print("This Should not happen.")
                requestStatus = [{
                    'loader': loaderId,
                    'where': whereId,
                    'how': how,
                    'hoodId': 2000,
                    'zoneId': 2000,
                    'shardId': None,
                    'avId': -1
                }]
                base.cr.playGame.getPlace().fsm.forceTransition(
                    'teleportOut', requestStatus)
            self.loader.hood.eventLights = geom.findAllMatches('**/*light*')
            self.loader.hood.eventLights += geom.findAllMatches('**/*lamp*')
            self.loader.hood.eventLights += geom.findAllMatches(
                '**/prop_snow_tree*')
            self.loader.hood.eventLights += geom.findAllMatches(
                '**/prop_tree*')
            self.loader.hood.eventLights += geom.findAllMatches(
                '**/*christmas*')
            for light in self.loader.hood.eventLights:
                light.setColorScaleOff(1)

        newsManager = base.cr.newsManager
        if newsManager:
            holidayIds = base.cr.newsManager.getDecorationHolidayId()
            #Halloween Event
            if (ToontownGlobals.HALLOWEEN_COSTUMES in holidayIds
                    or ToontownGlobals.SPOOKY_COSTUMES
                    in holidayIds) 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()
            #Christmas Event
            if (ToontownGlobals.WINTER_DECORATIONS in holidayIds
                    or ToontownGlobals.WACKY_WINTER_DECORATIONS
                    in holidayIds) and self.loader.hood.snowySkyFile:
                lightsOff = Sequence(
                    LerpColorScaleInterval(base.cr.playGame.hood.loader.geom,
                                           0.1, Vec4(0.7, 0.7, 0.8, 1)),
                    Func(self.loader.hood.startSnowySky),
                    Func(__lightDecorationOn__))
                lightsOff.start()
                self.snowEvent = BattleParticles.loadParticleFile(
                    'snowdisk.ptf')
                self.snowEvent.setPos(0, 30, 10)
                #2 and 3 are only for the blizzard event and should be removed
                self.snowEvent2 = BattleParticles.loadParticleFile(
                    'snowdisk.ptf')
                self.snowEvent2.setPos(0, 10, 10)
                self.snowEvent3 = BattleParticles.loadParticleFile(
                    'snowdisk.ptf')
                self.snowEvent3.setPos(0, 20, 5)
                self.snowEventRender = base.cr.playGame.hood.loader.geom.attachNewNode(
                    'snowRender')
                self.snowEventRender.setDepthWrite(2)
                self.snowEventRender.setBin('fixed', 1)
                self.snowEventFade = None
                self.snowEvent.start(camera, self.snowEventRender)
                #2 and 3 are only for the blizzard event and should be removed
                self.snowEvent2.start(camera, self.snowEventRender)
                self.snowEvent3.start(camera, self.snowEventRender)
            else:
                self.loader.hood.startSky()
                lightsOn = LerpColorScaleInterval(
                    base.cr.playGame.hood.loader.geom, 0.1, Vec4(1, 1, 1, 1))
                lightsOn.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.zoneId)
        self.fsm.request(requestStatus['how'], [requestStatus])
Пример #56
0
 def handleLeftQuietZone(self):
     status = self.quietZoneStateData.getRequestStatus()
     teleportDebug(status, "handleLeftQuietZone, status=%s" % status)
     teleportDebug(status, "requesting %s" % status["loader"])
     self.fsm.request(status["loader"], [status])
 def enter(self, requestStatus):
     teleportDebug(requestStatus, 'TownLoader.enter(%s)' % requestStatus)
     self.fsm.enterInitialState()
     teleportDebug(requestStatus, 'setting state: %s' % requestStatus['where'])
     self.setState(requestStatus['where'], requestStatus)