mirror of
https://github.com/Sneed-Group/Poodletooth-iLand
synced 2024-12-23 11:42:39 -06:00
Holocaust elevator antishuffle
This commit is contained in:
parent
a2ec779622
commit
84dc9372cf
27 changed files with 101 additions and 253 deletions
36
dependencies/astron/dclass/stride.dc
vendored
36
dependencies/astron/dclass/stride.dc
vendored
|
@ -1829,19 +1829,17 @@ dclass DistributedElevator : DistributedObject {
|
||||||
fillSlot5(uint32, uint8) broadcast ram;
|
fillSlot5(uint32, uint8) broadcast ram;
|
||||||
fillSlot6(uint32, uint8) broadcast ram;
|
fillSlot6(uint32, uint8) broadcast ram;
|
||||||
fillSlot7(uint32, uint8) broadcast ram;
|
fillSlot7(uint32, uint8) broadcast ram;
|
||||||
emptySlot0(uint32, int8, int16, int16) broadcast ram;
|
emptySlot0(uint32, int16, int16) broadcast ram;
|
||||||
emptySlot1(uint32, int8, int16, int16) broadcast ram;
|
emptySlot1(uint32, int16, int16) broadcast ram;
|
||||||
emptySlot2(uint32, int8, int16, int16) broadcast ram;
|
emptySlot2(uint32, int16, int16) broadcast ram;
|
||||||
emptySlot3(uint32, int8, int16, int16) broadcast ram;
|
emptySlot3(uint32, int16, int16) broadcast ram;
|
||||||
emptySlot4(uint32, int8, int16, int16) broadcast ram;
|
emptySlot4(uint32, int16, int16) broadcast ram;
|
||||||
emptySlot5(uint32, int8, int16, int16) broadcast ram;
|
emptySlot5(uint32, int16, int16) broadcast ram;
|
||||||
emptySlot6(uint32, int8, int16, int16) broadcast ram;
|
emptySlot6(uint32, int16, int16) broadcast ram;
|
||||||
emptySlot7(uint32, int8, int16, int16) broadcast ram;
|
emptySlot7(uint32, int16, int16) broadcast ram;
|
||||||
requestBoard() airecv clsend;
|
requestBoard() airecv clsend;
|
||||||
rejectBoard(uint32, uint8);
|
rejectBoard(uint32, uint8);
|
||||||
requestExit() airecv clsend;
|
requestExit() airecv clsend;
|
||||||
setElevatorTripId(uint32) required broadcast ram;
|
|
||||||
setAntiShuffle(uint8) required broadcast ram;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
dclass DistributedElevatorFSM : DistributedObject {
|
dclass DistributedElevatorFSM : DistributedObject {
|
||||||
|
@ -1855,19 +1853,17 @@ dclass DistributedElevatorFSM : DistributedObject {
|
||||||
fillSlot5(uint32) broadcast ram;
|
fillSlot5(uint32) broadcast ram;
|
||||||
fillSlot6(uint32) broadcast ram;
|
fillSlot6(uint32) broadcast ram;
|
||||||
fillSlot7(uint32) broadcast ram;
|
fillSlot7(uint32) broadcast ram;
|
||||||
emptySlot0(uint32, int8, int16) broadcast ram;
|
emptySlot0(uint32, int16) broadcast ram;
|
||||||
emptySlot1(uint32, int8, int16) broadcast ram;
|
emptySlot1(uint32, int16) broadcast ram;
|
||||||
emptySlot2(uint32, int8, int16) broadcast ram;
|
emptySlot2(uint32, int16) broadcast ram;
|
||||||
emptySlot3(uint32, int8, int16) broadcast ram;
|
emptySlot3(uint32, int16) broadcast ram;
|
||||||
emptySlot4(uint32, int8, int16) broadcast ram;
|
emptySlot4(uint32, int16) broadcast ram;
|
||||||
emptySlot5(uint32, int8, int16) broadcast ram;
|
emptySlot5(uint32, int16) broadcast ram;
|
||||||
emptySlot6(uint32, int8, int16) broadcast ram;
|
emptySlot6(uint32, int16) broadcast ram;
|
||||||
emptySlot7(uint32, int8, int16) broadcast ram;
|
emptySlot7(uint32, int16) broadcast ram;
|
||||||
requestBoard() airecv clsend;
|
requestBoard() airecv clsend;
|
||||||
rejectBoard(uint32, uint8);
|
rejectBoard(uint32, uint8);
|
||||||
requestExit() airecv clsend;
|
requestExit() airecv clsend;
|
||||||
setElevatorTripId(uint32) required broadcast ram;
|
|
||||||
setAntiShuffle(uint8) required broadcast ram;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
dclass DistributedElevatorFloor : DistributedElevatorFSM {
|
dclass DistributedElevatorFloor : DistributedElevatorFSM {
|
||||||
|
|
|
@ -3,7 +3,7 @@ import DistributedBossElevatorAI
|
||||||
|
|
||||||
class DistributedBBElevatorAI(DistributedBossElevatorAI.DistributedBossElevatorAI):
|
class DistributedBBElevatorAI(DistributedBossElevatorAI.DistributedBossElevatorAI):
|
||||||
|
|
||||||
def __init__(self, air, bldg, zone, antiShuffle = 0):
|
def __init__(self, air, bldg, zone):
|
||||||
DistributedBossElevatorAI.DistributedBossElevatorAI.__init__(self, air, bldg, zone, antiShuffle=antiShuffle)
|
DistributedBossElevatorAI.DistributedBossElevatorAI.__init__(self, air, bldg, zone)
|
||||||
self.type = ELEVATOR_BB
|
self.type = ELEVATOR_BB
|
||||||
self.countdownTime = ElevatorData[self.type]['countdown']
|
self.countdownTime = ElevatorData[self.type]['countdown']
|
|
@ -12,8 +12,8 @@ from toontown.suit import DistributedSellbotBossAI
|
||||||
|
|
||||||
class DistributedBossElevatorAI(DistributedElevatorExtAI.DistributedElevatorExtAI):
|
class DistributedBossElevatorAI(DistributedElevatorExtAI.DistributedElevatorExtAI):
|
||||||
|
|
||||||
def __init__(self, air, bldg, zone, antiShuffle = 0):
|
def __init__(self, air, bldg, zone):
|
||||||
DistributedElevatorExtAI.DistributedElevatorExtAI.__init__(self, air, bldg, numSeats=8, antiShuffle=antiShuffle)
|
DistributedElevatorExtAI.DistributedElevatorExtAI.__init__(self, air, bldg, numSeats=8)
|
||||||
self.zone = zone
|
self.zone = zone
|
||||||
self.type = ELEVATOR_VP
|
self.type = ELEVATOR_VP
|
||||||
self.countdownTime = ElevatorData[self.type]['countdown']
|
self.countdownTime = ElevatorData[self.type]['countdown']
|
||||||
|
|
|
@ -3,7 +3,7 @@ import DistributedBossElevatorAI
|
||||||
|
|
||||||
class DistributedCFOElevatorAI(DistributedBossElevatorAI.DistributedBossElevatorAI):
|
class DistributedCFOElevatorAI(DistributedBossElevatorAI.DistributedBossElevatorAI):
|
||||||
|
|
||||||
def __init__(self, air, bldg, zone, antiShuffle = 0):
|
def __init__(self, air, bldg, zone):
|
||||||
DistributedBossElevatorAI.DistributedBossElevatorAI.__init__(self, air, bldg, zone, antiShuffle=antiShuffle)
|
DistributedBossElevatorAI.DistributedBossElevatorAI.__init__(self, air, bldg, zone)
|
||||||
self.type = ELEVATOR_CFO
|
self.type = ELEVATOR_CFO
|
||||||
self.countdownTime = ElevatorData[self.type]['countdown']
|
self.countdownTime = ElevatorData[self.type]['countdown']
|
||||||
|
|
|
@ -3,7 +3,7 @@ import DistributedBossElevatorAI
|
||||||
|
|
||||||
class DistributedCJElevatorAI(DistributedBossElevatorAI.DistributedBossElevatorAI):
|
class DistributedCJElevatorAI(DistributedBossElevatorAI.DistributedBossElevatorAI):
|
||||||
|
|
||||||
def __init__(self, air, bldg, zone, antiShuffle = 0):
|
def __init__(self, air, bldg, zone):
|
||||||
DistributedBossElevatorAI.DistributedBossElevatorAI.__init__(self, air, bldg, zone, antiShuffle=antiShuffle)
|
DistributedBossElevatorAI.DistributedBossElevatorAI.__init__(self, air, bldg, zone)
|
||||||
self.type = ELEVATOR_CJ
|
self.type = ELEVATOR_CJ
|
||||||
self.countdownTime = ElevatorData[self.type]['countdown']
|
self.countdownTime = ElevatorData[self.type]['countdown']
|
||||||
|
|
|
@ -306,9 +306,8 @@ class DistributedClubElevator(DistributedElevatorFSM.DistributedElevatorFSM):
|
||||||
return self.elevatorModel
|
return self.elevatorModel
|
||||||
|
|
||||||
def kickEveryoneOut(self):
|
def kickEveryoneOut(self):
|
||||||
bailFlag = 0
|
|
||||||
for avId, slot in self.boardedAvIds.items():
|
for avId, slot in self.boardedAvIds.items():
|
||||||
self.emptySlot(slot, avId, bailFlag, globalClockDelta.getRealNetworkTime())
|
self.emptySlot(slot, avId, globalClockDelta.getRealNetworkTime())
|
||||||
if avId == base.localAvatar.doId:
|
if avId == base.localAvatar.doId:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -450,7 +449,7 @@ class DistributedClubElevator(DistributedElevatorFSM.DistributedElevatorFSM):
|
||||||
jumpTrack = Sequence(Parallel(toonJumpTrack, Sequence(Wait(1), toonSitTrack)), Func(av.wrtReparentTo, self.golfKart))
|
jumpTrack = Sequence(Parallel(toonJumpTrack, Sequence(Wait(1), toonSitTrack)), Func(av.wrtReparentTo, self.golfKart))
|
||||||
return jumpTrack
|
return jumpTrack
|
||||||
|
|
||||||
def emptySlot(self, index, avId, bailFlag, timestamp):
|
def emptySlot(self, index, avId, timestamp, timeSent=0):
|
||||||
if avId == 0:
|
if avId == 0:
|
||||||
pass
|
pass
|
||||||
elif not self.isSetup:
|
elif not self.isSetup:
|
||||||
|
@ -461,7 +460,7 @@ class DistributedClubElevator(DistributedElevatorFSM.DistributedElevatorFSM):
|
||||||
|
|
||||||
self.deferredSlots = newSlots
|
self.deferredSlots = newSlots
|
||||||
elif avId in self.cr.doId2do:
|
elif avId in self.cr.doId2do:
|
||||||
if bailFlag == 1 and hasattr(self, 'clockNode'):
|
if hasattr(self, 'clockNode'):
|
||||||
if timestamp < self.countdownTime and timestamp >= 0:
|
if timestamp < self.countdownTime and timestamp >= 0:
|
||||||
self.countdown(self.countdownTime - timestamp)
|
self.countdown(self.countdownTime - timestamp)
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -41,13 +41,12 @@ class DistributedClubElevatorAI(DistributedElevatorFSMAI.DistributedElevatorFSMA
|
||||||
id = 0
|
id = 0
|
||||||
DoBlockedRoomCheck = simbase.config.GetBool('elevator-blocked-rooms-check', 1)
|
DoBlockedRoomCheck = simbase.config.GetBool('elevator-blocked-rooms-check', 1)
|
||||||
|
|
||||||
def __init__(self, air, lawOfficeId, bldg, avIds, markerId = None, numSeats = 4, antiShuffle = 0):
|
def __init__(self, air, lawOfficeId, bldg, avIds, markerId = None, numSeats = 4):
|
||||||
DistributedElevatorFSMAI.DistributedElevatorFSMAI.__init__(self, air, bldg, numSeats, antiShuffle = antiShuffle)
|
DistributedElevatorFSMAI.DistributedElevatorFSMAI.__init__(self, air, bldg, numSeats)
|
||||||
FSM.__init__(self, 'ElevatorFloor_%s_FSM' % self.id)
|
FSM.__init__(self, 'ElevatorFloor_%s_FSM' % self.id)
|
||||||
self.type = ElevatorConstants.ELEVATOR_COUNTRY_CLUB
|
self.type = ElevatorConstants.ELEVATOR_COUNTRY_CLUB
|
||||||
self.countdownTime = ElevatorConstants.ElevatorData[self.type]['countdown']
|
self.countdownTime = ElevatorConstants.ElevatorData[self.type]['countdown']
|
||||||
self.lawOfficeId = lawOfficeId
|
self.lawOfficeId = lawOfficeId
|
||||||
self.anyToonsBailed = 0
|
|
||||||
self.avIds = avIds
|
self.avIds = avIds
|
||||||
self.isEntering = 0
|
self.isEntering = 0
|
||||||
self.isLocked = 0
|
self.isLocked = 0
|
||||||
|
@ -121,12 +120,8 @@ class DistributedClubElevatorAI(DistributedElevatorFSMAI.DistributedElevatorFSMA
|
||||||
if seatIndex == None:
|
if seatIndex == None:
|
||||||
pass
|
pass
|
||||||
self.clearFullNow(seatIndex)
|
self.clearFullNow(seatIndex)
|
||||||
bailFlag = 0
|
|
||||||
if self.anyToonsBailed == 0:
|
|
||||||
bailFlag = 1
|
|
||||||
self.resetCountdown()
|
self.resetCountdown()
|
||||||
self.anyToonsBailed = 1
|
self.sendUpdate('emptySlot' + str(seatIndex), [avId, globalClockDelta.getRealNetworkTime()])
|
||||||
self.sendUpdate('emptySlot' + str(seatIndex), [avId, bailFlag, globalClockDelta.getRealNetworkTime()])
|
|
||||||
if self.countFullSeats() == 0:
|
if self.countFullSeats() == 0:
|
||||||
self.request('WaitEmpty')
|
self.request('WaitEmpty')
|
||||||
taskMgr.doMethodLater(ElevatorConstants.TOON_EXIT_ELEVATOR_TIME, self.clearEmptyNow, self.uniqueName('clearEmpty-%s' % seatIndex), extraArgs = (seatIndex,))
|
taskMgr.doMethodLater(ElevatorConstants.TOON_EXIT_ELEVATOR_TIME, self.clearEmptyNow, self.uniqueName('clearEmpty-%s' % seatIndex), extraArgs = (seatIndex,))
|
||||||
|
|
|
@ -250,29 +250,29 @@ class DistributedElevator(DistributedObject.DistributedObject):
|
||||||
self.boardedAvIds[avId] = None
|
self.boardedAvIds[avId] = None
|
||||||
return
|
return
|
||||||
|
|
||||||
def emptySlot0(self, avId, bailFlag, timestamp, time):
|
def emptySlot0(self, avId, timestamp, time):
|
||||||
self.emptySlot(0, avId, bailFlag, timestamp, time)
|
self.emptySlot(0, avId, timestamp, time)
|
||||||
|
|
||||||
def emptySlot1(self, avId, bailFlag, timestamp, time):
|
def emptySlot1(self, avId, timestamp, time):
|
||||||
self.emptySlot(1, avId, bailFlag, timestamp, time)
|
self.emptySlot(1, avId, timestamp, time)
|
||||||
|
|
||||||
def emptySlot2(self, avId, bailFlag, timestamp, time):
|
def emptySlot2(self, avId, timestamp, time):
|
||||||
self.emptySlot(2, avId, bailFlag, timestamp, time)
|
self.emptySlot(2, avId, timestamp, time)
|
||||||
|
|
||||||
def emptySlot3(self, avId, bailFlag, timestamp, time):
|
def emptySlot3(self, avId, timestamp, time):
|
||||||
self.emptySlot(3, avId, bailFlag, timestamp, time)
|
self.emptySlot(3, avId, timestamp, time)
|
||||||
|
|
||||||
def emptySlot4(self, avId, bailFlag, timestamp, time):
|
def emptySlot4(self, avId, timestamp, time):
|
||||||
self.emptySlot(4, avId, bailFlag, timestamp, time)
|
self.emptySlot(4, avId, timestamp, time)
|
||||||
|
|
||||||
def emptySlot5(self, avId, bailFlag, timestamp, time):
|
def emptySlot5(self, avId, timestamp, time):
|
||||||
self.emptySlot(5, avId, bailFlag, timestamp)
|
self.emptySlot(5, avId, timestamp)
|
||||||
|
|
||||||
def emptySlot6(self, avId, bailFlag, timestamp, time):
|
def emptySlot6(self, avId, timestamp, time):
|
||||||
self.emptySlot(6, avId, bailFlag, timestamp, time)
|
self.emptySlot(6, avId, timestamp, time)
|
||||||
|
|
||||||
def emptySlot7(self, avId, bailFlag, timestamp, time):
|
def emptySlot7(self, avId, timestamp, time):
|
||||||
self.emptySlot(7, avId, bailFlag, timestamp, time)
|
self.emptySlot(7, avId, timestamp, time)
|
||||||
|
|
||||||
def notifyToonOffElevator(self, toon):
|
def notifyToonOffElevator(self, toon):
|
||||||
toon.setAnimState('neutral', 1.0)
|
toon.setAnimState('neutral', 1.0)
|
||||||
|
@ -285,7 +285,7 @@ class DistributedElevator(DistributedObject.DistributedObject):
|
||||||
else:
|
else:
|
||||||
toon.startSmooth()
|
toon.startSmooth()
|
||||||
|
|
||||||
def emptySlot(self, index, avId, bailFlag, timestamp, timeSent = 0):
|
def emptySlot(self, index, avId, timestamp, timeSent = 0):
|
||||||
if self.fillSlotTrack:
|
if self.fillSlotTrack:
|
||||||
self.fillSlotTrack.finish()
|
self.fillSlotTrack.finish()
|
||||||
self.fillSlotTrack = None
|
self.fillSlotTrack = None
|
||||||
|
@ -303,7 +303,7 @@ class DistributedElevator(DistributedObject.DistributedObject):
|
||||||
if timeSent > 0:
|
if timeSent > 0:
|
||||||
timeToSet = timeSent
|
timeToSet = timeSent
|
||||||
if avId in self.cr.doId2do:
|
if avId in self.cr.doId2do:
|
||||||
if bailFlag == 1 and hasattr(self, 'clockNode'):
|
if hasattr(self, 'clockNode'):
|
||||||
if timestamp < timeToSet and timestamp >= 0:
|
if timestamp < timeToSet and timestamp >= 0:
|
||||||
self.countdown(timeToSet - timestamp)
|
self.countdown(timeToSet - timestamp)
|
||||||
else:
|
else:
|
||||||
|
@ -333,18 +333,14 @@ class DistributedElevator(DistributedObject.DistributedObject):
|
||||||
|
|
||||||
def handleEnterSphere(self, collEntry):
|
def handleEnterSphere(self, collEntry):
|
||||||
self.notify.debug('Entering Elevator Sphere....')
|
self.notify.debug('Entering Elevator Sphere....')
|
||||||
if self.elevatorTripId and localAvatar.lastElevatorLeft == self.elevatorTripId:
|
if base.localAvatar.hp > 0:
|
||||||
self.rejectBoard(base.localAvatar.doId, REJECT_SHUFFLE)
|
|
||||||
elif base.localAvatar.hp > 0:
|
|
||||||
self.cr.playGame.getPlace().detectedElevatorCollision(self)
|
self.cr.playGame.getPlace().detectedElevatorCollision(self)
|
||||||
toon = base.localAvatar
|
toon = base.localAvatar
|
||||||
self.sendUpdate('requestBoard', [])
|
self.sendUpdate('requestBoard', [])
|
||||||
|
|
||||||
def rejectBoard(self, avId, reason = 0):
|
def rejectBoard(self, avId, reason = 0):
|
||||||
if hasattr(base.localAvatar, 'elevatorNotifier'):
|
if hasattr(base.localAvatar, 'elevatorNotifier'):
|
||||||
if reason == REJECT_SHUFFLE:
|
if reason == REJECT_PROMOTION:
|
||||||
base.localAvatar.elevatorNotifier.showMe(TTLocalizer.ElevatorHoppedOff)
|
|
||||||
elif reason == REJECT_PROMOTION:
|
|
||||||
base.localAvatar.elevatorNotifier.showMe(TTLocalizer.BossElevatorRejectMessage)
|
base.localAvatar.elevatorNotifier.showMe(TTLocalizer.BossElevatorRejectMessage)
|
||||||
doneStatus = {'where': 'reject'}
|
doneStatus = {'where': 'reject'}
|
||||||
elevator = self.getPlaceElevator()
|
elevator = self.getPlaceElevator()
|
||||||
|
@ -368,7 +364,6 @@ class DistributedElevator(DistributedObject.DistributedObject):
|
||||||
return taskMgr.add(countdownTask, self.uniqueName('elevatorTimerTask'))
|
return taskMgr.add(countdownTask, self.uniqueName('elevatorTimerTask'))
|
||||||
|
|
||||||
def handleExitButton(self):
|
def handleExitButton(self):
|
||||||
localAvatar.lastElevatorLeft = self.elevatorTripId
|
|
||||||
self.sendUpdate('requestExit')
|
self.sendUpdate('requestExit')
|
||||||
|
|
||||||
def enterWaitCountdown(self, ts):
|
def enterWaitCountdown(self, ts):
|
||||||
|
@ -481,18 +476,6 @@ class DistributedElevator(DistributedObject.DistributedObject):
|
||||||
self.notify.warning("Place didn't exist")
|
self.notify.warning("Place didn't exist")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def setElevatorTripId(self, id):
|
|
||||||
self.elevatorTripId = id
|
|
||||||
|
|
||||||
def getElevatorTripId(self):
|
|
||||||
return self.elevatorTripId
|
|
||||||
|
|
||||||
def setAntiShuffle(self, antiShuffle):
|
|
||||||
self.antiShuffle = antiShuffle
|
|
||||||
|
|
||||||
def getAntiShuffle(self):
|
|
||||||
return self.antiShuffle
|
|
||||||
|
|
||||||
def storeToonTrack(self, avId, track):
|
def storeToonTrack(self, avId, track):
|
||||||
self.clearToonTrack(avId)
|
self.clearToonTrack(avId)
|
||||||
self.__toonTracks[avId] = track
|
self.__toonTracks[avId] = track
|
||||||
|
|
|
@ -11,21 +11,13 @@ from direct.directnotify import DirectNotifyGlobal
|
||||||
class DistributedElevatorAI(DistributedObjectAI.DistributedObjectAI):
|
class DistributedElevatorAI(DistributedObjectAI.DistributedObjectAI):
|
||||||
notify = DirectNotifyGlobal.directNotify.newCategory('DistributedElevatorAI')
|
notify = DirectNotifyGlobal.directNotify.newCategory('DistributedElevatorAI')
|
||||||
|
|
||||||
def __init__(self, air, bldg, numSeats = 4, antiShuffle = 0):
|
def __init__(self, air, bldg, numSeats = 4):
|
||||||
DistributedObjectAI.DistributedObjectAI.__init__(self, air)
|
DistributedObjectAI.DistributedObjectAI.__init__(self, air)
|
||||||
self.type = ELEVATOR_NORMAL
|
self.type = ELEVATOR_NORMAL
|
||||||
self.countdownTime = ElevatorData[self.type]['countdown']
|
self.countdownTime = ElevatorData[self.type]['countdown']
|
||||||
self.bldg = bldg
|
self.bldg = bldg
|
||||||
self.bldgDoId = bldg.getDoId()
|
self.bldgDoId = bldg.getDoId()
|
||||||
self.seats = []
|
self.seats = []
|
||||||
self.setAntiShuffle(antiShuffle)
|
|
||||||
if self.antiShuffle:
|
|
||||||
if not hasattr(simbase.air, 'elevatorTripId'):
|
|
||||||
simbase.air.elevatorTripId = 1
|
|
||||||
self.elevatorTripId = simbase.air.elevatorTripId
|
|
||||||
simbase.air.elevatorTripId += 1
|
|
||||||
else:
|
|
||||||
self.elevatorTripId = 0
|
|
||||||
for seat in xrange(numSeats):
|
for seat in xrange(numSeats):
|
||||||
self.seats.append(None)
|
self.seats.append(None)
|
||||||
|
|
||||||
|
@ -237,7 +229,6 @@ class DistributedElevatorAI(DistributedObjectAI.DistributedObjectAI):
|
||||||
def exitWaitCountdown(self):
|
def exitWaitCountdown(self):
|
||||||
self.accepting = 0
|
self.accepting = 0
|
||||||
taskMgr.remove(self.uniqueName('countdown-timer'))
|
taskMgr.remove(self.uniqueName('countdown-timer'))
|
||||||
self.newTrip()
|
|
||||||
|
|
||||||
def enterAllAboard(self):
|
def enterAllAboard(self):
|
||||||
self.accepting = 0
|
self.accepting = 0
|
||||||
|
@ -266,23 +257,3 @@ class DistributedElevatorAI(DistributedObjectAI.DistributedObjectAI):
|
||||||
|
|
||||||
def exitWaitEmpty(self):
|
def exitWaitEmpty(self):
|
||||||
self.accepting = 0
|
self.accepting = 0
|
||||||
|
|
||||||
def setElevatorTripId(self, id):
|
|
||||||
self.elevatorTripId = id
|
|
||||||
|
|
||||||
def getElevatorTripId(self):
|
|
||||||
return self.elevatorTripId
|
|
||||||
|
|
||||||
def newTrip(self):
|
|
||||||
if self.antiShuffle:
|
|
||||||
self.elevatorTripId = simbase.air.elevatorTripId
|
|
||||||
if simbase.air.elevatorTripId > 2100000000:
|
|
||||||
simbase.air.elevatorTripId = 1
|
|
||||||
simbase.air.elevatorTripId += 1
|
|
||||||
self.sendUpdate('setElevatorTripId', [self.elevatorTripId])
|
|
||||||
|
|
||||||
def setAntiShuffle(self, antiShuffle):
|
|
||||||
self.antiShuffle = antiShuffle
|
|
||||||
|
|
||||||
def getAntiShuffle(self):
|
|
||||||
return self.antiShuffle
|
|
|
@ -99,8 +99,6 @@ class DistributedElevatorExt(DistributedElevator.DistributedElevator):
|
||||||
if hasattr(localAvatar, 'boardingParty') and localAvatar.boardingParty and localAvatar.boardingParty.getGroupLeader(localAvatar.doId):
|
if hasattr(localAvatar, 'boardingParty') and localAvatar.boardingParty and localAvatar.boardingParty.getGroupLeader(localAvatar.doId):
|
||||||
if localAvatar.boardingParty.getGroupLeader(localAvatar.doId) == localAvatar.doId:
|
if localAvatar.boardingParty.getGroupLeader(localAvatar.doId) == localAvatar.doId:
|
||||||
localAvatar.boardingParty.handleEnterElevator(self)
|
localAvatar.boardingParty.handleEnterElevator(self)
|
||||||
elif self.elevatorTripId and localAvatar.lastElevatorLeft == self.elevatorTripId:
|
|
||||||
self.rejectBoard(base.localAvatar.doId, REJECT_SHUFFLE)
|
|
||||||
elif base.localAvatar.hp > 0:
|
elif base.localAvatar.hp > 0:
|
||||||
toon = base.localAvatar
|
toon = base.localAvatar
|
||||||
self.sendUpdate('requestBoard', [])
|
self.sendUpdate('requestBoard', [])
|
||||||
|
|
|
@ -11,11 +11,9 @@ from direct.directnotify import DirectNotifyGlobal
|
||||||
class DistributedElevatorExtAI(DistributedElevatorAI.DistributedElevatorAI):
|
class DistributedElevatorExtAI(DistributedElevatorAI.DistributedElevatorAI):
|
||||||
notify = DirectNotifyGlobal.directNotify.newCategory('DistributedElevatorExtAI')
|
notify = DirectNotifyGlobal.directNotify.newCategory('DistributedElevatorExtAI')
|
||||||
|
|
||||||
def __init__(self, air, bldg, numSeats = 4, antiShuffle = 0):
|
def __init__(self, air, bldg, numSeats = 4):
|
||||||
DistributedElevatorAI.DistributedElevatorAI.__init__(self, air, bldg, numSeats, antiShuffle=antiShuffle)
|
DistributedElevatorAI.DistributedElevatorAI.__init__(self, air, bldg, numSeats)
|
||||||
self.anyToonsBailed = 0
|
|
||||||
self.boardingParty = None
|
self.boardingParty = None
|
||||||
return
|
|
||||||
|
|
||||||
def delete(self):
|
def delete(self):
|
||||||
for seatIndex in xrange(len(self.seats)):
|
for seatIndex in xrange(len(self.seats)):
|
||||||
|
@ -52,33 +50,11 @@ class DistributedElevatorExtAI(DistributedElevatorAI.DistributedElevatorAI):
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
self.clearFullNow(seatIndex)
|
self.clearFullNow(seatIndex)
|
||||||
bailFlag = 0
|
self.s
|
||||||
timeToSend = self.countdownTime
|
timeToSend = self.countdownTime
|
||||||
if self.antiShuffle:
|
|
||||||
myTask = taskMgr.getTasksNamed(self.uniqueName('countdown-timer'))[0]
|
|
||||||
timeLeft = myTask.wakeTime - globalClock.getFrameTime()
|
|
||||||
timeLeft = max(0, timeLeft)
|
|
||||||
timeToSet = timeLeft + 10.0
|
|
||||||
timeToSet = min(timeLeft + 10.0, self.countdownTime)
|
|
||||||
self.setCountdown(timeToSet)
|
|
||||||
timeToSend = timeToSet
|
|
||||||
self.sendUpdate('emptySlot' + str(seatIndex), [avId,
|
self.sendUpdate('emptySlot' + str(seatIndex), [avId,
|
||||||
1,
|
|
||||||
globalClockDelta.getRealNetworkTime(),
|
globalClockDelta.getRealNetworkTime(),
|
||||||
timeToSend])
|
self.countdownTime])
|
||||||
elif self.anyToonsBailed == 0:
|
|
||||||
bailFlag = 1
|
|
||||||
self.resetCountdown()
|
|
||||||
self.anyToonsBailed = 1
|
|
||||||
self.sendUpdate('emptySlot' + str(seatIndex), [avId,
|
|
||||||
bailFlag,
|
|
||||||
globalClockDelta.getRealNetworkTime(),
|
|
||||||
timeToSend])
|
|
||||||
else:
|
|
||||||
self.sendUpdate('emptySlot' + str(seatIndex), [avId,
|
|
||||||
bailFlag,
|
|
||||||
globalClockDelta.getRealNetworkTime(),
|
|
||||||
timeToSend])
|
|
||||||
if self.countFullSeats() == 0:
|
if self.countFullSeats() == 0:
|
||||||
self.fsm.request('waitEmpty')
|
self.fsm.request('waitEmpty')
|
||||||
taskMgr.doMethodLater(TOON_EXIT_ELEVATOR_TIME, self.clearEmptyNow, self.uniqueName('clearEmpty-%s' % seatIndex), extraArgs=(seatIndex,))
|
taskMgr.doMethodLater(TOON_EXIT_ELEVATOR_TIME, self.clearEmptyNow, self.uniqueName('clearEmpty-%s' % seatIndex), extraArgs=(seatIndex,))
|
||||||
|
@ -94,7 +70,6 @@ class DistributedElevatorExtAI(DistributedElevatorAI.DistributedElevatorAI):
|
||||||
|
|
||||||
def enterWaitEmpty(self):
|
def enterWaitEmpty(self):
|
||||||
DistributedElevatorAI.DistributedElevatorAI.enterWaitEmpty(self)
|
DistributedElevatorAI.DistributedElevatorAI.enterWaitEmpty(self)
|
||||||
self.anyToonsBailed = 0
|
|
||||||
|
|
||||||
def enterWaitCountdown(self):
|
def enterWaitCountdown(self):
|
||||||
DistributedElevatorAI.DistributedElevatorAI.enterWaitCountdown(self)
|
DistributedElevatorAI.DistributedElevatorAI.enterWaitCountdown(self)
|
||||||
|
|
|
@ -223,29 +223,29 @@ class DistributedElevatorFSM(DistributedObject.DistributedObject, FSM):
|
||||||
track.start()
|
track.start()
|
||||||
self.boardedAvIds[avId] = index
|
self.boardedAvIds[avId] = index
|
||||||
|
|
||||||
def emptySlot0(self, avId, bailFlag, timestamp):
|
def emptySlot0(self, avId, timestamp):
|
||||||
self.emptySlot(0, avId, bailFlag, timestamp)
|
self.emptySlot(0, avId, timestamp)
|
||||||
|
|
||||||
def emptySlot1(self, avId, bailFlag, timestamp):
|
def emptySlot1(self, avId, timestamp):
|
||||||
self.emptySlot(1, avId, bailFlag, timestamp)
|
self.emptySlot(1, avId, timestamp)
|
||||||
|
|
||||||
def emptySlot2(self, avId, bailFlag, timestamp):
|
def emptySlot2(self, avId, timestamp):
|
||||||
self.emptySlot(2, avId, bailFlag, timestamp)
|
self.emptySlot(2, avId, timestamp)
|
||||||
|
|
||||||
def emptySlot3(self, avId, bailFlag, timestamp):
|
def emptySlot3(self, avId, timestamp):
|
||||||
self.emptySlot(3, avId, bailFlag, timestamp)
|
self.emptySlot(3, avId, timestamp)
|
||||||
|
|
||||||
def emptySlot4(self, avId, bailFlag, timestamp):
|
def emptySlot4(self, avId, timestamp):
|
||||||
self.emptySlot(4, avId, bailFlag, timestamp)
|
self.emptySlot(4, avId, timestamp)
|
||||||
|
|
||||||
def emptySlot5(self, avId, bailFlag, timestamp):
|
def emptySlot5(self, avId, timestamp):
|
||||||
self.emptySlot(5, avId, bailFlag, timestamp)
|
self.emptySlot(5, avId, timestamp)
|
||||||
|
|
||||||
def emptySlot6(self, avId, bailFlag, timestamp):
|
def emptySlot6(self, avId, timestamp):
|
||||||
self.emptySlot(6, avId, bailFlag, timestamp)
|
self.emptySlot(6, avId, timestamp)
|
||||||
|
|
||||||
def emptySlot7(self, avId, bailFlag, timestamp):
|
def emptySlot7(self, avId, timestamp):
|
||||||
self.emptySlot(7, avId, bailFlag, timestamp)
|
self.emptySlot(7, avId, timestamp)
|
||||||
|
|
||||||
def notifyToonOffElevator(self, toon):
|
def notifyToonOffElevator(self, toon):
|
||||||
if self.cr:
|
if self.cr:
|
||||||
|
@ -260,7 +260,7 @@ class DistributedElevatorFSM(DistributedObject.DistributedObject, FSM):
|
||||||
toon.startSmooth()
|
toon.startSmooth()
|
||||||
return
|
return
|
||||||
|
|
||||||
def emptySlot(self, index, avId, bailFlag, timestamp):
|
def emptySlot(self, index, avId, timestamp):
|
||||||
print 'Emptying slot: %d for %d' % (index, avId)
|
print 'Emptying slot: %d for %d' % (index, avId)
|
||||||
if avId == 0:
|
if avId == 0:
|
||||||
pass
|
pass
|
||||||
|
@ -272,7 +272,7 @@ class DistributedElevatorFSM(DistributedObject.DistributedObject, FSM):
|
||||||
|
|
||||||
self.deferredSlots = newSlots
|
self.deferredSlots = newSlots
|
||||||
elif avId in self.cr.doId2do:
|
elif avId in self.cr.doId2do:
|
||||||
if bailFlag == 1 and hasattr(self, 'clockNode'):
|
if hasattr(self, 'clockNode'):
|
||||||
if timestamp < self.countdownTime and timestamp >= 0:
|
if timestamp < self.countdownTime and timestamp >= 0:
|
||||||
self.countdown(self.countdownTime - timestamp)
|
self.countdown(self.countdownTime - timestamp)
|
||||||
else:
|
else:
|
||||||
|
@ -303,10 +303,7 @@ class DistributedElevatorFSM(DistributedObject.DistributedObject, FSM):
|
||||||
|
|
||||||
def handleEnterSphere(self, collEntry):
|
def handleEnterSphere(self, collEntry):
|
||||||
self.notify.debug('Entering Elevator Sphere....')
|
self.notify.debug('Entering Elevator Sphere....')
|
||||||
print 'FSMhandleEnterSphere elevator%s avatar%s' % (self.elevatorTripId, localAvatar.lastElevatorLeft)
|
if base.localAvatar.hp > 0:
|
||||||
if self.elevatorTripId and localAvatar.lastElevatorLeft == self.elevatorTripId:
|
|
||||||
self.rejectBoard(base.localAvatar.doId, REJECT_SHUFFLE)
|
|
||||||
elif base.localAvatar.hp > 0:
|
|
||||||
self.cr.playGame.getPlace().detectedElevatorCollision(self)
|
self.cr.playGame.getPlace().detectedElevatorCollision(self)
|
||||||
toon = base.localAvatar
|
toon = base.localAvatar
|
||||||
self.sendUpdate('requestBoard', [])
|
self.sendUpdate('requestBoard', [])
|
||||||
|
@ -314,9 +311,7 @@ class DistributedElevatorFSM(DistributedObject.DistributedObject, FSM):
|
||||||
def rejectBoard(self, avId, reason = 0):
|
def rejectBoard(self, avId, reason = 0):
|
||||||
print 'rejectBoard %s' % reason
|
print 'rejectBoard %s' % reason
|
||||||
if hasattr(base.localAvatar, 'elevatorNotifier'):
|
if hasattr(base.localAvatar, 'elevatorNotifier'):
|
||||||
if reason == REJECT_SHUFFLE:
|
if reason == REJECT_PROMOTION:
|
||||||
base.localAvatar.elevatorNotifier.showMe(TTLocalizer.ElevatorHoppedOff)
|
|
||||||
elif reason == REJECT_PROMOTION:
|
|
||||||
base.localAvatar.elevatorNotifier.showMe(TTLocalizer.BossElevatorRejectMessage)
|
base.localAvatar.elevatorNotifier.showMe(TTLocalizer.BossElevatorRejectMessage)
|
||||||
elif reason == REJECT_BLOCKED_ROOM:
|
elif reason == REJECT_BLOCKED_ROOM:
|
||||||
base.localAvatar.elevatorNotifier.showMe(TTLocalizer.ElevatorBlockedRoom)
|
base.localAvatar.elevatorNotifier.showMe(TTLocalizer.ElevatorBlockedRoom)
|
||||||
|
@ -461,17 +456,5 @@ class DistributedElevatorFSM(DistributedObject.DistributedObject, FSM):
|
||||||
point = self.elevatorPoints[index]
|
point = self.elevatorPoints[index]
|
||||||
return point
|
return point
|
||||||
|
|
||||||
def setElevatorTripId(self, id):
|
|
||||||
self.elevatorTripId = id
|
|
||||||
|
|
||||||
def getElevatorTripId(self):
|
|
||||||
return self.elevatorTripId
|
|
||||||
|
|
||||||
def setAntiShuffle(self, antiShuffle):
|
|
||||||
self.antiShuffle = antiShuffle
|
|
||||||
|
|
||||||
def getAntiShuffle(self):
|
|
||||||
return self.antiShuffle
|
|
||||||
|
|
||||||
def getDestName(self):
|
def getDestName(self):
|
||||||
return None
|
return None
|
||||||
|
|
|
@ -38,7 +38,7 @@ class DistributedElevatorFSMAI(DistributedObjectAI.DistributedObjectAI, FSM):
|
||||||
'Opening'] }
|
'Opening'] }
|
||||||
id = 0
|
id = 0
|
||||||
|
|
||||||
def __init__(self, air, bldg, numSeats = 4, antiShuffle = 0):
|
def __init__(self, air, bldg, numSeats = 4):
|
||||||
DistributedObjectAI.DistributedObjectAI.__init__(self, air)
|
DistributedObjectAI.DistributedObjectAI.__init__(self, air)
|
||||||
FSM.__init__(self, 'Elevator_%s_FSM' % self.id)
|
FSM.__init__(self, 'Elevator_%s_FSM' % self.id)
|
||||||
self.type = ELEVATOR_NORMAL
|
self.type = ELEVATOR_NORMAL
|
||||||
|
@ -49,15 +49,6 @@ class DistributedElevatorFSMAI(DistributedObjectAI.DistributedObjectAI, FSM):
|
||||||
for seat in xrange(numSeats):
|
for seat in xrange(numSeats):
|
||||||
self.seats.append(None)
|
self.seats.append(None)
|
||||||
self.accepting = 0
|
self.accepting = 0
|
||||||
self.setAntiShuffle(antiShuffle)
|
|
||||||
if self.antiShuffle:
|
|
||||||
if not hasattr(simbase.air, 'elevatorTripId'):
|
|
||||||
simbase.air.elevatorTripId = 1
|
|
||||||
|
|
||||||
self.elevatorTripId = simbase.air.elevatorTripId
|
|
||||||
simbase.air.elevatorTripId += 1
|
|
||||||
else:
|
|
||||||
self.elevatorTripId = 0
|
|
||||||
|
|
||||||
def delete(self):
|
def delete(self):
|
||||||
del self.bldg
|
del self.bldg
|
||||||
|
@ -216,7 +207,6 @@ class DistributedElevatorFSMAI(DistributedObjectAI.DistributedObjectAI, FSM):
|
||||||
def exitWaitCountdown(self):
|
def exitWaitCountdown(self):
|
||||||
self.accepting = 0
|
self.accepting = 0
|
||||||
taskMgr.remove(self.uniqueName('countdown-timer'))
|
taskMgr.remove(self.uniqueName('countdown-timer'))
|
||||||
self.newTrip()
|
|
||||||
|
|
||||||
def enterAllAboard(self):
|
def enterAllAboard(self):
|
||||||
self.accepting = 0
|
self.accepting = 0
|
||||||
|
@ -250,23 +240,3 @@ class DistributedElevatorFSMAI(DistributedObjectAI.DistributedObjectAI, FSM):
|
||||||
|
|
||||||
def exitWaitEmpty(self):
|
def exitWaitEmpty(self):
|
||||||
self.accepting = 0
|
self.accepting = 0
|
||||||
|
|
||||||
def setElevatorTripId(self, id):
|
|
||||||
self.elevatorTripId = id
|
|
||||||
|
|
||||||
def getElevatorTripId(self):
|
|
||||||
return self.elevatorTripId
|
|
||||||
|
|
||||||
def newTrip(self):
|
|
||||||
if self.antiShuffle:
|
|
||||||
self.elevatorTripId = simbase.air.elevatorTripId
|
|
||||||
if simbase.air.elevatorTripId > 2100000000:
|
|
||||||
simbase.air.elevatorTripId = 1
|
|
||||||
simbase.air.elevatorTripId += 1
|
|
||||||
self.sendUpdate('setElevatorTripId', [self.elevatorTripId])
|
|
||||||
|
|
||||||
def setAntiShuffle(self, antiShuffle):
|
|
||||||
self.antiShuffle = antiShuffle
|
|
||||||
|
|
||||||
def getAntiShuffle(self):
|
|
||||||
return self.antiShuffle
|
|
|
@ -264,9 +264,8 @@ class DistributedElevatorFloor(DistributedElevatorFSM.DistributedElevatorFSM):
|
||||||
return self.elevatorModel
|
return self.elevatorModel
|
||||||
|
|
||||||
def kickEveryoneOut(self):
|
def kickEveryoneOut(self):
|
||||||
bailFlag = 0
|
|
||||||
for avId, slot in self.boardedAvIds.items():
|
for avId, slot in self.boardedAvIds.items():
|
||||||
self.emptySlot(slot, avId, bailFlag, globalClockDelta.getRealNetworkTime())
|
self.emptySlot(slot, avId, globalClockDelta.getRealNetworkTime())
|
||||||
if avId == base.localAvatar.doId:
|
if avId == base.localAvatar.doId:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
|
@ -40,13 +40,12 @@ class DistributedElevatorFloorAI(DistributedElevatorFSMAI.DistributedElevatorFSM
|
||||||
'Opening'] }
|
'Opening'] }
|
||||||
id = 0
|
id = 0
|
||||||
|
|
||||||
def __init__(self, air, lawOfficeId, bldg, avIds, markerId = None, numSeats = 4, antiShuffle = 0):
|
def __init__(self, air, lawOfficeId, bldg, avIds, markerId = None, numSeats = 4):
|
||||||
DistributedElevatorFSMAI.DistributedElevatorFSMAI.__init__(self, air, bldg, numSeats, antiShuffle = antiShuffle)
|
DistributedElevatorFSMAI.DistributedElevatorFSMAI.__init__(self, air, bldg, numSeats)
|
||||||
FSM.__init__(self, 'ElevatorFloor_%s_FSM' % self.id)
|
FSM.__init__(self, 'ElevatorFloor_%s_FSM' % self.id)
|
||||||
self.type = ELEVATOR_STAGE
|
self.type = ELEVATOR_STAGE
|
||||||
self.countdownTime = ElevatorData[self.type]['countdown']
|
self.countdownTime = ElevatorData[self.type]['countdown']
|
||||||
self.lawOfficeId = lawOfficeId
|
self.lawOfficeId = lawOfficeId
|
||||||
self.anyToonsBailed = 0
|
|
||||||
self.avIds = avIds
|
self.avIds = avIds
|
||||||
self.isEntering = 0
|
self.isEntering = 0
|
||||||
self.isLocked = 0
|
self.isLocked = 0
|
||||||
|
@ -120,12 +119,8 @@ class DistributedElevatorFloorAI(DistributedElevatorFSMAI.DistributedElevatorFSM
|
||||||
if seatIndex == None:
|
if seatIndex == None:
|
||||||
pass
|
pass
|
||||||
self.clearFullNow(seatIndex)
|
self.clearFullNow(seatIndex)
|
||||||
bailFlag = 0
|
|
||||||
if self.anyToonsBailed == 0:
|
|
||||||
bailFlag = 1
|
|
||||||
self.resetCountdown()
|
self.resetCountdown()
|
||||||
self.anyToonsBailed = 1
|
self.sendUpdate('emptySlot' + str(seatIndex), [avId, globalClockDelta.getRealNetworkTime()])
|
||||||
self.sendUpdate('emptySlot' + str(seatIndex), [avId, bailFlag, globalClockDelta.getRealNetworkTime()])
|
|
||||||
if self.countFullSeats() == 0:
|
if self.countFullSeats() == 0:
|
||||||
self.request('WaitEmpty')
|
self.request('WaitEmpty')
|
||||||
taskMgr.doMethodLater(TOON_EXIT_ELEVATOR_TIME, self.clearEmptyNow, self.uniqueName('clearEmpty-%s' % seatIndex), extraArgs = (seatIndex,))
|
taskMgr.doMethodLater(TOON_EXIT_ELEVATOR_TIME, self.clearEmptyNow, self.uniqueName('clearEmpty-%s' % seatIndex), extraArgs = (seatIndex,))
|
||||||
|
|
|
@ -3,7 +3,7 @@ import DistributedBossElevatorAI
|
||||||
|
|
||||||
class DistributedVPElevatorAI(DistributedBossElevatorAI.DistributedBossElevatorAI):
|
class DistributedVPElevatorAI(DistributedBossElevatorAI.DistributedBossElevatorAI):
|
||||||
|
|
||||||
def __init__(self, air, bldg, zone, antiShuffle = 0):
|
def __init__(self, air, bldg, zone):
|
||||||
DistributedBossElevatorAI.DistributedBossElevatorAI.__init__(self, air, bldg, zone, antiShuffle=antiShuffle)
|
DistributedBossElevatorAI.DistributedBossElevatorAI.__init__(self, air, bldg, zone)
|
||||||
self.type = ELEVATOR_VP
|
self.type = ELEVATOR_VP
|
||||||
self.countdownTime = ElevatorData[self.type]['countdown']
|
self.countdownTime = ElevatorData[self.type]['countdown']
|
||||||
|
|
|
@ -91,16 +91,8 @@ class Elevator(StateData.StateData):
|
||||||
if hasattr(localAvatar, 'boardingParty') and localAvatar.boardingParty and localAvatar.boardingParty.getGroupLeader(localAvatar.doId) and localAvatar.boardingParty.getGroupLeader(localAvatar.doId) != localAvatar.doId:
|
if hasattr(localAvatar, 'boardingParty') and localAvatar.boardingParty and localAvatar.boardingParty.getGroupLeader(localAvatar.doId) and localAvatar.boardingParty.getGroupLeader(localAvatar.doId) != localAvatar.doId:
|
||||||
self.exitButton['command'] = None
|
self.exitButton['command'] = None
|
||||||
self.exitButton.hide()
|
self.exitButton.hide()
|
||||||
if self.distElevator.antiShuffle:
|
|
||||||
self.hopWarning = DirectLabel(parent=self.exitButton, relief=None, pos=Vec3(0, 0, 0.0), text=TTLocalizer.ElevatorStayOff, text_fg=(0.9, 0.9, 0.9, 1), text_pos=(0, -1.1), text_scale=0.6)
|
|
||||||
self.hopWarning.reparentTo(self.exitButton.stateNodePath[2])
|
|
||||||
else:
|
|
||||||
self.hopWarning = None
|
|
||||||
return
|
|
||||||
|
|
||||||
def disableExitButton(self):
|
def disableExitButton(self):
|
||||||
if self.hopWarning:
|
|
||||||
self.hopWarning.destroy()
|
|
||||||
self.exitButton.destroy()
|
self.exitButton.destroy()
|
||||||
|
|
||||||
def enterRequestExit(self):
|
def enterRequestExit(self):
|
||||||
|
|
|
@ -10,11 +10,10 @@ ELEVATOR_BB = 7
|
||||||
ELEVATOR_COUNTRY_CLUB = 8
|
ELEVATOR_COUNTRY_CLUB = 8
|
||||||
ELEVATOR_FIELD = 9
|
ELEVATOR_FIELD = 9
|
||||||
REJECT_NOREASON = 0
|
REJECT_NOREASON = 0
|
||||||
REJECT_SHUFFLE = 1
|
REJECT_NOSEAT = 1
|
||||||
REJECT_NOSEAT = 2
|
REJECT_PROMOTION = 2
|
||||||
REJECT_PROMOTION = 3
|
REJECT_BLOCKED_ROOM = 3
|
||||||
REJECT_BLOCKED_ROOM = 4
|
REJECT_BOARDINGPARTY = 4
|
||||||
REJECT_BOARDINGPARTY = 5
|
|
||||||
MAX_GROUP_BOARDING_TIME = 6.0
|
MAX_GROUP_BOARDING_TIME = 6.0
|
||||||
ElevatorData = {ELEVATOR_NORMAL: {'openTime': 2.0,
|
ElevatorData = {ELEVATOR_NORMAL: {'openTime': 2.0,
|
||||||
'closeTime': 2.0,
|
'closeTime': 2.0,
|
||||||
|
|
|
@ -353,9 +353,7 @@ class DistributedCogKart(DistributedElevatorExt.DistributedElevatorExt):
|
||||||
def rejectBoard(self, avId, reason = 0):
|
def rejectBoard(self, avId, reason = 0):
|
||||||
print 'rejectBoard %s' % reason
|
print 'rejectBoard %s' % reason
|
||||||
if hasattr(base.localAvatar, 'elevatorNotifier'):
|
if hasattr(base.localAvatar, 'elevatorNotifier'):
|
||||||
if reason == ElevatorConstants.REJECT_SHUFFLE:
|
if reason == ElevatorConstants.REJECT_PROMOTION:
|
||||||
base.localAvatar.elevatorNotifier.showMe(TTLocalizer.ElevatorHoppedOff)
|
|
||||||
elif reason == ElevatorConstants.REJECT_PROMOTION:
|
|
||||||
base.localAvatar.elevatorNotifier.showMe(TTLocalizer.BossElevatorRejectMessage)
|
base.localAvatar.elevatorNotifier.showMe(TTLocalizer.BossElevatorRejectMessage)
|
||||||
doneStatus = {'where': 'reject'}
|
doneStatus = {'where': 'reject'}
|
||||||
elevator = self.getPlaceElevator()
|
elevator = self.getPlaceElevator()
|
||||||
|
|
|
@ -9,8 +9,8 @@ from direct.task import Task
|
||||||
|
|
||||||
class DistributedFactoryElevatorExtAI(DistributedElevatorExtAI.DistributedElevatorExtAI):
|
class DistributedFactoryElevatorExtAI(DistributedElevatorExtAI.DistributedElevatorExtAI):
|
||||||
|
|
||||||
def __init__(self, air, bldg, factoryId, entranceId, antiShuffle = 0):
|
def __init__(self, air, bldg, factoryId, entranceId):
|
||||||
DistributedElevatorExtAI.DistributedElevatorExtAI.__init__(self, air, bldg, antiShuffle=antiShuffle)
|
DistributedElevatorExtAI.DistributedElevatorExtAI.__init__(self, air, bldg)
|
||||||
self.factoryId = factoryId
|
self.factoryId = factoryId
|
||||||
self.entranceId = entranceId
|
self.entranceId = entranceId
|
||||||
|
|
||||||
|
|
|
@ -9,8 +9,8 @@ from toontown.toonbase import ToontownGlobals
|
||||||
|
|
||||||
|
|
||||||
class DistributedLawOfficeElevatorExtAI(DistributedElevatorExtAI.DistributedElevatorExtAI):
|
class DistributedLawOfficeElevatorExtAI(DistributedElevatorExtAI.DistributedElevatorExtAI):
|
||||||
def __init__(self, air, bldg, lawOfficeId, entranceId, antiShuffle = 0):
|
def __init__(self, air, bldg, lawOfficeId, entranceId):
|
||||||
DistributedElevatorExtAI.DistributedElevatorExtAI.__init__(self, air, bldg, antiShuffle = antiShuffle)
|
DistributedElevatorExtAI.DistributedElevatorExtAI.__init__(self, air, bldg)
|
||||||
self.lawOfficeId = lawOfficeId
|
self.lawOfficeId = lawOfficeId
|
||||||
self.entranceId = entranceId
|
self.entranceId = entranceId
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,8 @@ import CogDisguiseGlobals
|
||||||
|
|
||||||
class DistributedMintElevatorExtAI(DistributedElevatorExtAI.DistributedElevatorExtAI):
|
class DistributedMintElevatorExtAI(DistributedElevatorExtAI.DistributedElevatorExtAI):
|
||||||
|
|
||||||
def __init__(self, air, bldg, mintId, antiShuffle = 0):
|
def __init__(self, air, bldg, mintId):
|
||||||
DistributedElevatorExtAI.DistributedElevatorExtAI.__init__(self, air, bldg, antiShuffle=antiShuffle)
|
DistributedElevatorExtAI.DistributedElevatorExtAI.__init__(self, air, bldg)
|
||||||
self.mintId = mintId
|
self.mintId = mintId
|
||||||
self.cogDept = ToontownGlobals.cogHQZoneId2deptIndex(self.mintId)
|
self.cogDept = ToontownGlobals.cogHQZoneId2deptIndex(self.mintId)
|
||||||
self.type = ELEVATOR_MINT
|
self.type = ELEVATOR_MINT
|
||||||
|
|
|
@ -39,8 +39,7 @@ class CashbotHQAI(CogHQAI.CogHQAI):
|
||||||
)
|
)
|
||||||
for i in xrange(len(destZones)):
|
for i in xrange(len(destZones)):
|
||||||
mintElevator = DistributedMintElevatorExtAI(
|
mintElevator = DistributedMintElevatorExtAI(
|
||||||
self.air, self.air.mintMgr, destZones[i],
|
self.air, self.air.mintMgr, destZones[i])
|
||||||
antiShuffle=0)
|
|
||||||
mintElevator.generateWithRequired(self.zoneId)
|
mintElevator.generateWithRequired(self.zoneId)
|
||||||
self.mintElevators.append(mintElevator)
|
self.mintElevators.append(mintElevator)
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ class CogHQAI:
|
||||||
|
|
||||||
def createLobbyElevator(self):
|
def createLobbyElevator(self):
|
||||||
self.lobbyElevator = self.lobbyElevatorCtor(
|
self.lobbyElevator = self.lobbyElevatorCtor(
|
||||||
self.air, self.lobbyMgr, self.lobbyZoneId, antiShuffle=1)
|
self.air, self.lobbyMgr, self.lobbyZoneId)
|
||||||
self.lobbyElevator.generateWithRequired(self.lobbyZoneId)
|
self.lobbyElevator.generateWithRequired(self.lobbyZoneId)
|
||||||
|
|
||||||
def makeCogHQDoor(self, destinationZone, intDoorIndex, extDoorIndex, lock=0):
|
def makeCogHQDoor(self, destinationZone, intDoorIndex, extDoorIndex, lock=0):
|
||||||
|
|
|
@ -52,8 +52,7 @@ class LawbotHQAI(CogHQAI.CogHQAI):
|
||||||
)
|
)
|
||||||
for i in xrange(len(destZones)):
|
for i in xrange(len(destZones)):
|
||||||
lawOfficeElevator = DistributedLawOfficeElevatorExtAI(
|
lawOfficeElevator = DistributedLawOfficeElevatorExtAI(
|
||||||
self.air, self.air.lawOfficeMgr, destZones[i], i,
|
self.air, self.air.lawOfficeMgr, destZones[i], i)
|
||||||
antiShuffle=0)
|
|
||||||
lawOfficeElevator.generateWithRequired(
|
lawOfficeElevator.generateWithRequired(
|
||||||
ToontownGlobals.LawbotOfficeExt)
|
ToontownGlobals.LawbotOfficeExt)
|
||||||
self.lawOfficeElevators.append(lawOfficeElevator)
|
self.lawOfficeElevators.append(lawOfficeElevator)
|
||||||
|
|
|
@ -140,7 +140,6 @@ class LocalToon(DistributedToon.DistributedToon, LocalAvatar.LocalAvatar):
|
||||||
self.touchingPlantList = []
|
self.touchingPlantList = []
|
||||||
self.inGardenAction = None
|
self.inGardenAction = None
|
||||||
self.guiConflict = 0
|
self.guiConflict = 0
|
||||||
self.lastElevatorLeft = 0
|
|
||||||
self.elevatorNotifier = ElevatorNotifier.ElevatorNotifier()
|
self.elevatorNotifier = ElevatorNotifier.ElevatorNotifier()
|
||||||
self._zoneId = None
|
self._zoneId = None
|
||||||
self.accept('system message aknowledge', self.systemWarning)
|
self.accept('system message aknowledge', self.systemWarning)
|
||||||
|
|
|
@ -3056,9 +3056,7 @@ SuitAttackTaunts = {'Audit': ["I believe your books don't balance.",
|
||||||
WaitingForOtherToons = 'Waiting for other toons...'
|
WaitingForOtherToons = 'Waiting for other toons...'
|
||||||
WaitingForOtherToonsDots = 'Waiting for other toons%s'
|
WaitingForOtherToonsDots = 'Waiting for other toons%s'
|
||||||
ElevatorHopOff = 'Hop off'
|
ElevatorHopOff = 'Hop off'
|
||||||
ElevatorStayOff = "If you hop off, you'll need to wait\nfor the elevator to leave or empty."
|
|
||||||
ElevatorLeaderOff = 'Only your leader can decide when to hop off.'
|
ElevatorLeaderOff = 'Only your leader can decide when to hop off.'
|
||||||
ElevatorHoppedOff = 'You need to wait for the next elevator.'
|
|
||||||
ElevatorHopOK = 'Okay'
|
ElevatorHopOK = 'Okay'
|
||||||
ElevatorGroupMember = 'Only your group leader can\n decide when to board.'
|
ElevatorGroupMember = 'Only your group leader can\n decide when to board.'
|
||||||
CogsIncExt = ', Inc.'
|
CogsIncExt = ', Inc.'
|
||||||
|
|
Loading…
Reference in a new issue