2019-11-02 17:27:54 -05:00
|
|
|
from direct.directnotify import DirectNotifyGlobal
|
2019-12-30 00:07:56 -06:00
|
|
|
from . import HoodDataAI
|
2019-11-02 17:27:54 -05:00
|
|
|
from toontown.toonbase import ToontownGlobals
|
|
|
|
from toontown.coghq import DistributedMintElevatorExtAI
|
|
|
|
from toontown.coghq import DistributedCogHQDoorAI
|
|
|
|
from toontown.building import DoorTypes
|
|
|
|
from toontown.coghq import LobbyManagerAI
|
|
|
|
from toontown.building import DistributedCFOElevatorAI
|
|
|
|
from toontown.suit import DistributedCashbotBossAI
|
|
|
|
from toontown.building import FADoorCodes
|
|
|
|
from toontown.building import DistributedBoardingPartyAI
|
|
|
|
|
|
|
|
class CashbotHQDataAI(HoodDataAI.HoodDataAI):
|
|
|
|
notify = DirectNotifyGlobal.directNotify.newCategory('CashbotHqDataAI')
|
|
|
|
|
|
|
|
def __init__(self, air, zoneId=None):
|
|
|
|
hoodId = ToontownGlobals.CashbotHQ
|
|
|
|
if zoneId == None:
|
|
|
|
zoneId = hoodId
|
|
|
|
HoodDataAI.HoodDataAI.__init__(self, air, zoneId, hoodId)
|
|
|
|
return
|
|
|
|
|
|
|
|
def startup(self):
|
|
|
|
HoodDataAI.HoodDataAI.startup(self)
|
|
|
|
mins = ToontownGlobals.FactoryLaffMinimums[1]
|
|
|
|
self.testElev0 = DistributedMintElevatorExtAI.DistributedMintElevatorExtAI(self.air, self.air.mintMgr, ToontownGlobals.CashbotMintIntA, antiShuffle=0, minLaff=mins[0])
|
|
|
|
self.testElev0.generateWithRequired(ToontownGlobals.CashbotHQ)
|
|
|
|
self.addDistObj(self.testElev0)
|
|
|
|
self.testElev1 = DistributedMintElevatorExtAI.DistributedMintElevatorExtAI(self.air, self.air.mintMgr, ToontownGlobals.CashbotMintIntB, antiShuffle=0, minLaff=mins[1])
|
|
|
|
self.testElev1.generateWithRequired(ToontownGlobals.CashbotHQ)
|
|
|
|
self.addDistObj(self.testElev1)
|
|
|
|
self.testElev2 = DistributedMintElevatorExtAI.DistributedMintElevatorExtAI(self.air, self.air.mintMgr, ToontownGlobals.CashbotMintIntC, antiShuffle=0, minLaff=mins[2])
|
|
|
|
self.testElev2.generateWithRequired(ToontownGlobals.CashbotHQ)
|
|
|
|
self.addDistObj(self.testElev2)
|
|
|
|
self.lobbyMgr = LobbyManagerAI.LobbyManagerAI(self.air, DistributedCashbotBossAI.DistributedCashbotBossAI)
|
|
|
|
self.lobbyMgr.generateWithRequired(ToontownGlobals.CashbotLobby)
|
|
|
|
self.addDistObj(self.lobbyMgr)
|
|
|
|
self.lobbyElevator = DistributedCFOElevatorAI.DistributedCFOElevatorAI(self.air, self.lobbyMgr, ToontownGlobals.CashbotLobby, antiShuffle=1)
|
|
|
|
self.lobbyElevator.generateWithRequired(ToontownGlobals.CashbotLobby)
|
|
|
|
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.CashbotLobby)
|
|
|
|
destinationZone = ToontownGlobals.CashbotLobby
|
|
|
|
extDoor0 = DistributedCogHQDoorAI.DistributedCogHQDoorAI(self.air, 0, DoorTypes.EXT_COGHQ, destinationZone, doorIndex=0, lockValue=FADoorCodes.CB_DISGUISE_INCOMPLETE)
|
|
|
|
extDoorList = [
|
|
|
|
extDoor0]
|
|
|
|
intDoor0 = DistributedCogHQDoorAI.DistributedCogHQDoorAI(self.air, 0, DoorTypes.INT_COGHQ, ToontownGlobals.CashbotHQ, doorIndex=0)
|
|
|
|
intDoor0.setOtherDoor(extDoor0)
|
|
|
|
intDoor0.zoneId = ToontownGlobals.CashbotLobby
|
|
|
|
mintIdList = [
|
|
|
|
self.testElev0.doId, self.testElev1.doId, self.testElev2.doId]
|
|
|
|
if simbase.config.GetBool('want-boarding-groups', 1):
|
|
|
|
self.mintBoardingParty = DistributedBoardingPartyAI.DistributedBoardingPartyAI(self.air, mintIdList, 4)
|
|
|
|
self.mintBoardingParty.generateWithRequired(self.zoneId)
|
|
|
|
for extDoor in extDoorList:
|
|
|
|
extDoor.setOtherDoor(intDoor0)
|
|
|
|
extDoor.zoneId = ToontownGlobals.CashbotHQ
|
|
|
|
extDoor.generateWithRequired(ToontownGlobals.CashbotHQ)
|
|
|
|
extDoor.sendUpdate('setDoorIndex', [extDoor.getDoorIndex()])
|
|
|
|
self.addDistObj(extDoor)
|
|
|
|
|
|
|
|
intDoor0.generateWithRequired(ToontownGlobals.CashbotLobby)
|
|
|
|
intDoor0.sendUpdate('setDoorIndex', [intDoor0.getDoorIndex()])
|
|
|
|
self.addDistObj(intDoor0)
|