42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
from direct.distributed.ClockDelta import *
|
|
|
|
class Racer(object):
|
|
def __init__(self,race,air,avId,zoneId):
|
|
|
|
self.race=race
|
|
self.air=air
|
|
self.avId=avId
|
|
self.zoneId=zoneId
|
|
|
|
self.avatar=air.doId2do[avId]
|
|
self.avatar.takeOutKart(zoneId)
|
|
|
|
self.kart=self.avatar.kart
|
|
|
|
#race necessities
|
|
self.lapT=0
|
|
self.times=[]
|
|
self.totalTime = 0
|
|
self.maxLap=0
|
|
self.hasGag=False
|
|
self.gagType=0
|
|
self.startingPlace=None
|
|
self.baseTime=0
|
|
|
|
#racer State
|
|
self.finished=False
|
|
self.exited=False
|
|
self.anvilTarget=False
|
|
|
|
#in case of disconnect
|
|
self.exitEvent=self.air.getAvatarExitEvent(avId)
|
|
self.race.accept(self.exitEvent,race.unexpectedExit,extraArgs=[avId])
|
|
|
|
def setLapT(self,numLaps,lapT,timestamp):
|
|
self.lapT=numLaps + lapT
|
|
if(numLaps>self.maxLap):
|
|
lapTime = globalClockDelta.networkToLocalTime(timestamp) - self.baseTime
|
|
self.maxLap=numLaps
|
|
self.times.append(lapTime - self.totalTime)
|
|
self.totalTime = lapTime
|