Attached Files |
teleporters.des [^] (22,642 bytes) 2012-09-06 05:52 [Show Content] [Hide Content]#
# teleporters.des
#
# by infiniplex
#
# A serial vault containing teleport traps and teleporters. The
# teleport code is based off the Roulette of Golubria wizlab.
#
# Marker ids are shared across the map, teleporter ids cannot be
# reused between vaults without them getting crossed. Also,
# all vaults with teleporters and allow_dup need luniq.
# Several of these vaults use LUA hooks to place the two ends
# of a teleporter in seperate vaults. This works because of
# the shared teleporter ids.
#
# These do not place on bottom floors of branches or in
# Pandemonium becuase of the danger of teleporting the player
# into a rune vault (or Pan Lord vault).
#
# The "simple" teleporter vaults can appear randomly.
#
{{
-- Set up a teleporter
function teleporter_serial_init (e, glyph_start, glyph_end, index)
teleporter_serial_init2(e, glyph_start, glyph_end, index, index)
end
-- Set up two teleporter ends
function teleporter_serial_init2 (e, glyph_start, glyph_end,
index_start, index_end)
e.kfeat(glyph_start .. " = teleporter")
e.tile(glyph_start .. " = dngn_teleporter")
e.colour(glyph_start .. " = warp")
e.kfeat(glyph_end .. " = floor")
e.ftile(glyph_end .. " = floor_black_cobalt")
e.colour(glyph_end .. " = gold")
local teleport_marker = TriggerableFunction:new {
func="teleporter_serial_action_fn",
data = {teleport_spot = index_start},
repeated = true }
teleport_marker:add_triggerer(DgnTriggerer:new { type="player_move" })
e.lua_marker(glyph_start, teleport_marker)
e.lua_marker(glyph_end, portal_desc { teleport_spot = index_end})
end
-- Activate the teleporter (called by trigger)
function teleporter_serial_action_fn
(data, triggerable, triggerer, marker, ev)
local position = dgn.point(marker:pos())
my_slaves = dgn.find_marker_positions_by_prop("teleport_spot",
data.teleport_spot)
-- third parameter is whether to teleport whatever is on the reciving pad
if you.teleport_to(my_slaves[1].x, my_slaves[1].y, false) then
crawl.mpr("Your surroundings suddenly seem different!")
else
crawl.mpr("There is a strange hissing noise.")
end
end
-- Place standardized "loot" (with a chance of stairs)
function standard_loot (e)
e.subst("% = %:25 *:10 d:5 e:2 (:2 [:2 ):2 ]:2")
e.item("scroll of blinking / scroll of teleportation")
e.item("ring of teleportation / ring of teleport control w:3")
end
-- Create a standard dead-end hallway vault
function teleporter_vault_basic (e, index_start, index_end)
e.map("xxxxxx")
e.map("xP..p.@")
e.map("xxxxxx")
e.teleporter_serial_init2(e, 'P', 'p', index_start, index_end)
end
}}
NAME: serial_teleporters
TAGS: extra luniq_serial allow_dup
TAGS: layout_rooms layout_basic layout_misc
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
CHANCE: 1%
{{
-- 2 - 8 teleport traps (non-uniform)
-- 1 - 5 simple teleporters (non-uniform)
-- 0 - 2 fancy teleporters (non-uniform)
local traps = 2 + crawl.random2(3) * (1 + crawl.random2(3))
local simple = 1 + crawl.random2(3) + crawl.random2(3)
local fancy = math.floor(crawl.random2(5) / 2)
hook("post_place", function()
dgn.place_maps{tag="serial_teleporters_trap", count=traps}
dgn.place_maps{tag="serial_teleporters_simple", count=simple}
dgn.place_maps{tag="serial_teleporters_fancy", count=fancy}
end)
}}
###############################################################################
NAME: serial_teleporters_trap_1
WEIGHT: 90
TAGS: serial_teleporters_trap allow_dup
KFEAT: ^ = teleport trap
MAP
^
ENDMAP
NAME: serial_teleporters_trap_2
WEIGHT: 7
TAGS: serial_teleporters_trap allow_dup luniq
KFEAT: ^ = teleport trap
MAP
^.^
ENDMAP
NAME: serial_teleporters_trap_4
WEIGHT: 2
TAGS: serial_teleporters_trap
KFEAT: ^ = teleport trap
MAP
^.^
...
^.^
ENDMAP
NAME: serial_teleporters_trap_5
WEIGHT: 1
TAGS: serial_teleporters_trap
KFEAT: ^ = teleport trap
MAP
^
.
^.^.^
.
^
ENDMAP
########
NAME: serial_teleporters_wizard_statue_box
WEIGHT: 5
TAGS: serial_teleporters_simple allow_dup luniq_teleport_statue
TAGS: layout_rooms layout_basic layout_misc transparent
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
MONS: statue tile:mons_statue_mage name:wizard n_adj; \
spells:.;teleport_other;.;.;.;.
MAP
...
.1.
...
ENDMAP
NAME: serial_teleporters_wizard_statue_star
WEIGHT: 3
TAGS: serial_teleporters_simple luniq_teleport_statue transparent
TAGS: layout_rooms layout_basic layout_misc
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
MONS: statue tile:mons_statue_mage name:wizard n_adj; \
spells:.;teleport_other;.;.;.;.
MAP
. .
.. ..
.....
...........
.........
...1...
.........
...........
.....
.. ..
. .
ENDMAP
NAME: serial_teleporters_wizard_statue_spiral
WEIGHT: 2
TAGS: serial_teleporters_simple luniq_teleport_statue no_pool_fixup
TAGS: layout_rooms layout_basic layout_misc transparent
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
SUBST: d : ddef
ITEM: any scroll / scroll of blinking / scroll of teleportation
ITEM: any scroll q:2 / scroll of blinking q:2 / scroll of teleportation q:2
ITEM: any jewellery w:20 / amulet of stasis /\
ring of teleportation w:20 / ring of teleport control
MONS: statue tile:mons_statue_mage name:wizard n_adj; \
spells:.;teleport_other;.;.;.;.
MAP
.........
.wwwwwww.
.w.......
.w.wwwww.
.w.w1d.w.
.w.www.w.
.w.....w.
.wwwwwww.
.........
ENDMAP
NAME: serial_teleporters_loot_1
WEIGHT: 10
TAGS: serial_teleporters_simple allow_dup luniq_teleporters_item
TAGS: layout_rooms layout_basic layout_misc
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
KPROP: *Pp. = no_rtele_into
: teleporter_serial_init(_G, 'P', 'p', 11)
: standard_loot(_G)
MAP
xxxxxxx
x%P..p.@
xxxxxxx
ENDMAP
NAME: serial_teleporters_loot_2
WEIGHT: 5
TAGS: serial_teleporters_simple allow_dup luniq_teleporters_item
TAGS: layout_rooms layout_basic layout_misc
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
KPROP: *PpQq. = no_rtele_into
: teleporter_serial_init(_G, 'P', 'p', 21)
: teleporter_serial_init(_G, 'Q', 'q', 22)
: standard_loot(_G)
MAP
xxxxxxxxxxx
@.q..P*Q..p.@
xxxxxxxxxxx
ENDMAP
NAME: serial_teleporters_loot_3
WEIGHT: 2
TAGS: serial_teleporters_simple allow_dup luniq_teleporters_item
TAGS: layout_rooms layout_basic layout_misc
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
KPROP: *PpQq. = no_rtele_into
: teleporter_serial_init(_G, 'P', 'p', 31)
: teleporter_serial_init(_G, 'Q', 'q', 32)
: standard_loot(_G)
MAP
xxxxxxx
x*Q..p.@
xPxxxxx
x.x
x.x
xqx
x.x
@
ENDMAP
NAME: serial_teleporters_loot_4
WEIGHT: 2
TAGS: serial_teleporters_simple allow_dup luniq_teleporters_item
TAGS: layout_rooms layout_basic layout_misc
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
KPROP: *PpQq. = no_rtele_into
: teleporter_serial_init(_G, 'P', 'p', 41)
: teleporter_serial_init(_G, 'Q', 'q', 42)
: standard_loot(_G)
MAP
xxxxxxx
@.q..P.x
xxxxx*xxxxx
x.Q..p.@
xxxxxxx
ENDMAP
NAME: serial_teleporters_loot_5
WEIGHT: 1
TAGS: serial_teleporters_simple allow_dup luniq_teleporters_item
TAGS: layout_rooms layout_basic layout_misc
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
KPROP: *PpQqRrSs. = no_rtele_into
: teleporter_serial_init(_G, 'P', 'p', 51)
: teleporter_serial_init(_G, 'Q', 'q', 52)
: teleporter_serial_init(_G, 'R', 'r', 53)
: teleporter_serial_init(_G, 'S', 's', 54)
: standard_loot(_G)
MAP
@
x.x
xsx
x.x
x.x
xxxxxRxxxxx
@.q..P*Q..p.@
xxxxxSxxxxx
x.x
x.x
xrx
x.x
@
ENDMAP
NAME: serial_teleporters_passwall_1
WEIGHT: 10
TAGS: serial_teleporters_simple allow_dup luniq
TAGS: layout_rooms layout_basic layout_misc
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
SUBST: m : xm
: teleporter_serial_init(_G, 'P', 'p', 101)
MAP
x@..Px
xxxmmmmxxx
xp..@x
ENDMAP
NAME: serial_teleporters_passwall_2
WEIGHT: 10
TAGS: serial_teleporters_simple allow_dup luniq
TAGS: layout_rooms layout_basic layout_misc
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
SHUFFLE: Pq
SUBST: o : xm
SUBST: n : xm
SUBST: m : xm
: teleporter_serial_init(_G, 'P', 'p', 111)
: teleporter_serial_init(_G, 'Q', 'q', 112)
MAP
xp..@..Qx
xxnmmommnxx
xq..@..Px
ENDMAP
NAME: serial_teleporters_passwall_3
WEIGHT: 5
TAGS: serial_teleporters_simple allow_dup luniq
TAGS: layout_rooms layout_basic layout_misc
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
SUBST: m : xm
: teleporter_serial_init(_G, 'P', 'p', 121)
: teleporter_serial_init(_G, 'Q', 'q', 122)
MAP
xxxxxxxxxx
@.p..QmP..q.@
xxxxxxxxxx
ENDMAP
NAME: serial_teleporters_passwall_4
WEIGHT: 3
TAGS: serial_teleporters_simple allow_dup luniq
TAGS: layout_rooms layout_basic layout_misc
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
SUBST: m : xm
: teleporter_serial_init(_G, 'P', 'p', 131)
: teleporter_serial_init(_G, 'Q', 'q', 132)
MAP
xxxxxxxx
xQmP..q.@
x.xxxxxx
x.x
xpx
x.x
@
ENDMAP
NAME: serial_teleporters_passwall_5
WEIGHT: 2
TAGS: serial_teleporters_simple allow_dup luniq
TAGS: layout_rooms layout_basic layout_misc
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
SUBST: m : xm
: teleporter_serial_init(_G, 'P', 'p', 141)
: teleporter_serial_init(_G, 'Q', 'q', 142)
MAP
xxxxxx
xP..q.@
xmxxxxxxxxx
xQ..p.@
xxxxxx
ENDMAP
# This one doesn't send you anywhere
NAME: serial_teleporters_dummy
WEIGHT: 10
TAGS: serial_teleporters_simple allow_dup luniq
TAGS: layout_rooms layout_basic layout_misc
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
: teleporter_serial_init(_G, 'P', 'p', 201)
MAP
xxxxxx
xP..p.@
xxxxxx
ENDMAP
# Two teleporters in a loop (A)
NAME: serial_teleporters_loop2A_master
WEIGHT: 5
TAGS: serial_teleporters_simple allow_dup luniq
TAGS: layout_rooms layout_basic layout_misc
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
{{
hook("post_place", function()
dgn.place_maps{tag="serial_teleporters_loop2A_1", count=1}
dgn.place_maps{tag="serial_teleporters_loop2A_2", count=1}
end)
}}
NAME: serial_teleporters_loop2A_1
TAGS: serial_teleporters_loop2A_1 allow_dup
: teleporter_vault_basic(_G, 211, 212)
NAME: serial_teleporters_loop2A_2
TAGS: serial_teleporters_loop2A_2 allow_dup
: teleporter_vault_basic(_G, 212, 211)
# Two teleporters in a loop (B)
NAME: serial_teleporters_loop2B_master
WEIGHT: 5
TAGS: serial_teleporters_simple allow_dup luniq
TAGS: layout_rooms layout_basic layout_misc
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
{{
hook("post_place", function()
dgn.place_maps{tag="serial_teleporters_loop2B_1", count=1}
dgn.place_maps{tag="serial_teleporters_loop2B_2", count=1}
end)
}}
NAME: serial_teleporters_loop2B_1
TAGS: serial_teleporters_loop2B_1 allow_dup
: teleporter_vault_basic(_G, 221, 222)
NAME: serial_teleporters_loop2B_2
TAGS: serial_teleporters_loop2B_2 allow_dup
: teleporter_vault_basic(_G, 222, 221)
# Two teleporters in a loop (C)
NAME: serial_teleporters_loop2C_master
WEIGHT: 5
TAGS: serial_teleporters_simple allow_dup luniq
TAGS: layout_rooms layout_basic layout_misc
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
{{
hook("post_place", function()
dgn.place_maps{tag="serial_teleporters_loop2C_1", count=1}
dgn.place_maps{tag="serial_teleporters_loop2C_2", count=1}
end)
}}
NAME: serial_teleporters_loop2C_1
TAGS: serial_teleporters_loop2C_1 allow_dup
: teleporter_vault_basic(_G, 231, 232)
NAME: serial_teleporters_loop2C_2
TAGS: serial_teleporters_loop2C_2 allow_dup
: teleporter_vault_basic(_G, 232, 231)
# Three teleporters in a loop
NAME: serial_teleporters_loop3_master
WEIGHT: 5
TAGS: serial_teleporters_simple allow_dup luniq
TAGS: layout_rooms layout_basic layout_misc
DEPTH: D:6-, Elf, !Elf:$, Crypt, !Crypt:$, Zot, !Zot:$
{{
hook("post_place", function()
dgn.place_maps{tag="serial_teleporters_loop3_1", count=1}
dgn.place_maps{tag="serial_teleporters_loop3_2", count=1}
dgn.place_maps{tag="serial_teleporters_loop3_3", count=1}
end)
}}
NAME: serial_teleporters_loop3_1
TAGS: serial_teleporters_loop3_1 allow_dup
: teleporter_vault_basic(_G, 241, 242)
NAME: serial_teleporters_loop3_2
TAGS: serial_teleporters_loop3_2 allow_dup
: teleporter_vault_basic(_G, 242, 243)
NAME: serial_teleporters_loop3_3
TAGS: serial_teleporters_loop3_3 allow_dup
: teleporter_vault_basic(_G, 243, 241)
########
# 16 random teleporters
# A lot of the summons get teleported away, revealing the traps
NAME: serial_teleporters_silver_statue
TAGS: serial_teleporters_fancy transparent
MONS: silver statue
NSUBST: p = 4:^ / *:q
NSUBST: q = 4:~ / *:r
NSUBST: r = 4:~ / *:s
NSUBST: s = 4:~ / *:.
NSUBST: . = 4:~ / *:.
KFEAT: ^ = known teleport trap
KFEAT: ~ = teleport trap
MAP
...
...sss...
..sssssss..
.ssssrrrssss.
..ssrrrrrrrss..
.ssrrrqqqrrrss.
.ssrrqqqqqrrss.
.ssrrqqpppqqrrss.
.ssrrqqp1pqqrrss.
.ssrrqqpppqqrrss.
.ssrrqqqqqrrss.
.ssrrrqqqrrrss.
..ssrrrrrrrss..
.ssssrrrssss.
..sssssss..
...sss...
...
ENDMAP
NAME: serial_teleporters_pinwheel
TAGS: serial_teleporters_fancy luniq_teleporters_fancy_loot
SHUFFLE: JKLMN
NSUBST: J = 1:^ / *:.
NSUBST: K = 1:^ / *:.
SUBST: LMN = .
NSUBST: P = 1:P / 1:q / 1:R / *:r
NSUBST: p = 1:p / 1:Q / 1:S / *:s
MONS: statue tile:mons_statue_mage name:wizard n_adj; \
spells:.;teleport_other;.;.;.;.
: teleporter_serial_init(_G, 'P', 'p', 1001)
: teleporter_serial_init(_G, 'Q', 'q', 1002)
: teleporter_serial_init(_G, 'R', 'r', 1003)
: teleporter_serial_init(_G, 'S', 's', 1004)
MAP
x
@x
.xxxxxx
xMxP.LLL.@
xMccnccxxxx
xMcp%pcPx
x.n%1%n.x
xPcp%pcKx
xxxxccnccKx
@.JJJ.PxKx
xxxxxx.
x@
x
ENDMAP
NAME: serial_teleporters_silent_maze
ORIENT: northwest
WEIGHT: 5
TAGS: serial_teleporters_fancy luniq_teleporters_fancy_loot
SHUFFLE: PQR
NSUBST: P = 1:P / *:.
NSUBST: Q = 1:q / *:.
SUBST: R = .
NSUBST: p = 1:p / 1:Q / 1:1 / *:_
NSUBST: % = 1:d / 2:e / *:*
SHUFFLE: mn
SUBST: m = c
SUBST: . = .:20 ^:1
KFEAT: ^ = teleport trap
KPROP: pQ1de%_ = no_rtele_into
MONS: silent spectre
ITEM: scroll of silence
ITEM: any scroll
: teleporter_serial_init(_G, 'P', 'p', 1011)
: teleporter_serial_init(_G, 'Q', 'q', 1012)
MAP
xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx
xxxxxcccccxxxxxxxx
xxxxxcp%pnPx..0..@
xxxxxc%%%n.x.x.xxx
xxxxxcp%pn...xPxQx
xxxxxcmmmcxx.xxx.x
xxxxxxR....xPx...x
xxxxxxxxxx.xxx.x.xxx
xxxxxx..Rx.x..0x..Qx
xxxxxx.xxx.x.x.xxxxx
xxxxxx..0..xQx@
xxxxxx.x.xxxxx
xxxxxxRx@ x
xxxxxxxx x
ENDMAP
NAME: serial_teleporters_parallel_passages
WEIGHT: 20
TAGS: serial_teleporters_fancy allow_dup luniq
SHUFFLE: pqrs
SHUFFLE: mn
SUBST: o : n
SUBST: n : xxxm
SUBST: m : xm
: teleporter_serial_init(_G, 'P', 'p', 1021)
: teleporter_serial_init(_G, 'Q', 'q', 1022)
: teleporter_serial_init(_G, 'R', 'r', 1023)
: teleporter_serial_init(_G, 'S', 's', 1024)
MAP
xxxxxxxxxxx
@.p..PmQ..q.@
xxxxxxxxnonxxxxxxxx
@.s..SmR..r.@
xxxxxxxxxxx
ENDMAP
# an arena only accessible by teleport
NAME: serial_teleporters_arena_master
TAGS: serial_teleporters_fancy
{{
hook("post_place", function()
dgn.place_maps{tag="serial_teleporters_arena_entry", count=1}
dgn.place_maps{tag="serial_teleporters_arena_inside", count=1}
end)
}}
NAME: serial_teleporters_arena_entry
TAGS: serial_teleporters_arena_entry
: teleporter_vault_basic(_G, 1031, 1032)
NAME: serial_teleporters_arena_long
TAGS: serial_teleporters_arena_inside no_monster_gen
SUBST: c : xcvb
SUBST: G : G__
KPROP: _*9Pp = no_rtele_into
: teleporter_serial_init2(_G, 'P', 'p', 1032, 1031)
MAP
xxxxxxxxxxxxx
xcccccccccccx
xc*_______Gcx
xcP_9____p_cx
xc*_______Gcx
xcccccccccccx
xxxxxxxxxxxxx
ENDMAP
NAME: serial_teleporters_arena_box
TAGS: serial_teleporters_arena_inside no_pool_fixup no_monster_gen
NSUBST: 9 = 1:9 / *:_
SUBST: N : MM_
SUBST: M : LL_
SUBST: L : KK_
SUBST: K : JJ_
SUBST: J : XXXcvbwwl___
SUBST: X : xcvb
KPROP: _*9Pp = no_rtele_into
: teleporter_serial_init2(_G, 'P', 'p', 1032, 1031)
MAP
xxxxxxxxxxx
xXXXXXXXXXx
xXP*____9Xx
xX*9NMN9_Xx
xX_NLKLN_Xx
xX_MKJKM_Xx
xX_NLKLN_Xx
xX_9NMN__Xx
xX9_____pXx
xXXXXXXXXXx
xxxxxxxxxxx
ENDMAP
# 4 teleporters in a loop
NAME: serial_teleporters_loop4_master
TAGS: serial_teleporters_fancy allow_dup luniq
{{
hook("post_place", function()
dgn.place_maps{tag="serial_teleporters_loop4_1", count=1}
dgn.place_maps{tag="serial_teleporters_loop4_2", count=1}
dgn.place_maps{tag="serial_teleporters_loop4_3", count=1}
dgn.place_maps{tag="serial_teleporters_loop4_4", count=1}
end)
}}
NAME: serial_teleporters_loop4_1
TAGS: serial_teleporters_loop4_1 allow_dup
: teleporter_vault_basic(_G, 1101, 1102)
NAME: serial_teleporters_loop4_2
TAGS: serial_teleporters_loop4_2 allow_dup
: teleporter_vault_basic(_G, 1102, 1103)
NAME: serial_teleporters_loop4_3
TAGS: serial_teleporters_loop4_3 allow_dup
: teleporter_vault_basic(_G, 1103, 1104)
NAME: serial_teleporters_loop4_4
TAGS: serial_teleporters_loop4_4 allow_dup
: teleporter_vault_basic(_G, 1104, 1101)
# 5 teleporters in a loop
NAME: serial_teleporters_loop5_master
TAGS: serial_teleporters_fancy allow_dup luniq
{{
hook("post_place", function()
dgn.place_maps{tag="serial_teleporters_loop5_1", count=1}
dgn.place_maps{tag="serial_teleporters_loop5_2", count=1}
dgn.place_maps{tag="serial_teleporters_loop5_3", count=1}
dgn.place_maps{tag="serial_teleporters_loop5_4", count=1}
dgn.place_maps{tag="serial_teleporters_loop5_5", count=1}
end)
}}
NAME: serial_teleporters_loop5_1
TAGS: serial_teleporters_loop5_1 allow_dup
: teleporter_vault_basic(_G, 1111, 1112)
NAME: serial_teleporters_loop5_2
TAGS: serial_teleporters_loop5_2 allow_dup
: teleporter_vault_basic(_G, 1112, 1113)
NAME: serial_teleporters_loop5_3
TAGS: serial_teleporters_loop5_3 allow_dup
: teleporter_vault_basic(_G, 1113, 1114)
NAME: serial_teleporters_loop5_4
TAGS: serial_teleporters_loop5_4 allow_dup
: teleporter_vault_basic(_G, 1114, 1115)
NAME: serial_teleporters_loop5_5
TAGS: serial_teleporters_loop5_5 allow_dup
: teleporter_vault_basic(_G, 1115, 1111)
# A set of teleporters that all take you to the same place
NAME: serial_teleporters_returning_master
WEIGHT: 20
TAGS: serial_teleporters_fancy allow_dup luniq
{{
-- 3 - 6 sources
local count = 3 + crawl.random2(4)
hook("post_place", function()
dgn.place_maps{tag="serial_teleporters_returning_target", count=1}
dgn.place_maps{tag="serial_teleporters_returning_source", count=count}
end)
}}
NAME: serial_teleporters_returning_target_dead_end
WEIGHT: 20
TAGS: serial_teleporters_returning_target allow_dup
: teleporter_vault_basic(_G, 1121, 1121)
NAME: serial_teleporters_returning_target_small
TAGS: serial_teleporters_returning_target allow_dup transparent
SUBST: c : ccvbmG
: teleporter_serial_init(_G, 'P', 'p', 1121)
MAP
c@c
@p@
c@c
ENDMAP
NAME: serial_teleporters_returning_target_room
TAGS: serial_teleporters_returning_target transparent
SHUFFLE: Aa
SHUFFLE: Bb
SHUFFLE: Cc
SHUFFLE: Dd
SUBST: ABCD = y
SUBST: abcd = x
NSUBST: y = 1:+ / 3=xx+ / *:x
SHUFFLE: GHI
SUBST: HI = .
SUBST: G : Gcb...
: teleporter_serial_init(_G, 'P', 'p', 1121)
MAP
xxaAaxx
xG...Gx
d.IHI.b
D.HpH.B
d.IHI.b
xG...Gx
xxcCcxx
ENDMAP
NAME: serial_teleporters_returning_target_blocks
TAGS: serial_teleporters_returning_target no_pool_fixup
TAGS: no_monster_gen transparent
SUBST: x : xxxxccvbmGw
: teleporter_serial_init(_G, 'P', 'p', 1121)
MAP
.........
.xx...xx.
.xx...xx.
.........
....p....
.........
.xx...xx.
.xx...xx.
.........
ENDMAP
NAME: serial_teleporters_returning_target_hall
TAGS: serial_teleporters_returning_target
: teleporter_serial_init(_G, 'P', 'p', 1121)
MAP
xxxxxxxxxxx
xG.G.G.G.Gx
x.p.......+
xG.G.G.G.Gx
xxxxxxxxxxx
ENDMAP
NAME: serial_teleporters_returning_target_pool
TAGS: serial_teleporters_returning_target
: teleporter_serial_init(_G, 'P', 'p', 1121)
MAP
xxxxxxxxx
xwwwwwwwx
xwwwwwwwx
xwwwwwwwx
xwwwp...+
xwwwwwwwx
xwwwwwwwx
xwwwwwwwx
xxxxxxxxx
ENDMAP
NAME: serial_teleporters_returning_source_tiny
WEIGHT: 20
TAGS: serial_teleporters_returning_source allow_dup
: teleporter_serial_init(_G, 'P', 'p', 1121)
MAP
P
ENDMAP
NAME: serial_teleporters_returning_source_dead_end
TAGS: serial_teleporters_returning_source allow_dup
: teleporter_vault_basic(_G, 1121, 1122)
NAME: serial_teleporters_returning_source_hallway
TAGS: serial_teleporters_returning_source allow_dup
: teleporter_serial_init(_G, 'P', 'p', 1121)
MAP
xxxxxxx
@...P...@
xxxxxxx
ENDMAP
NAME: serial_teleporters_returning_source_spiral
WEIGHT: 5
TAGS: serial_teleporters_returning_source
: teleporter_serial_init(_G, 'P', 'p', 1121)
: standard_loot(_G)
MAP
x@xxxxxxxxx
x.x.......x
x.x.xxxxx.x
x.x.x...x.x
x.x.xPx.x.x
x.x.x%x.x.x
x.x.xxx.x.x
x.x.....x.x
x.xxxxxxx.x
x.........x
xxxxxxxxxxx
ENDMAP
|