Page 1 of 5

Call for mappers

Posted: Sat Sep 04, 2010 7:33 pm
by darkgod
Hello

ToME now supports vaults!
Well, so now we need vaults!

So if some kind soul wants to contribute to the project in a non-code way, here is your chance!

Please say with your vault how rare you think it should be and in what zones it could appear

Example of a vault file:

Code: Select all

defineTile('.', "FLOOR")
defineTile('#', "FLOOR")
defineTile('X', "WALL")
defineTile('8', "FLOOR", {random_filter={add_levels=15}}, {random_filter={add_levels=20}})

return {
[[.......................................]],
[[.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.]],
[[.#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8X.]],
[[.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#X.]],
[[.X8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8X.X.]],
[[.X#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#X#X.]],
[[.X8X8#8#8#8#8#8#8#8#8#8#8#8#8#8#8X8X.X.]],
[[.X#X#XXXXXXXXXXXXXXXXXXXXXXXXXXX#X#X#X.]],
[[.X8X8X8#8#8#8#8#8#8#8#8#8#8#8#8#8X8X.X.]],
[[.X#X#X#XXXXXXXXXXXXXXXXXXXXXXXXXXX#X#X.]],
[[.X8X8X8#8#8#8#8#8#8#8#8#8#8#8#8#8#8X.X.]],
[[.X#X#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#X.]],
[[.X8X8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#.X.]],
[[.X#XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.]],
[[.X8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#8#.]],
[[.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.]],
[[.......................................]],
}

Re: Call for mappers

Posted: Sun Sep 05, 2010 11:15 pm
by edge2054
Like this?

Code: Select all

defineTile('.', "FLOOR")
defineTile('T', "TRAP")
defineTile('D', "DOOR")
defineTile('X', "WALL", {random_filter={add_levels=15}}, {random_filter={add_levels=20}})

return {
[[.........]],
[[.XXXXXXX.]],
[[.XTTTTTX.]],
[[.XT...TX.]],
[[.XT...TX.]],
[[.XT...TX.]],
[[.XTTTTTX.]],
[[.XXXDXXX.]],
[[.........]],
}
Vault A.
Vault should be no teleport and have a single out of depth Lich npc.
Vault should generate Lich in the center and he should not move.
Lich offers player a quest to retrieve a book from his library claiming that they will be greatly rewarded for their efforts.

Vault B.

Code: Select all

defineTile('.', "FLOOR")
defineTile('T', "TRAP")
defineTile('D', "DOOR")
defineTile('X', "WALL", {random_filter={add_levels=15}}, {random_filter={add_levels=20}})

return {
[[.............]],
[[.XXXXXDXXXXX.]],
[[.X.XXX.XXX.X.]],
[[.X.DTT.TTD.X.]],
[[.X.XXX.XXX.X.]],
[[.XXXXX.XXXXX.]],
[[.X...X.X...X.]],
[[.X...D.X...X.]],
[[.X...XTXXTXX.]],
[[.XXDXX.XXTXX.]],
[[.X...XTXXTXX.]],
[[.XXXXXDXXDXX.]],
[[.X.........X.]],
[[.X.XXXXXXX.X.]],
[[.X.........X.]],
[[.X.XXXXXXX.X.]],
[[.X.........X.]],
[[.XXXXXXXXXXX.]],
[[.............]],
}
The book should be generated in the room with the three walls. The three by two room at the end of the trapped hallway should be a treasure vault, generating ego items or whatever.

Monsters should consist of skeletons and golems (the lich's guardians) along with a few possible molds.

Vault should be relatively common since it's more of a quest then a proper vault.

Possible spawn locations would be Tol Falos, Amon-Sul, and Moria.

As to the reward...

For undead the Lich will teach the player to use Phase Door, grant access to the Conveyance school, or increase the players magic by 2 or willpower by 1. He also tells the player that he can keep what he 'found' in the Lich's home.

For non-undead the Lich 'thanks' them for setting him free and tells them that their reward is an eternity as his loyal servant. The lich then goes about making this happen, attacking the player to prepare them for their everlasting life.

The lich should drop good loot. Two guaranteed egos, one always being mage appropriate if possible.

Lich would probably make a good necromancer once that class is finished. For an early iteration though a mage would work.

Re: Call for mappers

Posted: Sat Sep 11, 2010 7:01 am
by Repton
edge2054 wrote:Like this?

Code: Select all

defineTile('.', "FLOOR")
defineTile('T', "TRAP")
defineTile('D', "DOOR")
defineTile('X', "WALL", {random_filter={add_levels=15}}, {random_filter={add_levels=20}})
The signature for defineTile is:

Code: Select all

defineTile = function(char, grid, obj, actor, trap, status, spot)
There's an example of specifying traps in the Caverns of Osse map:

Code: Select all

defineTile('^', "WATER_FLOOR", nil, nil, {random_filter={}})
I presume random_filter={} just means "generate randomly, appropriate for the level".

So this line:

Code: Select all

defineTile('X', "WALL", {random_filter={add_levels=15}}, {random_filter={add_levels=20}})
is saying "Put a wall here, and also generate an object 15 levels better, and an NPC 20 levels better" :-)

(I've also got no idea why darkgod has two different floor tiles in his example..)

Re: Call for mappers

Posted: Sat Sep 11, 2010 7:23 am
by Repton
Here's at attempt from me:

Code: Select all

defineTile(' ', "FLOOR")
defineTile('+', "DOOR")
defineTile('X', "WALL")
defineTile('^', "FLOOR", nil, nil, {random_filter={add_levels=10}})
defineTile('$', "FLOOR", {random_filter={add_levels=15}})
defineTile('m', "FLOOR", nil, {random_filter={add_levels=20}})
defineTile('o', "FLOOR", nil, "HILL_ORC_ARCHER")

return {
[[XXXXXXXXXXXXXXXXXXXXXX]],
[[XoommmmmmmmommmmmmmmmX]],
[[X$$XXXXXXXX XXXXXXXXmX]],
[[X$$XXXXXXXX XXXXXXXXmX]],
[[X$$XXXXXXXX XXXXXXXX+X]],
[[X$$X^^^^^^^^^^^^$$^^^X]],
[[X$$X^^  ^^^^^ ^^^^^^^X]],
[[X$$+  ^^ ^   ^ ^^^^  +]],
[[X$$X^^^^^ ^^^^^ ^^ ^^X]],
[[X$$X^^$$^^^^^^^^  ^^^X]],
[[X$$XXXXXXXX XXXXXXXX+X]],
[[X$$XXXXXXXX XXXXXXXXmX]],
[[X$$XXXXXXXX XXXXXXXXmX]],
[[XoommmmmmmmommmmmmmmmX]],
[[XXXXXXXXXXXXXXXXXXXXXX]],
}
Tol Falas, Moria, maybe it would work well in the town-style prides..

Do I need a ring of floor tiles around the edge? Are vaults diggable/teleportable?

Re: Call for mappers

Posted: Sat Sep 11, 2010 7:39 am
by Repton
This is for places with dragons, obviously:

Code: Select all

defineTile(' ', "FLOOR")
defineTile('+', "DOOR")
defineTile('X', "WALL")
defineTile('$', "FLOOR", {random_filter={add_levels=15}})
defineTile('D', "FLOOR", {random_filter={add_levels=20}}, "GREATER_MULTIHUED_WYRM")
defineTile('d', "FLOOR", nil, "MULTIHUED_DRAKE_HATCHLING")

return {
[[XXXXXXXXXXXXXXXXXXXXXXXXXXX]],
[[XXXXXXXXXXXXXXXXXXXXXXXXXXX]],
[[XXXXXdddXXXXXXXXdXXXXXXXXXX]],
[[XXdXXXXXd    XXXXdXXX   XXX]],
[[XXdXXX   $$$  dXddXXX X  XX]],
[[XXXdd   $$$$$  dXXX   XX XX]],
[[XXd    $$$D$$$      XXXX XX]],
[[XXX     $$$$$   XXXXXXXX   ]],
[[XXXXXXd  $$$   XXXXXXXXXXXX]],
[[XXXXXXdX    dXXXdXXXXXXXXXX]],
[[XXXXXXdXXXXXXdddXXXXXXXXXXX]],
[[XXXXXdXXXXXXXXXXXXXXXXXXXXX]],
[[XXXXXXXXXXXXXXXXXXXXXXXXXXX]],
}
There was no "define_as" for multihued wyrms/drakes, so I'm not sure I can actually specify them like this..

Re: Call for mappers

Posted: Sat Sep 11, 2010 8:08 am
by Burb Lulls
Diggers, try your luck!

Code: Select all

defineTile('.', "FLOOR")
defineTile('^', "FLOOR", nil, nil, {random_filter={}})
defineTile('#', "WALL")
defineTile('+', "DOOR")
defineTile('o', "FLOOR", nil, {random_filter={add_levels=5}})
defineTile('O', "FLOOR", nil, {random_filter={add_levels=10}})
defineTile('5', "FLOOR", {random_filter={add_levels=10}}, {random_filter={}})
defineTile('4', "FLOOR", nil, {random_filter={}})
defineTile('3', "FLOOR", {random_filter={add_levels=5}}, {random_filter={add_levels=15}})
defineTile('2', "FLOOR", {random_filter={add_levels=20}}, {random_filter={add_levels=30}})
defineTile('1', "FLOOR", nil, {random_filter={add_levels=30}})

return {
[[..............................]],
[[..........##########..........]],
[[.....######O.O..O.O######.....]],
[[.....#..................#.....]],
[[.#####.###.###..###.###.#####.]],
[[.#.....#3#^#1#..#4#^#3#.....#.]],
[[.#.o.#.###.###..###.###.#.o.#.]],
[[.#.o.#..^...^....^...^..#.o.#.]],
[[.#.O...###.###..###.###...O.#.]],
[[.#.O...#4#^#3#..#5#^#2#...O.#.]],
[[.#.o.#.###.###..###.###.#.o.#.]],
[[.#.o.#..................#.o.#.]],
[[.#..........................#.]],
[[.#############++#############.]],
[[...#..#oo...#^oo^#...oo#..#...]],
[[...#..#..#..#^oo^#..#..#..#...]],
[[...+.....#..........#.....+...]],
[[...########################...]],
[[..............................]],
}
The surrounding enemies are less than impressive, but inside the eight chambers are either:
  • An average monster guarding a good treasure.
  • An average monster guarding nothing.
  • An above-average monster guarding an okay treasure.
  • A very difficult monster guarding a great treasure.
  • A very difficult monster guarding nothing!
Ideally, I'd want the chambers to be randomised each time, but I have no idea how to do that, and also to be immune to sensing, but I'm not even sure that's possible. I made sure every chamber had at least a monster in it, to stop any sneaky phase doors.

Re: Call for mappers

Posted: Sat Sep 11, 2010 11:29 am
by darkgod
Yeah neat exactly what I need!
Keep them coming!

Re: Call for mappers

Posted: Sat Sep 11, 2010 9:47 pm
by Repton
One for the Trollshaws:

Code: Select all

defineTile(' ', "FLOOR")
defineTile('+', "DOOR")
defineTile('X', "TREE")
defineTile('^', "FLOOR", nil, nil, {random_filter={add_levels=5}})
defineTile('#', "FLOOR", nil, "HONEY_TREE")
defineTile('q', "FLOOR", {random_filter={add_levels=10}}, "BROWN_BEAR")
defineTile('Q', "FLOOR", {random_filter={add_levels=20}}, "GRIZZLY_BEAR")

return {
[[XXXXXXXXXX]],
[[XXX   XXXX]],
[[XX #q# XXX]],
[[XX qQq XXX]],
[[XX #q# XXX]],
[[XXX   XXXX]],
[[XXXX XXXXX]],
[[XXXX   XXX]],
[[XXXXXX XXX]],
[[XX^^^^ XXX]],
[[XX^XXXXXXX]],
}

Re: Call for mappers

Posted: Sat Sep 11, 2010 10:07 pm
by Repton
Here's a crypt; suit Tol Falas, Rak-Shor pride, maybe Moria.

Code: Select all

defineTile(' ', "FLOOR")
defineTile('+', "DOOR")
defineTile('X', "WALL")
defineTile('^', "FLOOR", {random_filter={add_levels=5}}, nil, {random_filter={add_levels=5}})
defineTile('u', "FLOOR", {random_filter={}}, "LESSER_VAMPIRE")
defineTile('v', "FLOOR", {random_filter={add_levels=5}}, "VAMPIRE")
defineTile('U', "FLOOR", {random_filter={add_levels=10}}, "MASTER_VAMPIRE")
defineTile('V', "FLOOR", {random_filter={add_levels=15}}, "ELDER_VAMPIRE")
defineTile('!', "FLOOR", {random_filter={add_levels=20}}, "VAMPIRE_LORD")
defineTile('W', "FLOOR", {random_filter={add_levels=15}}, "GRAVE_WIGHT")

return {
[[XXXXXXXXXXXXXXXXXXXXXXXXXXXXX]],
[[XX^^^X^^^X^^^X^^^XXXXXXXXXXXX]],
[[XX^u^X^v^X^U^X^V^XXXX^WXXXXXX]],
[[XX^ ^X^ ^X^ ^X^ ^XXXX^  WXXXX]],
[[XXX XXX XXX XXX XXXXX^ XXXXXX]],
[[XXX+XXX+XXX+XXX+XXXXX^  !XXXX]],
[[                   +   XXXXXX]],
[[XXXXX+XXX+XXX+XXX+XXX^  !XXXX]],
[[XXXXX XXX XXX XXX XXX^ XXXXXX]],
[[XXXX^ ^X^ ^X^ ^X^ ^XX^  WXXXX]],
[[XXXX^u^X^v^X^U^X^V^XX^WXXXXXX]],
[[XXXX^^^X^^^X^^^X^^^XXXXXXXXXX]],
[[XXXXXXXXXXXXXXXXXXXXXXXXXXXXX]],
}

Re: Call for mappers

Posted: Sun Sep 12, 2010 3:22 am
by darkgod
Added!
Keep them coming !

Re: Call for mappers

Posted: Sun Sep 12, 2010 5:14 am
by Repton
Burb Lulls wrote: Ideally, I'd want the chambers to be randomised each time, but I have no idea how to do that,
You could get the effect of randomisation by just making several versions of the same vault, with the monsters in different places..

Re: Call for mappers

Posted: Sun Sep 12, 2010 5:21 am
by Repton
A hostel building for town-style maps:

Code: Select all

defineTile(' ', "FLOOR")
defineTile('+', "DOOR")
defineTile('X', "WALL")
defineTile('$', "FLOOR", {random_filter={add_levels=10}})
defineTile('~', "FLOOR", {random_filter={add_levels=5}}, nil, {random_filter={add_levels=5}})
defineTile('^', "FLOOR", nil, nil, {random_filter={add_levels=5}})
defineTile('o', "FLOOR", {random_filter={add_levels=10}}, {random_filter={add_levels=10}})
defineTile('O', "FLOOR", {random_filter={add_levels=15}}, {random_filter={add_levels=15}})
defineTile('P', "FLOOR", {random_filter={add_levels=20}}, {random_filter={add_levels=20}})

return {
[[XXXXXXXXXXXXXXXXXXXXXXXXXXXXX]],
[[X~~^+                   ^+$$X]],
[[X~~^X XXXXXX+XXX+XXXXXX+XXXXX]],
[[XXXXX X ooXo  X   XPPX   $o X]],
[[X$$$X + ooX o X o XOOXo$oo  X]],
[[X   X X ooX XXX~~$X$$XXXX   X]],
[[XO ^X X ooXo OX$$~X$o      oX]],
[[XO ^+ XXXXXXXXXXXXXXXXXXXXXXX]],
[[XO ^X                      ^+]],
[[XXXXX+XXX+XXXXX+XXX+XXXXX+XXX]],
[[X~XX   XO  +$X   Xo  +$X   XX]],
[[X$XX   X O XXXO oX  oXXX o XX]],
[[X$~+ P Xo  XP+   X O X$+  oXX]],
[[XXXXXXXXXXXXXXXXXXXXXXXXXXXXX]],
}

Re: Call for mappers

Posted: Sun Sep 12, 2010 12:08 pm
by darkgod
I can randomize it ;)

Thanks keep them coming:

Re: Call for mappers

Posted: Sun Sep 12, 2010 2:23 pm
by Burb Lulls
It's possible to get to the treasure without fighting a soul. However...

Code: Select all

defineTile('.', "FLOOR")
defineTile('#', "WALL")
defineTile('+', "DOOR")
defineTile('X', "FLOOR", nil, {random_filter={add_levels=15}})
defineTile('$', "FLOOR", {random_filter={add_levels=10}})

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

Re: Call for mappers

Posted: Sun Sep 12, 2010 8:28 pm
by darkgod
Added added added ! :)

I'll work on making vaults possible in places not using Roomer generator (like the prides and the trollshaws)

Keep them coming !

BTW I made all vaults have sealed doors that only the player can open, with a visual prompt, and all have hard walls, that prevent esp, detection and magic mapping them from the exterior :)