def custom_init(self, nart): # Create the shopkeeper npc1 = self.register_element("SHOPKEEPER", gears.selector.random_character( self.rank, local_tags=self.elements["LOCALE"].attributes, job=gears.jobs.ALL_JOBS["Smuggler"])) self.shopname = self._generate_shop_name() # Create a building within the town. building = self.register_element("_EXTERIOR", get_building( self, ghterrain.BrickBuilding, waypoints={"DOOR": ghwaypoints.ScrapIronDoor(name=self.shopname)}, door_sign=(ghterrain.CrossedSwordsTerrainEast, ghterrain.CrossedSwordsTerrainSouth), tags=[pbge.randmaps.CITY_GRID_ROAD_OVERLAP]), dident="LOCALE") # Add the interior scene. team1 = teams.Team(name="Player Team") team2 = teams.Team(name="Civilian Team") intscene = gears.GearHeadScene( 35, 35, self.shopname, player_team=team1, civilian_team=team2, faction=self.elements.get("SHOP_FACTION"), attributes=self.elements.get("INTERIOR_TAGS", (gears.tags.SCENE_PUBLIC,)) + (gears.tags.SCENE_BUILDING, gears.tags.SCENE_SHOP), scale=gears.scale.HumanScale) intscenegen = pbge.randmaps.SceneGenerator(intscene, gharchitecture.CommercialBuilding()) self.register_scene(nart, intscene, intscenegen, ident="INTERIOR", dident="LOCALE") foyer = self.register_element('_introom', pbge.randmaps.rooms.ClosedRoom(anchor=pbge.randmaps.anchors.south, decorate=gharchitecture.CheeseShopDecor()), dident="INTERIOR") mycon2 = plotutility.TownBuildingConnection( nart, self, self.elements["METROSCENE"], intscene, room1=building, room2=foyer, door1=building.waypoints["DOOR"], move_door1=False) npc1.place(intscene, team=team2) self.shop = services.Shop(npc=npc1, ware_types=services.BLACK_MARKET, rank=self.rank+25, shop_faction=self.elements.get("SHOP_FACTION")) return True
def custom_init(self, nart): myroom = self.register_element('_introom', pbge.randmaps.rooms.ClosedRoom(), dident="LOCALE") bteam = self.register_element( "_bteam", teams.Team("Bouncer Team", allies=(self.elements["LOCALE"].civilian_team, )), dident="_introom") bouncer = self.register_element( "BOUNCER", gears.selector.random_character( self.rank, local_tags=self.elements["METROSCENE"].attributes, job=gears.jobs.ALL_JOBS["Security Guard"]), lock=True, dident="_bteam") # Create the VIP's office. team1 = teams.Team(name="Player Team") team2 = teams.Team(name="Civilian Team") intscene = gears.GearHeadScene( 35, 35, "{}'s Office".format(self.elements["NPC"]), player_team=team1, civilian_team=team2, attributes=(gears.tags.SCENE_BUILDING, ), scale=gears.scale.HumanScale) intscenegen = pbge.randmaps.SceneGenerator( intscene, gharchitecture.CommercialBuilding()) self.register_scene(nart, intscene, intscenegen, ident="INTERIOR", dident="LOCALE") office = self.register_element( '_office', pbge.randmaps.rooms.ClosedRoom( width=20, height=12, anchor=pbge.randmaps.anchors.south, decorate=gharchitecture.OfficeDecor()), dident="INTERIOR") office.contents.append(team2) team2.contents.append(self.elements["NPC"]) office_exit = ghwaypoints.Exit(name="Exit", anchor=pbge.randmaps.anchors.south) office.contents.append(office_exit) elevator = self.register_element("_elevator", ghwaypoints.GlassDoor( name="Elevator", plot_locked=True, dest_wp=office_exit), dident="_introom") office_exit.dest_wp = elevator self.lockpick_pc = None self.bribe_cost = gears.selector.calc_mission_reward(self.rank, 300) return True