historical/toontown-classic.git/toontown/hood/CSHoodDataAI.py
2024-01-16 11:20:27 -06:00

67 lines
4.1 KiB
Python

from direct.directnotify import DirectNotifyGlobal
import HoodDataAI
from toontown.toonbase import ToontownGlobals
from toontown.coghq import DistributedFactoryElevatorExtAI
from toontown.coghq import DistributedCogHQDoorAI
from toontown.coghq import DistributedSellbotHQDoorAI
from toontown.building import DoorTypes
from toontown.coghq import LobbyManagerAI
from toontown.building import DistributedVPElevatorAI
from toontown.suit import DistributedSellbotBossAI
from toontown.building import DistributedBoardingPartyAI
class CSHoodDataAI(HoodDataAI.HoodDataAI):
notify = DirectNotifyGlobal.directNotify.newCategory('CSHoodDataAI')
def __init__(self, air, zoneId=None):
hoodId = ToontownGlobals.SellbotHQ
if zoneId == None:
zoneId = hoodId
HoodDataAI.HoodDataAI.__init__(self, air, zoneId, hoodId)
return
def startup(self):
HoodDataAI.HoodDataAI.startup(self)
mins = ToontownGlobals.FactoryLaffMinimums[0]
self.testElev0 = DistributedFactoryElevatorExtAI.DistributedFactoryElevatorExtAI(self.air, self.air.factoryMgr, ToontownGlobals.SellbotFactoryInt, 0, antiShuffle=0, minLaff=mins[0])
self.testElev0.generateWithRequired(ToontownGlobals.SellbotFactoryExt)
self.addDistObj(self.testElev0)
self.testElev1 = DistributedFactoryElevatorExtAI.DistributedFactoryElevatorExtAI(self.air, self.air.factoryMgr, ToontownGlobals.SellbotFactoryInt, 1, antiShuffle=0, minLaff=mins[1])
self.testElev1.generateWithRequired(ToontownGlobals.SellbotFactoryExt)
self.addDistObj(self.testElev1)
self.lobbyMgr = LobbyManagerAI.LobbyManagerAI(self.air, DistributedSellbotBossAI.DistributedSellbotBossAI)
self.lobbyMgr.generateWithRequired(ToontownGlobals.SellbotLobby)
self.addDistObj(self.lobbyMgr)
self.lobbyElevator = DistributedVPElevatorAI.DistributedVPElevatorAI(self.air, self.lobbyMgr, ToontownGlobals.SellbotLobby, antiShuffle=1)
self.lobbyElevator.generateWithRequired(ToontownGlobals.SellbotLobby)
self.addDistObj(self.lobbyElevator)
if simbase.config.GetBool('want-boarding-groups', 1):
self.boardingParty = DistributedBoardingPartyAI.DistributedBoardingPartyAI(self.air, [self.lobbyElevator.doId], 8)
self.boardingParty.generateWithRequired(ToontownGlobals.SellbotLobby)
factoryIdList = [self.testElev0.doId, self.testElev1.doId]
if simbase.config.GetBool('want-boarding-groups', 1):
self.factoryBoardingParty = DistributedBoardingPartyAI.DistributedBoardingPartyAI(self.air, factoryIdList, 4)
self.factoryBoardingParty.generateWithRequired(ToontownGlobals.SellbotFactoryExt)
destinationZone = ToontownGlobals.SellbotLobby
extDoor0 = DistributedSellbotHQDoorAI.DistributedSellbotHQDoorAI(self.air, 0, DoorTypes.EXT_COGHQ, destinationZone, doorIndex=0)
extDoor1 = DistributedSellbotHQDoorAI.DistributedSellbotHQDoorAI(self.air, 1, DoorTypes.EXT_COGHQ, destinationZone, doorIndex=1)
extDoor2 = DistributedSellbotHQDoorAI.DistributedSellbotHQDoorAI(self.air, 2, DoorTypes.EXT_COGHQ, destinationZone, doorIndex=2)
extDoor3 = DistributedSellbotHQDoorAI.DistributedSellbotHQDoorAI(self.air, 3, DoorTypes.EXT_COGHQ, destinationZone, doorIndex=3)
extDoorList = [extDoor0, extDoor1, extDoor2, extDoor3]
for sp in self.suitPlanners:
if sp.zoneId == ToontownGlobals.SellbotHQ:
sp.cogHQDoors = extDoorList
intDoor0 = DistributedCogHQDoorAI.DistributedCogHQDoorAI(self.air, 0, DoorTypes.INT_COGHQ, ToontownGlobals.SellbotHQ, doorIndex=0)
intDoor0.setOtherDoor(extDoor0)
intDoor0.zoneId = ToontownGlobals.SellbotLobby
for extDoor in extDoorList:
extDoor.setOtherDoor(intDoor0)
extDoor.zoneId = ToontownGlobals.SellbotHQ
extDoor.generateWithRequired(ToontownGlobals.SellbotHQ)
extDoor.sendUpdate('setDoorIndex', [extDoor.getDoorIndex()])
self.addDistObj(extDoor)
intDoor0.generateWithRequired(ToontownGlobals.SellbotLobby)
intDoor0.sendUpdate('setDoorIndex', [intDoor0.getDoorIndex()])
self.addDistObj(intDoor0)