def startScreen(*args):
            self.screenObject = args[0]
            if not self.screenObject:
                return
            self.screenObject.reparentTo(render)
            text = "Clarabelle's Cattlelog\nis now open!\nHead to your estate\nand call her up!"
            if ZoneUtil.getHoodId(zoneId) == ToontownGlobals.MinniesMelodyland:
                self.screenObject.reparentTo(
                    self.cr.playGame.getPlace().loader.geom.find(
                        '**/center_icon'))
            self.screenObject.setPos(
                self.zone2pos.get(ZoneUtil.getHoodId(zoneId), (0, 0, 6)))
            self.screenObject.setHpr(-90, 0, 0)
            self.counter = DirectLabel(
                parent=render,
                pos=(0, 0, 0),
                relief=None,
                text=text,
                text_scale=1,
                text_fg=(1, 1, 1, 1),
                text_align=TextNode.ACenter,
                text_font=ToontownGlobals.getMinnieFont())
            self.counter.reparentTo(self.screenObject)
            self.counter.setPos(
                self.screenObject.find("**/front_screen").getPos() +
                Point3(0.0, -1.5, 0.3))

            self.counterback = DirectLabel(
                parent=render,
                pos=(0, 0, 0),
                relief=None,
                text=text,
                text_scale=1,
                text_fg=(1, 1, 1, 1),
                text_align=TextNode.ACenter,
                text_font=ToontownGlobals.getMinnieFont())
            self.counterback.reparentTo(self.screenObject)
            self.counterback.setPos(
                self.screenObject.find("**/back_screen").getPos() +
                Point3(0.0, 1.5, 0.3))
            self.counterback.setHpr(180, 0, 0)

            self.bob = Sequence(
                LerpPosInterval(nodePath=self.screenObject,
                                duration=3.2,
                                pos=(self.screenObject.getX(),
                                     self.screenObject.getY(),
                                     self.screenObject.getZ() + 1.65),
                                blendType='easeInOut'),
                Sequence(
                    Wait(0.050),
                    LerpPosInterval(nodePath=self.screenObject,
                                    duration=3.0,
                                    pos=(self.screenObject.getX(),
                                         self.screenObject.getY(),
                                         self.screenObject.getZ()),
                                    blendType='easeInOut'),
                    Sequence(Wait(0.050))))
            self.bob.loop()
 def getSky(self):
     if ZoneUtil.getHoodId(self.extZoneId) == ToontownGlobals.DonaldsDreamland:
         skyModel = loader.loadModel('phase_8/models/props/DL_sky')
     elif ZoneUtil.getHoodId(self.extZoneId) == ToontownGlobals.MinniesMelodyland:
         skyModel = loader.loadModel('phase_6/models/props/MM_sky')
     else:
         skyModel = loader.loadModel('phase_3.5/models/props/BR_sky')
     return skyModel
Exemplo n.º 3
0
    def avatarSetZone(self, avId, zoneId):
        lastZoneId = self.avatarZones.get(avId)
        if lastZoneId == zoneId:
            return lastZoneId

        if zoneId == None:
            self.notify.debug("Avatar %s has left the shard." % (avId))
            del self.avatarZones[avId]
            self.ignore(self.air.getAvatarExitEvent(avId))
        else:
            self.notify.debug("Avatar %s is now in zone %s." % (avId, zoneId))

            # First, add the avatar into his/her new zone.  We must do
            # this first so we don't risk momentarily bringing the
            # hood population to 0.
            hoodId = ZoneUtil.getHoodId(zoneId)

            # if this is a GS hoodId, just grab the TT hood
            if (hoodId % 2000) < 1000:
                hood = self.welcomeValleys.get(hoodId)
            else:
                hood = self.welcomeValleys.get(hoodId - 1000)

            if hood:
                hood[0].incrementPopulation(zoneId, 1)
                if (hood == self.newHood
                    ) and hood[0].getPgPopulation() >= PGstable:
                    # This is now a stable hood.
                    self.__newToStable(hood)

            self.avatarZones[avId] = zoneId

        if lastZoneId == None:
            # This is the first time we have heard from this avatar.
            self.acceptOnce(self.air.getAvatarExitEvent(avId),
                            self.avatarLogout,
                            extraArgs=[avId])
        else:
            # Now, remove the avatar from his/her previous zone.
            lastHoodId = ZoneUtil.getHoodId(lastZoneId)

            # if this is a GS hoodId, just grab the TT hood
            if (lastHoodId % 2000) < 1000:
                hood = self.welcomeValleys.get(lastHoodId)
            else:
                hood = self.welcomeValleys.get(lastHoodId - 1000)

            if hood:
                hood[0].incrementPopulation(lastZoneId, -1)
                if hood[0].getHoodPopulation() == 0:
                    self.__hoodIsEmpty(hood)

                elif (hood != self.newHood) and not hood[0].hasRedirect() and \
                     hood[0].getPgPopulation() < PGminimum:
                    self.__stableToRemoving(hood)

        return lastZoneId
Exemplo n.º 4
0
 def enteringAGolfCourse(self, status):
     if not status['where'] == 'golfcourse':
         return 0
     if ZoneUtil.isDynamicZone(status['zoneId']):
         return status['hoodId'] == self.hood.hoodId
     else:
         return ZoneUtil.getHoodId(status['zoneId']) == self.hood.hoodId
 def enteringARace(self, status):
     if not status['where'] == 'racetrack':
         return 0
     if ZoneUtil.isDynamicZone(status['zoneId']):
         return status['hoodId'] == self.hood.hoodId
     else:
         return ZoneUtil.getHoodId(status['zoneId']) == self.hood.hoodId
Exemplo n.º 6
0
 def announceGenerate(self):
     DistributedObject.DistributedObject.announceGenerate(self)
     base.cr.discordManager.setInfo(
         base.cr.discordManager.getState(), TTLocalizer.DiscordFieldOffice,
         ToontownGlobals.Zone2String.get(ZoneUtil.getHoodId(self.zoneId)),
         None, None, None, self.zoneId)
     return
Exemplo n.º 7
0
    def handleStageWinEvent(self):
        StageInterior.notify.debug("handleStageWinEvent")

        if base.cr.playGame.getPlace().fsm.getCurrentState().getName() == "died":
            return

        self.stageDefeated = 1

        if 1:
            zoneId = ZoneUtil.getHoodId(self.zoneId)
        else:
            zoneId = ZoneUtil.getSafeZoneId(base.localAvatar.defaultZone)

        self.fsm.request(
            "teleportOut",
            [
                {
                    "loader": ZoneUtil.getLoaderName(zoneId),
                    "where": ZoneUtil.getToonWhereName(zoneId),
                    "how": "teleportIn",
                    "hoodId": zoneId,
                    "zoneId": zoneId,
                    "shardId": None,
                    "avId": -1,
                }
            ],
        )
Exemplo n.º 8
0
    def doPostAnnounceGenerate(self):
        flatDoorTypes = [DoorTypes.INT_STANDARD, DoorTypes.INT_HQ]
        if self.doorType in flatDoorTypes:
            self.bHasFlat = True
        else:
            self.bHasFlat = not self.findDoorNode('door*flat', True).isEmpty()
        self.hideDoorParts()
        self.setTriggerName()

        # Check if we are dealing with a DDL HQ door...
        if self.doorType == DoorTypes.EXT_HQ and \
           ZoneUtil.getHoodId(self.zoneId) == ToontownGlobals.DonaldsDreamland:

            # Get the doorTrigger...
            building = self.getBuilding()
            doorTrigger = building.find('**/%s' % self.getTriggerName())

            # Check if the doorTrigger hasn't been 'fixed' already...
            if not doorTrigger.getTag('fixed'):

                # Reposition the doorTrigger based on its index...
                if self.doorIndex == 0:
                    doorTrigger.setY(doorTrigger, 0.25)
                else:
                    doorTrigger.setY(doorTrigger, -0.25)

                # We are done :) Tag the door as fixed.
                doorTrigger.setTag('fixed', 'true')

        self.accept(self.getEnterTriggerEvent(), self.doorTrigger)
        self.acceptOnce('clearOutToonInterior', self.doorTrigger)
        self.setupNametag()
Exemplo n.º 9
0
    def doPostAnnounceGenerate(self):
        flatDoorTypes = [DoorTypes.INT_STANDARD, DoorTypes.INT_HQ]
        if self.doorType in flatDoorTypes:
            self.bHasFlat = True
        else:
            self.bHasFlat = not self.findDoorNode('door*flat', True).isEmpty()
        self.hideDoorParts()
        self.setTriggerName()

        # Check if we are dealing with a DDL HQ door...
        if self.doorType == DoorTypes.EXT_HQ and \
           ZoneUtil.getHoodId(self.zoneId) == ToontownGlobals.DonaldsDreamland:

            # Get the doorTrigger...
            building = self.getBuilding()
            doorTrigger = building.find('**/%s' % self.getTriggerName())

            # Check if the doorTrigger hasn't been 'fixed' already...
            if not doorTrigger.getTag('fixed'):

                # Reposition the doorTrigger based on its index...
                if self.doorIndex == 0:
                    doorTrigger.setY(doorTrigger, 0.25)
                else:
                    doorTrigger.setY(doorTrigger, -0.25)

                # We are done :) Tag the door as fixed.
                doorTrigger.setTag('fixed', 'true')
        self.accept(self.getEnterTriggerEvent(), self.doorTrigger)
        self.acceptOnce('clearOutToonInterior', self.doorTrigger)
        self.setupNametag()
Exemplo n.º 10
0
    def handleStageWinEvent(self):
        """this handler is called when the stage has been defeated"""
        StageInterior.notify.debug('handleStageWinEvent')

        # if we're in the process of dying, ignore this
        if (base.cr.playGame.getPlace().fsm.getCurrentState().getName() ==
                'died'):
            return

        # update our flag
        self.stageDefeated = 1

        if 1:
            # go back to HQ
            zoneId = ZoneUtil.getHoodId(self.zoneId)
        else:
            # go back to the playground
            zoneId = ZoneUtil.getSafeZoneId(base.localAvatar.defaultZone)
        self.fsm.request('teleportOut',
                         [{
                             "loader": ZoneUtil.getLoaderName(zoneId),
                             "where": ZoneUtil.getToonWhereName(zoneId),
                             "how": "teleportIn",
                             "hoodId": zoneId,
                             "zoneId": zoneId,
                             "shardId": None,
                             "avId": -1,
                         }])
Exemplo n.º 11
0
    def avatarRequestZone(self, avId, origZoneId):
        # This services a redirect-zone request for a particular
        # avatar.  The client is requesting to go to the indicated
        # zoneId, which should be a WelcomeValley zoneId; the AI
        # should choose which particular WelcomeValley to direct the
        # client to.
        
        if not ZoneUtil.isWelcomeValley(origZoneId):
            # All requests for static zones are returned unchanged.
            return origZoneId
        
        origHoodId = ZoneUtil.getHoodId(origZoneId)
        hood = self.welcomeValleys.get(origHoodId)
        if not hood:
            # If we don't know this hood, choose a new one.
            hood = self.chooseWelcomeValley()
        
        if not hood:
            self.notify.warning("Could not create new WelcomeValley hood for avatar %s." % (avId))
            zoneId = ZoneUtil.getCanonicalZoneId(origZoneId)
        else:
            # use TTC hoodId
            hoodId = hood[0].getRedirect().zoneId
            zoneId = ZoneUtil.getTrueZoneId(origZoneId, hoodId)

        # Even though the client might choose not to go to the
        # indicated zoneId for some reason, we will consider the
        # client as having gone there immediately, for the purposes of
        # balancing.  If the client goes somewhere else instead, it
        # will tell us that and we can correct this.
        self.avatarSetZone(avId, zoneId)

        return zoneId
Exemplo n.º 12
0
 def placeDone(self):
     self.requestStatus = self.place.doneStatus
     status = self.place.doneStatus
     if status.get('shardId') == None and self.isInThisHq(status):
         self.unloadPlaceGeom()
         zoneId = status['zoneId']
         self.loadPlaceGeom(zoneId)
         self.fsm.request('quietZone', [status])
         if 'mintId' in status:
             zoneId = status['mintId']
         elif 'stageId' in status:
             zoneId = status['stageId']
         elif 'countryClubId' in status:
             zoneId = status['countryClubId']
         elif status['where'] == 'factoryInterior':
             zoneId = ToontownGlobals.SellbotFactoryInt
         if not ZoneUtil.isDynamicZone(zoneId):
             hoodZoneId = zoneId
             if zoneId not in (ToontownGlobals.SellbotFactoryExt,
                               ToontownGlobals.LawbotOfficeExt):
                 hoodZoneId = ZoneUtil.getHoodId(zoneId)
             base.cr.discordManager.setInfo(
                 base.cr.discordManager.getState(), None,
                 ToontownGlobals.Zone2String.get(hoodZoneId), None, None,
                 None, zoneId)
     else:
         self.doneStatus = status
         messenger.send(self.doneEvent)
     return
Exemplo n.º 13
0
 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)
     if self.zoneId in (ToontownGlobals.Kongdominium,
                        ToontownGlobals.PrivateServerCafe):
         if self.zoneId == ToontownGlobals.Kongdominium:
             type = 0
         elif self.zoneId == ToontownGlobals.PrivateServerCafe:
             type = 1
         else:
             type = -1
         taskMgr.add(self.customMusicTask,
                     'custom-music-task',
                     extraArgs=[volume, type],
                     appendTask=True)
     else:
         base.playMusic(self.loader.activityMusic, looping=1, volume=volume)
     self._telemLimiter = TLGatherAllAvs('ToonInterior', RotationLimitToH)
     NametagGlobals.setMasterArrowsOn(1)
     self.fsm.request(requestStatus['how'], [requestStatus])
     zoneId = self.zoneId
     if not base.localAvatar.tutorialAck:
         zoneId = 20002
     base.cr.discordManager.setInfo(
         base.cr.discordManager.getState(), None,
         ToontownGlobals.Zone2String.get(ZoneUtil.getHoodId(zoneId)), None,
         None, None, zoneId)
     return
Exemplo n.º 14
0
 def enteringAGolfCourse(self, status):
     if not status['where'] == 'golfcourse':
         return 0
     if ZoneUtil.isDynamicZone(status['zoneId']):
         return status['hoodId'] == self.hood.hoodId
     else:
         return ZoneUtil.getHoodId(status['zoneId']) == self.hood.hoodId
Exemplo n.º 15
0
 def enteringARace(self, status):
     if not status["where"] == "golfcourse":
         return 0
     if ZoneUtil.isDynamicZone(status["zoneId"]):
         return status["hoodId"] == self.hood.hoodId
     else:
         return ZoneUtil.getHoodId(status["zoneId"]) == self.hood.hoodId
Exemplo n.º 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.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.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.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()
        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)
        zoneId = requestStatus['zoneId']
        self.enterZone(zoneId)
        self.tunnelOriginList = base.cr.hoodMgr.addLinkTunnelHooks(
            self, self.loader.nodeList, self.zoneId)
        self.fsm.request(requestStatus['how'], [requestStatus])
        self.replaceStreetSignTextures()
        zoneId = ZoneUtil.getBranchZone(zoneId)
        base.cr.discordManager.setInfo(
            base.cr.discordManager.getState(), None,
            ToontownGlobals.Zone2String.get(ZoneUtil.getHoodId(zoneId)), None,
            None, None, zoneId)
        return
Exemplo n.º 17
0
 def getLargeImageTextByZoneId(self, zoneId):
     zoneId = ZoneUtil.getHoodId(zoneId)
     if zoneId in ToontownGlobals.hoodNameMap.keys():
         return ToontownGlobals.hoodNameMap[zoneId][2]
     else:
         if zoneId in TTLocalizer.zone2TitleDict.keys():
             return TTLocalizer.zone2TitleDict[zoneId][0]
         if not ZoneUtil.isDynamicZone(zoneId):
             return TTLocalizer.GlobalStreetNames[zoneId][2]
         return
Exemplo n.º 18
0
 def getRequestStatus(self):
     zoneId = self.otherZoneId
     request = {'loader': ZoneUtil.getBranchLoaderName(zoneId), 'where': ZoneUtil.getToonWhereName(zoneId), 
        'how': 'doorIn', 
        'hoodId': ZoneUtil.getHoodId(zoneId), 
        'zoneId': zoneId, 
        'shardId': None, 
        'avId': -1, 
        'allowRedirect': 0, 
        'doorDoId': self.otherDoId}
     return request
 def load(self, zoneId):
     self.zoneId = zoneId
     self.parentFSMState.addChild(self.fsm)
     self.loadBattleAnims()
     self.branchZone = ZoneUtil.getBranchZone(zoneId)
     self.canonicalBranchZone = ZoneUtil.getCanonicalBranchZone(zoneId)
     self.music = base.loadMusic(self.musicFile)
     self.activityMusic = base.loadMusic(self.activityMusicFile)
     self.battleMusic = base.loadMusic(self.zone2music.get(ZoneUtil.getHoodId(zoneId), 'phase_9/audio/bgm/encntr_suit_ttc.ogg'))#'phase_3.5/audio/bgm/encntr_general_bg.ogg'))
     self.townBattle = TownBattle.TownBattle(self.townBattleDoneEvent)
     self.townBattle.load()
 def enterReward(self, ts = 0):
     base.localAvatar.b_setParent(ToontownGlobals.SPHidden)
     request = {'loader': ZoneUtil.getBranchLoaderName(self.extZoneId),
      'where': ZoneUtil.getToonWhereName(self.extZoneId),
      'how': 'elevatorIn',
      'hoodId': ZoneUtil.getHoodId(self.extZoneId),
      'zoneId': self.extZoneId,
      'shardId': None,
      'avId': base.localAvatar.doId,
      'bldgDoId': self.distBldgDoId}
     messenger.send('DSIDoneEvent', [request])
Exemplo n.º 21
0
 def enterReward(self, ts = 0):
     base.localAvatar.b_setParent(ToontownGlobals.SPHidden)
     request = {'loader': ZoneUtil.getBranchLoaderName(self.extZoneId),
      'where': ZoneUtil.getToonWhereName(self.extZoneId),
      'how': 'elevatorIn',
      'hoodId': ZoneUtil.getHoodId(self.extZoneId),
      'zoneId': self.extZoneId,
      'shardId': None,
      'avId': -1,
      'bldgDoId': self.distBldgDoId}
     messenger.send('DSIDoneEvent', [request])
     return
Exemplo n.º 22
0
 def getRequestStatus(self):
     zoneId = self.otherZoneId
     request = {'loader': ZoneUtil.getBranchLoaderName(zoneId),
      'where': ZoneUtil.getToonWhereName(zoneId),
      'how': 'doorIn',
      'hoodId': ZoneUtil.getHoodId(zoneId),
      'zoneId': zoneId,
      'shardId': None,
      'avId': -1,
      'allowRedirect': 0,
      'doorDoId': self.otherDoId}
     return request
        def startScreen(*args):
            self.screenObject = args[0]
            self.screenObject.reparentTo(render)
            if ZoneUtil.getHoodId(zoneId) == ToontownGlobals.MinniesMelodyland:
                self.screenObject.reparentTo(
                    self.cr.playGame.getPlace().loader.geom.find(
                        '**/center_icon'))
            self.screenObject.setPos(
                self.zone2pos.get(ZoneUtil.getHoodId(zoneId), (0, 0, 6)))
            self.screenObject.setHpr(-90, 0, 0)
            self.counter = DirectLabel(
                parent=render,
                pos=(0, 0, 0),
                relief=None,
                text=
                '10 cogs destroyed = $0.01\nto Child\'s Play Charity\n(Max $15,000)\nCheck website for more details!',
                text_scale=1,
                text_fg=(1, 1, 1, 1),
                text_align=TextNode.ACenter,
                text_font=ToontownGlobals.getMinnieFont())
            self.counter.reparentTo(self.screenObject)
            self.counter.setPos(
                self.screenObject.find("**/front_screen").getPos() +
                Point3(0.0, -1.5, 0.3))

            self.counterback = DirectLabel(
                parent=render,
                pos=(0, 0, 0),
                relief=None,
                text=
                '10 cogs destroyed = $0.01\nto Child\'s Play Charity\n(Max $15,000)\nCheck website for more details!',
                text_scale=1,
                text_fg=(1, 1, 1, 1),
                text_align=TextNode.ACenter,
                text_font=ToontownGlobals.getMinnieFont())
            self.counterback.reparentTo(self.screenObject)
            self.counterback.setPos(
                self.screenObject.find("**/back_screen").getPos() +
                Point3(0.0, 1.5, 0.3))
            self.counterback.setHpr(180, 0, 0)
Exemplo n.º 24
0
 def handleCountryClubWinEvent(self):
     CountryClubInterior.notify.debug('handleCountryClubWinEvent')
     if base.cr.playGame.getPlace().fsm.getCurrentState().getName() == 'died':
         return
     self.CountryClubDefeated = 1
     zoneId = ZoneUtil.getHoodId(self.zoneId)
     self.fsm.request('teleportOut', [{'loader': ZoneUtil.getLoaderName(zoneId),
       'where': ZoneUtil.getToonWhereName(zoneId),
       'how': 'teleportIn',
       'hoodId': zoneId,
       'zoneId': zoneId,
       'shardId': None,
       'avId': -1}])
Exemplo n.º 25
0
 def __doorsClosed(self, zoneId):
     if self.localToonOnBoard:
         hoodId = ZoneUtil.getHoodId(zoneId)
         loader, where = self._getDoorsClosedInfo()
         doneStatus = {'loader': loader,
          'where': where,
          'hoodId': hoodId,
          'zoneId': zoneId,
          'shardId': None}
         elevator = self.elevatorFSM
         del self.elevatorFSM
         elevator.signalDone(doneStatus)
         base.camLens.setMinFov(ToontownGlobals.CBElevatorFov/(4./3.))
 def __doorsClosed(self, zoneId):
     if self.localToonOnBoard:
         hoodId = ZoneUtil.getHoodId(zoneId)
         loader, where = self._getDoorsClosedInfo()
         doneStatus = {'loader': loader,
          'where': where,
          'hoodId': hoodId,
          'zoneId': zoneId,
          'shardId': None}
         elevator = self.elevatorFSM
         del self.elevatorFSM
         elevator.signalDone(doneStatus)
     return
Exemplo n.º 27
0
 def __doorsClosed(self, zoneId):
     if self.localToonOnBoard:
         hoodId = ZoneUtil.getHoodId(zoneId)
         loader, where = self._getDoorsClosedInfo()
         doneStatus = {'loader': loader,
          'where': where,
          'hoodId': hoodId,
          'zoneId': zoneId,
          'shardId': None}
         elevator = self.elevatorFSM
         del self.elevatorFSM
         elevator.signalDone(doneStatus)
         base.camLens.setMinFov(ToontownGlobals.CBElevatorFov / (4.0 / 3.0))
 def exitCogdoBuilding(self):
     if base.localAvatar.hp < 0:
         return
     base.localAvatar.b_setParent(ToontownGlobals.SPHidden)
     request = {'loader': ZoneUtil.getBranchLoaderName(self.extZoneId),
      'where': ZoneUtil.getToonWhereName(self.extZoneId),
      'how': 'elevatorIn',
      'hoodId': ZoneUtil.getHoodId(self.extZoneId),
      'zoneId': self.extZoneId,
      'shardId': None,
      'avId': -1,
      'bldgDoId': self.distBldgDoId}
     messenger.send('DSIDoneEvent', [request])
 def enterReward(self, ts=0):
     base.localAvatar.b_setParent(ToontownGlobals.SPHidden)
     request = {
         "loader": ZoneUtil.getBranchLoaderName(self.extZoneId),
         "where": ZoneUtil.getToonWhereName(self.extZoneId),
         "how": "elevatorIn",
         "hoodId": ZoneUtil.getHoodId(self.extZoneId),
         "zoneId": self.extZoneId,
         "shardId": None,
         "avId": base.localAvatar.doId,
         "bldgDoId": self.distBldgDoId,
     }
     messenger.send("DSIDoneEvent", [request])
     return
Exemplo n.º 30
0
 def _DistributedElevator__doorsClosed(self, zoneId):
     if self.localToonOnBoard:
         hoodId = ZoneUtil.getHoodId(zoneId)
         (loader, where) = self._getDoorsClosedInfo()
         doneStatus = {
             'loader': loader,
             'where': where,
             'hoodId': hoodId,
             'zoneId': zoneId,
             'shardId': None
         }
         elevator = self.elevatorFSM
         del self.elevatorFSM
         elevator.signalDone(doneStatus)
Exemplo n.º 31
0
    def performInitialPlayerCheck(self, task):
        if self.eventMode == ToontownGlobals.EventManagerStrictMode:
            for toonId in self.toons:
                toon = self.air.doId2do.get(toonId)
                if toon:
                    if toon.zoneId != ToontownGlobals.ToontownCentral:
                        self.sendUpdateToAvatarId(toonId, 'requestTeleport', [
                            '', '',
                            ZoneUtil.getHoodId(
                                ToontownGlobals.ToontownCentral),
                            ToontownGlobals.ToontownCentral, 0
                        ])

        return task.done
Exemplo n.º 32
0
 def load(self, zoneId):
     if config.GetBool('custom-battle-music', False) or ZoneUtil.getHoodId(
             zoneId
     ) == OldDaisyGardens and base.cr.currentEpisode == 'squirting_flower':
         self.battleMusic = base.loader.loadMusic(
             'phase_14.5/audio/bgm/DG_battle.ogg')
     TownLoader.TownLoader.load(self, zoneId)
     Suit.loadSuits(3)
     dnaFile = 'phase_8/dna/old_daisys_garden_' + str(
         self.canonicalBranchZone) + '.jazz'
     self.createHood(dnaFile)
     if hasattr(self, 'loader'):
         tunnel = self.loader.geom.find('**/prop_safe_zone_tunnel_dummy')
         if tunnel:
             tunnel.reparentTo(hidden)
Exemplo n.º 33
0
 def handleMintWinEvent(self):
     MintInterior.notify.debug('handleMintWinEvent')
     if base.cr.playGame.getPlace().fsm.getCurrentState().getName() == 'died':
         return
     self.mintDefeated = 1
     if 1:
         zoneId = ZoneUtil.getHoodId(self.zoneId)
     else:
         zoneId = ZoneUtil.getSafeZoneId(base.localAvatar.defaultZone)
     self.fsm.request('teleportOut', [{'loader': ZoneUtil.getLoaderName(zoneId),
                                      'where': ZoneUtil.getToonWhereName(zoneId),
                                      'how': 'teleportIn',
                                      'hoodId': zoneId,
                                      'zoneId': zoneId,
                                      'shardId': None,
                                      'avId': -1}])
 def exitCogdoBuilding(self):
     if base.localAvatar.hp < 0:
         return
     base.localAvatar.b_setParent(ToontownGlobals.SPHidden)
     request = {
         "loader": ZoneUtil.getBranchLoaderName(self.extZoneId),
         "where": ZoneUtil.getToonWhereName(self.extZoneId),
         "how": "elevatorIn",
         "hoodId": ZoneUtil.getHoodId(self.extZoneId),
         "zoneId": self.extZoneId,
         "shardId": None,
         "avId": -1,
         "bldgDoId": self.distBldgDoId,
     }
     messenger.send("DSIDoneEvent", [request])
     return
    def __doorsClosed(self, zoneId):
        assert (self.notify.debug('doorsClosed()'))
        if (self.localToonOnBoard):
            hoodId = ZoneUtil.getHoodId(zoneId)
            loader, where = self._getDoorsClosedInfo()
            doneStatus = {
                'loader': loader,
                'where': where,
                'hoodId': hoodId,
                'zoneId': zoneId,
                'shardId': None,
            }

            elevator = self.elevatorFSM  #self.getPlaceElevator()
            del self.elevatorFSM
            elevator.signalDone(doneStatus)
Exemplo n.º 36
0
 def handleFactoryWinEvent(self):
     FactoryInterior.notify.info('handleFactoryWinEvent')
     if base.cr.playGame.getPlace().fsm.getCurrentState().getName() == 'died':
         return
     else:
         self.factoryDefeated = 1
         zoneId = ZoneUtil.getHoodId(self.zoneId)
         self.fsm.request('teleportOut', [
          {'loader': ZoneUtil.getLoaderName(zoneId), 
             'where': ZoneUtil.getToonWhereName(zoneId), 
             'how': 'teleportIn', 
             'hoodId': zoneId, 
             'zoneId': zoneId, 
             'shardId': None, 
             'avId': -1}])
         return
Exemplo n.º 37
0
 def handleMintWinEvent(self):
     MintInterior.notify.debug('handleMintWinEvent')
     if base.cr.playGame.getPlace().fsm.getCurrentState().getName() == 'died':
         return
     self.mintDefeated = 1
     if 1:
         zoneId = ZoneUtil.getHoodId(self.zoneId)
     else:
         zoneId = ZoneUtil.getSafeZoneId(base.localAvatar.defaultZone)
     self.fsm.request('teleportOut', [{'loader': ZoneUtil.getLoaderName(zoneId),
                                      'where': ZoneUtil.getToonWhereName(zoneId),
                                      'how': 'teleportIn',
                                      'hoodId': zoneId,
                                      'zoneId': zoneId,
                                      'shardId': None,
                                      'avId': -1}])
Exemplo n.º 38
0
 def getRequestStatus(self):
     zoneId = self.otherZoneId
     # We must set allowRedirect to 0 because we expect to meet
     # our other door on the other side.
     request = {
         "loader": ZoneUtil.getBranchLoaderName(zoneId),
         "where": ZoneUtil.getToonWhereName(zoneId),
         "how": "doorIn",
         "hoodId": ZoneUtil.getHoodId(zoneId),
         "zoneId": zoneId,
         "shardId": None,
         "avId": -1,
         "allowRedirect": 0,
         "doorDoId": self.otherDoId
     }
     return request
Exemplo n.º 39
0
 def __doorsClosed(self, zoneId):
     if self.localToonOnBoard:
         self.localAvatar.stopGlitchKiller()
         hoodId = ZoneUtil.getHoodId(zoneId)
         loader = 'suitInterior'
         where = 'suitInterior'
         if base.cr.wantCogdominiums:
             loader = 'cogdoInterior'
             where = 'cogdoInterior'
         doneStatus = {'loader': loader,
          'where': where,
          'hoodId': hoodId,
          'zoneId': zoneId,
          'shardId': None}
         elevator = self.elevatorFSM
         del self.elevatorFSM
         elevator.signalDone(doneStatus)
Exemplo n.º 40
0
 def enterReward(self, ts=0):
     assert(self.notify.debug('enterReward()'))
     base.localAvatar.b_setParent(ToontownGlobals.SPHidden)
     request = {
         "loader": ZoneUtil.getBranchLoaderName(self.extZoneId),
         "where": ZoneUtil.getToonWhereName(self.extZoneId),
         "how": "elevatorIn",
         "hoodId": ZoneUtil.getHoodId(self.extZoneId),
         "zoneId": self.extZoneId,
         "shardId": None,
         "avId": -1,
         "bldgDoId": self.distBldgDoId
         }
     # Presumably, suitInterior.py has hung a hook waiting for
     # this request. I mimicked what DistributedDoor was doing.
     messenger.send("DSIDoneEvent", [request])
     return None
Exemplo n.º 41
0
    def enter(self, slowWalk=0):
        zoneId = base.localAvatar.zoneId
        hoodId = ZoneUtil.getHoodId(zoneId)

        if hoodId != ToontownGlobals.Tutorial:  # If we're not in the tutorial...
            base.localAvatar.startPosHprBroadcast()

        base.localAvatar.startBlink()
        base.localAvatar.attachCamera()
        shouldPush = 1
        if len(base.localAvatar.cameraPositions) > 0:
            shouldPush = not base.localAvatar.cameraPositions[
                base.localAvatar.cameraIndex][4]
        base.localAvatar.startUpdateSmartCamera(shouldPush)
        base.localAvatar.showName()
        base.localAvatar.collisionsOn()
        base.localAvatar.startGlitchKiller()
        base.localAvatar.enableAvatarControls()
 def __doorsClosed(self, zoneId):
     if self.localToonOnBoard:
         self.localAvatar.stopGlitchKiller()
         hoodId = ZoneUtil.getHoodId(zoneId)
         loader = 'suitInterior'
         where = 'suitInterior'
         if base.cr.wantCogdominiums:
             loader = 'cogdoInterior'
             where = 'cogdoInterior'
         doneStatus = {'loader': loader,
          'where': where,
          'hoodId': hoodId,
          'zoneId': zoneId,
          'shardId': None}
         elevator = self.elevatorFSM
         del self.elevatorFSM
         elevator.signalDone(doneStatus)
     return
Exemplo n.º 43
0
    def doPostAnnounceGenerate(self):
        flatDoorTypes = [DoorTypes.INT_STANDARD, DoorTypes.INT_HQ]
        if self.doorType in flatDoorTypes:
            self.bHasFlat = True
        else:
            self.bHasFlat = not self.findDoorNode('door*flat', True).isEmpty()
        self.hideDoorParts()
        self.setTriggerName()

        if self.doorType == DoorTypes.EXT_HQ and ZoneUtil.getHoodId(self.zoneId) == ToontownGlobals.DonaldsDreamland:
            building = self.getBuilding()
            doorTrigger = building.find('**/%s' % self.getTriggerName())

            if not doorTrigger.getTag('fixed'):
                doorTrigger.setY(doorTrigger, 0.25 if not self.doorIndex else -0.25)
                doorTrigger.setTag('fixed', 'true')

        self.accept(self.getEnterTriggerEvent(), self.doorTrigger)
        self.acceptOnce('clearOutToonInterior', self.doorTrigger)
        self.setupNametag()
 def isInThisHq(self, status):
     if ZoneUtil.isDynamicZone(status['zoneId']):
         return status['hoodId'] == self.hood.hoodId
     else:
         return ZoneUtil.getHoodId(status['zoneId']) == self.hood.hoodId