def __init__(self):
        dcFileNames = ['direct.dc', 'ralph.dc']

        AstronClientRepository.__init__(self, dcFileNames)
        FSM.__init__(self, 'RalphClientRepository')

        self.GameGlobalsId = GAME_GLOBALS_ID
        # Generate the LoginManager staticly, so it'll be always available.
        self.loginManager = self.generateGlobalObject(LOGIN_MANAGER_DO_ID,
                                                      'LoginManager')

        self.worldsInterest = None
        self.managerInterest = None
        self.areaInterest = None

        self.worlds = []
        self.itemId2worldId = {}

        # Set the background color to black
        base.win.setClearColor((0, 0, 0, 1))

        # HACK: Handlers for object generation with OTHER fields is missing from AstronClientRepository
        # so we'll add one of them here until the PR which adds the functions to ACR has been merged.
        # https://github.com/Astron/panda3d/pull/17/
        self.message_handlers[
            CLIENT_ENTER_OBJECT_REQUIRED_OTHER] = self.handleEnterObjectRequiredOther
    def __init__(self):
        dcFileNames = ['direct.dc', 'ralph.dc']

        AstronClientRepository.__init__(self, dcFileNames)
        FSM.__init__(self, 'RalphClientRepository')

        self.GameGlobalsId = GAME_GLOBALS_ID
        # Generate the LoginManager staticly, so it'll be always available.
        self.loginManager = self.generateGlobalObject(LOGIN_MANAGER_DO_ID, 'LoginManager')

        self.worldsInterest = None
        self.managerInterest = None
        self.areaInterest = None

        self.worlds = []
        self.itemId2worldId = {}

        # Set the background color to black
        base.win.setClearColor((0, 0, 0, 1))

        # HACK: Handlers for object generation with OTHER fields is missing from AstronClientRepository
        # so we'll add one of them here until the PR which adds the functions to ACR has been merged.
        # https://github.com/Astron/panda3d/pull/17/
        self.message_handlers[CLIENT_ENTER_OBJECT_REQUIRED_OTHER] = self.handleEnterObjectRequiredOther
    def __init__(self, serverVersion):
        self.serverVersion = serverVersion
        AstronClientRepository.__init__(
            self, ['phase_3/etc/direct.dc', 'phase_3/etc/toon.dc'])
        self.loginFSM = ClassicFSM('login', [
            State('off', self.enterOff, self.exitOff),
            State('connect', self.enterConnect, self.exitConnect),
            State('disconnect', self.enterDisconnect, self.exitDisconnect),
            State('avChoose', self.enterAvChoose, self.exitAvChoose),
            State('playingGame', self.enterPlayingGame, self.exitPlayingGame),
            State('serverUnavailable', self.enterServerUnavailable,
                  self.exitServerUnavailable),
            State('makeAToon', self.enterMakeAToon, self.exitMakeAToon),
            State('submitNewToon', self.enterSubmitNewToon,
                  self.exitSubmitNewToon),
            State('noShards', self.enterNoShards, self.exitNoShards),
            State('waitForSetAvatarResponse',
                  self.enterWaitForSetAvatarResponse,
                  self.exitWaitForSetAvatarResponse),
            State('waitForShardList', self.enterWaitForShardList,
                  self.exitWaitForShardList),
            State('ejected', self.enterEjected, self.exitEjected),
            State('districtReset', self.enterDistrictReset,
                  self.exitDistrictReset),
            State('died', self.enterDied, self.exitDied),
            State('betaInform', self.enterBetaInform, self.exitBetaInform)
        ], 'off', 'off')
        self.loginFSM.enterInitialState()
        self.gameFSM = ClassicFSM('game', [
            State('off', self.enterGameOff, self.exitGameOff),
            State('waitForGameEnterResponse',
                  self.enterWaitForGameEnterResponse,
                  self.exitWaitForGameEnterResponse),
            State('playGame', self.enterPlayGame, self.exitPlayGame),
            State('closeShard', self.enterCloseShard, self.exitCloseShard),
            State('switchShards', self.enterSwitchShards,
                  self.exitSwitchShards)
        ], 'off', 'off')
        self.gameFSM.enterInitialState()
        #self.taskNameAllocator = UniqueIdAllocator(0, 1000000000)
        self.avChooser = AvChooser(self.loginFSM)
        self.playGame = PlayGame(self.gameFSM, "playGameDone")
        self.hoodMgr = HoodMgr()
        self.makeAToon = MakeAToon()
        self.loginToken = os.environ.get("LOGIN_TOKEN")
        self.serverAddress = os.environ.get("GAME_SERVER")
        self.serverURL = URLSpec("http://%s" % self.serverAddress)
        self.parentMgr.registerParent(CIGlobals.SPRender, render)
        self.parentMgr.registerParent(CIGlobals.SPHidden, hidden)
        self.adminAccess = False
        self.localAvChoice = None
        self.SuitsActive = 0
        self.BossActive = 0
        self.accServerTimesNA = 0
        self.maxAccServerTimesNA = 10
        self.setZonesEmulated = 0
        self.old_setzone_interest_handle = None
        self.setZoneQueue = Queue()
        self.accept(self.SetZoneDoneEvent, self._handleEmuSetZoneDone)
        self.handler = None
        self.__currentAvId = 0
        self.myDistrict = None
        self.activeDistricts = {}
        self.shardListHandle = None
        self.uberZoneInterest = None
        self.isShowingPlayerIds = False
        self.doBetaInform = False
        self.dTutorial = None
        self.requestedName = None
        self.whisperNoise = base.loadSfx(
            'phase_3.5/audio/sfx/GUI_whisper_3.ogg')
        self.checkHttp()
        #self.http.addPreapprovedServerCertificateFilename(self.serverURL, Filename('phase_3/etc/gameserver.crt'))
        #self.tournamentMusicChunks = {}
        #self.threadedTaskChain = taskMgr.setupTaskChain("threadedTaskChainForSoundIntervals", numThreads = 2)

        self.attackMgr = base.cl_attackMgr

        base.minigame = None

        self.newToonSlot = None

        base.finalExitCallbacks.insert(0, self.__handleExit)

        self.accountName = os.environ.get('ACCOUNT_NAME', '')
        self.csm = self.generateGlobalObject(DO_ID_CLIENT_SERVICES_MANAGER,
                                             'ClientServicesManager')
        self.friendsManager = self.generateGlobalObject(
            DO_ID_FRIENDS_MANAGER, 'FriendsManager')
        self.uin = self.generateGlobalObject(DO_ID_UNIQUE_INTEREST_NOTIFIER,
                                             'UniqueInterestNotifier')
        self.statsManager = self.generateGlobalObject(DO_ID_STATS_MANAGER,
                                                      'StatsManager')

        self.pingToggle = False
        self.currentPing = None

        self.pingText = OnscreenText("",
                                     align=TextNode.ALeft,
                                     parent=base.a2dBottomLeft,
                                     fg=(1, 1, 1, 1),
                                     shadow=(0, 0, 0, 0.5),
                                     pos=(0.3, 0.09))
        self.pingText.setBin('gsg-popup', 1000)
        self.pingText.hide()

        SpeedHackChecker.startChecking()
        self.loginFSM.request('connect')
        return
Beispiel #4
0
 def __init__(self, music, serverVersion):
     self.music = music
     self.serverVersion = serverVersion
     AstronClientRepository.__init__(self, ['phase_3/etc/direct.dc', 'phase_3/etc/toon.dc'])
     self.loginFSM = ClassicFSM('login', [State('off', self.enterOff, self.exitOff),
      State('connect', self.enterConnect, self.exitConnect),
      State('disconnect', self.enterDisconnect, self.exitDisconnect),
      State('avChoose', self.enterAvChoose, self.exitAvChoose),
      State('playingGame', self.enterPlayingGame, self.exitPlayingGame),
      State('serverUnavailable', self.enterServerUnavailable, self.exitServerUnavailable),
      State('makeAToon', self.enterMakeAToon, self.exitMakeAToon),
      State('submitNewToon', self.enterSubmitNewToon, self.exitSubmitNewToon),
      State('noShards', self.enterNoShards, self.exitNoShards),
      State('waitForSetAvatarResponse', self.enterWaitForSetAvatarResponse, self.exitWaitForSetAvatarResponse),
      State('waitForShardList', self.enterWaitForShardList, self.exitWaitForShardList),
      State('ejected', self.enterEjected, self.exitEjected),
      State('districtReset', self.enterDistrictReset, self.exitDistrictReset),
      State('died', self.enterDied, self.exitDied),
      State('betaInform', self.enterBetaInform, self.exitBetaInform)], 'off', 'off')
     self.loginFSM.enterInitialState()
     self.gameFSM = ClassicFSM('game', [State('off', self.enterGameOff, self.exitGameOff),
      State('waitForGameEnterResponse', self.enterWaitForGameEnterResponse, self.exitWaitForGameEnterResponse),
      State('playGame', self.enterPlayGame, self.exitPlayGame),
      State('closeShard', self.enterCloseShard, self.exitCloseShard),
      State('switchShards', self.enterSwitchShards, self.exitSwitchShards)], 'off', 'off')
     self.gameFSM.enterInitialState()
     self.avChooser = AvChooser(self.loginFSM)
     self.playGame = PlayGame(self.gameFSM, 'playGameDone')
     self.hoodMgr = HoodMgr()
     self.makeAToon = MakeAToon()
     self.loginToken = os.environ.get('LOGIN_TOKEN')
     self.serverAddress = os.environ.get('GAME_SERVER')
     self.serverURL = URLSpec('http://%s' % self.serverAddress)
     self.parentMgr.registerParent(CIGlobals.SPRender, render)
     self.parentMgr.registerParent(CIGlobals.SPHidden, hidden)
     self.adminAccess = False
     self.localAvChoice = None
     self.SuitsActive = 0
     self.BossActive = 0
     self.accServerTimesNA = 0
     self.maxAccServerTimesNA = 10
     self.setZonesEmulated = 0
     self.old_setzone_interest_handle = None
     self.setZoneQueue = Queue()
     self.accept(self.SetZoneDoneEvent, self._handleEmuSetZoneDone)
     self.handler = None
     self.__currentAvId = 0
     self.myDistrict = None
     self.activeDistricts = {}
     self.shardListHandle = None
     self.uberZoneInterest = None
     self.isShowingPlayerIds = False
     self.doBetaInform = True
     self.dTutorial = None
     self.requestedName = None
     self.whisperNoise = base.loadSfx('phase_3.5/audio/sfx/GUI_whisper_3.ogg')
     self.checkHttp()
     base.audio3d = Audio3DManager(base.sfxManagerList[0], camera)
     base.audio3d.setDropOffFactor(0)
     base.audio3d.setDopplerFactor(3.0)
     base.lifter = CollisionHandlerFloor()
     base.pusher = CollisionHandlerPusher()
     base.queue = CollisionHandlerQueue()
     base.minigame = None
     base.finalExitCallbacks.insert(0, self.__handleExit)
     self.csm = self.generateGlobalObject(DO_ID_CLIENT_SERVICES_MANAGER, 'ClientServicesManager')
     self.friendsManager = self.generateGlobalObject(DO_ID_FRIENDS_MANAGER, 'FriendsManager')
     SpeedHackChecker.startChecking()
     self.loginFSM.request('connect')
     return