Example #1
0
    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
Example #2
0
    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