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): 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): 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