ToME: the Tales of Maj'Eyal

Everything about ToME
It is currently Fri Jun 23, 2017 7:10 pm

All times are UTC




Post new topic Reply to topic  [ 74 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Author Message
 Post subject: Re: Vault contest!
PostPosted: Sun Apr 17, 2011 4:50 pm 
Offline
Master of Eyal

Joined: Wed Jul 24, 2002 9:26 pm
Posts: 10121
Location: Angolwen
Only a few more hours for the first contest !

_________________
[tome] joylove: You can't just release an expansion like one would release a Kraken XD
--
[tome] phantomfrettchen: your ability not to tease anyone is simply stunning ;)


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Sun Apr 17, 2011 8:40 pm 
Offline
Uruivellas

Joined: Tue May 11, 2010 8:58 pm
Posts: 606
Location: Ore uh gun, USA
Bit high on the gear-dishin-out ratio, but I figure if you can clear it out, you deserve the gear.

Code:
--Hedrachi's "If You Don't Hate Orcs Now, You'll Hate Them After This" vault contest submission.

startx = 0
starty = 6

setStatusAll{no_teleport=true}
rotates = {"default", "90", "180", "270", "flipx", "flipy"}

defineTile('.', "FLOOR")
defineTile('#', "HARDWALL")
defineTile('+', "DOOR")
defineTile('X', "DOOR_VAULT")
defineTile('&', "LAVA_FLOOR")

defineTile('a', "FLOOR", {random_filter={add_levels=10, tome_mod="gvault"}}, {random_filter={add_levels=15, type = "orc", subtype = "cryomancer"}})
defineTile('b', "FLOOR", {random_filter={add_levels=10, tome_mod="gvault"}}, {random_filter={add_levels=10, type = "orc", subtype = "pyromancer"}})
defineTile('o', "FLOOR", nil, {random_filter={add_levels=3, type = "orc"}})
defineTile('p', "FLOOR", {random_filter={add_levels=10, type = "money"}}, {random_filter={add_levels=5, type = "orc", subtype = "grand master assassin"}})
defineTile('q', "FLOOR", nil, {random_filter={add_levels=5, type = "orc", subtype = "archer"}})
defineTile('r', "FLOOR", nil, {random_filter={add_levels=5, type = "orc", subtype = "wyrmic"}})
-- Does that subtype work? Want em to be wyrmics, could care less if they're fiery or icy.
defineTile('u', "FLOOR", {random_filter={add_levels=10, tome_mod="uvault"}}, nil, {random_filter={add_levels=10}})
-- Ideally, change the random +10 level trap here to a "Gotcha!" trap where the pyro/cryo doors open, and make the doors locked until the trap
-- is sprung. But should be good as it is.

return {
[[############]],
[[#a#..q...#b#]],
[[##+......+##]],
[[#..r.o.r...#]],
[[#..........#]],
[[#...&&&o..p#]],
[[X...&u&o..p#]],
[[#...&&&o..p#]],
[[#..........#]],
[[#..r.o..r..#]],
[[##+......+##]],
[[#b#..q...#a#]],
[[############]],
}

_________________
Having satellite internet is a lot like relying on the processes described in those RFC's for your internet. Except, instead of needing to worry about statues interrupting your connection, this time you worry about the weather. I have satellite internet. Fun, no?


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Tue Apr 19, 2011 2:46 am 
Offline
Wyrmic

Joined: Sat Jan 26, 2008 1:12 am
Posts: 203
Code:
-- A spiral vault, without any seals, with a vault at the end

min_level = 1
rarity = 10

meta_generator = function(gen, id)
   local w = rng.range(5, 9)
   local h = rng.range(5, 9)
   return {
      name="lv_spiral"..w.."x"..h,
      w=w+2, h=h+2,
      generator = function(self, x, y)
         local filter = nil

         -- Initialize with the walls
         for i = 1, self.w do
            for j = 1, self.h do
               gen.map.room_map[i-1+x][j-1+y].room = id
               gen.map.room_map[i-1+x][j-1+y].special = true
               gen.map(i-1+x, j-1+y, Map.TERRAIN, gen:resolve("wall"))
            end
         end

         local min_x, max_x = 2, self.w - 1
         local min_y, max_y = 2, self.h - 1

         local i, j
         local dir_x, dir_y
         local rotation

         -- 8 possible entries and starting directions
         local choice = rng.range(1, 8)
         if choice == 1 then
            i, j = 1, 2
            dir_x, dir_y = 1, 0
            rotation = -1
            -- These are to compensate the first reduction in range
            min_x = min_x - 2
         elseif choice == 2 then
            i, j = 2, 1
            dir_x, dir_y = 0, 1
            rotation = 1
            min_y = min_y - 2
         elseif choice == 3 then
            i, j = self.w, 2
            dir_x, dir_y = -1, 0
            rotation = 1
            max_x = max_x + 2
         elseif choice == 4 then
            i, j = self.w-1, 1
            dir_x, dir_y = 0, 1
            rotation = -1
            min_y = min_y - 2
         elseif choice == 5 then
            i, j = 1, self.h-1
            dir_x, dir_y = 1, 0
            rotation = 1
            min_x = min_x - 2
         elseif choice == 6 then
            i, j = 2, self.h
            dir_x, dir_y = 0, -1
            rotation = -1
            max_y = max_y + 2
         elseif choice == 7 then
            i, j = self.w, self.h-1
            dir_x, dir_y = -1, 0
            rotation = -1
            max_x = max_x + 2
         else -- if choice == 8 then
            i, j = self.w-1, self.h
            dir_x, dir_y = 0, -1
            rotation = 1
            max_y = max_y + 2
         end
         
         gen.map.room_map[i-1+x][j-1+y].entry = {id, 1}

         local num_turns = 0

         while min_x <= max_x and min_y <= max_y do
            -- Tunnel one "edge" of the spiral
            while i + dir_x >= min_x and i + dir_x <= max_x and
               j + dir_y >= min_y and j + dir_y <= max_y do
               i = i + dir_x
               j = j + dir_y
            
               gen.map(i-1+x, j-1+y, Map.TERRAIN, gen:resolve("floor"))
         
               -- Fill the vault with monsters (but not at the beginning)
               -- It could be changed to give stronger monsters at the
               -- end of the spiral
               if num_turns >= 1 and rng.percent(75) then
                  local m = gen.zone:makeEntity(gen.level, "actor", filter, nil, true)
                  -- Prevent huge quantities of rats
                  m.make_escort = nil

                  if m and m:canMove(i-1+x, j-1+y) then
                     -- Very important, since using add_entities
                     -- skip this call when the monsters get added
                     -- to the map.
                     m:added()
                     gen.map.room_map[i-1+x][j-1+y].add_entities = {{"actor", m}}
                  elseif m then
                     m:removed()
                  end
               end
            end

            -- Never go back that far
            if dir_x == 1 then
               min_x = min_x + 2
            elseif dir_x == -1 then
               max_x = max_x - 2
            end
            if dir_y == 1 then
               min_y = min_y + 2
            elseif dir_y == -1 then
               max_y = max_y - 2
            end

            -- Change direction (anticlockwise if rotation == 1)
            dir_x, dir_y = rotation * dir_y, -rotation * dir_x
            num_turns = num_turns + 1
         end -- while min_x <= max_x and min_y <= max_y


         -- The last spot is the end of the spiral, put the forge there
         gen.map(i-1+x, j-1+y, Map.TERRAIN, gen:resolve("NORMAL_FORGE", nil, true))
      end,
   }
end


Oups, sorry. Wrong module :P


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Tue Apr 19, 2011 4:50 pm 
Offline
Retired Ninja

Joined: Fri May 28, 2010 4:38 pm
Posts: 3756
I see BoB vault design contests will be... interesting.

_________________
Jack's Cheese and Bread Snack


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Wed Apr 20, 2011 12:33 am 
Offline
Wyrmic

Joined: Sat Jan 26, 2008 1:12 am
Posts: 203
All BOB (not BoB) rooms are procedurally generated (even vaults). This make figuring out possible (aka: doable) rooms a little on the hard side.


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Thu May 26, 2011 2:45 pm 
Offline
Master of Eyal

Joined: Wed Jul 24, 2002 9:26 pm
Posts: 10121
Location: Angolwen
Ok people I kinda was busy (you know making new releases and all ;) ) nad had not enough time to give to those very neat vaults.

So I nominate Susramanian as the new contest leader. The contest time will also switch to 3 weeks, which is more realistic for everybody.

Thanks and go do more ! :)

_________________
[tome] joylove: You can't just release an expansion like one would release a Kraken XD
--
[tome] phantomfrettchen: your ability not to tease anyone is simply stunning ;)


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Fri May 27, 2011 5:41 pm 
Offline
Spiderkin

Joined: Sat May 15, 2010 3:09 am
Posts: 454
I just finished cleaning up and adding most of the vaults submitted so far. They should be in the next beta.

I'm happy to announce that Burb Lulls has won the first vault contest with his snow giant fort! As promised, there is now a fearsome new unique randomly roaming Eyal: Burb the snow giant champion. Don't interrupt him when he's making art.

For the next contest, I'm arbitrarily setting the submission deadline at Sunday, June 19th. Hopefully soon I'll be posting a sample vault that shows off some new features in the works: levers and secret doors! Also, I'd like to retract that thing I said a while ago about small vaults being better than big vaults. Judging by reactions to the bandit fortress megavault, big vaults are extremely popular. Feel free to submit them! But make them just a little smaller than the bandit fortress... say, 35 by 35.

When submitting vaults, I give bonus points if the thing works the first time I paste it in and fire it up, so testing your creations is encouraged (but not mandatory).

Go build us vaults!


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Sat May 28, 2011 9:23 pm 
Offline
Module Developer

Joined: Tue Dec 14, 2010 3:23 am
Posts: 163
Location: Where I need to be
Okay lets get some new entries

Here is a basic one I have rather uncreatively called sprial vault
Code:
setStatusAll{no_teleport=true}

defineTile('.', "FLOOR")
defineTile('X', "HARDWALL")
defineTile('!', "DOOR_VAULT")
defineTile('D', "DOOR")
defineTile('1', "FLOOR", {random_filter={add_levels=15, tome_mod="vault"}}, {random_filter={add_levels=20}})
defineTile('2', "FLOOR", {random_filter={add_levels=12, tome_mod="vault"}}, {random_filter={add_levels=17}})
defineTile('3', "FLOOR", {random_filter={add_levels=5}}, nil)

rotates = {"default", "90", "180", "270", "flipx", "flipy"}

startx = 5
starty = 0

return {
[[XXXXXXXXXXX]],
[[X...D3....X]],
[[X.XXXXXXX.X]],
[[X.X..D..X.X]],
[[X.X.XXX.X.X]],
[[X.X.X1X.X.X]],
[[X.X.XDX.X.X]],
[[X.X.X.XDX.X]],
[[X3X2X.X2X.X]],
[[XDXDX.X.XDX]],
[[X.X.X.X.X3X]],
[[X.X.X.X.X.X]],
[[X.X.X1D.X.X]],
[[X.X.XXXXX.X]],
[[X.X..2D...X]],
[[X!XXXXXXXXX]],
}

_________________
Those who complain are just Volunteering to fix the problem

<yufra> every vault designer should ask themselves exactly that: What Would Grey Do?


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Sun May 29, 2011 12:31 pm 
Offline
Spiderkin

Joined: Wed Jan 26, 2011 3:47 pm
Posts: 556
Here is a vault for the Scintillating Caves foremost: A bunch of rats which gathered small items.
Inspired by my latest Shadowblade who found the Trollmire far superior to the Caves as first area because of the rune and infusion vaults there. :)

My tests with the crystal tiles in the Trollmire didnt exactly work, but I guess this because it uses a different tileset.

Code:
--caveratnest

startx = 1
starty = 0

rotates = {"default", "90", "180", "270", "flipx", "flipy"}

defineTile('.', "CRYSTAL_FLOOR")
defineTile('#', "CRYSTAL_WALL2")

defineTile('*', "CRYSTAL_FLOOR", {random_filter={add_levels=5,subtype="infusion"}})
defineTile('+', "CRYSTAL_FLOOR", {random_filter={add_levels=5,subtype="rune"}})
defineTile('$', "CRYSTAL_FLOOR", {random_filter={add_levels=20,type="money"}})

defineTile('r', "CRYSTAL_FLOOR", nil, {random_filter={add_levels=5,subtype="rodent"}})




return {
[[#.##....]],
[[#..#....]],
[[##.###..]],
[[.#rrr##.]],
[[.#rrr$##]],
[[##$rrr*#]],
[[#+rrrr##]],
[[##*##$##]],
[[.####*$#]],
[[....####]],
}


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Sun May 29, 2011 3:38 pm 
Offline
Module Developer

Joined: Tue Dec 14, 2010 3:23 am
Posts: 163
Location: Where I need to be
Okay here is a more complicated vault. you enter a dryad's glade and you can defend it from waves of undead for about 65 turns (6 waves of 3 undead). if you can save the tree you get a 5% increase in nature resistance
Code:
setStatusAll{no_teleport=true}





defineTile('.', "GRASS")
defineTile('!', "ROCK_VAULT", nil, nil, nil, {room_map={special=false, room=false, can_open=true}})
defineTile('X', "HARDTREE")
defineTile('T', "TREE")
defineTile('f', "FLOWER")
defineTile('D', "HARDTREE")--will be removed to allow enemies to come in
defineTile('t', mod.class.Grid.new{
   define_as = "TRIGGER",
   name = "grass", image = "terrain/lava_floor.png",
   display = '.', color=colors.LIGHT_GREEN, back_color={r=44,g=95,b=43},
   firsttime= true,
   on_move = function(self, x, y, who)
      if self.firsttime then
         --trigger stuff
         local answer =false
         local text = "As you enter the glade a Dryad asks for you help in defending her home"
         require("engine.ui.Dialog"):yesnoLongPopup("Dryad's Glade", text.."\nDo you help her defend her home?", 400, function(ret)
            if ret then
            self.firsttime=false
            local m = game.level.map(x+5, y, Map.ACTOR)
            if m and m.isTree then
               m.triggered=true
               m.savior = who
               m.faction = who.faction
            end   
            m = game.level.map(x-5, y, Map.ACTOR)
            if m and m.isTree then
               m.triggered=true
               m.savior = who
               m.faction = who.faction
            end   
            m = game.level.map(x, y+5, Map.ACTOR)
            if m and m.isTree then
               m.triggered=true
               m.savior = who
               m.faction = who.faction
            end   
            m = game.level.map(x, y-5, Map.ACTOR)
            if m and m.isTree then
               m.triggered=true
               m.savior = who
               m.faction = who.faction
            end      
            game.logSeen(who, "Prepare to defend the tree")
            else
               game.logSeen(who, "The Dryad then leaves crestfallen and abandons her tree")
            end
         end)         
      end   
      
   end,
})
defineTile('O', "GRASS", nil, mod.class.NPC.new{
   type = "immovable", subtype = "plants",
   display = "#", color=colors.GOLD,
   name = "Dyrad's Tree",
   faction = "sunwall", hard_faction = "sunwall",
   body = { INVEN = 10},
   desc = [[A Dryads Home]],
   level_range = {10, 50}, exp_worth = 0,
   rank = 3,
   move_others=true,
   size_category = 5,
   autolevel = "warrior",
   ai = "dumb_talented_simple", ai_state = { talent_in=3, },
   stats = { str=10, dex=10, mag=3, con=10 },
   infravision = 10,
   combat_armor = 15, combat_def = 1,
   never_move = 1,
   fear_immune = 1,
   --stuff for events
   isTree = true,
   survived=false,
   triggered = false,
   wallsopend = false,
   count = 0,
   wavecount=100,
   max_life = resolvers.rngavg(140,170),
   act = function(self)
      --summoning and a bunch of other stuff
      
      if self.triggered then
         if not self.wallsopend then self:createEntries() end
         self.count = self.count+1
         --game.logSeen(self.savior, "count at %d",self.count)
         if self.count == self.wavecount then
            game.logSeen(self.savior, "A wave of eneimies aproach")
            self:summonInvaders()
            self.wavecount = self.wavecount + 100
         end
         if self.count == 650 then
            self.triggered = false
            local DT = engine.DamageType
            require("engine.ui.Dialog"):simplePopup("Dryad's Glade", "You have succsefully kept the tree alive")
            if(self.savior.resists[DT.NATURE]or 0) < 60 then
               self.savior.resists[DT.NATURE] = (self.savior.resists[DT.NATURE]or 0) + 5
               game.logSeen(self.savior, "A wave of energy passes over you increaseing your nature restist by 5")
            end
         end
      end
   end,
   createEntries =  function(self)
      local g = game.zone:makeEntityByName(game.level, "terrain", "GRASS")
      game.zone:addEntity(game.level, g, "terrain", self.x + 1, self.y+6)
      game.zone:addEntity(game.level, g, "terrain", self.x , self.y+6)
      game.zone:addEntity(game.level, g, "terrain", self.x - 1, self.y+6)
      game.zone:addEntity(game.level, g, "terrain", self.x + 1, self.y-6)
      game.zone:addEntity(game.level, g, "terrain", self.x , self.y-6)
      game.zone:addEntity(game.level, g, "terrain", self.x - 1, self.y-6)
      game.zone:addEntity(game.level, g, "terrain", self.x + 6, self.y+1)
      game.zone:addEntity(game.level, g, "terrain", self.x + 6, self.y)
      game.zone:addEntity(game.level, g, "terrain", self.x + 6, self.y-1)
      game.zone:addEntity(game.level, g, "terrain", self.x -6, self.y+1)
      game.zone:addEntity(game.level, g, "terrain", self.x -6, self.y)
      game.zone:addEntity(game.level, g, "terrain", self.x -6, self.y+1)
      self.wallsopend = true
   end,
   summonInvaders = function(self)
      local dir = rng.range(1,4)
      if dir==1 then
         self:createInvader(self.x + 1, self.y+6)
         self:createInvader(self.x , self.y+6)
         self:createInvader(self.x - 1, self.y+6)
      elseif dir==2 then
         self:createInvader(self.x + 1, self.y-6)
         self:createInvader(self.x , self.y-6)
         self:createInvader(self.x - 1, self.y-6)
      elseif dir==3 then
         self:createInvader(self.x+6,self.y+1)
         self:createInvader(self.x+6,self.y)
         self:createInvader(self.x+6,self.y-1)
      else --assumed 4 at this point
         self:createInvader(self.x-6,self.y+1)
         self:createInvader(self.x-6,self.y)
         self:createInvader(self.x-6,self.y-1)
      end   
   end,
   createInvader = function(self,sx,sy)
      local x, y = util.findFreeGrid(sx, sy, 5, true, {[Map.ACTOR]=true})
      if x then
         local m = game.zone:makeEntity(game.level, "actor", {type="undead"}, nil, true)
         if m then
            game.zone:addEntity(game.level, m, "actor", x, y)
            game.logSeen(game.player, "%s marches to destroy the tree!", m.name:capitalize())
         end
      end   
   end,
   
}
)

startx = 0
starty = 6

rotates = {"default", "90", "180", "270", "flipx", "flipy"}

return {
[[..XXXDDDXXX..]],
[[.XX.TT.TT.XX.]],
[[XX......f..XX]],
[[X...f.......X]],
[[XT..f..f...TX]],
[[!T.......f.TD]],
[[!t.f..O...f.D]],
[[!T..f......TD]],
[[XT......f..TX]],
[[X...f...f...X]],
[[XX.........XX]],
[[.XX.TT.TT.XX.]],
[[..XXXDDDXXX..]],
}

_________________
Those who complain are just Volunteering to fix the problem

<yufra> every vault designer should ask themselves exactly that: What Would Grey Do?


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Sun May 29, 2011 6:55 pm 
Offline
Retired Ninja

Joined: Fri May 28, 2010 4:38 pm
Posts: 3756
Wanted to comment on the rat vault.

While I'm a big fan of rats nests just because they make thematic sense note that rodents have a pretty low level cap (like 4 or so I think) so adding levels to them will never make them higher level then that.

Maybe some rat swarm mobs could be added with a higher level cap and generally just more dangerous (disease on hit, high attack, apr, low or no crit, extra damage from spells but phys resist or something).

_________________
Jack's Cheese and Bread Snack


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Tue May 31, 2011 11:19 pm 
Offline
Wayist

Joined: Mon May 23, 2011 12:32 am
Posts: 25
I know that this is an extremely simple design, but I also feel that the present lack of random pentagrams sealing demons away beneath the earth is detracting from my play experience.

This should probably only occur underground, although it would be amusing to come across a little clearing with a blazing lava pentagram in, say, the Trollmire...



Code:


--sealed pentagram

startx = 7
starty = 7

setStatusAll{no_teleport=true}
rotates = {"default", "flipy"}

defineTile('.', "FLOOR")
defineTile('#', "HARDWALL")
defineTile('X', "DOOR_VAULT")
defineTile('&', "LAVA_FLOOR")


defineTile('*', "FLOOR", {random_filter={add_levels=10, tome_mod="uvault"}}, {random_filter={add_levels=20, type = "demon"}},


return {
[[.............]],
[[......&......]],
[[.....&.&.....]],
[[.&&&&&&&&&&&.]],
[[..&.&###&.&..]],
[[...&.#*#.&...]],
[[..&.&#X#&.&..]],
[[.&&&&&.&&&&&.]],
[[.....&.&.....]],
[[......&......]],
[[.............]]


}


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Wed Jun 08, 2011 1:43 am 
Offline
Perspiring Physicist

Joined: Thu Feb 17, 2011 5:20 am
Posts: 887
Here are a few vault ideas that I've come up with. They are not close to being finished code (sorry Sus, I'll try to be better in the future), so I don't expect to win. Nonetheless, sharing ideas is better than sharing nothing, so here goes:

Jailbreak 1!
Code:
Jailbreak! (small, 13x11)
X : DOOR_VAULT
# : HARDWALL
% : WALL
g : gaoler (i.e., jailer), race appropriate to zone, or just use "npc/humanoid_halfling_sm_halfling.png" image :)
h : random (unique?) humanoid and/or thieves, hostile towards the player and other enemies on the level (but friendly to each other, of course).
+ : gates/doors (sealed_door.png and sealed_door_cracked.png?) to open when upper gaoler is defeated.  If levers are possible, have a lever where the gaoler starts and use that to open the doors instead.  Levers would be prefered, I think, so it would be possible for the inmates to fight the gaolers :)
= : gates/doors to open when lower gaoler is defeated.
? : vault item
! : gvault item
.............
.............
.###+#X#+###.
.+h#h#g#h#h+.
.#####%#####.
.=h#??!??#h+.
.#####%#####.
.=h#h#g#h#h=.
.###=#X#=###.
.............
.............


Jailbreak 2!
Code:
Jailbreak! (medium, 13x13)
as above, except
h : also have vault item
H : also have gvault item
.............
.............
.#+###X###+#.
.#h#h#.+h#h#.
.###+#.#####.
.+h#..g#H#h+.
.###+###=###.
.=h#H#g..#h=.
.#####.#=###.
.#h#h=.#h#h#.
.#=###X###=#.
.............
.............


Unstable Xorn Den
Code:
Unstable Xorn Den (13x13)
Upon removing any loose rubble, '%', ALL the lose rubble is removed
The intention is that players won't get swarmed (much) if they stay and fight... but if they run away, then, well, several Xorn/Xaren will likely chase after them...
% : ROCK_VAULT
# : rocky mountains?
.............
.....###.....
...##%X%##...
..#%X...X%#..
..#X.X##.X#..
.#%.X??##.%#.
.#X.#?!?#.X#.
.#%.##??X.%#.
..#X.##X.X#..
..#%X...X%#..
...##%X%##...
.....###.....
.............


Mirage
Code:
Mirage (9x9)
Intended for Eruan
Upon entering water, '~', what appeared as loot/money, '$', becomes enemies
T : PALMTREE
? : vault item
$ : fake vault item/money--actually an enemy
.T.......
...~~~.T.
..~~$~~..
.~~$??~~.
.~?$T$?~.
.~~??$~~.
..~~$~~..
...~~~...
........T


Sinister Bunnies
A very under-developed idea. Basically, I'd like a vault based on cute little bunnies (vermin_rodent_cute_little_bunny.png) in Heart of the Gloom. I envision the cute little bunnies will always be friendly toward the player (even if you hurt them), but, well, they really are sinister. Perhaps you need to kill them for the vault loot they are carrying, or perhaps they resurrect as super-evil bunnies after you kill them, or perhaps they summon gloomed/sick/deformed bunnies who will attack you. I don't know--hopefully somebody else can develop this idea further!


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Wed Jun 08, 2011 5:26 am 
Offline
Sher'Tul Godslayer

Joined: Mon Mar 14, 2011 10:32 am
Posts: 1709
Location: Canada
tiger_eye wrote:
Sinister Bunnies
A very under-developed idea. Basically, I'd like a vault based on cute little bunnies (vermin_rodent_cute_little_bunny.png) in Heart of the Gloom. I envision the cute little bunnies will always be friendly toward the player (even if you hurt them), but, well, they really are sinister. Perhaps you need to kill them for the vault loot they are carrying, or perhaps they resurrect as super-evil bunnies after you kill them, or perhaps they summon gloomed/sick/deformed bunnies who will attack you. I don't know--hopefully somebody else can develop this idea further!


My idea for this:
Have a vault containing 10 Sinister Bunnies. When you open the door, each is teleported to a random location on the level. They immediately start to search each other out, and if two meet, they quickly spawn hostile evil bunnies. When you have killed all 10 "parents" an inner door opens, giving loot. Would require much more coding than I know how to do.

_________________
Some of my tools for helping make talents:
Melee Talent Creator
Annotated Talent Code (incomplete)


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Sat Jun 11, 2011 9:16 pm 
Offline
Spiderkin

Joined: Mon Jul 26, 2004 5:20 am
Posts: 479
Location: Blighty
Firstly, thanks for choosing my vault in the first contest! I'm guessing that puts me out of the running in this one, but I'd like to put one up anyway for vault's sake. To commemorate the first time I saw Burb the Snow Giant Champion kill someone in the chat, here's...

The Boneworks
Location: Erúan
All those skeletons have to come from somewhere.

Code:
-- The Boneworks
setStatusAll{no_teleport=true}
rotates = {"default", "90", "180", "270", "flipx", "flipy"}

defineTile('.', "FLOOR")
defineTile(',', "SAND")
defineTile(';', "UNDERGROUND_FLOOR")
defineTile('X', "HARDWALL")
defineTile('#', "WALL")
defineTile('~', "DEEP_WATER")
defineTile('F', "UNDERGROUND_TREE")
defineTile('C', "CRYSTAL_WALL")
defineTile('T', "PALMTREE")
defineTile('%', "LAVA")
defineTile('+', "DOOR")
defineTile('!', "DOOR_VAULT")

defineTile('G', mod.class.Grid.new{
   define_as = "GLASS_WALL",
   name = "thick glass", image = "terrain/frozen_ground.png",
   display = '#', color=colors.LIGHT_BLUE, back_color={r=89, g=100, b=255},
   always_remember = true,
   does_block_move = true,
   air_level = -20,
})
defineTile('L', mod.class.Grid.new{
   define_as = "LOCKED_DOOR",
   name = "locked door", image = "terrain/granite_door1.png",
   display = '+', color_r=238, color_g=154, color_b=77, back_color=colors.DARK_UMBER,
   always_remember = true,
   does_block_move = true,
   block_sight = true,
   air_level = -20,
})

defineTile('$', "FLOOR", {random_filter={add_levels=10, tome_mod="vault"}})
defineTile('?', "FLOOR", {random_filter={add_levels=15, tome_mod="gvault"}})

defineTile('0', "FLOOR", nil, {random_filter={add_levels=12, name="runed bone giant", random_boss={nb_classes=2, rank=3.5, loot_quantity = 2}}})
defineTile('1', "FLOOR", nil, {random_filter={add_levels=10, name="archlich"}})
defineTile('2', "UNDERGROUND_FLOOR", nil, {random_filter={add_levels=6, name="ghast"}})
defineTile('3', "UNDERGROUND_FLOOR", nil, {random_filter={add_levels=8, name="ghoulking"}})
defineTile('4', "FLOOR", nil, {random_filter={add_levels=4, name="skeleton archer"}})
defineTile('5', "FLOOR", nil, {random_filter={add_levels=6, name="skeleton master archer"}})
defineTile('6', "FLOOR", nil, {random_filter={add_levels=6, name="armoured skeleton warrior"}})
defineTile('7', "FLOOR", nil, {random_filter={add_levels=4, name="skeleton mage"}})
defineTile('8', "FLOOR", nil, {random_filter={add_levels=2, name="degenerated skeleton warrior"}})

return {
[[,,,,,,,,,,,,,,,,,,,,,,,,,T,,,,TT,,,]],
[[,XX,,XX,,XX,,XX,,,T,,,,,,,T,,,,,,T,]],
[[,XX..XX..XX..XX.,,,,T,TT,,,,,,,,,,T]],
[[,XX##XX##XX##XXXXXXXXXXXXXXXXXXX,,,]],
[[,X..8.G..G....X.8........X..CCCX,,T]],
[[,X8...G..G.6..X..........!...0CX,,,]],
[[,X####X..X####X....8..8..X.1CCCX,,,]],
[[TX7...G..G.8..X..........X.....X,,,]],
[[,X....G..G....+..8.......X?????XT,,]],
[[TX....G..G..4.X.....8....X?????X,,,]],
[[,X####X..X####XXGGGGGGXLXXXXXXXX,,,]],
[[,X$$..G..G..$$X........64X,,,,,,,,,]],
[[,X$$..G..G..$$X........64X,,,,,,,,,]],
[[,XXXXXX++XXXXXXX+XXXXXXXXXXXXXX,,,,]],
[[,X.......................X....XX,,,]],
[[,X.7X.~~~~~.X.....6......+.....X,,,]],
[[,X.4X.~~~~~.X...5..6.....+.....X,,,]],
[[,X....~~~~~.....7..6.....X.7...!,,,]],
[[,X.4X.~~~~~.X...5..6.....+.....X,,,]],
[[,X.7X.~~~~~.X.....6......+.....X,,,]],
[[,X.......................X....XX,,,]],
[[,XXXX++XXXX...XXXXXXXXXXXXXXXXX,,,,]],
[[TXFF;;;FFFX...X%%........%....X,,,,]],
[[TXF;;;;;;FX...+...%%%%%%.%%%%%X,,,,]],
[[,X;;F2;;F;X...X%%%%....%......X,,,,]],
[[,X;;;FF;;;X...XXXXXXXXXXXXXXX+X,,,,]],
[[,XF;FFFF;FX...#$$$X......%44%.X,,,,]],
[[,XF;;FF2;;X...#$$$+.%%%%.%%%%.X,,T,]],
[[,XF;2F3F;FX.6.#$$$X%%55%......X,,,T]],
[[,X2F;;;;2FXXXXXXXXXXXXXXXXXXXXX,,T,]],
[[,XF;FF;;FFX,,,,,,,,,,,,,,,,,,,,,T,T]],
[[,XX##XX##XXT,,,,,,,,,,,,,,,,TTT,,,,]],
[[,XX,,XX,,XX,,T,,,,,,,,,,,,,,,,,T,,,]],
[[,XX,,XX,,XX,T,,,,,,,,,,T,,,T,TT,T,,]],
[[,,,,,,,,T,T,,,,,,,,,T,,,,,,,TT,,,,,]],
}


Those pesky undead are up to no good again. A lich has set up a combination lab and skeleton manufacturing plant out in Erúan. Take a walk past the holding cells, see the skeleton archer firing range, inspect the ghoul habitat, and if you can find your way to the lich's chamber, maybe you can take a look at his newest project!

The vault has been tested, and is all present and correct by my reckoning.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 74 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 5 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group