def startup(self): HoodAI.HoodAI.startup(self) if simbase.config.GetBool('want-minigames', True): self.createTrolley() if simbase.config.GetBool('want-classic-chars', True): if simbase.config.GetBool('want-mickey', True): self.createClassicChar() if simbase.config.GetBool('want-butterflies', True): self.createButterflies() if simbase.air.wantYinYang: NPCToons.createNPC( simbase.air, 2021, (ToontownGlobals.ToontownCentral, TTLocalizer.NPCToonNames[2021], ('css', 'ms', 'm', 'm', 26, 0, 26, 26, 0, 27, 0, 27, 0, 27), 'm', 1, NPCToons.NPC_YIN), ToontownGlobals.ToontownCentral, posIndex=0) NPCToons.createNPC( simbase.air, 2022, (ToontownGlobals.ToontownCentral, TTLocalizer.NPCToonNames[2022], ('bss', 'ms', 'm', 'm', 0, 0, 0, 0, 0, 31, 0, 31, 0, 31), 'm', 1, NPCToons.NPC_YANG), ToontownGlobals.ToontownCentral, posIndex=0) if simbase.air.wantHalloween: self.TrickOrTreatTargetManager = DistributedTrickOrTreatTargetAI.DistributedTrickOrTreatTargetAI(self.air) self.TrickOrTreatTargetManager.generateWithRequired(2649) if simbase.air.wantChristmas: self.WinterCarolingTargetManager = DistributedWinterCarolingTargetAI.DistributedWinterCarolingTargetAI(self.air) self.WinterCarolingTargetManager.generateWithRequired(2659)
def startup(self): self.notify.info('Creating zone... ToonFest') HoodDataAI.HoodDataAI.startup(self) tfBases = DistributedToonfestTowerBaseAI.DistributedToonfestTowerBaseAI(self.air) tfBases.generateWithRequired(self.zoneId) self.addDistObj(tfBases) stand = DistributedFlippyStandAI.DistributedFlippyStandAI(self.air) stand.generateWithRequired(self.zoneId) self.addDistObj(stand) if config.GetBool('want-toonfest-specials', True): self.quiz = DistributedQuizGameAI.DistributedQuizGameAI(self.air) self.quiz.generateWithRequired(self.zoneId) self.addDistObj(self.quiz) tank = DistributedDunkTankAI.DistributedDunkTankAI(self.air) tank.generateWithRequired(self.zoneId) self.addDistObj(tank) self.balloon = DistributedToonfestBalloonAI.DistributedToonfestBalloonAI(self.air) self.balloon.generateWithRequired(self.zoneId) self.balloon.b_setState('Waiting') self.addDistObj(self.balloon) for zone in TIME_OF_DAY_ZONES: dayCycle = DistributedTFDayAndNightAI.DistributedTFDayAndNightAI(self.air, zone) dayCycle.generateWithRequired(zone) self.addDistObj(dayCycle) self.tfActivities = DistributedToonFestActivitiesAI(self.air) self.tfActivities.generateWithRequired(self.zoneId) self.addDistObj(self.tfActivities) NPCToons.createNPC(self.air, 14500, NPCToons.NPCToonDict[14500], 7100, 0)
def __init__(self, air, zones, avId): FSM.__init__(self, 'TutorialFSM') self.air = air self.zones = zones self.avId = avId self.suit = None self.flippy = None tutorialTomDesc = NPCToons.NPCToonDict.get(20000) self.tutorialTom = NPCToons.createNPC(self.air, 20000, tutorialTomDesc, self.zones.SHOP, 0) self.tutorialTom.setTutorial(1) hqHarryDesc = (-1, TTLocalizer.TutorialHQOfficerName, ('dls', 'ms', 'm', 'm', 6, 0, 6, 6, 0, 10, 0, 10, 0, 9), 'm', 1, NPCToons.NPC_HQ) self.hqHarry = NPCToons.createNPC(self.air, 20002, hqHarryDesc, self.zones.HQ, 0) self.hqHarry.setTutorial(1) self.building = TutorialBuildingAI(self.air, zones.STREET, zones.SHOP, self.tutorialTom.getDoId()) self.hq = HQBuildingAI(self.air, zones.STREET, zones.HQ, 1) self.forceTransition('Introduction')
def __init__(self, air, zones, avId): FSM.__init__(self, 'TutorialFSM') self.air = air self.zones = zones self.avId = avId npcDesc = NPCToons.NPCToonDict.get(20000) self.tutorialTom = NPCToons.createNPC(self.air, 20000, npcDesc, self.zones['building']) self.tutorialTom.setTutorial(1) npcDesc = NPCToons.NPCToonDict.get(20002) self.hqHarry = NPCToons.createNPC(self.air, 20002, npcDesc, self.zones['hq']) self.hqHarry.setTutorial(1) self.hqHarry.setHq(1) self.building = TutorialBuildingAI(self.air, self.zones['street'], self.zones['building'], 2, self.tutorialTom.getDoId()) self.hq = HQBuildingAI(self.air, self.zones['street'], self.zones['hq'], 1) self.forceTransition('Introduction')
def startup(self): HoodAI.HoodAI.startup(self) if simbase.config.GetBool('want-minigames', True): self.createTrolley() if simbase.config.GetBool('want-classic-chars', True): if simbase.config.GetBool('want-mickey', True): self.createClassicChar() if simbase.config.GetBool('want-butterflies', True): self.createButterflies() if simbase.air.wantYinYang: NPCToons.createNPC( simbase.air, 2021, (ToontownGlobals.ToontownCentral, TTLocalizer.NPCToonNames[2021], ('css', 'ms', 'm', 'm', 26, 0, 26, 26, 0, 27, 0, 27, 0, 27), 'm', 1, NPCToons.NPC_YIN), ToontownGlobals.ToontownCentral, posIndex=0) NPCToons.createNPC( simbase.air, 2022, (ToontownGlobals.ToontownCentral, TTLocalizer.NPCToonNames[2022], ('bss', 'ms', 'm', 'm', 0, 0, 0, 0, 0, 31, 0, 31, 0, 31), 'm', 1, NPCToons.NPC_YANG), ToontownGlobals.ToontownCentral, posIndex=0) if simbase.air.wantHalloween: self.TrickOrTreatTargetManager = DistributedTrickOrTreatTargetAI.DistributedTrickOrTreatTargetAI(self.air) self.TrickOrTreatTargetManager.generateWithRequired(2649) if simbase.air.wantChristmas: self.WinterCarolingTargetManager = DistributedWinterCarolingTargetAI.DistributedWinterCarolingTargetAI(self.air) self.WinterCarolingTargetManager.generateWithRequired(2649) if simbase.config.GetBool('want-experiment-event'): self.createExperimentEvent()
def startup(self): HoodAI.HoodAI.startup(self) if simbase.config.GetBool('want-minigames', True): self.createTrolley() if simbase.config.GetBool('want-classic-chars', True): if simbase.config.GetBool('want-mickey', True): self.createClassicChar() if simbase.config.GetBool('want-butterflies', True): self.createButterflies() if simbase.air.wantYinYang: NPCToons.createNPC(simbase.air, 2021, (ToontownGlobals.ToontownCentral, TTLocalizer.NPCToonNames[2021], ('css', 'ms', 'm', 'm', 26, 0, 26, 26, 0, 27, 0, 27, 0, 27), 'm', 1, NPCToons.NPC_YIN), ToontownGlobals.ToontownCentral, posIndex=0) NPCToons.createNPC(simbase.air, 2022, (ToontownGlobals.ToontownCentral, TTLocalizer.NPCToonNames[2022], ('bss', 'ms', 'm', 'm', 0, 0, 0, 0, 0, 31, 0, 31, 0, 31), 'm', 1, NPCToons.NPC_YANG), ToontownGlobals.ToontownCentral, posIndex=0)
def __init__(self, air, zones, avId): FSM.__init__(self, 'TutorialFSM') self.avId = avId self.zones = zones self.air = air npcDesc = NPCToons.NPCToonDict.get(20000) self.tom = NPCToons.createNPC(self.air, 20000, npcDesc, self.zones.shop, 0) self.tom.setTutorial(1) npcDesc = NPCToons.NPCToonDict.get(20002) self.harry = NPCToons.createNPC(self.air, 20002, npcDesc, self.zones.hq, 0) self.harry.setTutorial(1) self.building = ToontorialBuildingAI(self.air, zones.street, zones.shop, self.tom.getDoId()) self.hq = HQBuildingAI(self.air, zones.street, zones.hq, 1) self.forceTransition('Introduction')
def enterTunnel(self): npcDesc = NPCToons.NPCToonDict.get(20001) self.flippy = NPCToons.createNPC(self.air, 20001, npcDesc, self.zones.street, 0) self.hq.insideDoor1.setDoorLock(FADoorCodes.UNLOCKED) self.hq.door1.setDoorLock(FADoorCodes.GO_TO_PLAYGROUND) self.hq.insideDoor0.setDoorLock(FADoorCodes.WRONG_DOOR_HQ)
def generateWithRequired(self, zoneId): DistributedObjectAI.generateWithRequired(self, zoneId) self.npc = NPCToons.createNPC(self.air, self.npcId, NPCToons.NPCToonDict[self.npcId], self.zoneId) self.npc.setScienceFair(self)
def createShop(self, streetZone, shopZone, hqZone): shopInterior = DistributedTutorialInteriorAI(2, self.air, shopZone) desc = NPCToons.NPCToonDict.get(20000) npc = NPCToons.createNPC(self.air, 20000, desc, shopZone) npc.setTutorial(1) shopInterior.setTutorialNpcId(npc.doId) shopInterior.generateWithRequired(shopZone) extShopDoor = DistributedDoorAI.DistributedDoorAI( self.air, 2, DoorTypes.EXT_STANDARD, lockValue=FADoorCodes.DEFEAT_FLUNKY_TOM) intShopDoor = DistributedDoorAI.DistributedDoorAI( self.air, 2, DoorTypes.INT_STANDARD, lockValue=FADoorCodes.TALK_TO_TOM) extShopDoor.setOtherDoor(intShopDoor) intShopDoor.setOtherDoor(extShopDoor) extShopDoor.zoneId = streetZone intShopDoor.zoneId = shopZone extShopDoor.generateWithRequired(streetZone) extShopDoor.sendUpdate('setDoorIndex', [extShopDoor.getDoorIndex()]) intShopDoor.generateWithRequired(shopZone) intShopDoor.sendUpdate('setDoorIndex', [intShopDoor.getDoorIndex()]) self.accept('intShopDoor-{0}'.format(shopZone), intShopDoor.setDoorLock) self.accept('extShopDoor-{0}'.format(streetZone), extShopDoor.setDoorLock)
def generate(self): DistributedObjectAI.generate(self) self.pond = DistributedFishingPondAI(simbase.air) self.pond.setArea(ToontownGlobals.MyEstate) self.pond.generateWithRequired(self.zoneId) for i in range( FishingTargetGlobals.getNumTargets(ToontownGlobals.MyEstate)): target = DistributedFishingTargetAI(self.air) target.setPondDoId(self.pond.getDoId()) target.generateWithRequired(self.zoneId) self.targets.append(target) spot = DistributedFishingSpotAI(self.air) spot.setPondDoId(self.pond.getDoId()) spot.setPosHpr(49.1029, -124.805, 0.344704, 90, 0, 0) spot.generateWithRequired(self.zoneId) self.spots.append(spot) spot = DistributedFishingSpotAI(self.air) spot.setPondDoId(self.pond.getDoId()) spot.setPosHpr(46.5222, -134.739, 0.390713, 75, 0, 0) spot.generateWithRequired(self.zoneId) self.spots.append(spot) spot = DistributedFishingSpotAI(self.air) spot.setPondDoId(self.pond.getDoId()) spot.setPosHpr(41.31, -144.559, 0.375978, 45, 0, 0) spot.generateWithRequired(self.zoneId) self.spots.append(spot) spot = DistributedFishingSpotAI(self.air) spot.setPondDoId(self.pond.getDoId()) spot.setPosHpr(46.8254, -113.682, 0.46015, 135, 0, 0) spot.generateWithRequired(self.zoneId) self.spots.append(spot) NPCToons.createNPC(simbase.air, 16010, (self.zoneId, TTLocalizer.NPCToonNames[16010], ('mss', 'm', 'm', 'm', 36, 36, 36, 36, 86, 27, 75, 27, 0, 18), 'm', 0, NPCToons.NPC_FISHERMAN), self.zoneId, posIndex=0) self.createTreasurePlanner()
def x(): for door, code in map.items(): door.setDoorLock(code) if index == 2 and self.streetNpc is None: self.streetNpc = NPCToons.createNPC(self.air, 20001, NPCToons.NPCToonDict[20001], self.branchZone) self.streetNpc.setTutorial(1) self.streetNpc.d_setPos(207, 19, -0.48) self.streetNpc.d_setHpr(90, 0, 0)
def createHQ(self, streetZone, shopZone, hqZone): interior = DistributedHQInteriorAI(1, self.air, hqZone) interior.generateWithRequired(hqZone) interior.setTutorial(1) desc = NPCToons.NPCToonDict.get(20002) npc = NPCToons.createNPC(self.air, 20002, desc, hqZone) npc.setTutorial(1) npc.setHq(1) door0 = DistributedDoorAI.DistributedDoorAI( self.air, 1, DoorTypes.EXT_HQ, doorIndex=0, lockValue=FADoorCodes.DEFEAT_FLUNKY_HQ) door1 = DistributedDoorAI.DistributedDoorAI( self.air, 1, DoorTypes.EXT_HQ, doorIndex=1, lockValue=FADoorCodes.DEFEAT_FLUNKY_HQ) insideDoor0 = DistributedDoorAI.DistributedDoorAI( self.air, 1, DoorTypes.INT_HQ, doorIndex=0, lockValue=FADoorCodes.TALK_TO_HQ) insideDoor1 = DistributedDoorAI.DistributedDoorAI( self.air, 1, DoorTypes.INT_HQ, doorIndex=1, lockValue=FADoorCodes.TALK_TO_HQ) door0.setOtherDoor(insideDoor0) insideDoor0.setOtherDoor(door0) door1.setOtherDoor(insideDoor1) insideDoor1.setOtherDoor(door1) door0.zoneId = streetZone door1.zoneId = streetZone insideDoor0.zoneId = hqZone insideDoor1.zoneId = hqZone door0.generateWithRequired(streetZone) door1.generateWithRequired(streetZone) door0.sendUpdate('setDoorIndex', [door0.getDoorIndex()]) door1.sendUpdate('setDoorIndex', [door1.getDoorIndex()]) insideDoor0.generateWithRequired(hqZone) insideDoor1.generateWithRequired(hqZone) insideDoor0.sendUpdate('setDoorIndex', [insideDoor0.getDoorIndex()]) insideDoor1.sendUpdate('setDoorIndex', [insideDoor1.getDoorIndex()]) self.accept('extHqDoor0-{0}'.format(streetZone), door0.setDoorLock) self.accept('extHqDoor1-{0}'.format(streetZone), door1.setDoorLock) self.accept('intHqDoor0-{0}'.format(hqZone), insideDoor0.setDoorLock) self.accept('intHqDoor1-{0}'.format(hqZone), insideDoor1.setDoorLock)
def __createTutorial(self, avId): if self.playerDict.get(avId): self.notify.warning(str(avId) + " is already in the playerDict!") branchZone = self.air.allocateZone() streetZone = self.air.allocateZone() shopZone = self.air.allocateZone() hqZone = self.air.allocateZone() # Create a building object building = TutorialBuildingAI.TutorialBuildingAI(self.air, streetZone, shopZone, self.gagBlock) # Create an HQ object hqBuilding = TutorialHQBuildingAI.TutorialHQBuildingAI(self.air, streetZone, hqZone, self.hqBlock) def battleOverCallback(zoneId): hqBuilding.battleOverCallback() building.battleOverCallback() # Create a suit planner suitPlanner = SuitPlannerTutorialAI.SuitPlannerTutorialAI( self.air, streetZone, battleOverCallback) # Create the NPC blocking the tunnel to the playground blockerNPC = NPCToons.createNPC(self.air, 20001, NPCToons.NPCToonDict[20001], streetZone, questCallback=self.__handleBlockDone) blockerNPC.setTutorial(1) # is the black cat holiday enabled? blackCatMgr = None if bboard.has(BlackCatHolidayMgrAI.BlackCatHolidayMgrAI.PostName): blackCatMgr = DistributedBlackCatMgrAI.DistributedBlackCatMgrAI( self.air, avId) blackCatMgr.generateWithRequired(streetZone) zoneDict={"branchZone" : branchZone, "streetZone" : streetZone, "shopZone" : shopZone, "hqZone" : hqZone, "building" : building, "hqBuilding" : hqBuilding, "suitPlanner" : suitPlanner, "blockerNPC" : blockerNPC, "blackCatMgr" : blackCatMgr, } self.playerDict[avId] = zoneDict return zoneDict
def createStreet(self, streetZone, shopZone, hqZone): flunky = DistributedTutorialSuitAI.DistributedTutorialSuitAI(self.air) suitType = SuitDNA.getSuitType('f') suitTrack = SuitDNA.getSuitDept('f') flunky.setupSuitDNA(1, suitType, suitTrack) flunky.generateWithRequired(streetZone) desc = NPCToons.NPCToonDict.get(20001) npc = NPCToons.createNPC(self.air, 20001, desc, streetZone) npc.setTutorial(1) npc.d_setPos(207.4, 18.81, -0.475) npc.d_setHpr(90.0, 0, 0)
def enterTunnel(self): npcDesc = NPCToons.NPCToonDict.get(20001) self.flippy = NPCToons.createNPC(self.air, 20001, npcDesc, self.zones['street'], 0) self.BlackCatManager = DistributedBlackCatMgrAI.DistributedBlackCatMgrAI(self.air) self.BlackCatManager.generateWithRequired(self.zones['street']) self.hq.insideDoor0.setDoorLock(FADoorCodes.WRONG_DOOR_HQ) self.hq.insideDoor1.setDoorLock(FADoorCodes.UNLOCKED) self.hq.door0.setDoorLock(FADoorCodes.GO_TO_PLAYGROUND) self.hq.door1.setDoorLock(FADoorCodes.GO_TO_PLAYGROUND) self.building.door.setDoorLock(FADoorCodes.GO_TO_PLAYGROUND)
def __init__(self, air, zones, avId): FSM.__init__(self, 'TutorialFSM') self.air = air self.zones = zones self.avId = avId npcDesc = NPCToons.NPCToonDict.get(20000) self.tutorialTom = NPCToons.createNPC(self.air, 20000, npcDesc, self.zones['building']) self.tutorialTom.setTutorial(1) npcDesc = NPCToons.NPCToonDict.get(20002) self.hqHarry = NPCToons.createNPC(self.air, 20002, npcDesc, self.zones['hq']) self.hqHarry.setTutorial(1) self.hqHarry.setHq(1) self.building = TutorialBuildingAI( self.air, self.zones['street'], self.zones['building'], 2, self.tutorialTom.getDoId()) self.hq = HQBuildingAI(self.air, self.zones['street'], self.zones['hq'], 1) self.forceTransition('Introduction')
def startup(self): HoodAI.HoodAI.startup(self) if simbase.config.GetBool("want-minigames", True): self.createTrolley() if simbase.config.GetBool("want-classic-chars", True): if simbase.config.GetBool("want-mickey", True): self.createClassicChar() if simbase.config.GetBool("want-butterflies", True): self.createButterflies() if simbase.air.wantYinYang: NPCToons.createNPC( simbase.air, 2021, ( ToontownGlobals.ToontownCentral, TTLocalizer.NPCToonNames[2021], ("css", "ms", "m", "m", 26, 0, 26, 26, 0, 27, 0, 27, 0, 27), "m", 1, NPCToons.NPC_YIN, ), ToontownGlobals.ToontownCentral, posIndex=0, ) NPCToons.createNPC( simbase.air, 2022, ( ToontownGlobals.ToontownCentral, TTLocalizer.NPCToonNames[2022], ("bss", "ms", "m", "m", 0, 0, 0, 0, 0, 31, 0, 31, 0, 31), "m", 1, NPCToons.NPC_YANG, ), ToontownGlobals.ToontownCentral, posIndex=0, )
def generate(self): DistributedObjectAI.generate(self) self.pond = DistributedFishingPondAI(self.air) self.pond.setArea(ToontownGlobals.MyEstate) self.pond.generateWithRequired(self.zoneId) self.pond.bingoMgr = DistributedPondBingoManagerAI(self.air) self.pond.bingoMgr.setPondDoId(self.pond.doId) self.pond.bingoMgr.generateWithRequired(self.zoneId) if self.air.holidayManager.isHolidayRunning( ToontownGlobals.FISH_BINGO_NIGHT): self.pond.bingoMgr.enableBingo() for i in xrange( FishingTargetGlobals.getNumTargets(ToontownGlobals.MyEstate)): target = DistributedFishingTargetAI(self.air) target.setPondDoId(self.pond.getDoId()) target.generateWithRequired(self.zoneId) self.targets.append(target) if simbase.config.GetBool('want-estate-fisherman', False): self.fisherman = NPCToons.createNPC(self.air, 91919, NPCToons.NPCToonDict[91919], self.zoneId) spot = DistributedFishingSpotAI(self.air) spot.setPondDoId(self.pond.getDoId()) spot.setPosHpr(49.1029, -124.805, 0.344704, 90, 0, 0) spot.generateWithRequired(self.zoneId) self.spots.append(spot) spot = DistributedFishingSpotAI(self.air) spot.setPondDoId(self.pond.getDoId()) spot.setPosHpr(46.5222, -134.739, 0.390713, 75, 0, 0) spot.generateWithRequired(self.zoneId) self.spots.append(spot) spot = DistributedFishingSpotAI(self.air) spot.setPondDoId(self.pond.getDoId()) spot.setPosHpr(41.31, -144.559, 0.375978, 45, 0, 0) spot.generateWithRequired(self.zoneId) self.spots.append(spot) spot = DistributedFishingSpotAI(self.air) spot.setPondDoId(self.pond.getDoId()) spot.setPosHpr(46.8254, -113.682, 0.46015, 135, 0, 0) spot.generateWithRequired(self.zoneId) self.spots.append(spot) self.createTreasurePlanner()
def enterTunnel(self): npcDesc = NPCToons.NPCToonDict.get(20001) self.flippy = NPCToons.createNPC(self.air, 20001, npcDesc, self.zones['street'], 0) if simbase.air.wantHalloween: self.BlackCatManager = DistributedBlackCatMgrAI.DistributedBlackCatMgrAI(self.air) self.BlackCatManager.generateWithRequired(self.zones['street']) self.hq.insideDoor0.setDoorLock(FADoorCodes.WRONG_DOOR_HQ) self.hq.insideDoor1.setDoorLock(FADoorCodes.UNLOCKED) self.hq.door0.setDoorLock(FADoorCodes.GO_TO_PLAYGROUND) self.hq.door1.setDoorLock(FADoorCodes.GO_TO_PLAYGROUND) self.building.door.setDoorLock(FADoorCodes.GO_TO_PLAYGROUND)
def startup(self): HoodAI.HoodAI.startup(self) if simbase.config.GetBool('want-minigames', True): self.createTrolley() if simbase.config.GetBool('want-classic-chars', True): if simbase.config.GetBool('want-mickey', True): self.createClassicChar() if simbase.config.GetBool('want-butterflies', True): self.createButterflies() NPCToons.createNPC(simbase.air, 2023, NPCToons.NPCToonDict[2023], ToontownGlobals.ToontownCentral, 0) if simbase.air.wantHalloween: self.TrickOrTreatTargetManager = DistributedTrickOrTreatTargetAI.DistributedTrickOrTreatTargetAI( self.air) self.TrickOrTreatTargetManager.generateWithRequired(2649) if simbase.air.wantChristmas: self.WinterCarolingTargetManager = DistributedWinterCarolingTargetAI.DistributedWinterCarolingTargetAI( self.air) self.WinterCarolingTargetManager.generateWithRequired(2659)
def generate(self): DistributedObjectAI.generate(self) self.pond = DistributedFishingPondAI(self.air) self.pond.setArea(ToontownGlobals.MyEstate) self.pond.generateWithRequired(self.zoneId) self.pond.bingoMgr = DistributedPondBingoManagerAI(self.air) self.pond.bingoMgr.setPondDoId(self.pond.doId) self.pond.bingoMgr.generateWithRequired(self.zoneId) if self.air.holidayManager.isHolidayRunning(ToontownGlobals.FISH_BINGO_NIGHT): self.pond.bingoMgr.enableBingo() for i in xrange(FishingTargetGlobals.getNumTargets(ToontownGlobals.MyEstate)): target = DistributedFishingTargetAI(self.air) target.setPondDoId(self.pond.getDoId()) target.generateWithRequired(self.zoneId) self.targets.append(target) if simbase.config.GetBool('want-estate-fisherman', False): self.fisherman = NPCToons.createNPC(self.air, 91919, NPCToons.NPCToonDict[91919], self.zoneId) spot = DistributedFishingSpotAI(self.air) spot.setPondDoId(self.pond.getDoId()) spot.setPosHpr(49.1029, -124.805, 0.344704, 90, 0, 0) spot.generateWithRequired(self.zoneId) self.spots.append(spot) spot = DistributedFishingSpotAI(self.air) spot.setPondDoId(self.pond.getDoId()) spot.setPosHpr(46.5222, -134.739, 0.390713, 75, 0, 0) spot.generateWithRequired(self.zoneId) self.spots.append(spot) spot = DistributedFishingSpotAI(self.air) spot.setPondDoId(self.pond.getDoId()) spot.setPosHpr(41.31, -144.559, 0.375978, 45, 0, 0) spot.generateWithRequired(self.zoneId) self.spots.append(spot) spot = DistributedFishingSpotAI(self.air) spot.setPondDoId(self.pond.getDoId()) spot.setPosHpr(46.8254, -113.682, 0.46015, 135, 0, 0) spot.generateWithRequired(self.zoneId) self.spots.append(spot) self.createTreasurePlanner()
def startup(self): HoodAI.HoodAI.startup(self) if simbase.config.GetBool('want-minigames', True): self.createTrolley() if simbase.config.GetBool('want-butterflies', True): self.createButterflies() NPCToons.createNPC( simbase.air, 2021, (ToontownGlobals.ToontownCentral, TTLocalizer.NPCToonNames[2021], ('dss', 'ls', 's', 'm', 13, 41, 13, 13, 1, 6, 1, 6, 0, 18, 0), 'm', 1, NPCToons.NPC_GLOVE), ToontownGlobals.ToontownCentral, posIndex=0) if simbase.air.wantHalloween: self.TrickOrTreatTargetManager = DistributedTrickOrTreatTargetAI.DistributedTrickOrTreatTargetAI(self.air) self.TrickOrTreatTargetManager.generateWithRequired(2649) if simbase.air.wantChristmas: self.WinterCarolingTargetManager = DistributedWinterCarolingTargetAI.DistributedWinterCarolingTargetAI(self.air) self.WinterCarolingTargetManager.generateWithRequired(2649) if simbase.air.wantJorElCam: self.JorElCamManager = DistributedJorElCamAI.DistributedJorElCamAI(self.air) self.JorElCamManager.generateWithRequired(self.zoneId)
def setup(self, blockNumber): # Put an NPC in here. Give him id# 20000. When he has assigned # his quest, he will unlock the interior door. self.gagShopNPC = NPCToons.createNPC( self.air, 20000, (self.interiorZone, TTLocalizer.NPCToonNames[20000], ("dll", "ms", "m", "m", 7, 0, 7, 7, 2, 6, 2, 6, 2, 16), "m", 1, NPCToons.NPC_REGULAR), self.interiorZone, questCallback=self.unlockInteriorDoor) # Flag him as being part of tutorial self.gagShopNPC.setTutorial(1) npcId = self.gagShopNPC.getDoId() # Toon interior (with tutorial flag set to 1) self.interior = DistributedTutorialInteriorAI.DistributedTutorialInteriorAI( blockNumber, self.air, self.interiorZone, self, npcId) self.interior.generateWithRequired(self.interiorZone) # Outside door: door = DistributedDoorAI.DistributedDoorAI( self.air, blockNumber, DoorTypes.EXT_STANDARD, lockValue=FADoorCodes.DEFEAT_FLUNKY_TOM) # Inside door. Locked until you get your gags. insideDoor = DistributedDoorAI.DistributedDoorAI( self.air, blockNumber, DoorTypes.INT_STANDARD, lockValue=FADoorCodes.TALK_TO_TOM) # Tell them about each other: door.setOtherDoor(insideDoor) insideDoor.setOtherDoor(door) door.zoneId = self.exteriorZone insideDoor.zoneId = self.interiorZone # Now that they both now about each other, generate them: door.generateWithRequired(self.exteriorZone) #door.sendUpdate("setDoorIndex", [door.getDoorIndex()]) insideDoor.generateWithRequired(self.interiorZone) #insideDoor.sendUpdate("setDoorIndex", [door.getDoorIndex()]) # keep track of them: self.door = door self.insideDoor = insideDoor return
def createShop(self, streetZone, shopZone, hqZone): shopInterior = DistributedTutorialInteriorAI(2, self.air, shopZone) desc = NPCToons.NPCToonDict.get(20000) npc = NPCToons.createNPC(self.air, 20000, desc, shopZone) npc.setTutorial(1) shopInterior.setTutorialNpcId(npc.doId) shopInterior.generateWithRequired(shopZone) extShopDoor = DistributedDoorAI.DistributedDoorAI(self.air, 2, DoorTypes.EXT_STANDARD, lockValue=FADoorCodes.DEFEAT_FLUNKY_TOM) intShopDoor = DistributedDoorAI.DistributedDoorAI(self.air, 2, DoorTypes.INT_STANDARD, lockValue=FADoorCodes.TALK_TO_TOM) extShopDoor.setOtherDoor(intShopDoor) intShopDoor.setOtherDoor(extShopDoor) extShopDoor.zoneId = streetZone intShopDoor.zoneId = shopZone extShopDoor.generateWithRequired(streetZone) extShopDoor.sendUpdate('setDoorIndex', [extShopDoor.getDoorIndex()]) intShopDoor.generateWithRequired(shopZone) intShopDoor.sendUpdate('setDoorIndex', [intShopDoor.getDoorIndex()]) self.accept('intShopDoor-{0}'.format(shopZone), intShopDoor.setDoorLock) self.accept('extShopDoor-{0}'.format(streetZone), extShopDoor.setDoorLock)
def create(self): self.branchZone = self.air.zoneAllocator.allocate() self.interiorZone = self.air.zoneAllocator.allocate() self.hqZone = self.air.zoneAllocator.allocate() self.streetInteriorDoor = DistributedDoorAI.DistributedDoorAI( self.air, 2, DoorTypes.EXT_STANDARD, lockValue=FADoorCodes.DEFEAT_FLUNKY_TOM ) self.interiorDoor = DistributedDoorAI.DistributedDoorAI( self.air, 2, DoorTypes.INT_STANDARD, lockValue=FADoorCodes.TALK_TO_TOM ) self.streetInteriorDoor.setOtherDoor(self.interiorDoor) self.interiorDoor.setOtherDoor(self.streetInteriorDoor) self.acceptDoorEvent(1, {self.interiorDoor: FADoorCodes.UNLOCKED}) # after tom self.streetInteriorDoor.generateWithRequired(self.branchZone) self.streetInteriorDoor.sendUpdate("setDoorIndex", [self.streetInteriorDoor.getDoorIndex()]) self.interiorDoor.generateWithRequired(self.interiorZone) self.interiorDoor.sendUpdate("setDoorIndex", [self.interiorDoor.getDoorIndex()]) self.tom = NPCToons.createNPC(self.air, 20000, NPCToons.NPCToonDict[20000], self.interiorZone) self.tom.setTutorial(1) self.tom.b_setParent(1) self.tomInterior = DistributedTutorialInteriorAI.DistributedTutorialInteriorAI(2, self.air, self.interiorZone) self.tomInterior.setTutorialNpcId(self.tom.doId) self.tomInterior.generateWithRequired(self.interiorZone) self.cog = DistributedTutorialSuitAI.DistributedTutorialSuitAI(self.air, self) self.cog.setupSuitDNA(1, 0, "c") self.cog.generateWithRequired(self.branchZone) self.streetNpc = None self.hqInterior = DistributedHQInteriorAI.DistributedHQInteriorAI(1, self.air, self.hqZone) self.hqInterior.generateWithRequired(self.hqZone) self.hqInterior.setTutorial(1) self.hqNpc = NPCToons.createNPC(self.air, 20002, NPCToons.NPCToonDict[20002], self.hqZone) self.hqNpc.setTutorial(1) self.hqNpc.setHq(1) self.streetHqDoor = DistributedDoorAI.DistributedDoorAI( self.air, 1, DoorTypes.EXT_HQ, doorIndex=0, lockValue=FADoorCodes.DEFEAT_FLUNKY_HQ ) self.streetHqDoor2 = DistributedDoorAI.DistributedDoorAI( self.air, 1, DoorTypes.EXT_HQ, doorIndex=1, lockValue=FADoorCodes.DEFEAT_FLUNKY_HQ ) self.hqInsideDoor = DistributedDoorAI.DistributedDoorAI( self.air, 1, DoorTypes.INT_HQ, doorIndex=0, lockValue=FADoorCodes.TALK_TO_HQ ) self.hqInsideDoor2 = DistributedDoorAI.DistributedDoorAI( self.air, 1, DoorTypes.INT_HQ, doorIndex=1, lockValue=FADoorCodes.TALK_TO_HQ ) self.acceptDoorEvent( 2, { self.streetHqDoor: FADoorCodes.GO_TO_PLAYGROUND, self.streetHqDoor2: FADoorCodes.GO_TO_PLAYGROUND, self.hqInsideDoor2: FADoorCodes.UNLOCKED, }, ) self.streetHqDoor.setOtherDoor(self.hqInsideDoor) self.hqInsideDoor.setOtherDoor(self.streetHqDoor) self.streetHqDoor2.setOtherDoor(self.hqInsideDoor2) self.hqInsideDoor2.setOtherDoor(self.streetHqDoor2) self.streetHqDoor.generateWithRequired(self.branchZone) self.streetHqDoor2.generateWithRequired(self.branchZone) self.streetHqDoor.sendUpdate("setDoorIndex", [self.streetHqDoor.getDoorIndex()]) self.streetHqDoor2.sendUpdate("setDoorIndex", [self.streetHqDoor2.getDoorIndex()]) self.hqInsideDoor.generateWithRequired(self.hqZone) self.hqInsideDoor2.generateWithRequired(self.hqZone) self.hqInsideDoor.sendUpdate("setDoorIndex", [self.hqInsideDoor.getDoorIndex()]) self.hqInsideDoor2.sendUpdate("setDoorIndex", [self.hqInsideDoor2.getDoorIndex()]) self.zones = (20000, self.branchZone, self.interiorZone, self.hqZone)
def create(self): self.branchZone = self.air.zoneAllocator.allocate() self.interiorZone = self.air.zoneAllocator.allocate() self.hqZone = self.air.zoneAllocator.allocate() self.streetInteriorDoor = DistributedDoorAI.DistributedDoorAI(self.air, 2, DoorTypes.EXT_STANDARD, lockValue = FADoorCodes.DEFEAT_FLUNKY_TOM) self.interiorDoor = DistributedDoorAI.DistributedDoorAI(self.air, 2, DoorTypes.INT_STANDARD, lockValue = FADoorCodes.TALK_TO_TOM) self.streetInteriorDoor.setOtherDoor(self.interiorDoor) self.interiorDoor.setOtherDoor(self.streetInteriorDoor) self.acceptDoorEvent(1, {self.interiorDoor: FADoorCodes.UNLOCKED}) # after tom self.streetInteriorDoor.generateWithRequired(self.branchZone) self.streetInteriorDoor.sendUpdate('setDoorIndex', [self.streetInteriorDoor.getDoorIndex()]) self.interiorDoor.generateWithRequired(self.interiorZone) self.interiorDoor.sendUpdate('setDoorIndex', [self.interiorDoor.getDoorIndex()]) self.tom = NPCToons.createNPC(self.air, 20000, NPCToons.NPCToonDict[20000], self.interiorZone) self.tom.setTutorial(1) self.tom.b_setParent(1) self.tomInterior = DistributedTutorialInteriorAI.DistributedTutorialInteriorAI(2, self.air, self.interiorZone) self.tomInterior.setTutorialNpcId(self.tom.doId) self.tomInterior.generateWithRequired(self.interiorZone) self.cog = DistributedTutorialSuitAI.DistributedTutorialSuitAI(self.air, self) self.cog.setupSuitDNA(1, 0, 'c') self.cog.generateWithRequired(self.branchZone) self.streetNpc = None self.hqInterior = DistributedHQInteriorAI.DistributedHQInteriorAI(1, self.air, self.hqZone) self.hqInterior.generateWithRequired(self.hqZone) self.hqInterior.setTutorial(1) self.hqNpc = NPCToons.createNPC(self.air, 20002, NPCToons.NPCToonDict[20002], self.hqZone) self.hqNpc.setTutorial(1) self.hqNpc.setHq(1) self.streetHqDoor = DistributedDoorAI.DistributedDoorAI(self.air, 1, DoorTypes.EXT_HQ, doorIndex = 0, lockValue = FADoorCodes.DEFEAT_FLUNKY_HQ) self.streetHqDoor2 = DistributedDoorAI.DistributedDoorAI(self.air, 1, DoorTypes.EXT_HQ, doorIndex = 1, lockValue = FADoorCodes.DEFEAT_FLUNKY_HQ) self.hqInsideDoor = DistributedDoorAI.DistributedDoorAI(self.air, 1, DoorTypes.INT_HQ, doorIndex = 0, lockValue = FADoorCodes.TALK_TO_HQ) self.hqInsideDoor2 = DistributedDoorAI.DistributedDoorAI(self.air, 1, DoorTypes.INT_HQ, doorIndex = 1, lockValue = FADoorCodes.TALK_TO_HQ) self.acceptDoorEvent(2, { self.streetHqDoor: FADoorCodes.GO_TO_PLAYGROUND, self.streetHqDoor2: FADoorCodes.GO_TO_PLAYGROUND, self.hqInsideDoor2: FADoorCodes.UNLOCKED, } ) self.streetHqDoor.setOtherDoor(self.hqInsideDoor) self.hqInsideDoor.setOtherDoor(self.streetHqDoor) self.streetHqDoor2.setOtherDoor(self.hqInsideDoor2) self.hqInsideDoor2.setOtherDoor(self.streetHqDoor2) self.streetHqDoor.generateWithRequired(self.branchZone) self.streetHqDoor2.generateWithRequired(self.branchZone) self.streetHqDoor.sendUpdate('setDoorIndex', [self.streetHqDoor.getDoorIndex()]) self.streetHqDoor2.sendUpdate('setDoorIndex', [self.streetHqDoor2.getDoorIndex()]) self.hqInsideDoor.generateWithRequired(self.hqZone) self.hqInsideDoor2.generateWithRequired(self.hqZone) self.hqInsideDoor.sendUpdate('setDoorIndex', [self.hqInsideDoor.getDoorIndex()]) self.hqInsideDoor2.sendUpdate('setDoorIndex', [self.hqInsideDoor2.getDoorIndex()]) self.zones = (20000, self.branchZone, self.interiorZone, self.hqZone)
def setup(self, blockNumber): # The interior self.interior = DistributedHQInteriorAI.DistributedHQInteriorAI( blockNumber, self.air, self.interiorZone) # We do not use a standard npc toon here becuase these npcs are created on # the fly for as many tutorials as we need. The interior zone is not known # until the ai allocates a zone, so we fabricate the description here. desc = (self.interiorZone, TTLocalizer.TutorialHQOfficerName, ('dls', 'ms', 'm', 'm', 6, 0, 6, 6, 0, 10, 0, 10, 2, 9), "m", 1, 0) self.npc = NPCToons.createNPC(self.air, Quests.ToonHQ, desc, self.interiorZone, questCallback=self.unlockInsideDoor1) # Flag npc as part of tutorial self.npc.setTutorial(1) self.interior.generateWithRequired(self.interiorZone) # Outside door 0. Locked til you defeat the Flunky: door0 = DistributedDoorAI.DistributedDoorAI( self.air, blockNumber, DoorTypes.EXT_HQ, doorIndex=0, lockValue=FADoorCodes.DEFEAT_FLUNKY_HQ) # Outside door 1. Always locked. door1 = DistributedDoorAI.DistributedDoorAI( self.air, blockNumber, DoorTypes.EXT_HQ, doorIndex=1, lockValue=FADoorCodes.GO_TO_PLAYGROUND) # Inside door 0. Always locked, but the message will change. insideDoor0 = DistributedDoorAI.DistributedDoorAI( self.air, blockNumber, DoorTypes.INT_HQ, doorIndex=0, lockValue=FADoorCodes.TALK_TO_HQ) # Inside door 1. Locked til you get your HQ reward. insideDoor1 = DistributedDoorAI.DistributedDoorAI( self.air, blockNumber, DoorTypes.INT_HQ, doorIndex=1, lockValue=FADoorCodes.TALK_TO_HQ) # Tell them about each other: door0.setOtherDoor(insideDoor0) insideDoor0.setOtherDoor(door0) door1.setOtherDoor(insideDoor1) insideDoor1.setOtherDoor(door1) # Put them in the right zones door0.zoneId = self.exteriorZone door1.zoneId = self.exteriorZone insideDoor0.zoneId = self.interiorZone insideDoor1.zoneId = self.interiorZone # Now that they both now about each other, generate them: door0.generateWithRequired(self.exteriorZone) door1.generateWithRequired(self.exteriorZone) door0.sendUpdate("setDoorIndex", [door0.getDoorIndex()]) door1.sendUpdate("setDoorIndex", [door1.getDoorIndex()]) insideDoor0.generateWithRequired(self.interiorZone) insideDoor1.generateWithRequired(self.interiorZone) insideDoor0.sendUpdate("setDoorIndex", [insideDoor0.getDoorIndex()]) insideDoor1.sendUpdate("setDoorIndex", [insideDoor1.getDoorIndex()]) # keep track of them: self.door0 = door0 self.door1 = door1 self.insideDoor0 = insideDoor0 self.insideDoor1 = insideDoor1 # hide the periscope self.interior.setTutorial(1) return