コード例 #1
0
    def custom_init(self, nart):
        shoproom = self.register_element('_introom',
                                         pbge.randmaps.rooms.ClosedRoom(8, 8),
                                         dident="INTERIOR")

        myteam = teams.Team(allies=(self.elements["INTERIOR"].civilian_team, ))
        shoproom.contents.append(myteam)

        # 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"],
                combatant=False))
        myteam.contents.append(npc1)

        self.shopname = "{}'s Shop".format(npc1)

        self.shop = services.Shop(npc=npc1,
                                  ware_types=services.BLACK_MARKET,
                                  rank=self.rank + random.randint(1, 50),
                                  shop_faction=self.elements.get(
                                      "FACTION",
                                      gears.factions.TreasureHunters))

        return True
コード例 #2
0
ファイル: dd_misc.py プロジェクト: gmx0/gearhead-caramel
    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
コード例 #3
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"]),
            dident="INTERIOR")

        self.shopname = "{}'s Contraband".format(npc1)
        self.shop = services.Shop(npc=npc1,
                                  ware_types=services.BLACK_MARKET,
                                  rank=self.rank + random.randint(1, 50),
                                  buy_stolen_items=True)

        self.shop_unlocked = False
        self.shop_forever_locked = False

        return True
コード例 #4
0
    def custom_init(self, nart):
        # Create an office.
        myroom = self.register_element(
            '_room',
            pbge.randmaps.rooms.ClosedRoom(
                decorate=gharchitecture.UlsaniteOfficeDecor()),
            dident="LOCALE")
        npc = self.register_element(
            'NPC',
            gears.selector.random_character(
                50,
                local_tags=self.elements["METROSCENE"].attributes,
                job=gears.jobs.ALL_JOBS["Researcher"]),
            dident="_room")

        self.shop = services.Shop(npc=npc,
                                  sell_champion_equipment=True,
                                  num_items=5,
                                  ware_types=services.MECHA_WEAPON_STORE,
                                  rank=self.rank)
        return True
コード例 #5
0
    def custom_init(self, nart):
        # Create an office.
        myroom = self.register_element('_room',
                                       pbge.randmaps.rooms.ClosedRoom(),
                                       dident="LOCALE")
        myroom.contents.append(ghwaypoints.MechaModel())
        myroom.contents.append(ghwaypoints.MechaModel())
        myroom.contents.append(ghwaypoints.MechaModel())
        npc = self.register_element(
            'NPC',
            gears.selector.random_character(
                50,
                local_tags=self.elements["METROSCENE"].attributes,
                job=gears.jobs.ALL_JOBS["Shopkeeper"]),
            dident="_room")

        self.shop = services.Shop(npc=npc,
                                  num_items=5,
                                  ware_types=services.MECHA_STORE,
                                  rank=self.rank)
        return True
コード例 #6
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
コード例 #7
0
    def custom_init(self, nart):
        # Create a building within the town.
        self.myname = "{} Clinic".format(self.elements["LOCALE"])
        building = self.register_element(
            "_EXTERIOR",
            ghterrain.BrickBuilding(
                waypoints={"DOOR": ghwaypoints.WoodenDoor(name=self.myname)},
                door_sign=(ghterrain.HospitalSignEast,
                           ghterrain.HospitalSignSouth),
                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.myname,
                                       player_team=team1,
                                       civilian_team=team2,
                                       attributes=(gears.tags.SCENE_PUBLIC,
                                                   gears.tags.SCENE_BUILDING,
                                                   gears.tags.SCENE_HOSPITAL),
                                       scale=gears.scale.HumanScale)
        intscenegen = pbge.randmaps.SceneGenerator(
            intscene, gharchitecture.HospitalBuilding())
        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.RecoveryBed())

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

        npc = self.register_element(
            "DOCTOR",
            gears.selector.random_character(
                50,
                local_tags=self.elements["LOCALE"].attributes,
                job=gears.jobs.ALL_JOBS["Doctor"]))
        npc.place(intscene, team=team2)

        self.shop = services.Shop(services.PHARMACY,
                                  allow_misc=False,
                                  caption="Pharmacy",
                                  rank=self.rank,
                                  npc=npc)

        return True
コード例 #8
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",
            self.GarageBuilding(
                waypoints={"DOOR": self.GarageDoor(name=garage_name)},
                door_sign=self.door_sign,
                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_BUILDING,
                        gears.tags.SCENE_GARAGE, gears.tags.SCENE_SHOP),
            scale=gears.scale.HumanScale)
        intscenegen = pbge.randmaps.SceneGenerator(intscene,
                                                   self.GarageArchitecture())
        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")
        for item in self.additional_waypoints:
            foyer.contents.append(item())

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

        job = random.choice(self.SHOPKEEPER_JOBS)
        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[job]))
        npc.place(intscene, team=team2)

        self.shop = services.Shop(npc=npc,
                                  shop_faction=self.shop_faction,
                                  ware_types=self.shop_ware_types,
                                  rank=self.shop_rank)

        return True
コード例 #9
0
    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
コード例 #10
0
    def custom_init(self, nart):
        # Create the shopkeeper
        myjob = gears.jobs.choose_random_job(
            (gears.tags.Medic, ), self.elements["LOCALE"].attributes)
        npc1 = self.register_element(
            "SHOPKEEPER",
            gears.selector.random_character(
                self.rank,
                local_tags=self.elements["LOCALE"].attributes,
                job=myjob))
        npc1.name = self.elements.get("NPC_NAME", "") or npc1.name

        self.shopname = self.elements.get("SHOP_NAME",
                                          "") or self._generate_shop_name()

        # Create a building within the town.
        building = self.register_element(
            "_EXTERIOR",
            get_building(
                self,
                ghterrain.BrickBuilding,
                waypoints={"DOOR": ghwaypoints.GlassDoor(name=self.shopname)},
                door_sign=(ghterrain.HospitalSignEast,
                           ghterrain.HospitalSignSouth),
                tags=[
                    pbge.randmaps.CITY_GRID_ROAD_OVERLAP,
                    pbge.randmaps.IS_CITY_ROOM, pbge.randmaps.IS_CONNECTED_ROOM
                ]),
            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_HOSPITAL),
            scale=gears.scale.HumanScale)

        intscenegen = pbge.randmaps.PackedBuildingGenerator(
            intscene, gharchitecture.HospitalBuilding())
        self.register_scene(nart,
                            intscene,
                            intscenegen,
                            ident="INTERIOR",
                            dident="LOCALE")
        foyer = self.register_element(
            'FOYER',
            pbge.randmaps.rooms.ClosedRoom(
                anchor=pbge.randmaps.anchors.south, ),
            dident="INTERIOR")

        mycon2 = plotutility.TownBuildingConnection(
            nart,
            self,
            self.elements["LOCALE"],
            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.PHARMACY,
            rank=self.rank + random.randint(0, 15),
            shop_faction=self.elements.get("SHOP_FACTION"))

        room2 = self.register_element('_room2',
                                      pbge.randmaps.rooms.ClosedRoom(),
                                      dident="INTERIOR")
        room2.contents.append(ghwaypoints.RecoveryBed())
        room2.contents.append(ghwaypoints.RecoveryBed())

        if random.randint(1, 10) == 5:
            cybershop = services.Shop(npc=None,
                                      rank=self.rank + random.randint(1, 25),
                                      ware_types=services.CYBERWARE_STORE)
            room2.contents.append(ghwaypoints.CyberdocTerminal(shop=cybershop))

        if random.randint(1, 3) == 2:
            self.add_sub_plot(nart, "HOSPITAL_BONUS")

        return True
コード例 #11
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["Mechanic"]))
        npc1.name = self.elements.get("NPC_NAME", "") or npc1.name

        self.shopname = self.elements.get("SHOP_NAME",
                                          "") or self._generate_shop_name()

        # Create a building within the town.
        building = self.register_element(
            "_EXTERIOR",
            get_building(
                self,
                ghterrain.IndustrialBuilding,
                waypoints={"DOOR": ghwaypoints.GlassDoor(name=self.shopname)},
                door_sign=self._generate_shop_sign(),
                tags=[
                    pbge.randmaps.CITY_GRID_ROAD_OVERLAP,
                    pbge.randmaps.IS_CITY_ROOM, pbge.randmaps.IS_CONNECTED_ROOM
                ]),
            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_GARAGE),
            scale=gears.scale.HumanScale)

        intscenegen = pbge.randmaps.SceneGenerator(
            intscene, gharchitecture.IndustrialBuilding())
        self.register_scene(nart,
                            intscene,
                            intscenegen,
                            ident="INTERIOR",
                            dident="LOCALE")
        foyer = self.register_element(
            'FOYER',
            pbge.randmaps.rooms.ClosedRoom(
                anchor=pbge.randmaps.anchors.south,
                decorate=gharchitecture.FactoryDecor()),
            dident="INTERIOR")

        mycon2 = plotutility.TownBuildingConnection(
            nart,
            self,
            self.elements["LOCALE"],
            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.MECHA_STORE,
            rank=self.rank + random.randint(0, 15),
            shop_faction=self.elements.get("SHOP_FACTION"))

        foyer.contents.append(ghwaypoints.MechEngTerminal())

        return True
コード例 #12
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