def custom_init(self, nart): npc_name, garage_name = self.generate_npc_and_building_name() # Add the interior scene. team1 = teams.Team(name="Player Team") team2 = self.register_element("CIVILIAN_TEAM", teams.Team(name="Civilian Team")) intscene = gears.GearHeadScene( 50, 50, garage_name, player_team=team1, civilian_team=team2, attributes=(gears.tags.SCENE_PUBLIC, gears.tags.SCENE_BUILDING, gears.tags.SCENE_GARAGE, gears.tags.SCENE_SHOP), scale=gears.scale.HumanScale, exploration_music="AlexBeroza_-_Kalte_Ohren.ogg") intscenegen = pbge.randmaps.PackedBuildingGenerator( intscene, gharchitecture.FactoryBuilding(), decorate=gharchitecture.FactoryDecor()) self.register_scene(nart, intscene, intscenegen, ident="LOCALE", dident="METROSCENE") foyer = self.register_element('FOYER', pbge.randmaps.rooms.ClosedRoom( 10, 10, anchor=pbge.randmaps.anchors.south, ), dident="LOCALE") foyer.contents.append(team2) npc = self.register_element( "SHOPKEEPER", gears.selector.random_character( self.rank, name=npc_name, local_tags=self.elements["METROSCENE"].attributes, job=gears.jobs.ALL_JOBS["Mechanic"])) npc.place(intscene, team=team2) for item in self.additional_waypoints: foyer.contents.append(item()) self.shop = services.Shop( npc=npc, shop_faction=self.elements["METROSCENE"].faction, ware_types=services.MECHA_PARTS_STORE, rank=self.rank) # Add some details and complications. if random.randint(1, 8) != 4: self.add_sub_plot(nart, "MEKWORK_PROBLEM", necessary=False) if random.randint(1, 6) != 4: self.add_sub_plot(nart, "MEKWORK_FEATURE", necessary=False) if random.randint(1, 4) != 4: self.add_sub_plot(nart, "MEKWORK_MISC", necessary=False) return True
def custom_init(self, nart): # Create a room for the engineer. myroom = self.register_element('_introom', pbge.randmaps.rooms.ClosedRoom(), dident="LOCALE") npc = self.register_element( "ENGINEER", gears.selector.random_character( local_tags=self.elements["METROSCENE"].attributes, job=gears.jobs.ALL_JOBS["Factory Worker"]), dident="_introom") # Create the dungeon level. sp = self.add_sub_plot( nart, "DUNGEON_GENERIC", elements={ dungeonmaker.DG_NAME: "{} Basement".format(self.elements["LOCALE"]), dungeonmaker.DG_PARENT_SCENE: self.elements["LOCALE"], dungeonmaker.DG_MONSTER_TAGS: ("ROBOT", ), dungeonmaker.DG_ARCHITECTURE: gharchitecture.FactoryBuilding(), dungeonmaker.DG_DECOR: gharchitecture.RundownFactoryDecor(), dungeonmaker.DG_SCENE_TAGS: (gears.tags.SCENE_DUNGEON, gears.tags.SCENE_SEMIPUBLIC), dungeonmaker.DG_EXPLO_MUSIC: "Komiku_-_01_-_Ancient_Heavy_Tech_Donjon.ogg", dungeonmaker.DG_COMBAT_MUSIC: "Komiku_-_03_-_Battle_Theme.ogg", }) self.elements["DUNGEON"] = sp.elements["LOCALE"] # Connect the dungeon level. plotutility.StairsDownToStairsUpConnector( self, self.elements["LOCALE"], sp.elements["LOCALE"], room1=myroom, ) # Add the generator room and broken generator goalroom = self.register_element('_goalroom', pbge.randmaps.rooms.ClosedRoom(), dident="DUNGEON") generator = self.register_element( "_generator", ghwaypoints.OldTerminal( name="Generator Control", desc="You stand before the power generator control terminal.", plot_locked=True), dident="_goalroom") self.got_intro = False self.fixed_generator = False self.reward = gears.base.Engine( size=800 + self.rank * 10, desig="MP-{} Advanced".format(800 + self.rank * 10), material=gears.materials.Advanced) return True