Lever toggles do not work in vaults
Posted: Fri Feb 03, 2012 5:34 pm
In the first code block below, the toggled doors work correctly. In the second code block, the doors change to door-with-lock icons, and while they open correctly, they do not close when toggled again. The two differences are the DOOR_VAULT (tested separately, does not change behavior) and the enclosing wall on the last line of the ascii map.
Code: Select all
rotates = {"default", "90", "180", "270", "flipx", "flipy"}
setStatusAll{no_teleport=true}
startx = 0
starty = 2
defineTile('.', "FLOOR")
-- defineTile('!', "DOOR_VAULT")
defineTile('#', "HARDWALL")
defineTile('$', "FLOOR", {random_filter={add_levels=5, tome_mod="vault"}})
defineTile('X', "FLOOR", nil, {random_filter={add_levels=5}})
-- These all use the same lever_action and lever_action_kind
-- They work because the lever_radius is only 2
-- 1 opens 2
defineTile('1', "GENERIC_LEVER", nil, nil, nil, {lever=1, lever_kind="toggle", lever_radius=2, lever_block="crypt_door_block"})
defineTile('2', "GENERIC_LEVER_DOOR", nil, nil, nil, {lever_toggle=true, lever_action_kind="toggle"})
-- 3 closes 2 and opens 4
defineTile('3', "GENERIC_LEVER", nil, nil, nil, {lever=1, lever_kind="toggle", lever_radius=2, lever_block="crypt_door_block"})
defineTile('4', "GENERIC_LEVER_DOOR", nil, nil, nil, {lever_toggle=true, lever_action_kind="toggle"})
-- 5 closes 4 and opens 6
defineTile('5', "GENERIC_LEVER", nil, nil, nil, {lever=1, lever_kind="toggle", lever_radius=2, lever_block="crypt_door_block"})
defineTile('6', "GENERIC_LEVER_DOOR", nil, nil, nil, {lever_toggle=true, lever_action_kind="toggle"})
-- 7 closes 6 and opens 8
defineTile('7', "GENERIC_LEVER", nil, nil, nil, {lever=1, lever_kind="toggle", lever_radius=2, lever_block="crypt_door_block"})
defineTile('8', "GENERIC_LEVER_DOOR", nil, nil, nil, {lever_toggle=true, lever_action_kind="toggle"})
return {
[[###########]],
[[#1#3#5#7#$#]],
[[..2.4.6.8X#]],
[[...........]],
}
Code: Select all
rotates = {"default", "90", "180", "270", "flipx", "flipy"}
setStatusAll{no_teleport=true}
startx = 0
starty = 2
defineTile('.', "FLOOR")
defineTile('!', "DOOR_VAULT")
defineTile('#', "HARDWALL")
defineTile('$', "FLOOR", {random_filter={add_levels=5, tome_mod="vault"}})
defineTile('X', "FLOOR", nil, {random_filter={add_levels=5}})
-- These all use the same lever_action and lever_action_kind
-- They work because the lever_radius is only 2
-- 1 opens 2
defineTile('1', "GENERIC_LEVER", nil, nil, nil, {lever=1, lever_kind="toggle", lever_radius=2, lever_block="crypt_door_block"})
defineTile('2', "GENERIC_LEVER_DOOR", nil, nil, nil, {lever_toggle=true, lever_action_kind="toggle"})
-- 3 closes 2 and opens 4
defineTile('3', "GENERIC_LEVER", nil, nil, nil, {lever=1, lever_kind="toggle", lever_radius=2, lever_block="crypt_door_block"})
defineTile('4', "GENERIC_LEVER_DOOR", nil, nil, nil, {lever_toggle=true, lever_action_kind="toggle"})
-- 5 closes 4 and opens 6
defineTile('5', "GENERIC_LEVER", nil, nil, nil, {lever=1, lever_kind="toggle", lever_radius=2, lever_block="crypt_door_block"})
defineTile('6', "GENERIC_LEVER_DOOR", nil, nil, nil, {lever_toggle=true, lever_action_kind="toggle"})
-- 7 closes 6 and opens 8
defineTile('7', "GENERIC_LEVER", nil, nil, nil, {lever=1, lever_kind="toggle", lever_radius=2, lever_block="crypt_door_block"})
defineTile('8', "GENERIC_LEVER_DOOR", nil, nil, nil, {lever_toggle=true, lever_action_kind="toggle"})
return {
[[###########]],
[[#1#3#5#7#$#]],
[[!.2.4.6.8X#]],
[[###########]],
}