def custom_init( self, nart ): team1 = teams.Team(name="Player Team") myscene = gears.GearHeadScene(35,35,"Radio Tower Area",player_team=team1,scale=gears.scale.MechaScale) myscenegen = pbge.randmaps.SceneGenerator(myscene, game.content.gharchitecture.MechaScaleDeadzone()) self.register_scene( nart, myscene, myscenegen, ident="LOCALE" ) myscene.exploration_music = 'Lines.ogg' myscene.combat_music = 'Late.ogg' mygoal = self.register_element("_goalroom",pbge.randmaps.rooms.FuzzyRoom(10,10,parent=myscene,anchor=pbge.randmaps.anchors.middle)) team1 = teams.Team(name="Player Team") team2 = teams.Team(name="Civilian Team") intscene = gears.GearHeadScene(10,10,"Radio Tower Interior",player_team=team1,civilian_team=team2,scale= gears.scale.HumanScale) intscenegen = pbge.randmaps.SceneGenerator(intscene, game.content.gharchitecture.DefaultBuilding()) self.register_scene( nart, intscene, intscenegen, ident="GOALSCENE" ) introom = self.register_element('_introom', pbge.randmaps.rooms.OpenRoom(7, 7, anchor=pbge.randmaps.anchors.middle, decorate=pbge.randmaps.decor.OmniDec(win=game.content.ghterrain.Window)), dident="GOALSCENE") self.move_element(self.elements["PERSON"],introom) intscene.local_teams[self.elements["PERSON"]] = team2 self.register_element('WAYPOINT', game.content.ghwaypoints.RetroComputer(), dident="_introom") world_scene = self.elements["WORLD"] wm_con = game.content.plotutility.WMCommTowerConnection(self, world_scene, myscene) if random.randint(1,3) != 1: wm_con.room1.tags = (dd_main.ON_THE_ROAD,) int_con = game.content.plotutility.IntCommTowerConnection(self, myscene, intscene, room1=mygoal, room2=introom) tplot = self.add_sub_plot(nart, "DZD_MECHA_ENCOUNTER", spstate=PlotState().based_on(self,{"ROOM":mygoal}), necessary=False) return True
def custom_init(self, nart): team1 = teams.Team(name="Player Team") team2 = teams.Team(name="Civilian Team", allies=(team1, )) myscene = gears.GearHeadScene(50, 50, "DZ Village", player_team=team1, civilian_team=team2, scale=gears.scale.HumanScale, attributes=(gears.personality.DeadZone, gears.tags.Village)) myscene.exploration_music = 'Doctor_Turtle_-_04_-_Lets_Just_Get_Through_Christmas.ogg' npc = gears.selector.random_character(50, local_tags=myscene.attributes) npc.place(myscene, team=team2) myscenegen = pbge.randmaps.SceneGenerator( myscene, game.content.gharchitecture.HumanScaleDeadzone()) self.register_scene(nart, myscene, myscenegen, ident="LOCALE") #myscene.contents.append(ghterrain.ScrapIronBuilding(waypoints={"DOOR":ghwaypoints.ScrapIronDoor(),"OTHER":ghwaypoints.RetroComputer()})) wm_con = game.content.plotutility.WMDZTownConnection( self, self.elements["WORLD"], myscene) wm_con.room1.tags = (ON_THE_ROAD, ) return True
def custom_init(self, nart): team1 = teams.Team(name="Player Team") intscene = gears.GearHeadScene( 65, 65, self.elements[DG_NAME], player_team=team1, attributes=self.elements[DG_SCENE_TAGS], combat_music=self.elements[DG_COMBAT_MUSIC], exploration_music=self.elements[DG_EXPLO_MUSIC], scale=gears.scale.HumanScale) intscenegen = pbge.randmaps.SceneGenerator( intscene, self.elements[DG_ARCHITECTURE], decorate=self.elements[DG_DECOR]) self.register_scene(nart, intscene, intscenegen, ident="LOCALE", dident=DG_PARENT_SCENE, temporary=self.elements.get(DG_TEMPORARY, False)) self.last_update = 0 for t in range(random.randint(3, 5)): self.add_sub_plot( nart, "MONSTER_ENCOUNTER", elements={"TYPE_TAGS": self.elements[DG_MONSTER_TAGS]}) return True
def custom_init( self, nart ): """An empty map that will add subplots for the mission's objectives.""" team1 = teams.Team(name="Player Team") myscene = gears.GearHeadScene( 40,40,"Combat Zone",player_team=team1,scale=gears.scale.MechaScale, exploration_music='A wintertale.ogg', combat_music='Chronos.ogg', ) myscenegen = pbge.randmaps.SceneGenerator(myscene, game.content.gharchitecture.MechaScaleSemiDeadzone()) self.register_scene( nart, myscene, myscenegen, ident="LOCALE", temporary=True) player_a,enemy_a = random.choice(pbge.randmaps.anchors.OPPOSING_PAIRS) self.register_element("_EROOM",pbge.randmaps.rooms.OpenRoom(5,5,anchor=player_a),dident="LOCALE") myent = self.register_element( "ENTRANCE", game.content.ghwaypoints.Waypoint(anchor=pbge.randmaps.anchors.middle), dident="_EROOM") enemy_room = self.register_element("ENEMY_ROOM",game.content.ghrooms.MSRuinsRoom(15,15,anchor=enemy_a),dident="LOCALE") team2 = self.register_element("_eteam",teams.Team(enemies=(myscene.player_team,)),dident="ENEMY_ROOM") myunit = gears.selector.RandomMechaUnit(level=10,strength=50,fac=self.elements.get("ENEMY_FACTION", None),env=myscene.environment) team2.contents += myunit.mecha_list enemy_room.contents.append(ghwaypoints.SmokingWreckage()) enemy_room.contents.append(ghwaypoints.SmokingWreckage()) enemy_room.contents.append(ghterrain.DZDConcreteBuilding) self.mission_entrance = (myscene,myent) self.started_the_intro = False self.tiles_moved = 0 self.move_tutorial_done = False self.threat_tutorial_done = False self.combat_tutorial_done = False return True
def custom_init( self, nart ): team1 = teams.Team(name="Player Team") myscene = gears.GearHeadScene(50,50,"Combat Zone",player_team=team1,scale=gears.scale.MechaScale) myscenegen = pbge.randmaps.SceneGenerator(myscene, game.content.gharchitecture.MechaScaleDeadzone()) self.register_scene( nart, myscene, myscenegen, ident="LOCALE", temporary=True, dident=self.elements["MISSION_RETURN"][0]) player_a,enemy_a = random.choice(pbge.randmaps.anchors.OPPOSING_PAIRS) if not self.elements.get("FACTION"): self.register_element("FACTION",gears.factions.Circle()) self.register_element("_EROOM",pbge.randmaps.rooms.OpenRoom(5,5,anchor=player_a),dident="LOCALE") destination,entrance = self.elements["MISSION_RETURN"] myent = self.register_element( "ENTRANCE", game.content.ghwaypoints.Exit(dest_scene=destination,dest_entrance=entrance,anchor=pbge.randmaps.anchors.middle), dident="_EROOM") enemy_room = self.register_element("ENEMY_ROOM",pbge.randmaps.rooms.FuzzyRoom(10,10,anchor=enemy_a),dident="LOCALE") team2 = self.register_element("_eteam",teams.Team(enemies=(myscene.player_team,)),dident="ENEMY_ROOM") myunit = gears.selector.RandomMechaUnit(level=self.rank,strength=150,fac=self.elements["FACTION"],env=myscene.environment) team2.contents += myunit.mecha_list enemy_room.contents.append(ghwaypoints.SmokingWreckage()) enemy_room.contents.append(ghwaypoints.SmokingWreckage()) for t in range(random.randint(1,3)): self.add_sub_plot(nart,"MECHA_ENCOUNTER",necessary=False) self.mission_entrance = (myscene,myent) self.witness_ready = True return True
def custom_init(self, nart): team1 = teams.Team(name="Player Team") team2 = teams.Team(name="Civilian Team", allies=(team1,)) town_fac = self.register_element( "METRO_FACTION", gears.factions.Circle(nart.camp,parent_faction=gears.factions.DeadzoneFederation,name="the {} Council".format(self.elements["DZ_TOWN_NAME"])) ) myscene = gears.GearHeadScene(50, 50, self.elements["DZ_TOWN_NAME"], player_team=team1, civilian_team=team2, scale=gears.scale.HumanScale, is_metro=True, faction=town_fac, attributes=( gears.personality.DeadZone, gears.tags.City, gears.tags.SCENE_PUBLIC)) myscene.exploration_music = 'Good Night.ogg' for t in range(random.randint(1,3)): npc = gears.selector.random_character(50, local_tags=myscene.attributes) npc.place(myscene, team=team2) myscenegen = pbge.randmaps.CityGridGenerator(myscene, gharchitecture.HumanScaleGreenzone(), road_terrain=ghterrain.Flagstone) self.register_scene(nart, myscene, myscenegen, ident="LOCALE") self.register_element("METRO", myscene.metrodat) myroom2 = self.register_element("_ROOM2", pbge.randmaps.rooms.Room(3, 3, anchor=pbge.randmaps.anchors.east), dident="LOCALE") towngate = self.register_element("ENTRANCE", DZDRoadMapExit(roadmap=self.elements["DZ_ROADMAP"], node=self.elements["DZ_NODE"],name="The Highway", desc="The highway stretches far beyond the horizon, all the way back to the green zone.", anchor=pbge.randmaps.anchors.east, plot_locked=True), dident="_ROOM2") # Gonna register the entrance under another name for the subplots. self.register_element("MISSION_GATE", towngate) self.register_element("METROSCENE", myscene) mystory = self.register_element("BACKSTORY",backstory.Backstory(commands=("DZTOWN_FOUNDING",),elements={"LOCALE":self.elements["LOCALE"]})) team3 = teams.Team(name="Sheriff Team", allies=(team1,team2)) myroom2.contents.append(team3) self.first_quest_done = False # Gonna store this town in the campdata, so it can be accessed elsewhere. nart.camp.campdata["DISTANT_TOWN"] = myscene nart.camp.campdata["DISTANT_TEAM"] = team3 # Add the services. tplot = self.add_sub_plot(nart, "DZRS_ORDER") tplot = self.add_sub_plot(nart, "DZRS_GARAGE") tplot = self.add_sub_plot(nart, "DZRS_HOSPITAL") tplot = self.add_sub_plot(nart, "TAVERN") # Record the tavern scene self.elements["TAVERN"] = tplot.elements["LOCALE"] # Add the local tarot. #threat_card = nart.add_tarot_card(self, (game.content.ghplots.dd_tarot.MT_THREAT,), ) #game.content.mechtarot.Constellation(nart, self, threat_card, threat_card.get_negations()[0], steps=3) return True
def custom_init(self, nart): # 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, "Fallout Shelter", player_team=team1, civilian_team=team2, attributes=(gears.tags.SCENE_PUBLIC, gears.tags.SCENE_BUILDING, gears.tags.SCENE_GOVERNMENT, gears.tags.SCENE_RUINS), scale=gears.scale.HumanScale) intscenegen = pbge.randmaps.SceneGenerator( intscene, gharchitecture.DefaultBuilding()) 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, room2=foyer, door1=ghwaypoints.UndergroundEntrance(name="Fallout Shelter")) npc = self.register_element( "LEADER", gears.selector.random_character( self.rank, local_tags=self.elements["LOCALE"].attributes, job=gears.jobs.ALL_JOBS["Mayor"], 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
def custom_init(self, nart): team1 = teams.Team(name="Player Team") myscene = gears.GearHeadScene(50, 50, plotutility.random_deadzone_spot_name(), player_team=team1, scale=gears.scale.MechaScale) myscenegen = pbge.randmaps.SceneGenerator( myscene, game.content.gharchitecture.MechaScaleDeadzone()) self.register_scene(nart, myscene, myscenegen, ident="LOCALE", dident="METROSCENE") if not self.elements.get("ENEMY_FACTION"): self.register_element("ENEMY_FACTION", plotutility.RandomBanditCircle(nart.camp)) self.register_element("_EROOM", pbge.randmaps.rooms.OpenRoom( 6, 6, anchor=random.choice( pbge.randmaps.anchors.EDGES)), dident="LOCALE") destination, entrance = self.elements[ "MISSION_GATE"].scene, self.elements["MISSION_GATE"] myent = self.register_element("ENTRANCE", game.content.ghwaypoints.Exit( dest_scene=destination, dest_entrance=entrance, anchor=pbge.randmaps.anchors.middle), dident="_EROOM") castle_room = self.register_element( "CASTLE_ROOM", pbge.randmaps.rooms.FuzzyRoom(10, 10, anchor=pbge.randmaps.anchors.middle), dident="LOCALE") team2 = self.register_element( "_eteam", teams.Team(enemies=(myscene.player_team, )), dident="CASTLE_ROOM") #myunit = gears.selector.RandomMechaUnit(level=self.rank,strength=150,fac=self.elements["ENEMY_FACTION"],env=myscene.environment) #team2.contents += myunit.mecha_list self.mission_entrance = (myscene, myent) self.next_update = 0 self.encounters_on = True return True
def custom_init(self, nart): # Create the shopkeeper npc1 = self.register_element("SHOPKEEPER", gears.selector.random_character( self.rank, job=gears.jobs.ALL_JOBS["Bartender"])) self.shopname = self._generate_shop_name() # Create a building within the dungeon. building = self.register_element( "_EXTERIOR", ghterrain.BrickBuilding( waypoints={"DOOR": ghwaypoints.WoodenDoor(name=self.shopname)}, door_sign=(ghterrain.CafeSign1East, ghterrain.CafeSign1South) ), 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, attributes=(gears.tags.SCENE_SEMIPUBLIC, gears.tags.SCENE_BUILDING, gears.tags.SCENE_CULTURE), scale=gears.scale.HumanScale) intscenegen = pbge.randmaps.PackedBuildingGenerator( intscene, gharchitecture.DefaultBuilding(floor_terrain=ghterrain.HardwoodFloor) ) self.register_scene(nart, intscene, intscenegen, ident="INTERIOR", dident="LOCALE") foyer = self.register_element('FOYER', pbge.randmaps.rooms.ClosedRoom(width=random.randint(20, 25), height=random.randint(11, 15), anchor=pbge.randmaps.anchors.south), dident="INTERIOR") mybar = ghrooms.BarArea(random.randint(5, 10), random.randint(2, 3), anchor=pbge.randmaps.anchors.north) foyer.contents.append(mybar) barteam = self.register_element("BAR_TEAM", teams.Team(name="Bar Team", allies=[team2])) mybar.contents.append(barteam) npc1.place(intscene, team=barteam) myfloor = pbge.randmaps.rooms.Room(foyer.width - 2, foyer.height - mybar.height - 2, anchor=pbge.randmaps.anchors.south, decorate=gharchitecture.RestaurantDecor()) foyer.contents.append(myfloor) mycon2 = plotutility.TownBuildingConnection( nart, self, self.elements["LOCALE"], intscene, room1=building, room2=foyer, door1=building.waypoints["DOOR"], move_door1=False) self.got_explanation = False self.coffee_price = self.rank * 10 return True
def custom_init(self, nart): # Create a building within the town. myname = "{} Clinic".format(self.elements["LOCALE"]) building = self.register_element( "_EXTERIOR", ghterrain.BrickBuilding( waypoints={"DOOR": ghwaypoints.WoodenDoor(name=myname)}, 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, myname, player_team=team1, civilian_team=team2, attributes=(gears.tags.SCENE_PUBLIC, 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") 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) return True
def custom_init(self, nart): # Add the interior scene. team1 = teams.Team(name="Player Team") team2 = teams.Team(name="Guild Team") intscene = gears.GearHeadScene( 35, 35, self.elements.get("GUILD_NAME", self._generate_guild_name()), player_team=team1, civilian_team=team2, faction=self.elements.get("FACTION"), attributes=self.elements.get("INTERIOR_TAGS", (gears.tags.SCENE_SEMIPUBLIC, )) + (gears.tags.SCENE_BUILDING, gears.tags.Criminal), scale=gears.scale.HumanScale) intscenegen = pbge.randmaps.SceneGenerator( intscene, gharchitecture.DefaultBuilding()) self.register_scene(nart, intscene, intscenegen, ident="INTERIOR", dident="LOCALE") foyer = self.register_element('_introom', pbge.randmaps.rooms.ClosedRoom( 10, 10, anchor=pbge.randmaps.anchors.south), dident="INTERIOR") foyer.contents.append(team2) exit = self.register_element("EXIT", ghwaypoints.Exit( name="Exit", dest_wp=self.elements["ENTRANCE"], anchor=pbge.randmaps.anchors.south), dident="_introom") # Add some ne'er do wells for t in range(random.randint(2, 4)): npc = gears.selector.random_character( self.rank, combatant=True, local_tags=intscene.attributes, needed_tags=(gears.tags.Criminal, )) npc.place(intscene, team=team2) self.add_sub_plot(nart, "TGUILD_SERVICE") return True
def custom_init(self, nart): # Create the outer grounds with the bandits and their leader. mybandits = game.content.plotutility.RandomBanditCircle() team1 = teams.Team(name="Player Team") myscene = gears.GearHeadScene(35,35,"Bandit Base Area",player_team=team1,scale=gears.scale.MechaScale) myscenegen = pbge.randmaps.SceneGenerator(myscene, game.content.gharchitecture.MechaScaleDeadzone()) self.register_scene( nart, myscene, myscenegen, ident="LOCALE" ) # Add the connection to the world map. mycon = game.content.plotutility.WMConcreteBuildingConnection(self, self.elements["WORLD"], myscene, door2_id="_exit") if random.randint(1,10) == 1: mycon.room1.tags = (dd_main.ON_THE_ROAD,) # Add the goal room and the bandits guarding it. mygoal = self.register_element("_goalroom",pbge.randmaps.rooms.FuzzyRoom(10,10,parent=myscene)) team2 = self.register_element("_eteam",teams.Team(enemies=(myscene.player_team,),faction=mybandits),dident="_goalroom") my_unit = gears.selector.RandomMechaUnit(self.rank,100,mybandits,myscene.environment,add_commander=True) team2.contents += my_unit.mecha_list self.register_element("_commander",my_unit.commander) self.intro_ready = True # Add the interior scene. team1 = teams.Team(name="Player Team") team2 = teams.Team(name="Civilian Team") dimdiff = max(random.randint(0,4),random.randint(0,4)) if random.randint(1,2) == 1: dimdiff = -dimdiff intscene = gears.GearHeadScene(35,35,"Bandit Base",player_team=team1,civilian_team=team2,scale= gears.scale.HumanScale) intscenegen = pbge.randmaps.SceneGenerator(intscene, game.content.gharchitecture.DefaultBuilding()) self.register_scene( nart, intscene, intscenegen, ident="_interior" ) introom = self.register_element('_introom', pbge.randmaps.rooms.ClosedRoom(10 + dimdiff, 10 - dimdiff, anchor=pbge.randmaps.anchors.south, decorate=pbge.randmaps.decor.OmniDec(win=game.content.ghterrain.Window)), dident="_interior") mycon2 = game.content.plotutility.IntConcreteBuildingConnection(self, myscene, intscene, room1=mygoal, room2=introom) introom2 = self.register_element('OFFICE', pbge.randmaps.rooms.ClosedRoom(random.randint(7,10), random.randint(7,10), decorate=pbge.randmaps.decor.OmniDec(win=game.content.ghterrain.Window)), dident="_interior") return True
def custom_init( self, nart ): """An empty map that will add subplots for the mission's objectives.""" team1 = teams.Team(name="Player Team") team2 = teams.Team(name="Civilian Team") self.elements["DZ_TOWN_NAME"] = self.generate_town_name() myscene = gears.GearHeadScene( 15,15,"{} Mecha Hangar".format(self.elements["DZ_TOWN_NAME"]),player_team=team1, scale=gears.scale.HumanScale,civilian_team=team2,attributes=(gears.personality.DeadZone,),is_metro=True, exploration_music='A wintertale.ogg', combat_music='Chronos.ogg' ) myscenegen = pbge.randmaps.SceneGenerator(myscene, gharchitecture.IndustrialBuilding(floor_terrain=ghterrain.GrateFloor)) self.register_scene( nart, myscene, myscenegen, ident="LOCALE", temporary=True) # Start a new adventure for this plot and its children- the intro will be disposed of when it's finished. self.adv = pbge.plots.Adventure(world=myscene) myroom = self.register_element("_EROOM",pbge.randmaps.rooms.ClosedRoom(10,7),dident="LOCALE") myent = self.register_element( "ENTRANCE", game.content.ghwaypoints.Waypoint(anchor=pbge.randmaps.anchors.middle), dident="_EROOM") mychute = self.register_element("CHUTE",ghwaypoints.BoardingChute(plot_locked=True),dident="_EROOM") myroom.contents.append(ghwaypoints.ClosedBoardingChute()) myroom.contents.append(ghwaypoints.VentFan()) npc = self.register_element("SHERIFF", gears.selector.random_character(45, local_tags=self.elements["LOCALE"].attributes, job=gears.jobs.ALL_JOBS["Sheriff"])) npc.place(myscene, team=team2) self.register_element("MISSION_RETURN", myent) # Request the intro mission and debriefing. self.add_sub_plot(nart, self.MISSION_LABEL, ident="MISSION", elements=self.MISSION_ELEMENTS) self.add_sub_plot(nart,"DZD_MISSION_DEBRIEFING", ident="DEBRIEFING", elements=self.DEBRIEFING_ELEMENTS) # Attempt to load the test mission. mytest = self.add_sub_plot(nart,"DZRE_TEST",spstate=pbge.plots.PlotState(rank=1,elements={"METRO":myscene.metrodat,"MISSION_GATE":mychute,"FACTION":game.content.plotutility.RandomBanditCircle(nart.camp),"DZREPR_MISSION_WINS":0}).based_on(self),necessary=False) if mytest: print("Loaded DZRE test!") mytest.mission_active = True self.started_the_intro = False self._tutorial_on = False return True
def custom_init( self, nart ): # Create a building within the town. building = self.register_element("_EXTERIOR", game.content.ghterrain.ScrapIronBuilding(waypoints={"DOOR": game.content.ghwaypoints.ScrapIronDoor()}), dident="TOWN") # Add the interior scene. team1 = teams.Team(name="Player Team") team2 = teams.Team(name="Civilian Team") intscene = gears.GearHeadScene(35,35,"Cheesery",player_team=team1,civilian_team=team2,scale= gears.scale.HumanScale) intscenegen = pbge.randmaps.SceneGenerator(intscene, game.content.gharchitecture.MakeScrapIronBuilding()) self.register_scene( nart, intscene, intscenegen, ident="LOCALE" ) foyer = self.register_element('_introom', pbge.randmaps.rooms.ClosedRoom(anchor=pbge.randmaps.anchors.south, decorate=game.content.gharchitecture.CheeseShopDecor()), dident="LOCALE") mycon2 = game.content.plotutility.TownBuildingConnection(self, self.elements["TOWN"], intscene, room1=building, room2=foyer, door1=building.waypoints["DOOR"], move_door1=False) # Generate a criminal enterprise of some kind. #cplot = self.add_sub_plot(nart, "DZD_CriminalEnterprise") return True
def custom_init(self, nart): """An empty map that will add subplots for the mission's objectives.""" team1 = teams.Team(name="Player Team") myscene = gears.GearHeadScene( 50, 50, "Combat Zone", player_team=team1, scale=gears.scale.MechaScale, combat_music="Komiku_-_03_-_Battle_Theme.ogg", exploration_music="Chronos.ogg") myscenegen = self.elements["SCENEGEN"](myscene, self.elements["ARCHITECTURE"]) self.register_scene(nart, myscene, myscenegen, ident="LOCALE", temporary=True, dident="METROSCENE") self.adv.world = myscene myanchor = self.elements.get("ENTRANCE_ANCHOR", None) or random.choice( pbge.randmaps.anchors.EDGES) self.register_element("ENTRANCE_ROOM", pbge.randmaps.rooms.OpenRoom(7, 7, anchor=myanchor), dident="LOCALE") myent = self.register_element("_ENTRANCE", game.content.ghwaypoints.Exit( anchor=pbge.randmaps.anchors.middle, plot_locked=True), dident="ENTRANCE_ROOM") for ob in self.elements["OBJECTIVES"]: self.add_sub_plot(nart, ob) self.mission_entrance = (myscene, myent) self.started_mission = False self.gave_mission_reminder = False self.gave_ending_message = False self.exited_mission = False return True
def custom_init( self, nart ): # Add the interior scene. team1 = teams.Team(name="Player Team") team2 = teams.Team(name="Civilian Team") intscene = gears.GearHeadScene(35, 35, "{} Base".format(self.elements["FACTION"]), player_team=team1, civilian_team=team2, scale=gears.scale.HumanScale, faction=self.elements["FACTION"]) intscenegen = pbge.randmaps.SceneGenerator(intscene, gharchitecture.DefaultBuilding()) self.register_scene(nart, intscene, intscenegen, ident="INTERIOR") foyer = self.register_element('_introom', pbge.randmaps.rooms.ClosedRoom(anchor=pbge.randmaps.anchors.south,), dident="INTERIOR") foyer.contents.append(team2) # Add the NPCs. team2.contents.append(gears.selector.random_character(self.rank+10,job=self.elements["FACTION"].choose_job(gears.tags.Commander),combatant=True,faction=self.elements["FACTION"])) team2.contents.append(gears.selector.random_character(self.rank+5,job=self.elements["FACTION"].choose_job(gears.tags.Support),combatant=True,faction=self.elements["FACTION"])) team2.contents.append(gears.selector.random_character(self.rank,faction=self.elements["FACTION"], job=self.elements["FACTION"].choose_job( gears.tags.Trooper), combatant=True)) return True
def custom_init(self, nart): """Create map, fill with city + services.""" team1 = teams.Team(name="Player Team") myscene = gears.GearHeadScene(30, 30, "Deadzone Highway", player_team=team1, scale=gears.scale.WorldScale) myscene.exploration_music = 'Doctor_Turtle_-_04_-_Lets_Just_Get_Through_Christmas.ogg' anc_a, anc_b = random.choice(pbge.randmaps.anchors.OPPOSING_CARDINALS) myscenegen = DeadzoneHighwaySceneGen( myscene, game.content.gharchitecture.WorldScaleDeadzone()) self.register_scene(nart, myscene, myscenegen, ident="LOCALE") myroom = self.register_element("_ROOM", pbge.randmaps.rooms.FuzzyRoom( 5, 5, tags=(ON_THE_ROAD), anchor=anc_a), dident="LOCALE") mydest = self.register_element("_ROOM2", pbge.randmaps.rooms.FuzzyRoom( 3, 3, tags=(ON_THE_ROAD, ), anchor=anc_b), dident="LOCALE") myent = self.register_element("ENTRANCE", game.content.ghwaypoints.Waypoint( anchor=pbge.randmaps.anchors.middle), dident="_ROOM") myexit = self.register_element( "EXIT", game.content.ghwaypoints.Exit(name="Exit Scenario", anchor=pbge.randmaps.anchors.middle), dident="_ROOM2") return True
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): # 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
def custom_init(self, nart): team1 = teams.Team(name="Player Team") return_to = (self.elements["METROSCENE"], self.elements["MISSION_GATE"]) outside_scene = gears.GearHeadScene( 35, 35, plotutility.random_deadzone_spot_name(), player_team=team1, scale=gears.scale.MechaScale, exploration_music="Lines.ogg", combat_music="Late.ogg", exit_scene_wp=return_to) myscenegen = pbge.randmaps.SceneGenerator( outside_scene, game.content.gharchitecture.MechaScaleSemiDeadzone()) self.register_scene(nart, outside_scene, myscenegen, ident="LOCALE", dident="METROSCENE", temporary=True) mygoal = self.register_element( "_goalroom", pbge.randmaps.rooms.FuzzyRoom(random.randint(8, 15), random.randint(8, 15), parent=outside_scene, anchor=pbge.randmaps.anchors.middle)) self.register_element("ENTRANCE_ROOM", pbge.randmaps.rooms.OpenRoom( 5, 5, anchor=random.choice( pbge.randmaps.anchors.EDGES)), dident="LOCALE") myent = self.register_element( "ENTRANCE", game.content.ghwaypoints.Exit( anchor=pbge.randmaps.anchors.middle, dest_scene=self.elements["METROSCENE"], dest_entrance=self.elements["MISSION_GATE"]), dident="ENTRANCE_ROOM") inside_scene = self.elements["GOAL_SCENE"] inside_room = self.elements.get("GOAL_ROOM") if not inside_room: introom = self.register_element( 'GOAL_ROOM', pbge.randmaps.rooms.ClosedRoom( random.randint(6, 10), random.randint(6, 10), anchor=pbge.randmaps.anchors.south, ), dident="GOAL_SCENE") int_con = game.content.plotutility.IntConcreteBuildingConnection( self, outside_scene, inside_scene, room1=mygoal, room2=inside_room) self.add_sub_plot(nart, "MECHA_ENCOUNTER", spstate=PlotState().based_on( self, { "ROOM": mygoal, "FACTION": self.elements.get("ENEMY_FACTION") }), necessary=False) self.location_unlocked = False self.add_sub_plot(nart, "REVEAL_LOCATION", spstate=PlotState(elements={ "INTERESTING_POINT": "There's a mysterious bunker out there." }, ).based_on(self), ident="LOCATE") return True
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["Bartender"])) 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.ResidentialBuilding, waypoints={"DOOR": ghwaypoints.GlassDoor(name=self.shopname)}, door_sign=(ghterrain.TavernSign1East, ghterrain.TavernSign1South), 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_MEETING, gears.tags.SCENE_CULTURE), scale=gears.scale.HumanScale) intscenegen = pbge.randmaps.PackedBuildingGenerator( intscene, gharchitecture.ResidentialBuilding()) self.register_scene(nart, intscene, intscenegen, ident="INTERIOR", dident="LOCALE") foyer = self.register_element('FOYER', pbge.randmaps.rooms.ClosedRoom( width=random.randint(20, 25), height=random.randint(11, 15), anchor=pbge.randmaps.anchors.south), dident="INTERIOR") mybar = ghrooms.BarArea(random.randint(5, 10), random.randint(2, 3), anchor=pbge.randmaps.anchors.north) foyer.contents.append(mybar) barteam = self.register_element( "BAR_TEAM", teams.Team(name="Bar Team", allies=[team2])) mybar.contents.append(barteam) npc1.place(intscene, team=barteam) mycon2 = plotutility.TownBuildingConnection( nart, self, self.elements["LOCALE"], intscene, room1=building, room2=foyer, door1=building.waypoints["DOOR"], move_door1=False) myfloor = pbge.randmaps.rooms.Room( foyer.width - 2, foyer.height - mybar.height - 2, anchor=pbge.randmaps.anchors.south, decorate=gharchitecture.RestaurantDecor()) foyer.contents.append(myfloor) self.add_sub_plot(nart, "TAVERN_BONUS", necessary=False) return True
def custom_init(self, nart): self.zombots_active = True self.got_shutdown = False self.safe_shutdown = False self.set_collector = False # Create the entry mission: PC must defeat the zombots guarding the defiled factory team1 = teams.Team(name="Player Team") return_to = (self.elements["METROSCENE"], self.elements["MISSION_GATE"]) outside_scene = gears.GearHeadScene( 35, 35, plotutility.random_deadzone_spot_name(), player_team=team1, scale=gears.scale.MechaScale, exploration_music="Komiku_-_01_-_Ancient_Heavy_Tech_Donjon.ogg", combat_music="Komiku_-_03_-_Battle_Theme.ogg", exit_scene_wp=return_to ) myscenegen = pbge.randmaps.SceneGenerator(outside_scene, game.content.gharchitecture.MechaScaleDeadzone()) self.register_scene(nart, outside_scene, myscenegen, ident="LOCALE", dident="METROSCENE") mygoal = self.register_element( "_goalroom", pbge.randmaps.rooms.FuzzyRoom(random.randint(8, 15), random.randint(8, 15), parent=outside_scene, anchor=pbge.randmaps.anchors.middle) ) self.add_sub_plot(nart, "MONSTER_ENCOUNTER", elements={"ROOM": mygoal, "TYPE_TAGS": ("ROBOT", "ZOMBOT")}, ident="OUTENCOUNTER") room1 = self.register_element( "ENTRANCE_ROOM", pbge.randmaps.rooms.FuzzyRoom( 5, 5, anchor=random.choice(pbge.randmaps.anchors.EDGES)), dident="LOCALE" ) myent = self.register_element( "ENTRANCE", game.content.ghwaypoints.Exit(anchor=pbge.randmaps.anchors.middle, dest_scene=self.elements["METROSCENE"], dest_entrance=self.elements["MISSION_GATE"]), dident="ENTRANCE_ROOM" ) # Local NPC can tell about the entry mission. self.add_sub_plot(nart, "REVEAL_LOCATION", ident="LOCATE", elements={ "INTERESTING_POINT": "The zombie mecha seem to be attracted to the ancient ruined tower there."}) self.location_unlocked = False # Add the defiled factory dungeon mydungeon = dungeonmaker.DungeonMaker( nart, self, self.elements["METROSCENE"], "Defiled Factory", gharchitecture.ScrapIronWorkshop(), self.rank, monster_tags=("ROBOT", "ZOMBOT", "FACTORY"), explo_music="Komiku_-_01_-_Ancient_Heavy_Tech_Donjon.ogg", combat_music="Komiku_-_03_-_Battle_Theme.ogg", connector=plotutility.StairsUpToStairsDownConnector, scene_tags=(gears.tags.SCENE_DUNGEON, gears.tags.SCENE_RUINS, gears.tags.SCENE_FACTORY), decor=gharchitecture.DefiledFactoryDecor() ) d_entrance = pbge.randmaps.rooms.ClosedRoom(7, 7, anchor=pbge.randmaps.anchors.south) mydungeon.entry_level.contents.append(d_entrance) mycon2 = plotutility.TownBuildingConnection( self, outside_scene, mydungeon.entry_level, room1=mygoal, room2=d_entrance, door1=ghwaypoints.DZDDefiledFactory(name="Defiled Factory", anchor=pbge.randmaps.anchors.middle), door2=ghwaypoints.Exit(anchor=pbge.randmaps.anchors.south) ) # Add the lore rooms levels = random.sample(mydungeon.levels, 3) while len(levels) < 3: levels.append(random.choice(mydungeon.levels)) lr1 = self.register_element( "LORE_ROOM_1", pbge.randmaps.rooms.ClosedRoom(7, 7, ), ) levels[0].contents.append(lr1) self.add_sub_plot( nart, "MONSTER_ENCOUNTER", spstate=PlotState(rank=self.rank + 6).based_on(self), elements={"ROOM": lr1, "LOCALE": levels[0], "TYPE_TAGS": ("CREEPY", "ZOMBOT")} ) lorecompy1 = self.register_element("LORE1", ghwaypoints.RetroComputer(plot_locked=True, name="Computer", desc="You stand before the primary research terminal."), dident="LORE_ROOM_1") lr2 = self.register_element( "LORE_ROOM_2", pbge.randmaps.rooms.ClosedRoom(7, 7, ), ) levels[1].contents.append(lr2) self.add_sub_plot( nart, "MONSTER_ENCOUNTER", spstate=PlotState(rank=self.rank + 6).based_on(self), elements={"ROOM": lr2, "LOCALE": levels[1], "TYPE_TAGS": ("CREEPY", "ZOMBOT")} ) lorecompy2 = self.register_element("LORE2", ghwaypoints.RetroComputer(plot_locked=True, name="Computer", desc="You stand before the research overview terminal."), dident="LORE_ROOM_2") lr3 = self.register_element( "LORE_ROOM_3", pbge.randmaps.rooms.ClosedRoom(7, 7, ), ) levels[2].contents.append(lr3) self.add_sub_plot( nart, "MONSTER_ENCOUNTER", spstate=PlotState(rank=self.rank + 6).based_on(self), elements={"ROOM": lr3, "LOCALE": levels[2], "TYPE_TAGS": ("ROBOT",)} ) lorecompy3 = self.register_element("LORE3", ghwaypoints.RetroComputer(plot_locked=True, name="Computer", desc="You stand before the incubation chamber control terminal."), dident="LORE_ROOM_3") biotank_alpha = self.register_element("BIO_A", ghwaypoints.Biotank(plot_locked=True, name="Biotank",), dident="LORE_ROOM_3") biotank_beta = self.register_element("BIO_B", ghwaypoints.EmptyBiotank(plot_locked=True, name="Biotank",), dident="LORE_ROOM_3") self.alpha_full = True self.beta_full = False # Add the goal room final_room = self.register_element( "FINAL_ROOM", pbge.randmaps.rooms.ClosedRoom(9, 9, ), ) mydungeon.goal_level.contents.append(final_room) self.add_sub_plot( nart, "MONSTER_ENCOUNTER", spstate=PlotState(rank=self.rank + 12).based_on(self), elements={"ROOM": final_room, "LOCALE": mydungeon.goal_level, "TYPE_TAGS": ("CREEPY", "ZOMBOT")} ) mycompy = self.register_element("COMPY", ghwaypoints.OldMainframe(plot_locked=True, name="Factory Control", anchor=pbge.randmaps.anchors.middle, desc="You stand before the factory control mainframe."), dident="FINAL_ROOM") #print(self.elements["METROSCENE"]) return True
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
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
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
def custom_init(self, nart): town_name = self._generate_town_name() town_fac = self.register_element( "METRO_FACTION", gears.factions.Circle( nart.camp, parent_faction=gears.factions.DeadzoneFederation, name="the {} Council".format(town_name))) team1 = teams.Team(name="Player Team") team2 = teams.Team(name="Civilian Team", allies=(team1, ), faction=town_fac) myscene = gears.GearHeadScene(50, 50, town_name, player_team=team1, civilian_team=team2, scale=gears.scale.HumanScale, is_metro=True, faction=town_fac, attributes=(gears.personality.DeadZone, gears.tags.City, gears.tags.SCENE_PUBLIC)) myscene.exploration_music = 'Komiku_-_06_-_Friendss_theme.ogg' npc = gears.selector.random_character(50, local_tags=myscene.attributes) npc.place(myscene, team=team2) npc2 = gears.selector.random_character( 50, local_tags=myscene.attributes, job=gears.jobs.choose_random_job( (gears.tags.Laborer, ), self.elements["LOCALE"].attributes)) npc2.place(myscene, team=team2) defender = self.register_element( "DEFENDER", gears.selector.random_character( self.rank, local_tags=self.elements["LOCALE"].attributes, job=gears.jobs.choose_random_job( (gears.tags.Police, ), self.elements["LOCALE"].attributes), faction=town_fac)) defender.place(myscene, team=team2) myscenegen = pbge.randmaps.CityGridGenerator( myscene, gharchitecture.HumanScaleGreenzone(), road_terrain=ghterrain.Flagstone) self.register_scene(nart, myscene, myscenegen, ident="LOCALE") mystory = self.register_element( "BACKSTORY", backstory.Backstory(commands=("DZTOWN_FOUNDING", ), elements={"LOCALE": self.elements["LOCALE"]})) self.register_element("METRO", myscene.metrodat) self.register_element("METROSCENE", myscene) self.register_element("DZ_NODE_FRAME", RoadNode.FRAME_TOWN) myroom2 = self.register_element("_ROOM2", pbge.randmaps.rooms.Room( 3, 3, anchor=pbge.randmaps.anchors.east), dident="LOCALE") towngate = self.register_element( "ENTRANCE", DZDRoadMapExit( roadmap=self.elements["DZ_ROADMAP"], node=self.elements["DZ_NODE"], name="The Highway", desc= "The highway stretches far beyond the horizon, all the way back to the green zone.", anchor=pbge.randmaps.anchors.east, plot_locked=True), dident="_ROOM2") # Gonna register the entrance under another name for the subplots. self.register_element("MISSION_GATE", towngate) # Add the order. This subplot will add a leader, guards, police, and backstory to the town. tplot = self.add_sub_plot(nart, "DZRS_ORDER") # Add the services. tplot = self.add_sub_plot(nart, "DZRS_GARAGE") tplot = self.add_sub_plot(nart, "DZRS_HOSPITAL") #tplot = self.add_sub_plot(nart, "DZDHB_EliteEquipment") #tplot = self.add_sub_plot(nart, "DZDHB_BlueFortress") #tplot = self.add_sub_plot(nart, "DZDHB_BronzeHorseInn") #tplot = self.add_sub_plot(nart, "DZDHB_LongRoadLogistics") tplot = self.add_sub_plot(nart, "QOL_REPORTER") self.add_sub_plot(nart, "RANDOM_LANCEMATE") # Add the local tarot. threat_card = nart.add_tarot_card(self, (tarot_cards.MT_THREAT, )) mechtarot.Constellation(nart, self, threat_card, threat_card.get_negations()[0]) return True
def custom_init(self, nart): hallfaction = self.elements.get( "HALL_FACTION") or self.elements["LOCALE"].faction self.elements["HALL_FACTION"] = hallfaction deffaction = self.elements.get( "DEFENSE_FACTION") or self._get_defense_faction(nart, hallfaction) self.elements["DEFENSE_FACTION"] = deffaction # Create the leader npc1 = self.register_element( "LEADER", gears.selector.random_character( self.rank, local_tags=self.elements["LOCALE"].attributes, faction=hallfaction, job=self._get_leader_job(hallfaction))) npc1.name = self.elements.get("LEADER_NAME", "") or npc1.name if not self.elements.get("NOT_METRO_LEADER"): self.elements["METRO"].city_leader = npc1 self._hallname = self.elements.get("HALL_NAME", "") or self._generate_hall_name() # Create a building within the town. building = self.register_element( "_EXTERIOR", get_building( self, ghterrain.BrickBuilding, waypoints={"DOOR": ghwaypoints.GlassDoor(name=self._hallname)}, door_sign=(ghterrain.GoldTownHallSignEast, ghterrain.GoldTownHallSignSouth), 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._hallname, player_team=team1, civilian_team=team2, faction=self.elements.get("HALL_FACTION"), attributes=self.elements.get("INTERIOR_TAGS", (gears.tags.SCENE_PUBLIC, )) + (gears.tags.SCENE_BUILDING, gears.tags.SCENE_GOVERNMENT), scale=gears.scale.HumanScale) intscenegen = pbge.randmaps.PackedBuildingGenerator( intscene, gharchitecture.DefaultBuilding(wall_terrain=ghterrain.DefaultWall)) 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") team3 = self.register_element("FOYER_TEAM", teams.Team("Foyer Team", allies=(team2, )), dident="FOYER") 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.add_sub_plot(nart, "TOWNHALL_DEFENDER") return True
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): npc_name, building_name = self.generate_npc_and_building_name() # Create a building within the town. building = self.register_element( "_EXTERIOR", ghterrain.ResidentialBuilding( waypoints={"DOOR": ghwaypoints.GlassDoor(name=building_name)}, tags=[pbge.randmaps.CITY_GRID_ROAD_OVERLAP]), dident="METROSCENE") # Add the interior scene. team1 = teams.Team(name="Player Team") team2 = self.register_element("FOYER_TEAM", teams.Team(name="Civilian Team")) intscene = gears.GearHeadScene(50, 35, building_name, player_team=team1, civilian_team=team2, attributes=(gears.tags.SCENE_PUBLIC, gears.tags.SCENE_BUILDING, gears.tags.SCENE_MEETING), scale=gears.scale.HumanScale) intscenegen = pbge.randmaps.PackedBuildingGenerator( intscene, gharchitecture.ResidentialBuilding()) self.register_scene(nart, intscene, intscenegen, ident="LOCALE", dident="METROSCENE") foyer = self.register_element('_introom', pbge.randmaps.rooms.ClosedRoom( width=random.randint(20, 25), height=random.randint(11, 15), anchor=pbge.randmaps.anchors.south, ), dident="LOCALE") foyer.contents.append(team2) mybar = ghrooms.BarArea(random.randint(5, 10), random.randint(2, 3), anchor=pbge.randmaps.anchors.north) foyer.contents.append(mybar) barteam = self.register_element( "BAR_TEAM", teams.Team(name="Bar Team", allies=[team2])) mybar.contents.append(barteam) npc = self.register_element( "BARTENDER", gears.selector.random_character( self.rank, name=npc_name, local_tags=self.elements["METROSCENE"].attributes, job=gears.jobs.ALL_JOBS["Bartender"])) npc.place(intscene, team=barteam) mycon = plotutility.TownBuildingConnection( self, self.elements["METROSCENE"], intscene, room1=building, room2=foyer, door1=building.waypoints["DOOR"], move_door1=False) return True
def custom_init( self, nart ): town_name = self._generate_town_name() town_fac = self.register_element( "METRO_FACTION", gears.factions.Circle(nart.camp,parent_faction=gears.factions.DeadzoneFederation,name="the {} Council".format(town_name)) ) team1 = teams.Team(name="Player Team") team2 = teams.Team(name="Civilian Team", allies=(team1,), faction=town_fac) myscene = gears.GearHeadScene(50, 50, town_name, player_team=team1, civilian_team=team2, scale=gears.scale.MechaScale, is_metro=True, faction=town_fac, attributes=( gears.personality.DeadZone, gears.tags.City)) myscene.exploration_music = 'A wintertale.ogg' myscene.combat_music = 'Komiku_-_09_-_Run__That_boss_was_a_bearing_wall_.ogg' myscene.contents.append(ghrooms.MSRuinsRoom(5,5)) myscene.contents.append(ghrooms.WreckageRoom(5,5)) my_egg = self.register_element("ANGELEGG", ghwaypoints.AngelEgg(name="?Angel Egg?", plot_locked=True, desc="You stand before a strange crystal egg. Cloudy shapes move on the inside.") ) myroom = pbge.randmaps.rooms.FuzzyRoom(5,5) myscene.contents.append(myroom) myroom.contents.append(my_egg) myscenegen = pbge.randmaps.SceneGenerator(myscene, gharchitecture.MechaScaleSemiDeadzoneRuins()) self.register_scene(nart, myscene, myscenegen, ident="LOCALE") self.register_element("METRO", myscene.metrodat) # Connect this town to the previous town. mymap = self.elements["DZ_ROADMAP"] connect_to = self.elements["DZ_NODE"] self.final_node = dd_main.RoadNode(None, None, visible=False, frame=dd_main.RoadNode.FRAME_DANGER) mymap.add_node(self.final_node,random.randint(1,2),random.randint(3,6)) self.final_edge = dd_main.RoadEdge(discoverable=False,style=1) mymap.connect_nodes(connect_to, self.final_node, self.final_edge) self.final_edge.eplot = self myroom2 = self.register_element("_ROOM2", pbge.randmaps.rooms.Room(3, 3, anchor=pbge.randmaps.anchors.east), dident="LOCALE") towngate = self.register_element("ENTRANCE", DZDRoadMapExit(roadmap=self.elements["DZ_ROADMAP"], node=self.final_node,name="The Highway", desc="You stand before the road leading back to {METROSCENE}.".format(**self.elements), anchor=pbge.randmaps.anchors.east, plot_locked=True), dident="_ROOM2") self.final_node.destination = myscene self.final_node.entrance = towngate # Gonna register the entrance under another name for the subplots. self.register_element("MISSION_GATE", towngate) # Add an encounter to the map. #self.add_sub_plot(nart, "DZDC_DoomVil_ENCOUNTER") self.memo = Memo("{LOCALE} sent a distress call moments before the communication signal was lost. You should go there and find out what happened.".format(**self.elements), location=self.elements["METROSCENE"]) self.did_intro = False self.found_egg = False self.did_fight = False return True