Countered the vaults like the following one for too many times:
__##/##
__#. M .#
###/# /###
#. . .# . . .#
#. . .# . . .#
#. . .# . . .#
#/ #/# /# /#
#M#. M.#M#
###/#/###
#. . .#. . .#
#. . .#. . .#
#. . .#. . .#
###/#/###
__#. M .#
__#####
Several vaults like the one above are generated in games so often that players know perfectly well about these vaults. These vaults ceased to be risky, and people hardly think about dangers when they stride into these vaults. I guess this situation is not desired, so some varied versions of these vaults are needed to make them less predictable. For example, it would be good if the levels/number/positions of the monsters are more flexible.
Some variations for the early vaults
Moderator: Moderator
Re: Some variations for the early vaults
Made some codes to serve as examples. Added some possible monster and loot spawns in the circle-vault and skeleton-mage-cabal, and made another version of honey-glade-vault with the same look outside.
Code: Select all
--A varied version of circle vault
setStatusAll{no_teleport=true, vault_only_door_open=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)
--add some possible positions for monsters&loot monsters:{4,5,6,7,8,9,0}/loot:{p}
if (1) then
--monsters
if rng.percent(3) then
defineTile('4', "FLOOR", {random_filter={add_levels=15, tome_mod="vault"}}, {random_filter={add_levels=17}})
else
defineTile('4', "FLOOR")
end
if rng.percent(3) then
defineTile('5', "FLOOR", {random_filter={add_levels=15, tome_mod="vault"}}, {random_filter={add_levels=17}})
else
defineTile('5', "FLOOR")
end
if rng.percent(3) then
defineTile('6', "FLOOR", {random_filter={add_levels=15, tome_mod="vault"}}, {random_filter={add_levels=17}})
else
defineTile('6', "FLOOR")
end
if rng.percent(3) then
defineTile('7', "FLOOR", {random_filter={add_levels=15, tome_mod="vault"}}, {random_filter={add_levels=17}})
else
defineTile('7', "FLOOR")
end
if rng.percent(3) then
defineTile('8', "FLOOR", {random_filter={add_levels=15, tome_mod="vault"}}, {random_filter={add_levels=17}})
else
defineTile('8', "FLOOR")
end
if rng.percent(3) then
defineTile('9', "FLOOR", {random_filter={add_levels=15, tome_mod="vault"}}, {random_filter={add_levels=17}})
else
defineTile('9', "FLOOR")
end
if rng.percent(3) then
defineTile('0', "FLOOR", {random_filter={add_levels=15, tome_mod="vault"}}, {random_filter={add_levels=17}})
else
defineTile('0', "FLOOR")
end
--loot
if rng.percent(5) then
defineTile('p', "FLOOR", {random_filter={add_levels=10}}, nil)
else
defineTile('p', "FLOOR")
end
end
rotates = {"default", "90", "180", "270", "flipx", "flipy"}
startx = 5
starty = 0
return {
[[...........]],
[[...XX!XX...]],
[[..XX.2.XX..]],
[[.XXXDXDXXX.]],
[[.X4..X..5X.]],
[[.X383X393X.]],
[[.XDXDXDXDX.]],
[[.X2X.2.X2X.]],
[[.XXXDXDXXX.]],
[[.XX..X..XX.]],
[[.X6..X..7X.]],
[[.X303X303X.]],
[[.XXXDXDXXX.]],
[[..XXp1pXX..]],
[[...XXXXX...]],
[[...........]],
}
Code: Select all
--A varied version of honey glade vault
setStatusAll{no_teleport=true, vault_only_door_open=true}
startx = 2
starty = 10
rotates = {"default", "90", "180", "270", "flipx", "flipy"}
defineTile('!', "ROCK_VAULT", nil, nil, nil, {room_map={special=false, room=false, can_open=true}})
defineTile(' ', "GRASS")
defineTile('X', "HARDTREE")
defineTile('^', "GRASS", nil, nil, {random_filter={add_levels=5}})
if rng.percent(80) then
--same as before
defineTile('#', "GRASS", nil, {random_filter={name="honey tree"}})
defineTile('q', "GRASS", {random_filter={add_levels=10, tome_mod="vault"}}, {random_filter={name="brown bear", add_levels=10}})
defineTile('Q', "GRASS", {random_filter={add_levels=20, tome_mod="vault"}}, {random_filter={name="grizzly bear", add_levels=20}})
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]],
}
else
--a mold version
defineTile('~', "POISON_DEEP_WATER")
defineTile('m', "GRASS_SHORT", nil, {random_filter={subtype="molds", add_levels=5}})
defineTile('j', "GRASS_SHORT", nil, {random_filter={subtype="oozes", add_levels=6}})
defineTile('.', "GRASS_SHORT", {random_filter={add_levels=10, tome_mod="vault"}})
defineTile('M', "GRASS_SHORT", {random_filter={add_levels=15, tome_mod="vault"}}, {random_filter={subtype="oozes", add_levels=10}})
return {
[[XXXXXXXXXX]],
[[XXX XXXX]],
[[XXMXjMm.XX]],
[[XX ~~mX.XX]],
[[XX ~~~mXX]],
[[XXX mXXXX]],
[[XXXX XXXXX]],
[[XXXX XXX]],
[[XXXXXX!XXX]],
[[XX^^^^ XXX]],
[[XX XXXXXXX]],
}
end
Code: Select all
--skeleton mage cabal varied
setStatusAll{no_teleport=true, vault_only_door_open=true}
defineTile('.', "FLOOR")
defineTile('D', "DOOR")
defineTile('!', "DOOR_VAULT")
defineTile('X', "HARDWALL")
defineTile('W', "FLOOR", {random_filter={subtype="staff", tome_mod="vault", add_levels=4}})
defineTile('S', "FLOOR", {random_filter={type="scroll", ego_chance=25, add_levels=4}})
defineTile('M', "FLOOR", nil, {random_filter={name="skeleton mage", add_levels=4}})
--trick 1: change of skeleton mages' levels
if rng.percent(20) then
--choose one skeleton mage and upgrade it by 10 levels
if rng.percent(50) then
defineTile('N', "FLOOR", nil, {random_filter={name="skeleton mage", add_levels=4}})
defineTile('H', "FLOOR", nil, {random_filter={name="skeleton mage", add_levels=14}})
else
defineTile('N', "FLOOR", nil, {random_filter={name="skeleton mage", add_levels=14}})
defineTile('H', "FLOOR", nil, {random_filter={name="skeleton mage", add_levels=4}})
end
else
--same as before
defineTile('N', "FLOOR", nil, {random_filter={name="skeleton mage", add_levels=4}})
defineTile('H', "FLOOR", nil, {random_filter={name="skeleton mage", add_levels=4}})
end
--trick 2: 3 more mages behind the scroll door
if rng.percent(20) then
--varied version
defineTile('m', "FLOOR", {random_filter={type="scroll", ego_chance=30, add_levels=6}}, {random_filter={name="skeleton mage", add_levels=10}})
else
--same as before
defineTile('m', "FLOOR", {random_filter={type="scroll", ego_chance=25, add_levels=4}})
end
rotates = {"default", "90", "180", "270", "flipx", "flipy"}
return {
[[.........]],
[[.bXXXXXa.]],
[[.XmSmSmX.]],
[[.XXXDXXX.]],
[[.X..M..X.]],
[[.X.N.H.X.]],
[[.X..M..X.]],
[[.XDX!XDX.]],
[[.XWX.XWX.]],
[[.cXX.XXd.]],
[[.........]],
}
Re: Some variations for the early vaults
I think more variety in general for TOME would be good. This is definitely a good idea though, I'd enjoy opening vaults and finding something new every time. I wouldn't mind seeing more 'big' vaults either like the bandit fortress and the multihued wyrm lair, those effectively act as entire alternate levels which is fun. Maybe have a couple for each zone to further vary things?
Re: Some variations for the early vaults
Could be interesting to have the occasional non randomly generated map as well.
My feedback meter decays into coding. Give me feedback and I make mods.