ToME: the Tales of Maj'Eyal

Everything about ToME
It is currently Tue Aug 22, 2017 10:33 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: Thu Feb 02, 2012 9:49 pm 
Offline
Cornac

Joined: Sun Jan 01, 2012 5:57 pm
Posts: 36
forest-ruined-building6.lua

Code:
-- Forest Ruined Building 6 by urmane (Jim Niemira)
-- Intended for Trollmire

setStatusAll{no_teleport=true}

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

defineTile('.', "FLOOR")
defineTile(',', "GRASS")
defineTile('#', "WALL")
defineTile('X', "TREE")
defineTile('+', "DOOR_VAULT")
defineTile('T', "FLOOR", {random_filter={add_levels=5, type="money"}}, {random_filter={name="forest troll", add_levels=4}})

return {
[[#XXXX#XX]],
[[,,,,,,,X]],
[[##.###,X]],
[[,,.#T+,X]],
[[#.X##XX,]],
[[,...,,,,]],
[[#####,#,]],
[[,,X,,,#,]],
}


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Thu Feb 02, 2012 9:51 pm 
Offline
Cornac

Joined: Sun Jan 01, 2012 5:57 pm
Posts: 36
mirror-mirror.lua

Code:
-- mirror-mirror by urmane (Jim Niemira)

setStatusAll{no_teleport=true}
startx = 1
starty = 4

defineTile('.', "FLOOR")
defineTile('!', "DOOR_VAULT")
defineTile('#', "HARDWALL")
defineTile('$', "FLOOR", {random_filter={add_levels=5, tome_mod="vault"}})
-- 1 opens the +'s
defineTile('+', "GENERIC_LEVER_DOOR", nil, nil, nil, {lever_action=1, lever_action_value=0, lever_action_kind="crypt_door"})
defineTile('1', "GENERIC_LEVER", nil, nil, nil,
           {lever=1, lever_kind="crypt_door", lever_radius=1, lever_block="crypt_door_block"})
-- 2 opens the 9's
defineTile('2', "GENERIC_LEVER", nil, nil, nil,
           {lever=1, lever_kind="crypt_door_bad", lever_radius=4, lever_block="crypt_door_block"})
defineTile('9', "GENERIC_LEVER_DOOR", nil, nil, nil, {lever_action=1, lever_action_value=0, lever_action_kind="crypt_door_bad"})
-- 3 does nothing except look like a lever
defineTile('3', "GENERIC_LEVER", nil, nil, nil,
           {lever=1, lever_kind="crypt_door_bogus", lever_radius=1, lever_block="crypt_door_block"})

defineTile('X', "FLOOR", nil, {random_filter={add_levels=5}})

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

return {
[[###########]],
[[#1#1#1#1#$#]],
[[#.+.+.+.+.#]],
[[!.#########]],
[[#.+.9.9XXX#]],
[[#1#2#3#3#X#]],
[[###########]],
}


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Thu Feb 02, 2012 9:52 pm 
Offline
Cornac

Joined: Sun Jan 01, 2012 5:57 pm
Posts: 36
Not really a vault per se, more an experiment

secrets.lua

Code:
-- secrets by urmane (Jim Niemira)

setStatusAll{no_teleport=true}
startx = 2
starty = 0

defineTile('#', "HARDWALL")
defineTile('-', "HARDWALL", nil, nil, nil, {on_block_change="FLOOR", on_block_change_msg="You discovered a secret room!"})
defineTile('$', "FLOOR", {random_filter={add_levels=20, type="money"}})
defineTile('*', "FLOOR", {random_filter={add_levels=5, tome_mod="gvault"}}, {random_filter={add_levels=20}})

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

return {
[[##-######]],
[[##-######]],
[[##$--$-##]],
[[######-##]],
[[###$--$##]],
[[##-######]],
[[##-#-#-##]],
[[##$-#$###]],
[[######-##]],
[[###-##-##]],
[[##*#-#$##]],
[[#####-###]],
[[#########]],
}


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Thu Feb 02, 2012 9:54 pm 
Offline
Cornac

Joined: Sun Jan 01, 2012 5:57 pm
Posts: 36
No door on this one ... it looks too easy ...

too-easy.lua

Code:
-- too-easy by urmane (Jim Niemira)

setStatusAll{no_teleport=true}
startx = 4
starty = 0

defineTile('#', "HARDWALL")
defineTile('$', "FLOOR", {random_filter={add_levels=5, tome_mod="gvault"}})
defineTile('^', "FLOOR", nil, nil, {random_filter={name="summoning alarm"}})

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

return {
[[####.####]],
[[#.......#]],
[[#.......#]],
[[#^^.^^..#]],
[[#..^..^^#]],
[[#...$...#]],
[[#########]],
}


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Thu Feb 02, 2012 9:58 pm 
Offline
Cornac

Joined: Sun Jan 01, 2012 5:57 pm
Posts: 36
The intention here is that the alarm wakes up everybody, and the Umber Hulks eat through the walls - the player must run the archer gauntlet.

umber-hulk-archer-trap.lua

Code:
-- Umber-Hulk-Archer trap by urmane (Jim Niemira)

setStatusAll{no_teleport=true}
startx = 7
starty = 6

defineTile('.', "FLOOR")
defineTile('+', "DOOR")
defineTile('!', "DOOR_VAULT")
defineTile('#', "HARDWALL")
-- The intruder alarm trap may not be in the zone - in that case, there will be no trap on this tile
defineTile('^', "FLOOR", nil, nil, {random_filter={add_levels=5, name="intruder alarm"}})
defineTile('$', "FLOOR", {random_filter={add_levels=5, tome_mod="vault"}})
defineTile('A', "FLOOR", nil, {random_filter={add_levels=10, name="skeleton archer"}})
defineTile('X', "FLOOR", nil, {random_filter={add_levels=10, name="umber hulk"}})

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

return {
[[#########]],
[[#A#A#...$]],
[[#.#.#....]],
[[#.X.X....]],
[[#........]],
[[########^]],
[[.......!.]],
[[########^]],
[[#........]],
[[#.X.X....]],
[[#.#.#....]],
[[#A#A#...$]],
[[#########]],
}


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Thu Feb 02, 2012 10:09 pm 
Offline
Thalore

Joined: Thu Dec 30, 2010 9:52 am
Posts: 156
urmane wrote:
The intention here is that the alarm wakes up everybody, and the Umber Hulks eat through the walls - the player must run the archer gauntlet.


Umm, don't umber hulks PASS through wall, instead of eating it?


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Thu Feb 02, 2012 10:29 pm 
Offline
Sher'Tul

Joined: Mon Jun 13, 2011 4:10 pm
Posts: 1262
Regardless, they can't move or see through hard walls, and even if they were normal walls, they wouldn't need the trap to notice the player, since they can see through walls. I think. You'd need some custom Umber Hulk entities.

_________________
Sorry about all the parentheses (sometimes I like to clarify things).


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Thu Feb 02, 2012 10:59 pm 
Offline
Cornac

Joined: Sun Jan 01, 2012 5:57 pm
Posts: 36
Could I just change them to normal walls, maybe moving the vault door back to the outside, and putting a normal door at the end of the corridor?


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Thu Feb 02, 2012 11:06 pm 
Offline
Cornac

Joined: Sun Jan 01, 2012 5:57 pm
Posts: 36
Updated:

Code:
-- Umber-Hulk-Archer trap by urmane (Jim Niemira)

setStatusAll{no_teleport=true}
startx = 0
starty = 6

defineTile('.', "FLOOR")
defineTile('+', "DOOR")
defineTile('!', "DOOR_VAULT")
defineTile('#', "HARDWALL")
defineTile('=', "WALL")
-- The intruder alarm trap may not be in the zone - in that case, there will be no trap on this tile
defineTile('^', "FLOOR", nil, nil, {random_filter={add_levels=5, name="intruder alarm"}})
defineTile('$', "FLOOR", {random_filter={add_levels=5, tome_mod="vault"}})
defineTile('A', "FLOOR", nil, {random_filter={add_levels=10, name="skeleton archer"}})
defineTile('X', "FLOOR", nil, {random_filter={add_levels=10, name="umber hulk"}})

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

return {
[[#########]],
[[#A#A#...$]],
[[#.#.#....]],
[[#.X.X....]],
[[#........]],
[[#=======^]],
[[!......+.]],
[[#=======^]],
[[#........]],
[[#.X.X....]],
[[#.#.#....]],
[[#A#A#...$]],
[[#########]],
}


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Fri Feb 03, 2012 1:42 am 
Offline
Sher'Tul

Joined: Mon Jun 13, 2011 4:10 pm
Posts: 1262
Like I said, the Umber Hulks will see through the walls, if I understand their sensing mechanic right.

_________________
Sorry about all the parentheses (sometimes I like to clarify things).


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Fri Feb 03, 2012 6:36 am 
Offline
Loremaster

Joined: Thu Sep 23, 2010 10:18 pm
Posts: 3516
Location: London, England
Can we have some consensus on what makes a good vault? Because these ones with preset trap placement and lever mechanics seem to only encourage spoilers. Death traps that you can't back out of also seem like bad design. Would be nice to see more procedural elements to the internal mechanics of vaults.

On another note, new simple low level vaults for Trollmire is great to see.

_________________
http://www.gamesofgrey.com - My own T-Engine games!
Roguelike Radio - A podcast about roguelikes


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Tue Feb 07, 2012 12:29 pm 
Offline
Thalore

Joined: Thu Dec 30, 2010 9:52 am
Posts: 156
In a slightly lighter mood - here's a proposal for a few interesting rooms/minivalults for forest type areas - trollmire and old forest. I hope they work, especially the way i tried to implement randomness in some of them.
Code:

-- forest interesting room #08/15, take 1

startx = 2
starty = 2

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

defineTile('.', "GRASS")
defineTile('#', "TREE")

defineTile('i', "GRASS", {random_filter={add_levels=0, tome_mod="vault"}})

defineTile('V', "GRASS", nil, {random_filter={add_levels=5, name = "poisonous ivy"}})

return {
[[###]],
[[#V#]],
[[#i.]],
[[#V#]],
[[###]],
}


-- forest interesting room #08/15, take 2

startx = 1
starty = 0

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

defineTile('.', "GRASS")
defineTile('#', "TREE")

defineTile('i', "GRASS", {random_filter={add_levels=0, tome_mod="vault"}}, nil, {random_filter={add_levels=5}})

defineTile('V', "GRASS", nil, {random_filter={add_levels=5, name = "poisonous ivy"}})
defineTile('M', "GRASS", nil, {random_filter={add_levels=5, name = "treant"}})


return {
[[#V#]],
[[#M#]],
[[#i#]],
[[###]],
}

-- forest interesting room #08/15, take 3

startx = 1
starty = 0

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

defineTile('#', "TREE")
defineTile('!', "ROCK_VAULT")

defineTile('B', "FLOOR", random_filter={add_levels=0, tome_mod="vault"}}, {random_filter={add_levels=10, type = "animal", subtype = "bear"}})


return {
[[#!#]],
[[#B#]],
[[###]],
}

-- forest interesting room #08/15, take 4

startx = 0
starty = 0

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

defineTile('.', "GRASS")
defineTile('f', "FLOWER")

defineTile('i', "GRASS", if rng.range(0, 1) > 0 then {random_filter={add_levels=1}} else nil end, if rng.range(0, 1) > 0 then {random_filter={add_levels=5, name = "poisonous ivy"}} else nil end, if rnd.range(0, 1) > 0 then {random_filter={add_levels=5}} else nil end)


return {
[[.ff.]],
[[fiif]],
[[fiif]],
[[.ff.]],
}

-- forest interesting room #08/15, take 5

startx = 3
starty = 2

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

defineTile('.', "GRASS")
defineTile('f', "FLOWER")
defineTile('T', "HARDTREE")
defineTile('O', "ROCK_VAULT")


defineTile('R', "GRASS", random_filter={add_levels=5, name = "treant"}, nil, nil)
defineTile('i', "GRASS", random_filter={add_levels=0, tome_mod=”vault”}}, nil, nil)


return {
[[TTTTT]],
[[TiROT]],
[[TiROf]],
[[TiROT]],
[[TTTTT]],
}

-- forest interesting room #08/15, take 6

startx = 0
starty = 0

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

defineTile('.', "GRASS")
defineTile('f', "FLOWER"))


defineTile('T', "TREE", nil, random_filter={add_levels=0, tome_mod=”vault”}},, nil)


return {
[[.....]],
[[..f..]],
[[.fRf.]],
[[..f..]],
[[.....]],
}

-- forest interesting room #08/15, take 7

startx = 0
starty = 0

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

defineTile('.', "GRASS")
defineTile('f', "FLOWER")


defineTile('T', "TREE")

defineTile('R', "GRASS", random_filter={add_levels=10, type = "troll"}, random_filter={add_levels=0, tome_mod = "vault"}, nil)

defineTile('F', "FLOWER", nil, nil, random_filter={add_levels=5})



return {
[[.fTf.]],
[[fTFTf]],
[[TFRFT]],
[[fTFTf]],
[[.fTf.]],
}


edit: code tags instead of quote tags


Last edited by marchewka on Wed Feb 08, 2012 12:54 am, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Tue Feb 07, 2012 5:29 pm 
Offline
Loremaster

Joined: Thu Sep 23, 2010 10:18 pm
Posts: 3516
Location: London, England
Looks cool. You can use "[code ]" tags instead of quote tags to make them display a little better on the forums.

_________________
http://www.gamesofgrey.com - My own T-Engine games!
Roguelike Radio - A podcast about roguelikes


Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Thu Feb 16, 2012 10:00 am 
Offline
Thalore

Joined: Thu Dec 30, 2010 9:52 am
Posts: 156
1# thank you for the word of appreciation!
2# can someone please confirm if the way used by me to induce randomness actually works? or are there any other problems in the code itself? it's not tested in the TOME engine
3# think i could please ask for some explanation on how to test such ideas versus how do they compile / look in game? Is there some easy way to do it?
4# and finally - another idea - an ancient tomb, sealed by a boulder, with ancient prince raised as a skeleton mage + 2 archers, and a bunch of equipment of the dead:
Code:
--tomb of an ancient prince
startx = 3
starty = 2

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

setStatusAll{no_teleport=true}

defineTile('.', "FLOOR")
defineTile('#', "HARDWALL")
defineTile('X', "ROCK_VAULT")

defineTile('I', "FLOOR", if rng.range(0, 2) > 0 then {random_filter={add_levels=5,subtype="infusion"}} else nil end)
defineTile('R', "FLOOR", if rng.range(0, 2) > 0 then {random_filter={add_levels=5,subtype="rune"}} else nil end)
defineTile('r', "FLOOR", if rng.range(0, 2) > 0 then {random_filter={add_levels=5,subtype="ring"}} else nil end)
defineTile('E', "FLOOR", if rng.range(0, 2) > 0 then {random_filter={add_levels=5,subtype="belt"}} else nil end)
defineTile('t', "FLOOR", if rng.range(0, 2) > 0 then {random_filter={add_levels=5,subtype="tool"}} else nil end)
defineTile('n', "FLOOR", if rng.range(0, 2) > 0 then {random_filter={add_levels=5,subtype="necklace"}} else nil end)
defineTile('B', "FLOOR", if rng.range(0, 2) > 0 then {random_filter={add_levels=5,subtype="body"}} else nil end)
defineTile('O', "FLOOR", if rng.range(0, 2) > 0 then {random_filter={add_levels=5,subtype="boots"}} else nil end)
defineTile('a', "FLOOR", if rng.range(0, 2) > 0 then {random_filter={add_levels=5,subtype="gloves"}} else nil end)
defineTile('C', "FLOOR", if rng.range(0, 2) > 0 then {random_filter={add_levels=5,subtype="cloak"}} else nil end)
defineTile('1', "FLOOR", if rng.range(0, 2) > 0 then {random_filter={add_levels=5,subtype="weapon"}} else nil end)
defineTile('2', "FLOOR", if rng.range(0, 2) > 0 then {random_filter={add_levels=5,subtype="shield"}} else nil end)

defineTile('^', "FLOOR", nil, nil, {random_filter={add_levels=20}})

defineTile('$', "FLOOR", {random_filter={add_levels=10,type="money"}})

defineTile('M', "FLOOR", nil, {random_filter={add_levels=25, name="skeletal mage"}})
defineTile('A', "FLOOR", nil, {random_filter={add_levels=15, name="skeletal archer"}})

return {
[[.#^.^#.]],
[[.#^.^#.]],
[[###X###]],
[[#A...A#]],
[[#$HMn$#]],
[[#t1BCa#]],
[[#R.E.r#]],
[[#I.O..#]],
[[##...##]],
[[.#####.]],
}



Top
 Profile  
 
 Post subject: Re: Vault contest!
PostPosted: Thu Feb 16, 2012 10:36 am 
Offline
Retired Ninja

Joined: Fri May 28, 2010 4:38 pm
Posts: 3756
I think your random tile thing will work.

As to the rest, first unzip the files and then..

edge2054 wrote:
Did some experimenting with 'vault testing' and I think this will work (or at least it worked for me on decent sized vaults).

First create a file for your vault in data\maps\vaults.lua

Next modify data\zones\trollmire\zone.lua

Change lines 52-54 to...

Code:
         nb_rooms = 1,
         rooms = {"lesser_vault"},
         lesser_vaults_list = {"your_vault_file_here"},


This should get the zone to always generate one room (the number of rooms flag) and always generate the vault in question. I'm not really sure what the difference between lesser and greater vaults are. I know some zone files use greater_vault flags but I don't see where vaults are tagged this way. Maybe someone can expand on that.

But the above is tested and should work for most vaults.

*note* This will invalidate your game so should be used on a test character using a test copy of the game if you want to keep your characters in the vault.


Hope that helps :P

_________________
Jack's Cheese and Bread Snack


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