コード例 #1
0
 def setMoonPhaseChange(self, fromCurrent, startPhase, targetPhase, targetTime):
     currentTime = globalClock.getFrameTime()
     timeStamp = globalClockDelta.networkToLocalTime(targetTime, bits = 32)
     if timeStamp < currentTime:
         return None
     else:
         self.animateMoon(fromCurrent, startPhase, targetPhase, timeStamp - currentTime)
コード例 #2
0
ファイル: TagGame.py プロジェクト: frainfreeze/tagger
    def setTimeout(self, timestamp):
        timeout = globalClockDelta.networkToLocalTime(timestamp)
        if self.timeout is None or abs(self.timeout - timeout) > 0.5:
            self.timeout = timeout

            if self.localPlayerJoined:
                self.startTimer()
コード例 #3
0
    def setGameStart(self, timestamp, molesWhackTarget, totalTime):
        self.GameDuration = totalTime
        self.MolesWhackedTarget = molesWhackTarget
        self.activeField = 1
        self.isToonInRange = 0
        self.scheduleMoles()
        self.notify.debug('%d setGameStart: Starting game' % self.doId)
        self.gameStartTime = globalClockDelta.networkToLocalTime(timestamp)
        self.gameStarted = True
        for hill in self.moleHills:
            hill.setGameStartTime(self.gameStartTime)

        curGameTime = self.getCurrentGameTime()
        timeLeft = self.GameDuration - curGameTime
        self.cleanupTimer()
        self.timer = ToontownTimer.ToontownTimer()
        self.timer.posBelowTopRightCorner()
        self.timer.setTime(timeLeft)
        self.timer.countdown(timeLeft, self.timerExpired)
        self.startScheduleTask()
        self.frame2D.show()
        if self.hasRestarted:
            self.level.countryClub.showInfoText(self.restartedText)
            self.sendUpdate('damageMe', [])
        else:
            self.hasRestarted = 1
        self.updateGuiScore()
 def startWaitToStart(self, waitStartTimestamp):
     self.notify.debug('startWaitToStart')
     self.waitToStartTimestamp = globalClockDelta.networkToLocalTime(waitStartTimestamp)
     self._updateWaitForEnoughStatus()
     self.setStatus(TTLocalizer.PartyTeamActivityWaitingToStart)
     if self.isLocalToonPlaying:
         self.showWaitToStartCountdown()
 def setTimer(self, timerEnd):
     self.clockNode.stop()
     time = globalClockDelta.networkToLocalTime(timerEnd)
     self.timeLeft = int(time - globalClock.getRealTime())
     if self.gameWantTimer and self.game != None:
         self.showTimer()
     return
コード例 #6
0
 def setTimerStartTime(self, timestamp):
     if not self.hasLocalToon:
         return
     self.timerStartTime = globalClockDelta.networkToLocalTime(timestamp)
     if self.timer != None:
         self.startTimer()
     return
コード例 #7
0
 def startInvasion(self, suitName, skel, waiter, startTime, duration):            
     self.startTime = globalClockDelta.networkToLocalTime(startTime, bits = 32)
     
     self.notify.info("New invasion! Duration: %s" % duration)
     
     self._name, msgs = self.formatInvasionMessage(suitName, skel, waiter, self.__formatBegin)
     self.displayMsgs(msgs)
コード例 #8
0
 def updateGoal(self, timestamp, inResponseClientStamp, goalType, goalId, pos):
     self.notify.debug('self.netTimeSentToStartByHit =%s' % self.netTimeSentToStartByHit)
     if not self.game:
         self.notify.debug('updateGoal self.game is None, just returning')
         return None
     
     if not self.suit:
         self.notify.debug('updateGoal self.suit is None, just returning')
         return None
     
     if self.goal == CTGG.NoGoal:
         self.startWalkAnim()
     
     if goalType == CTGG.NoGoal:
         self.notify.debug('updateGoal setting position to %s' % pos)
         self.suit.setPos(pos)
     
     self.lastThinkTime = 0
     self.velocity = Vec3(0, 0, 0)
     self.oldVelocity = Vec3(0, 0, 0)
     self.acceleration = Vec3(0, 0, 0)
     if goalType == CTGG.RunAwayGoal:
         pass
     1
     if inResponseClientStamp < self.netTimeSentToStartByHit and self.goal == CTGG.NoGoal and goalType == CTGG.RunAwayGoal:
         self.notify.warning('ignoring newGoal %s as cog %d was recently hit responsetime=%s hitTime=%s' % (CTGG.GoalStr[goalType], self.cogIndex, inResponseClientStamp, self.netTimeSentToStartByHit))
     else:
         self.lastLocalTimeStampFromAI = globalClockDelta.networkToLocalTime(timestamp, bits = 32)
         self.goal = goalType
         self.goalId = goalId
         self.lastPosFromAI = pos
         self.doneAdjust = False
     self.signalledAtReturnPos = False
コード例 #9
0
 def setTurnTimer(self, turnEnd):
     if self.fsm.getCurrentState() != None and self.fsm.getCurrentState().getName() == 'playing':
         self.clockNode.stop()
         time = globalClockDelta.networkToLocalTime(turnEnd)
         timeLeft = int(time - globalClock.getRealTime())
         if timeLeft > 0:
             self.clockNode.setPos(0.64, 0, -0.27)
             self.clockNode.countdown(timeLeft, self.doRandomMove)
             self.clockNode.show()
コード例 #10
0
 def setTurnTimer(self, turnEnd):
     if self.fsm.getCurrentState() != None and self.fsm.getCurrentState(
     ).getName() == 'playing':
         self.clockNode.stop()
         time = globalClockDelta.networkToLocalTime(turnEnd)
         timeLeft = int(time - globalClock.getRealTime())
         if timeLeft > 0:
             self.clockNode.setPos(0.64, 0, -0.27)
             self.clockNode.countdown(timeLeft, self.doRandomMove)
             self.clockNode.show()
コード例 #11
0
 def setPitcherPos(self, changeSeq, h, timestamp):
     self.changeSeq = changeSeq
     if self.smoothStarted:
         now = globalClock.getFrameTime()
         local = globalClockDelta.networkToLocalTime(timestamp, now)
         self.pitcherSmoother.setH(h)
         self.pitcherSmoother.setTimestamp(local)
         self.pitcherSmoother.markPosition()
     else:
         self.waterPitcherNode.setH(h)
コード例 #12
0
 def setGolfSpotPos(self, changeSeq, h, timestamp):
     self.changeSeq = changeSeq
     if self.smoothStarted:
         now = globalClock.getFrameTime()
         local = globalClockDelta.networkToLocalTime(timestamp, now)
         self.golfSpotSmoother.setH(h)
         self.golfSpotSmoother.setTimestamp(local)
         self.golfSpotSmoother.markPosition()
     else:
         self.root.setH(h)
コード例 #13
0
 def setPitcherPos(self, changeSeq, h, timestamp):
     self.changeSeq = changeSeq
     if self.smoothStarted:
         now = globalClock.getFrameTime()
         local = globalClockDelta.networkToLocalTime(timestamp, now)
         self.pitcherSmoother.setH(h)
         self.pitcherSmoother.setTimestamp(local)
         self.pitcherSmoother.markPosition()
     else:
         self.waterPitcherNode.setH(h)
コード例 #14
0
 def setGolfSpotPos(self, changeSeq, h, timestamp):
     self.changeSeq = changeSeq
     if self.smoothStarted:
         now = globalClock.getFrameTime()
         local = globalClockDelta.networkToLocalTime(timestamp, now)
         self.golfSpotSmoother.setH(h)
         self.golfSpotSmoother.setTimestamp(local)
         self.golfSpotSmoother.markPosition()
     else:
         self.root.setH(h)
コード例 #15
0
 def startInvasion(self, suitName, skel, waiter, startTime, duration):            
     self.startTime = globalClockDelta.networkToLocalTime(startTime, bits = 32)
     
     self.notify.info("New invasion! Duration: %s" % duration)
     
     self._name, msgs = self.formatInvasionMessage(suitName, skel, waiter, self.__formatBegin)
     self.displayMsgs(msgs)
     
     mult = ToontownBattleGlobals.getInvasionMultiplier(duration == 1)
     base.localAvatar.inventory.setInvasionCreditMultiplier(mult)
コード例 #16
0
 def setGameStart(self, timestamp):
     self.gameStartTime = globalClockDelta.networkToLocalTime(timestamp)
     localAvatar.guiMgr.showPVPTimer(self)
     localAvatar.guiMgr.showPVPTeamIcon()
     localAvatar.guiMgr.createPVPUI(self.scoreboardHolder)
     localAvatar.guiMgr.createPVPStatus(self.statsHolder)
     self.statsChanged()
     self.scoreChanged()
     localAvatar.guiMgr.showPVPUI()
     self.accept('tab', localAvatar.guiMgr.showPVPStatus)
     self.accept('tab-up', localAvatar.guiMgr.hidePVPStatus)
     self.request('Game')
コード例 #17
0
 def setTurnTimer(self, turnEnd):
     if self.fsm.getCurrentState() != None and self.fsm.getCurrentState().getName() == 'playing':
         self.clockNode.stop()
         time = globalClockDelta.networkToLocalTime(turnEnd)
         timeLeft = int(time - globalClock.getRealTime())
         if timeLeft > 0:
             self.clockNode.setPos(-0.73999999999999999, 0, -0.20000000000000001)
             if self.isMyTurn:
                 self.clockNode.countdown(timeLeft, self.doNothing)
             else:
                 self.clockNode.countdown(timeLeft, self.doNothing)
             self.clockNode.show()
コード例 #18
0
 def setGameStart(self, timestamp):
     self.gameStartTime = globalClockDelta.networkToLocalTime(timestamp)
     localAvatar.guiMgr.showPVPTimer(self)
     localAvatar.guiMgr.showPVPTeamIcon()
     localAvatar.guiMgr.createPVPUI(self.scoreboardHolder)
     localAvatar.guiMgr.createPVPStatus(self.statsHolder)
     self.statsChanged()
     self.scoreChanged()
     localAvatar.guiMgr.showPVPUI()
     self.accept('tab', localAvatar.guiMgr.showPVPStatus)
     self.accept('tab-up', localAvatar.guiMgr.hidePVPStatus)
     self.request('Game')
コード例 #19
0
    def startInvasion(self, suitName, skel, waiter, startTime, duration):
        self.startTime = globalClockDelta.networkToLocalTime(startTime,
                                                             bits=32)

        self.notify.info("New invasion! Duration: %s" % duration)

        self._name, msgs = self.formatInvasionMessage(suitName, skel, waiter,
                                                      self.__formatBegin)
        self.displayMsgs(msgs)

        mult = ToontownBattleGlobals.getInvasionMultiplier(duration == 1)
        base.localAvatar.inventory.setInvasionCreditMultiplier(mult)
コード例 #20
0
 def setTurnTimer(self, turnEnd):
     if self.fsm.getCurrentState() != None and self.fsm.getCurrentState().getName() == "playing":
         self.clockNode.stop()
         time = globalClockDelta.networkToLocalTime(turnEnd)
         timeLeft = int(time - globalClock.getRealTime())
         if timeLeft > 0:
             self.clockNode.setPos(-0.73999999999999999, 0, -0.20000000000000001)
             if self.isMyTurn:
                 self.clockNode.countdown(timeLeft, self.doNothing)
             else:
                 self.clockNode.countdown(timeLeft, self.doNothing)
             self.clockNode.show()
コード例 #21
0
ファイル: CogThief.py プロジェクト: satire6/Anesidora
    def makeCogDropBarrel(self, timestamp, inResponseClientStamp, barrelModel,
                          barrelIndex, barrelPos):
        """Handle the AI telling us the barrel is attached to a cog."""
        #assert self.notify.debugStateCall(self)
        localTimeStamp = globalClockDelta.networkToLocalTime(timestamp,
                                                             bits=32)
        # TODO validate time?
        self.lastLocalTimeStampFromAI = localTimeStamp

        barrelModel.reparentTo(render)
        barrelModel.setPos(barrelPos)

        self.barrel = CTGG.NoBarrelCarried
コード例 #22
0
 def respondToPieHit(self, timestamp):
     localStamp = globalClockDelta.networkToLocalTime(timestamp, bits=32)
     if self.netTimeSentToStartByHit < timestamp:
         self.clearGoal()
         self.showSplat()
         startPos = CTGG.CogStartingPositions[self.cogIndex]
         oldPos = self.suit.getPos()
         self.suit.setPos(startPos)
         if self.netTimeSentToStartByHit < timestamp:
             self.netTimeSentToStartByHit = timestamp
     else:
         self.notify.debug('localStamp = %s, lastLocalTimeStampFromAI=%s, ignoring respondToPieHit' % (localStamp, self.lastLocalTimeStampFromAI))
         self.notify.debug('respondToPieHit self.netTimeSentToStartByHit = %s' % self.netTimeSentToStartByHit)
コード例 #23
0
 def setGameStart(self, timestamp):
     self.notify.debug('%d setGameStart: Starting game' % self.doId)
     self.gameStartTime = globalClockDelta.networkToLocalTime(timestamp)
     self.gameStarted = True
     curGameTime = self.getCurrentGameTime()
     timeLeft = self.GameDuration - curGameTime
     self.cleanupTimer()
     self.timer = ToontownTimer.ToontownTimer()
     self.timer.posBelowTopRightCorner()
     self.timer.setTime(timeLeft)
     self.timer.countdown(timeLeft, self.timerExpired)
     self.startScheduleTask()
     self.frame2D.show()
コード例 #24
0
 def setCurrentInvasion(self, suitName, skel, waiter, startTime, duration):
     if duration == 0:
         self.notify.info('duration 0')
         return
         
     self.startTime = globalClockDelta.networkToLocalTime(startTime, bits = 32)
     elapsed = globalClock.getRealTime() - self.startTime
     remaining = duration - elapsed
     
     self.notify.info("Invasion in progress! Remaining time: %s" % remaining)
     
     self._name, msgs = self.formatInvasionMessage(suitName, skel, False, self.__formatProgress)
     self.displayMsgs(msgs)
コード例 #25
0
 def respondToPieHit(self, timestamp):
     localStamp = globalClockDelta.networkToLocalTime(timestamp, bits=32)
     if self.netTimeSentToStartByHit < timestamp:
         self.clearGoal()
         self.showSplat()
         startPos = CTGG.CogStartingPositions[self.cogIndex]
         oldPos = self.suit.getPos()
         self.suit.setPos(startPos)
         if self.netTimeSentToStartByHit < timestamp:
             self.netTimeSentToStartByHit = timestamp
     else:
         self.notify.debug('localStamp = %s, lastLocalTimeStampFromAI=%s, ignoring respondToPieHit' % (localStamp, self.lastLocalTimeStampFromAI))
         self.notify.debug('respondToPieHit self.netTimeSentToStartByHit = %s' % self.netTimeSentToStartByHit)
コード例 #26
0
 def makeCogCarryBarrel(self, timestamp, inResponseClientStamp, barrelModel, barrelIndex, cogPos):
     if not self.game:
         return
     localTimeStamp = globalClockDelta.networkToLocalTime(timestamp, bits=32)
     self.lastLocalTimeStampFromAI = localTimeStamp
     inResponseGameTime = self.convertNetworkStampToGameTime(inResponseClientStamp)
     self.notify.debug('inResponseGameTime =%s timeSentToStart=%s' % (inResponseGameTime, self.netTimeSentToStartByHit))
     if inResponseClientStamp < self.netTimeSentToStartByHit and self.goal == CTGG.NoGoal:
         self.notify.warning('ignoring makeCogCarrybarrel')
     else:
         barrelModel.setPos(0, -1.0, 1.5)
         barrelModel.reparentTo(self.suit)
         self.suit.setPos(cogPos)
         self.barrel = barrelIndex
コード例 #27
0
 def setTimer(self, timerEnd):
     if self.fsm.getCurrentState() != None and self.fsm.getCurrentState().getName() == 'waitingToBegin' and not self.table.fsm.getCurrentState().getName() == 'observing':
         self.clockNode.stop()
         time = globalClockDelta.networkToLocalTime(timerEnd)
         timeLeft = int(time - globalClock.getRealTime())
         if timeLeft > 0 and timerEnd != 0:
             if timeLeft > 60:
                 timeLeft = 60
             self.clockNode.setPos(1.16, 0, -0.83)
             self.clockNode.countdown(timeLeft, self.startButtonPushed)
             self.clockNode.show()
         else:
             self.clockNode.stop()
             self.clockNode.hide()
コード例 #28
0
 def makeCogCarryBarrel(self, timestamp, inResponseClientStamp, barrelModel, barrelIndex, cogPos):
     if not self.game:
         return
     localTimeStamp = globalClockDelta.networkToLocalTime(timestamp, bits=32)
     self.lastLocalTimeStampFromAI = localTimeStamp
     inResponseGameTime = self.convertNetworkStampToGameTime(inResponseClientStamp)
     self.notify.debug('inResponseGameTime =%s timeSentToStart=%s' % (inResponseGameTime, self.netTimeSentToStartByHit))
     if inResponseClientStamp < self.netTimeSentToStartByHit and self.goal == CTGG.NoGoal:
         self.notify.warning('ignoring makeCogCarrybarrel')
     else:
         barrelModel.setPos(0, -1.0, 1.5)
         barrelModel.reparentTo(self.suit)
         self.suit.setPos(cogPos)
         self.barrel = barrelIndex
コード例 #29
0
 def setTimer(self, timerEnd):
     if self.fsm.getCurrentState() != None and self.fsm.getCurrentState().getName() == 'waitingToBegin' and not self.table.fsm.getCurrentState().getName() == 'observing':
         self.clockNode.stop()
         time = globalClockDelta.networkToLocalTime(timerEnd)
         timeLeft = int(time - globalClock.getRealTime() )
         if(timeLeft > 0 and timerEnd != 0):
             if timeLeft > 60:
                 timeLeft = 60
             self.clockNode.setPos(1.16, 0, -0.83)
             self.clockNode.countdown(timeLeft, self.startButtonPushed)
             self.clockNode.show()
         else:
             self.clockNode.stop()
             self.clockNode.hide()
コード例 #30
0
    def setGolfSpotPos(self, changeSeq, h, timestamp):
        """Handle another client sending an update on the golfSpot rotation."""
        #assert self.notify.debugStateCall(self)
        self.changeSeq = changeSeq
        if self.smoothStarted:
            now = globalClock.getFrameTime()
            local = globalClockDelta.networkToLocalTime(timestamp, now)

            #self.golfSpotSmoother.setY(y)
            self.golfSpotSmoother.setH(h)
            self.golfSpotSmoother.setTimestamp(local)
            self.golfSpotSmoother.markPosition()
        else:
            #self.crane.setY(y)
            self.root.setH(h)
コード例 #31
0
 def markBarrelStolen(self, timestamp, inResponseToClientStamp, barrelIndex):
     if not self.hasLocalToon:
         return
     if barrelIndex not in self.stolenBarrels:
         self.stolenBarrels.append(barrelIndex)
         barrel = self.barrels[barrelIndex]
         barrel.hide()
     if base.config.GetBool('cog-thief-check-barrels', 1):
         if not base.config.GetBool('cog-thief-endless', 0):
             if len(self.stolenBarrels) == len(self.barrels):
                 localStamp = globalClockDelta.networkToLocalTime(timestamp, bits=32)
                 gameTime = self.local2GameTime(localStamp)
                 self.clockStopTime = gameTime
                 self.notify.debug('clockStopTime = %s' % gameTime)
                 score = int(self.scoreMult * CTGG.calcScore(gameTime) + 0.5)
                 self.rewardPanel['text'] = str(score)
                 self.showResults()
コード例 #32
0
 def markBarrelStolen(self, timestamp, inResponseToClientStamp, barrelIndex):
     if not self.hasLocalToon:
         return
     if barrelIndex not in self.stolenBarrels:
         self.stolenBarrels.append(barrelIndex)
         barrel = self.barrels[barrelIndex]
         barrel.hide()
     if base.config.GetBool('cog-thief-check-barrels', 1):
         if not base.config.GetBool('cog-thief-endless', 0):
             if len(self.stolenBarrels) == len(self.barrels):
                 localStamp = globalClockDelta.networkToLocalTime(timestamp, bits=32)
                 gameTime = self.local2GameTime(localStamp)
                 self.clockStopTime = gameTime
                 self.notify.debug('clockStopTime = %s' % gameTime)
                 score = int(self.scoreMult * CTGG.calcScore(gameTime) + 0.5)
                 self.rewardPanel['text'] = str(score)
                 self.showResults()
コード例 #33
0
 def setCurrentInvasion(self, suitName, skel, waiter, startTime, duration):
     if duration == 0:
         self.notify.info('duration 0')
         return
         
     self.startTime = globalClockDelta.networkToLocalTime(startTime, bits = 32)
     elapsed = globalClock.getRealTime() - self.startTime
     remaining = duration - elapsed
     
     self.notify.info("Invasion in progress! Remaining time: %s" % remaining)
     
     mult = ToontownBattleGlobals.getInvasionMultiplier(duration == 1)
     base.localAvatar.inventory.setInvasionCreditMultiplier(mult)
     
     if not self.__announced:
         self._name, msgs = self.formatInvasionMessage(suitName, skel, False, self.__formatProgress)
         self.displayMsgs(msgs)
コード例 #34
0
    def setGenerations(self, generations):
        self.notify.info('setGenerations(%s)' % (generations,))
        gen2t = {}
        gen2nt = {}
        gen2np = {}
        for id, timestamp32, numPlayers in generations:
            gen2t[id] = globalClockDelta.networkToLocalTime(timestamp32, bits=32) - self._startTimestamp
            gen2nt[id] = timestamp32
            gen2np[id] = numPlayers

        ids = self._id2gen.keys()
        for id in ids:
            if id not in gen2t:
                self._removeGeneration(id)

        for id in gen2t:
            if id not in self._id2gen:
                self._addGeneration(id, gen2t[id], gen2nt[id], gen2np[id])
コード例 #35
0
    def setGenerations(self, generations):
        self.notify.info('setGenerations(%s)' % (generations,))
        gen2t = {}
        gen2nt = {}
        gen2np = {}
        for id, timestamp32, numPlayers in generations:
            gen2t[id] = globalClockDelta.networkToLocalTime(timestamp32, bits=32) - self._startTimestamp
            gen2nt[id] = timestamp32
            gen2np[id] = numPlayers

        ids = self._id2gen.keys()
        for id in ids:
            if id not in gen2t:
                self._removeGeneration(id)

        for id in gen2t:
            if id not in self._id2gen:
                self._addGeneration(id, gen2t[id], gen2nt[id], gen2np[id])
コード例 #36
0
    def startWaitToStart(self, waitStartTimestamp):
        """
        Enough players are in.

        Wait a few seconds before the activity begins to let more players
        come in and participate.
        """
        self.notify.debug("startWaitToStart")

        self.waitToStartTimestamp = globalClockDelta.networkToLocalTime(
            waitStartTimestamp)
        self._updateWaitForEnoughStatus()

        # display a countdown showing how long until the game starts
        self.setStatus(TTLocalizer.PartyTeamActivityWaitingToStart)

        if self.isLocalToonPlaying:
            self.showWaitToStartCountdown()
コード例 #37
0
ファイル: CogThief.py プロジェクト: satire6/Anesidora
    def updateGoal(self, timestamp, inResponseClientStamp, goalType, goalId,
                   pos):
        """Update our goal and position."""
        assert self.notify.debugStateCall(self)
        self.notify.debug('self.netTimeSentToStartByHit =%s' %
                          self.netTimeSentToStartByHit)
        if not self.game:
            self.notify.debug('updateGoal self.game is None, just returning')
            return
        if not self.suit:
            self.notify.debug('updateGoal self.suit is None, just returning')
            return
        if self.goal == CTGG.NoGoal:
            self.startWalkAnim()

        if goalType == CTGG.NoGoal:
            self.notify.debug('updateGoal setting position to %s' % pos)
            self.suit.setPos(pos)

        self.lastThinkTime = 0
        self.velocity = Vec3(0, 0, 0)
        self.oldVelocity = Vec3(0, 0, 0)
        self.acceleration = Vec3(0, 0, 0)

        if goalType == CTGG.RunAwayGoal:
            #import pdb; pdb.set_trace()
            pass

        if inResponseClientStamp < self.netTimeSentToStartByHit and \
           self.goal == CTGG.NoGoal and \
           goalType == CTGG.RunAwayGoal:
            #import pdb; pdb.set_trace()
            self.notify.warning(
                'ignoring newGoal %s as cog %d was recently hit responsetime=%s hitTime=%s'
                % (CTGG.GoalStr[goalType], self.cogIndex,
                   inResponseClientStamp, self.netTimeSentToStartByHit))
        else:
            self.lastLocalTimeStampFromAI = globalClockDelta.networkToLocalTime(
                timestamp, bits=32)
            self.goal = goalType
            self.goalId = goalId
            self.lastPosFromAI = pos
            self.doneAdjust = False
        self.signalledAtReturnPos = False
コード例 #38
0
    def getCurrentIngameTime(self, time=None):
        cycleSpeed = self.cycleSpeed
        if cycleSpeed <= 0:
            cycleSpeed = 1

        if time is None:
            currentTime = globalClockDelta.networkToLocalTime(
                globalClockDelta.getFrameNetworkTime(bits=32))
        else:
            currentTime = time

        REALSECONDS_PER_GAMEDAY = PiratesGlobals.TOD_REALSECONDS_PER_GAMEDAY / cycleSpeed
        REALSECONDS_PER_GAMEHOUR = float(
            REALSECONDS_PER_GAMEDAY / PiratesGlobals.TOD_GAMEHOURS_IN_GAMEDAY)
        cycleDuration = REALSECONDS_PER_GAMEHOUR * PiratesGlobals.TOD_GAMEHOURS_IN_GAMEDAY
        timeElapsed = currentTime - self.startingNetTime
        timeIntoCycle = (timeElapsed + self.timeOffset) % cycleDuration
        hoursIntoCycle = timeIntoCycle / REALSECONDS_PER_GAMEHOUR
        return hoursIntoCycle
コード例 #39
0
 def syncTOD(self, cycleType, cycleSpeed, startingNetTime, timeOffset):
     self.clockSyncData = (cycleType, cycleSpeed, startingNetTime,
                           timeOffset)
     if not self.syncEnabled:
         return
     needMessage = 0
     if self.cycleType != cycleType:
         needMessage = 1
     if self.cycleSpeed != cycleSpeed:
         needMessage = 1
     self.cycleType = cycleType
     self.startingServerTime = globalClockDelta.networkToLocalTime(
         startingNetTime, bits=32)
     self.timeOffset = timeOffset
     self.cycleSpeed = cycleSpeed
     self.enterInitState()
     if needMessage:
         messenger.send('TOD_CYCLE_CHANGE')
     self.restartTimeOfDayMethod()
     self.processTimeOfDayToggles()
コード例 #40
0
    def setCurrentInvasion(self, suitName, skel, waiter, startTime, duration):
        if duration == 0:
            self.notify.info('duration 0')
            return

        self.startTime = globalClockDelta.networkToLocalTime(startTime,
                                                             bits=32)
        elapsed = globalClock.getRealTime() - self.startTime
        remaining = duration - elapsed

        self.notify.info("Invasion in progress! Remaining time: %s" %
                         remaining)

        mult = ToontownBattleGlobals.getInvasionMultiplier(duration == 1)
        base.localAvatar.inventory.setInvasionCreditMultiplier(mult)

        if not self.__announced:
            self._name, msgs = self.formatInvasionMessage(
                suitName, skel, False, self.__formatProgress)
            self.displayMsgs(msgs)
コード例 #41
0
    def setGameStart(self, timestamp):
        """
        This method gets called from the AI when all avatars are ready
        Ready usually means they have read the rules
        Inheritors should call this plus the code to start the game
        """
        self.notify.debug("%d setGameStart: Starting game" % self.doId)
        self.gameStartTime = \
                    globalClockDelta.networkToLocalTime(timestamp)
        self.gameStarted = True
        curGameTime = self.getCurrentGameTime()
        timeLeft = self.GameDuration - curGameTime
        self.cleanupTimer()
        self.timer = ToontownTimer.ToontownTimer()
        self.timer.posBelowTopRightCorner()
        self.timer.setTime(timeLeft)
        self.timer.countdown(timeLeft, self.timerExpired)

        self.startScheduleTask()
        self.frame2D.show()
コード例 #42
0
 def syncTOD(self, cycleType, cycleSpeed, startingNetTime, timeOffset):
     self.clockSyncData = (cycleType, cycleSpeed, startingNetTime, timeOffset)
     if not self.syncEnabled:
         return None
     
     needMessage = 0
     if self.cycleType != cycleType:
         needMessage = 1
     
     if self.cycleSpeed != cycleSpeed:
         needMessage = 1
     
     self.cycleType = cycleType
     self.startingServerTime = globalClockDelta.networkToLocalTime(startingNetTime, bits = 32)
     self.timeOffset = timeOffset
     self.cycleSpeed = cycleSpeed
     self.enterInitState()
     if needMessage:
         messenger.send('TOD_CYCLE_CHANGE')
     
     self.restartTimeOfDayMethod()
     self.processTimeOfDayToggles()
コード例 #43
0
ファイル: CogThief.py プロジェクト: satire6/Anesidora
 def respondToPieHit(self, timestamp):
     """The toon hit us, react appropriately."""
     assert self.notify.debugStateCall(self)
     localStamp = globalClockDelta.networkToLocalTime(timestamp, bits=32)
     # argh using 1.0 sec as fudge
     #if localStamp  > self.lastLocalTimeStampFromAI:
     if self.netTimeSentToStartByHit < timestamp:
         self.clearGoal()
         self.showSplat()
         # move him to his starting postion
         startPos = CTGG.CogStartingPositions[self.cogIndex]
         oldPos = self.suit.getPos()
         self.suit.setPos(startPos)
         if self.netTimeSentToStartByHit < timestamp:
             self.netTimeSentToStartByHit = timestamp
     else:
         self.notify.debug(
             'localStamp = %s, lastLocalTimeStampFromAI=%s, ignoring respondToPieHit'
             % (localStamp, self.lastLocalTimeStampFromAI))
         self.notify.debug(
             'respondToPieHit self.netTimeSentToStartByHit = %s' %
             self.netTimeSentToStartByHit)
コード例 #44
0
ファイル: CogThief.py プロジェクト: satire6/Anesidora
    def makeCogCarryBarrel(self, timestamp, inResponseClientStamp, barrelModel,
                           barrelIndex, cogPos):
        """Handle the AI telling us the barrel is attached to a cog."""
        #assert self.notify.debugStateCall(self)
        if not self.game:
            return
        localTimeStamp = globalClockDelta.networkToLocalTime(timestamp,
                                                             bits=32)
        # TODO validate time?
        self.lastLocalTimeStampFromAI = localTimeStamp
        inResponseGameTime = self.convertNetworkStampToGameTime(
            inResponseClientStamp)

        self.notify.debug('inResponseGameTime =%s timeSentToStart=%s' %
                          (inResponseGameTime, self.netTimeSentToStartByHit))
        if inResponseClientStamp  < self.netTimeSentToStartByHit and \
           self.goal == CTGG.NoGoal:
            self.notify.warning('ignoring makeCogCarrybarrel')
        else:
            barrelModel.setPos(0, -1.0, 1.5)
            barrelModel.reparentTo(self.suit)
            self.suit.setPos(cogPos)
            self.barrel = barrelIndex
コード例 #45
0
 def setMoonAnimation(self, startTime, keyList):
     currentTime = globalClock.getFrameTime()
     timeStamp = globalClockDelta.networkToLocalTime(targetTime, bits = 32)
     relativeStartTime = currentTime - timeStamp
コード例 #46
0
 def setGameFinish(self, timestamp):
     self._finishTime = globalClockDelta.networkToLocalTime(timestamp)
     self.fsm.request('Finish')
コード例 #47
0
 def setGameStart(self, timestamp):
     self._startTime = globalClockDelta.networkToLocalTime(timestamp)
     self.fsm.request('Game')
コード例 #48
0
 def convertNetworkStampToGameTime(self, timestamp):
     localStamp = globalClockDelta.networkToLocalTime(timestamp, bits = 32)
     gameTime = self.game.local2GameTime(localStamp)
     return gameTime
コード例 #49
0
 def setStartTimestamp(self, timestamp32):
     self.notify.info('setStartTimestamp(%s)' % (timestamp32,))
     self._startTimestamp = globalClockDelta.networkToLocalTime(timestamp32, bits=32)
コード例 #50
0
ファイル: CogThief.py プロジェクト: satire6/Anesidora
 def stopWalking(self, timestamp):
     """Stop the cog from walking."""
     localStamp = globalClockDelta.networkToLocalTime(timestamp, bits=32)
     if localStamp > self.lastLocalTimeStampFromAI:
         self.suit.loop('neutral')
         self.clearGoal()
 def setGameFinish(self, timestamp):
     self._finishTime = globalClockDelta.networkToLocalTime(timestamp)
     self.fsm.request('Finish')
 def setGameStart(self, timestamp):
     self._startTime = globalClockDelta.networkToLocalTime(timestamp)
     self.fsm.request('Game')
コード例 #53
0
 def setTimer(self, timerEnd):
     self.clockNode.stop()
     time = globalClockDelta.networkToLocalTime(timerEnd)
     self.timeLeft = int(time - globalClock.getRealTime())
     if self.gameWantTimer and self.game != None:
         self.showTimer()
コード例 #54
0
 def setStartTimestamp(self, timestamp32):
     self.notify.info('setStartTimestamp(%s)' % (timestamp32,))
     self._startTimestamp = globalClockDelta.networkToLocalTime(timestamp32, bits=32)
コード例 #55
0
 def stopWalking(self, timestamp):
     localStamp = globalClockDelta.networkToLocalTime(timestamp, bits = 32)
     if localStamp > self.lastLocalTimeStampFromAI:
         self.suit.loop('neutral')
         self.clearGoal()
コード例 #56
0
 def setState(self, newState, timestamp):
     if newState == 'Active':
         self.activityStartTime = globalClockDelta.networkToLocalTime(
             timestamp)
コード例 #57
0
 def makeCogDropBarrel(self, timestamp, inResponseClientStamp, barrelModel, barrelIndex, barrelPos):
     localTimeStamp = globalClockDelta.networkToLocalTime(timestamp, bits = 32)
     self.lastLocalTimeStampFromAI = localTimeStamp
     barrelModel.reparentTo(render)
     barrelModel.setPos(barrelPos)
     self.barrel = CTGG.NoBarrelCarried
コード例 #58
0
ファイル: CogThief.py プロジェクト: satire6/Anesidora
 def convertNetworkStampToGameTime(self, timestamp):
     """Convert a network timestamp to game time."""
     localStamp = globalClockDelta.networkToLocalTime(timestamp, bits=32)
     gameTime = self.game.local2GameTime(localStamp)
     return gameTime