Ejemplo n.º 1
0
    def custom_init( self, nart ):
        # Create the lever and spirit room.
        scene = self.elements.get("LOCALE")
        mygen = nart.get_map_generator( scene )

        # Spirit jar room
        puzzle_room = randmaps.rooms.SharpRoom( tags = (context.ENTRANCE,) )
        team = teams.Team(default_reaction=-999, respawn=False )
        if random.randint(1,3) == 1:
            puzzle_room.contents.append( teams.Team(default_reaction=-999, rank=self.rank, 
              strength=100, habitat=scene.get_encounter_request(), fac=scene.fac ) )
        self.register_element( "_PUZZLE_ROOM", puzzle_room, dident="LOCALE" )
        self.register_element( "_SOURCE", waypoints.SpiritJar(plot_locked=True,anchor=randmaps.anchors.middle), dident="_PUZZLE_ROOM" )
        self.spirit_contained = True

        myhabitat = { (context.MTY_ELEMENTAL,context.MTY_UNDEAD,context.MTY_CELESTIAL,context.MTY_DEMON): True,
            tuple(self.elements["TARGET"].desctags): True}
        btype = monsters.choose_monster_type(self.rank,self.rank+2,myhabitat)
        if btype:
            boss = self.register_element("_MONSTER",monsters.generate_boss( btype, self.rank+2, team=team ))
        if random.randint(1,2) == 1:
            myitem = self.register_element("_ITEM",items.generate_special_item( self.rank + random.randint(1,2)))
        else:
            myitem = self.register_element("_ITEM",items.generate_scroll(self.rank+random.randint(1,2)))

        return btype and myitem
Ejemplo n.º 2
0
 def custom_init( self, nart ):
     scene = self.elements.get("LOCALE")
     room = randmaps.rooms.SharpRoom()
     room.DECORATE = randmaps.decor.LibraryDec(win=None)
     # Create a chest, and stock it with magical goodies.
     mychest = waypoints.LargeChest()
     mychest.stock(self.rank,item_types=(items.SCROLL,items.POTION))
     room.contents.append( mychest )
     room.contents.append( waypoints.Bookshelf() )
     for t in range( random.randint(2,3) ):
         myitem = items.generate_scroll( self.rank + 1 )
         if myitem:
             myitem.identified = True
             mychest.contents.append( myitem )
     # Create a team for our spellcasters.
     myhabitat = scene.get_encounter_request()
     myhabitat[(context.MTY_MAGE,context.MTY_PRIEST)] = True
     myteam = self.register_element( "TEAM", teams.Team(default_reaction=-999, rank=self.rank, 
       strength=120, habitat=myhabitat, hodgepodge = True ) )
     room.contents.append( myteam )
     boss = monsters.generate_npc(team=myteam,upgrade=True,rank=self.rank+1,job=random.choice(self.JOBS),fac=scene.fac)
     myitem = items.generate_special_item( self.rank )
     if myitem:
         boss.contents.append( myitem )
     room.contents.append( boss )
     self.register_element( "_ROOM", room, dident="LOCALE" )
     return True
Ejemplo n.º 3
0
    def custom_init(self, nart):
        scene = self.elements.get("LOCALE")
        room = randmaps.rooms.SharpRoom()
        room.DECORATE = randmaps.decor.LibraryDec(win=None)
        room.contents.append(waypoints.Bookshelf())
        # Create a chest, and stock it with magical goodies.
        mychest = waypoints.LargeChest()
        mychest.stock(self.rank, item_types=(items.SCROLL, items.POTION))
        room.contents.append(mychest)
        for t in range(random.randint(5, 8)):
            myitem = items.generate_scroll(self.rank + 1)
            if myitem:
                myitem.identified = True
                mychest.contents.append(myitem)
        # Create a team for our undead spellcaster.
        myhabitat = {context.GEN_UNDEAD: True}
        myteam = self.register_element(
            "TEAM",
            teams.Team(default_reaction=-25,
                       rank=self.rank,
                       strength=0,
                       habitat=myhabitat))
        room.contents.append(myteam)
        mh2 = myhabitat.copy()
        mh2[(context.MTY_MAGE, context.MTY_PRIEST)] = True
        btype = monsters.choose_monster_type(self.rank - 1, self.rank + 4, mh2)
        if btype:
            boss = monsters.generate_boss(btype, self.rank + 4, team=myteam)
            myitem = items.generate_special_item(self.rank + 2, items.WAND)
            if myitem:
                boss.contents.append(myitem)
            self.register_element("_ROOM", room, dident="LOCALE")
            self.register_element("BOSS", boss, "_ROOM")

            # Record the one thing this boss cares about.
            self.boss_goal = random.choice(self.GOALS)
            self.boss_shop = self.register_element(
                "SHOPSERVICE",
                services.Shop(services.MAGIC_STORE,
                              rank=self.rank + 5,
                              allow_misc=False,
                              num_items=25,
                              turnover=5,
                              npc=boss))
            self.shop_open = False
        return btype
Ejemplo n.º 4
0
    def custom_init(self, nart):
        # Create the lever and spirit room.
        scene = self.elements.get("LOCALE")
        mygen = nart.get_map_generator(scene)

        # Spirit jar room
        puzzle_room = randmaps.rooms.SharpRoom(tags=(context.ENTRANCE, ))
        team = teams.Team(default_reaction=-999, respawn=False)
        if random.randint(1, 3) == 1:
            puzzle_room.contents.append(
                teams.Team(default_reaction=-999,
                           rank=self.rank,
                           strength=100,
                           habitat=scene.get_encounter_request(),
                           fac=scene.fac))
        self.register_element("_PUZZLE_ROOM", puzzle_room, dident="LOCALE")
        self.register_element("_SOURCE",
                              waypoints.SpiritJar(
                                  plot_locked=True,
                                  anchor=randmaps.anchors.middle),
                              dident="_PUZZLE_ROOM")
        self.spirit_contained = True

        myhabitat = {
            (context.MTY_ELEMENTAL, context.MTY_UNDEAD, context.MTY_CELESTIAL, context.MTY_DEMON):
            True,
            tuple(self.elements["TARGET"].desctags):
            True
        }
        btype = monsters.choose_monster_type(self.rank, self.rank + 2,
                                             myhabitat)
        if btype:
            boss = self.register_element(
                "_MONSTER",
                monsters.generate_boss(btype, self.rank + 2, team=team))
        if random.randint(1, 2) == 1:
            myitem = self.register_element(
                "_ITEM",
                items.generate_special_item(self.rank + random.randint(1, 2)))
        else:
            myitem = self.register_element(
                "_ITEM",
                items.generate_scroll(self.rank + random.randint(1, 2)))

        return btype and myitem
Ejemplo n.º 5
0
 def custom_init(self, nart):
     scene = self.elements.get("LOCALE")
     room = randmaps.rooms.SharpRoom()
     room.DECORATE = randmaps.decor.LibraryDec(win=None)
     # Create a chest, and stock it with magical goodies.
     mychest = waypoints.LargeChest()
     mychest.stock(self.rank, item_types=(items.SCROLL, items.POTION))
     room.contents.append(mychest)
     room.contents.append(waypoints.Bookshelf())
     for t in range(random.randint(2, 3)):
         myitem = items.generate_scroll(self.rank + 1)
         if myitem:
             myitem.identified = True
             mychest.contents.append(myitem)
     # Create a team for our spellcasters.
     myhabitat = scene.get_encounter_request()
     myhabitat[(context.MTY_MAGE, context.MTY_PRIEST)] = True
     myteam = self.register_element(
         "TEAM",
         teams.Team(default_reaction=-999,
                    rank=self.rank,
                    strength=120,
                    habitat=myhabitat,
                    hodgepodge=True))
     room.contents.append(myteam)
     boss = monsters.generate_npc(team=myteam,
                                  upgrade=True,
                                  rank=self.rank + 1,
                                  job=random.choice(self.JOBS),
                                  fac=scene.fac)
     myitem = items.generate_special_item(self.rank)
     if myitem:
         boss.contents.append(myitem)
     room.contents.append(boss)
     self.register_element("_ROOM", room, dident="LOCALE")
     return True
Ejemplo n.º 6
0
    def custom_init( self, nart ):
        scene = self.elements.get("LOCALE")
        room = randmaps.rooms.SharpRoom()
        room.DECORATE = randmaps.decor.LibraryDec(win=None)
        room.contents.append( waypoints.Bookshelf() )
        # Create a chest, and stock it with magical goodies.
        mychest = waypoints.LargeChest()
        mychest.stock(self.rank,item_types=(items.SCROLL,items.POTION))
        room.contents.append( mychest )
        for t in range( random.randint(5,8) ):
            myitem = items.generate_scroll( self.rank + 1 )
            if myitem:
                myitem.identified = True
                mychest.contents.append( myitem )
        # Create a team for our undead spellcaster.
        myhabitat = {context.GEN_UNDEAD: True }
        myteam = self.register_element( "TEAM", teams.Team(default_reaction=-25, rank=self.rank, 
          strength=0, habitat=myhabitat ) )
        room.contents.append( myteam )
        mh2 = myhabitat.copy()
        mh2[(context.MTY_MAGE,context.MTY_PRIEST)] = True
        btype = monsters.choose_monster_type(self.rank-1,self.rank+4,mh2)
        if btype:
            boss = monsters.generate_boss( btype, self.rank+4, team=myteam )
            myitem = items.generate_special_item( self.rank+2, items.WAND )
            if myitem:
                boss.contents.append( myitem )
            self.register_element( "_ROOM", room, dident="LOCALE" )
            self.register_element( "BOSS", boss, "_ROOM" )

            # Record the one thing this boss cares about.
            self.boss_goal = random.choice( self.GOALS )
            self.boss_shop = self.register_element( "SHOPSERVICE",
              services.Shop( services.MAGIC_STORE, rank=self.rank+5, allow_misc=False, num_items=25, turnover=5, npc=boss ) )
            self.shop_open = False
        return btype
Ejemplo n.º 7
0
 def custom_init( self, nart ):
     self._scroll = items.generate_scroll(self.rank)
     return self._scroll
Ejemplo n.º 8
0
 def custom_init(self, nart):
     self._scroll = items.generate_scroll(self.rank)
     return self._scroll