import CogHQLoader import LawbotHQBossBattle import LawbotHQExterior import LawbotOfficeExterior import StageInterior from direct.directnotify import DirectNotifyGlobal from direct.fsm import State from direct.fsm import StateData from direct.gui import DirectGui from toontown.toon import Toon from toontown.toonbase import TTLocalizer from toontown.toonbase import ToontownGlobals aspectSF = 0.7227 class LawbotCogHQLoader(CogHQLoader.CogHQLoader): notify = DirectNotifyGlobal.directNotify.newCategory('LawbotCogHQLoader') def __init__(self, hood, parentFSMState, doneEvent): CogHQLoader.CogHQLoader.__init__(self, hood, parentFSMState, doneEvent) self.fsm.addState(State.State('stageInterior', self.enterStageInterior, self.exitStageInterior, ['quietZone', 'cogHQExterior'])) self.fsm.addState(State.State('factoryExterior', self.enterFactoryExterior, self.exitFactoryExterior, ['quietZone', 'cogHQExterior'])) for stateName in ['start', 'cogHQExterior', 'quietZone']: state = self.fsm.getStateNamed(stateName) state.addTransition('stageInterior') for stateName in ['quietZone']: state = self.fsm.getStateNamed(stateName) state.addTransition('factoryExterior') self.musicFile = 'phase_11/audio/bgm/LB_courtyard.ogg' self.cogHQExteriorModelPath = 'phase_11/models/lawbotHQ/LawbotPlaza' self.factoryExteriorModelPath = 'phase_11/models/lawbotHQ/LB_DA_Lobby' self.cogHQLobbyModelPath = 'phase_11/models/lawbotHQ/LB_CH_Lobby' self.geom = None def load(self, zoneId): CogHQLoader.CogHQLoader.load(self, zoneId) Toon.loadSellbotHQAnims() def unloadPlaceGeom(self): if self.geom: self.geom.removeNode() self.geom = None CogHQLoader.CogHQLoader.unloadPlaceGeom(self) def loadPlaceGeom(self, zoneId): self.notify.info('loadPlaceGeom: %s' % zoneId) zoneId = zoneId - zoneId % 100 self.notify.debug('zoneId = %d ToontownGlobals.LawbotHQ=%d' % (zoneId, ToontownGlobals.LawbotHQ)) if zoneId == ToontownGlobals.LawbotHQ: self.geom = loader.loadModel(self.cogHQExteriorModelPath) ug = self.geom.find('**/underground') ug.setBin('ground', -10) brLinkTunnel = self.geom.find('**/TunnelEntrance1') brLinkTunnel.setName('linktunnel_br_3326_DNARoot') elif zoneId == ToontownGlobals.LawbotOfficeExt: self.geom = loader.loadModel(self.factoryExteriorModelPath) ug = self.geom.find('**/underground') ug.setBin('ground', -10) self.geom.flattenMedium() elif zoneId == ToontownGlobals.LawbotLobby: if base.config.GetBool('want-qa-regression', 0): self.notify.info('QA-REGRESSION: COGHQ: Visit LawbotLobby') self.notify.debug('cogHQLobbyModelPath = %s' % self.cogHQLobbyModelPath) self.geom = loader.loadModel(self.cogHQLobbyModelPath) ug = self.geom.find('**/underground') ug.setBin('ground', -10) else: self.notify.warning('loadPlaceGeom: unclassified zone %s' % zoneId) CogHQLoader.CogHQLoader.loadPlaceGeom(self, zoneId) def unload(self): CogHQLoader.CogHQLoader.unload(self) Toon.unloadSellbotHQAnims() def enterStageInterior(self, requestStatus): self.placeClass = StageInterior.StageInterior self.stageId = requestStatus['stageId'] self.enterPlace(requestStatus) def exitStageInterior(self): self.exitPlace() self.placeClass = None return def getExteriorPlaceClass(self): self.notify.debug('getExteriorPlaceClass') return LawbotHQExterior.LawbotHQExterior def getBossPlaceClass(self): self.notify.debug('getBossPlaceClass') return LawbotHQBossBattle.LawbotHQBossBattle def enterFactoryExterior(self, requestStatus): self.placeClass = LawbotOfficeExterior.LawbotOfficeExterior self.enterPlace(requestStatus) self.hood.spawnTitleText(requestStatus['zoneId']) def exitFactoryExterior(self): taskMgr.remove('titleText') self.hood.hideTitleText() self.exitPlace() self.placeClass = None return def enterCogHQBossBattle(self, requestStatus): self.notify.debug('LawbotCogHQLoader.enterCogHQBossBattle') CogHQLoader.CogHQLoader.enterCogHQBossBattle(self, requestStatus) base.cr.forbidCheesyEffects(1) def exitCogHQBossBattle(self): self.notify.debug('LawbotCogHQLoader.exitCogHQBossBattle') CogHQLoader.CogHQLoader.exitCogHQBossBattle(self) base.cr.forbidCheesyEffects(0)