from direct.distributed.ClockDelta import * from direct.fsm import ClassicFSM from direct.fsm import State from direct.task import Task from otp.ai.AIBase import * from toontown.building import DistributedElevatorAI from toontown.building import DistributedElevatorFloorAI from toontown.building.ElevatorConstants import * from toontown.toonbase import ToontownGlobals class DistributedLawOfficeElevatorIntAI(DistributedElevatorFloorAI.DistributedElevatorFloorAI): def __init__(self, air, lawOfficeId, bldg, avIds): DistributedElevatorFloorAI.DistributedElevatorFloorAI.__init__(self, air, bldg, avIds) self.lawOfficeId = lawOfficeId def getEntranceId(self): return self.entranceId def elevatorClosed(self): numPlayers = self.countFullSeats() if numPlayers > 0: players = [] for i in self.seats: if i not in [None, 0]: players.append(i) sittingAvIds = [] for seatIndex in xrange(len(self.seats)): avId = self.seats[seatIndex] if avId: sittingAvIds.append(avId) for avId in self.avIds: if avId not in sittingAvIds: print 'THIS AV ID %s IS NOT ON BOARD' % avId self.bldg.startNextFloor() else: self.notify.warning('The elevator left, but was empty.') self.fsm.request('closed') def enterClosed(self): print 'DistributedLawOfficeElevatorIntAI.elevatorClosed %s' % self.doId DistributedElevatorFloorAI.DistributedElevatorFloorAI.enterClosed(self) if not (self.hasOpenedLocked) or not (self.isLocked): self.fsm.request('opening') if self.isLocked: self.hasOpenedLocked = 1