Ejemplo n.º 1
0
    def custom_init(self, nart):
        # Create a building within the town.
        garage_name = "Magnus Mecha Works"
        building = self.register_element("_EXTERIOR", ghterrain.IndustrialBuilding(
            waypoints={"DOOR": ghwaypoints.ScrapIronDoor(name=garage_name)},
            door_sign=(ghterrain.FixitShopSignEast, ghterrain.FixitShopSignSouth),
            tags=[pbge.randmaps.CITY_GRID_ROAD_OVERLAP]), dident="METROSCENE")

        self.rank = 55
        tplot = self.add_sub_plot(nart, "MECHA_WORKSHOP", elements={"BUILDING_NAME": garage_name})
        self.elements["LOCALE"] = tplot.elements["LOCALE"]

        mycon2 = plotutility.TownBuildingConnection(nart, self, self.elements["METROSCENE"], tplot.elements["LOCALE"],
                                                    room2=tplot.elements["FOYER"],
                                                    room1=building, door1=building.waypoints["DOOR"],
                                                    move_door1=False)

        npc = self.register_element("SHOPKEEPER",
                                    gears.selector.random_character(
                                        name="Ran Magnus",
                                        rank=75, local_tags=(gears.personality.GreenZone,),
                                        job=gears.jobs.ALL_JOBS["Mecha Designer"],
                                        birth_year=106, combatant=False, faction=gears.factions.ProDuelistAssociation,
                                        personality=[personality.Passionate, personality.Sociable, personality.Fellowship],
                                        mnpcid="RAN_MAGNUS",
                                        gender=gears.genderobj.Gender.get_default_female(),
                                        portrait='card_f_ranmagnus.png',
                                        colors=(gears.color.GriffinGreen, gears.color.DarkSkin, gears.color.Fuschia,
                                                gears.color.PlasmaBlue, gears.color.CardinalRed),
                                    ))
        npc.place(tplot.elements["LOCALE"], team=tplot.elements["CIVILIAN_TEAM"])

        self.shop = services.Shop(npc=npc, shop_faction=gears.factions.ProDuelistAssociation,
                                  ware_types=services.MEXTRA_STORE, rank=55)

        self.got_reward = False

        self.magnus_info = (
            OneShotInfoBlast("Osmund",
                             "We used to be lancemates back in the old days. You couldn't ask for a better partner. Then his knees gave out and I discovered that I like building mecha better than I like blasting them."),

            OneShotInfoBlast("mecha",
                             "Kind of a lifelong obsession for me. One of several, to be honest. But, it's the one that gets me paid. I've been designing mecha for thirty years now. Around ten years back I started this company and now I build mecha, too."),

            OneShotInfoBlast("design",
                             "It's important that a mecha know what its job is. There is no such thing as a perfect mecha, just fitness for a particular role. Install that which is useful, uninstall that which is not, and create that which is essentially your own."),

            OneShotInfoBlast("factory",
                             "This is my first factory in Eurasia. We're trying to ramp up production; the possibility of a war with Luna has doubled the demand for our meks. It's way too cold in {} but the local food is delicious so that kind of evens out.".format(self.elements["METROSCENE"]),
                             subject_text="the factory"),
        )


        return True
Ejemplo n.º 2
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
Ejemplo n.º 3
0
    def custom_init(self, nart):
        # Create a building within the town.
        building = self.register_element(
            "_EXTERIOR",
            ghterrain.BrickBuilding(
                waypoints={
                    "DOOR": ghwaypoints.ScrapIronDoor(name="Town Hall")
                },
                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",
                           faction=self.elements["METRO_FACTION"])
        intscene = gears.GearHeadScene(
            35,
            35,
            "Town Hall",
            player_team=team1,
            civilian_team=team2,
            attributes=(gears.tags.SCENE_PUBLIC, gears.tags.SCENE_BUILDING,
                        gears.tags.SCENE_GOVERNMENT),
            scale=gears.scale.HumanScale)
        intscenegen = pbge.randmaps.SceneGenerator(
            intscene,
            gharchitecture.DefaultBuilding(
                floor_terrain=ghterrain.WhiteTileFloor))
        self.register_scene(nart,
                            intscene,
                            intscenegen,
                            ident="INTERIOR",
                            dident="LOCALE")
        foyer = self.register_element(
            '_introom',
            pbge.randmaps.rooms.ClosedRoom(
                anchor=pbge.randmaps.anchors.south, ),
            dident="INTERIOR")

        mycon2 = plotutility.TownBuildingConnection(
            self,
            self.elements["LOCALE"],
            intscene,
            room1=building,
            room2=foyer,
            door1=building.waypoints["DOOR"],
            move_door1=False)

        npc = self.register_element(
            "LEADER",
            gears.selector.random_character(
                self.rank,
                local_tags=self.elements["LOCALE"].attributes,
                job=gears.jobs.ALL_JOBS["Technocrat"],
                faction=self.elements["METRO_FACTION"]))
        npc.place(intscene, team=team2)

        self.town_origin_ready = True

        bodyguard = self.register_element(
            "BODYGUARD",
            gears.selector.random_character(
                self.rank,
                local_tags=self.elements["LOCALE"].attributes,
                job=gears.jobs.choose_random_job(
                    (gears.tags.Adventurer, ),
                    self.elements["LOCALE"].attributes),
                faction=self.elements["METRO_FACTION"]))
        bodyguard.place(intscene, team=team2)

        return True
Ejemplo n.º 4
0
    def custom_init(self, nart):
        # Create a building within the town.
        npc_name, garage_name = self.generate_npc_and_building_name()
        building = self.register_element(
            "_EXTERIOR",
            ghterrain.ScrapIronBuilding(
                waypoints={
                    "DOOR": ghwaypoints.ScrapIronDoor(name=garage_name)
                },
                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,
                                       garage_name,
                                       player_team=team1,
                                       civilian_team=team2,
                                       attributes=(gears.tags.SCENE_PUBLIC,
                                                   gears.tags.SCENE_GARAGE),
                                       scale=gears.scale.HumanScale)
        intscenegen = pbge.randmaps.SceneGenerator(
            intscene, gharchitecture.ScrapIronWorkshop())
        self.register_scene(nart,
                            intscene,
                            intscenegen,
                            ident="INTERIOR",
                            dident="LOCALE")
        foyer = self.register_element(
            '_introom',
            pbge.randmaps.rooms.ClosedRoom(
                anchor=pbge.randmaps.anchors.south, ),
            dident="INTERIOR")
        foyer.contents.append(ghwaypoints.MechEngTerminal())
        foyer.contents.append(ghwaypoints.MechaPoster())

        mycon2 = plotutility.TownBuildingConnection(
            self,
            self.elements["LOCALE"],
            intscene,
            room1=building,
            room2=foyer,
            door1=building.waypoints["DOOR"],
            move_door1=False)

        npc = self.register_element(
            "SHOPKEEPER",
            gears.selector.random_character(
                self.rank,
                name=npc_name,
                local_tags=self.elements["LOCALE"].attributes,
                job=gears.jobs.ALL_JOBS["Mechanic"]))
        npc.place(intscene, team=team2)

        self.shop = services.Shop(
            npc=npc,
            shop_faction=gears.factions.TerranDefenseForce,
            ware_types=services.BARE_ESSENTIALS_STORE,
            rank=self.rank // 4)

        return True