74 lines
3.1 KiB
Python
74 lines
3.1 KiB
Python
from toontown.building import DistributedCJElevatorAI
|
|
from toontown.building import FADoorCodes
|
|
from toontown.building.DistributedBoardingPartyAI import DistributedBoardingPartyAI
|
|
from toontown.coghq.DistributedLawOfficeElevatorExtAI import DistributedLawOfficeElevatorExtAI
|
|
from toontown.hood import CogHQAI
|
|
from toontown.suit import DistributedLawbotBossAI
|
|
from toontown.suit import DistributedSuitPlannerAI
|
|
from toontown.toonbase import ToontownGlobals
|
|
|
|
|
|
class LawbotHQAI(CogHQAI.CogHQAI):
|
|
def __init__(self, air):
|
|
CogHQAI.CogHQAI.__init__(
|
|
self, air, ToontownGlobals.LawbotHQ, ToontownGlobals.LawbotLobby,
|
|
FADoorCodes.LB_DISGUISE_INCOMPLETE,
|
|
DistributedCJElevatorAI.DistributedCJElevatorAI,
|
|
DistributedLawbotBossAI.DistributedLawbotBossAI)
|
|
|
|
self.lawOfficeElevators = []
|
|
self.officeBoardingParty = None
|
|
self.suitPlanners = []
|
|
|
|
self.startup()
|
|
|
|
def startup(self):
|
|
CogHQAI.CogHQAI.startup(self)
|
|
|
|
self.createLawOfficeElevators()
|
|
self.makeCogHQDoor(ToontownGlobals.LawbotOfficeExt, 0, 0)
|
|
if simbase.config.GetBool('want-boarding-groups', True):
|
|
self.createOfficeBoardingParty()
|
|
if simbase.config.GetBool('want-suit-planners', True):
|
|
self.createSuitPlanners()
|
|
|
|
def makeCogHQDoor(self, destinationZone, intDoorIndex, extDoorIndex, lock=0):
|
|
# For Lawbot HQ, the lobby door index is 1, even though that index
|
|
# should be for the Lawbot office exterior door.
|
|
if destinationZone == self.lobbyZoneId:
|
|
extDoorIndex = 1
|
|
elif destinationZone == ToontownGlobals.LawbotOfficeExt:
|
|
extDoorIndex = 0
|
|
|
|
return CogHQAI.CogHQAI.makeCogHQDoor(
|
|
self, destinationZone, intDoorIndex, extDoorIndex, lock=lock)
|
|
|
|
def createLawOfficeElevators(self):
|
|
destZones = (
|
|
ToontownGlobals.LawbotStageIntA,
|
|
ToontownGlobals.LawbotStageIntB,
|
|
ToontownGlobals.LawbotStageIntC,
|
|
ToontownGlobals.LawbotStageIntD
|
|
)
|
|
for i in xrange(len(destZones)):
|
|
lawOfficeElevator = DistributedLawOfficeElevatorExtAI(
|
|
self.air, self.air.lawOfficeMgr, destZones[i], i)
|
|
lawOfficeElevator.generateWithRequired(
|
|
ToontownGlobals.LawbotOfficeExt)
|
|
self.lawOfficeElevators.append(lawOfficeElevator)
|
|
|
|
def createOfficeBoardingParty(self):
|
|
lawOfficeIdList = []
|
|
for lawOfficeElevator in self.lawOfficeElevators:
|
|
lawOfficeIdList.append(lawOfficeElevator.doId)
|
|
self.officeBoardingParty = DistributedBoardingPartyAI(
|
|
self.air, lawOfficeIdList, 4)
|
|
self.officeBoardingParty.generateWithRequired(ToontownGlobals.LawbotOfficeExt)
|
|
|
|
def createSuitPlanners(self):
|
|
suitPlanner = DistributedSuitPlannerAI.DistributedSuitPlannerAI(self.air, self.zoneId)
|
|
suitPlanner.generateWithRequired(self.zoneId)
|
|
suitPlanner.d_setZoneId(self.zoneId)
|
|
suitPlanner.initTasks()
|
|
self.suitPlanners.append(suitPlanner)
|
|
self.air.suitPlanners[self.zoneId] = suitPlanner
|