############################################################################### # lab.des: minivaults particular to labyrinths. # There are two types: labyrinth exits (tagged by 'minotaur') and # flavour vaults (tagged by 'lab'). ############################################################################### ############################################################################# # Labyrinth entry vaults NAME: lab_entry_generic TAGS: luniq_lab chance_lab transparent trowel_portal allow_dup extra # Nominal chance for labs was 1 chance in 15, but making it eligible as a # random vault gives this vault more opportunities to be placed, so dropping # chance to 2.85%. CHANCE: 50 : 285 DEPTH: 12-27 {{ local messager = timed_msg { initmsg = { "You hear a distant snort.", "Hark! There is an entrance to a minotaur's labyrinth " .. "on this level. Find the entrance quickly before " .. "the gate is sealed!" }, finalmsg = "You hear the last, dying ticks of the clock.", verb = 'ticking', noisemaker = 'clock' } }} MARKER: O = lua: timed_marker { \ low=400, high=600, msg=messager, floor = 'stone_arch' \ } KFEAT: O = enter_labyrinth MAP O ENDMAP ############################################################################# # Labyrinth exit minivaults ############################################################################# # These are generated by the TAG: minotaur. # You *must* place the minotaur yourself! Only one minotaur per map, please. # There must be an exit (<), leading back to the dungeon. # # You can use the "generate_loot" tag to indicate that you're not explicitly # placing the loot and that the dungeon builder should generate random loot # (on the upstair). Note that this is not the default, and if you neither use # this tag nor provide loot in the map definition, the player will be # disappointed. # # One layer of floor space *must* surround the minivault, or the player could # be trapped in the labyrinth (the dummy is exempt from this requirement). ############################################################################# ############################################################################# # Dummy balancer NAME: labyrinth_0 TAGS: minotaur dummy WEIGHT: 20 MAP x ENDMAP ############################################################################# # Watery exit NAME: labyrinth_watery TAGS: minotaur generate_loot no_pool_fixup allow_dup MONS: patrolling minotaur SHUFFLE: def SUBST: d=~, e=~, f=., c:vvc MAP ......... .ccccccc. .cwwwwwc. .cww<wwc. .cwdefwc. .ccc1ccc. .c.....c. .ccc+ccc. ......... ENDMAP ############################################################################# # Green exit NAME: labyrinth_green TAGS: minotaur generate_loot allow_dup MONS: patrolling minotaur MAP ........ .bbbbbb. .+..1<b. .bbbbbb. ........ ENDMAP ############################################################################# # Spiral exit NAME: labyrinth_spiral TAGS: minotaur generate_loot allow_dup MONS: patrolling minotaur SUBST: c : cvz, z = vc MAP ............ .cccccccccc. .c........c. .c.cccccc.c. .c.c<1..c.c. .c.cccc.c.c. .c......c.c. .cccccccc.c. ..........c. .cccccccccc. ............ ENDMAP ############################################################################# # Hidden exit, and trapped loot NAME: labyrinth_hidden_loot TAGS: minotaur generate_loot allow_dup MONS: patrolling minotaur, minotaur zombie SUBST: d = 2% SUBST: c : cvv MAP ............ .cccccccccc. .cxxxxdxxxc. .cxxxx=xxxc. .cxx..U.xxc. .cd=U...xxc. .cxx...U=dc. .cxx.<..xxc. .cxxxx+xxxc. .cxxxx1xxxc. .ccccc+cccc. ............ ENDMAP ############################################################################# # Mini labyrinth exit NAME: labyrinth_mini_lab TAGS: minotaur generate_loot allow_dup SHUFFLE: def, ghi, klm SUBST: d : c, e : ., f : c SUBST: g : c, h : ., i : c SUBST: k = <, l = ., m = . KMONS: < = patrolling minotaur KFEAT: < = < SUBST: c : vvc # should not be necessary validate {{ return has_exit_from_glyph('<') }} MAP ............... .ccccccccccccc. .cm....k....lc. .cgceccccdccfc. .c.c.........c. .c.cccfc.ccccc. .c.....c.c...c. .ccecc.c.h.cfc. .c...c.c.iicfc. .c.c.c.c.f.cfc. .c.c.g.c.c.cfc. .c.c.cdchc.cfc. .c.c.......gfc. .cdcccecccccfc. ............... ENDMAP ############################################################################# # Trapped exits - this is evil! NAME: labyrinth_trapped TAGS: minotaur generate_loot allow_dup MONS: patrolling minotaur NSUBST: g = 1:. / *:c NSUBST: D = 1:. / *:D KFEAT: d = axe trap / dart trap / needle trap / blade trap KFEAT: D = teleport trap SUBST: c : vvc WEIGHT: 2 MAP .............. .cccccccccccc. .g..ddD+.cccc. .c.ccccc.cccc. .g..ddD+.+1<c. .c.ccccc.cccc. .g..ddD+.cccc. .cccccccccccc. .............. ENDMAP ############################################################################# # Another trapped exit - most evil again! NAME: labyrinth_trapped_2 TAGS: minotaur allow_dup generate_loot ITEM: potion of porridge SHUFFLE: XYZ SHUFFLE: GH, LM, fghijklmn, FHIJKLN KFEAT: f = teleport trap KFEAT: n = teleport trap KFEAT: F = teleport trap KFEAT: N = teleport trap SUBST: g=., h=., i=., j=., k=., l=., m=. SUBST: G=., H=., I=., J=., K=., L=., M=. SUBST: Y=*, Z=* KFEAT: X = < KMONS: X = patrolling minotaur KFEAT: S = granite_statue WEIGHT: 2 MAP ............. .vvvvvvvvvvv. .vvXvvYvvZvv. .vv+vv+vv+vv. .vFGHIJKLMNv. .vfghijklmnv. .v.........v. .v.S..S..S.v. .v...d.d...v. .vvvvv+vvvvv. ............ ENDMAP # The heart stopper ############################################################################# # Labyrinth flavour minivaults ############################################################################# # One layer of floor space *must* surround the minivault, or the player could # be trapped in the labyrinth (the dummy is exempt from this requirement). # # These minivaults can be placed anywhere onto the labyrinth, making for # easier navigation (as the number of connections increases) but can also add # to confusion or despair (use teleportation very sparingly, and abstain from # unthematic monster sets). ############################################################################# ############################################################################ # Labyrinth dummy decorator NAME: lab_dummy TAGS: lab dummy WEIGHT: 90 MAP x ENDMAP ############################################################################ # Labyrinth furniture NAME: lab_block TAGS: lab allow_dup SHUFFLE: vcx MAP ..... .xxx. .xxx. .xxx. ..... ENDMAP ############################################################################ # Labyrinth furniture II NAME: lab_fountain TAGS: lab allow_dup MAP ....... ..b.b.. .bb.bb. ...T... .bb.bb. ..b.b.. ....... ENDMAP ############################################################################ # Labyrinth hedge NAME: lab_hedge TAGS: lab allow_dup SHUFFLE: 1l MONS: plant MAP ....... .11111. .1ccc1. ..1c1.. ..1c1.. ..1c1.. .1ccc1. .11111. ....... ENDMAP ############################################################################ # Teaser: inaccessible loot NAME: labyrinth_glass_1 TAGS: lab allow_dup SUBST: % = %* MAP ...... .mmmm. .m%%m. .m%%m. .mmmm. ...... ENDMAP NAME: labyrinth_glass_2 TAGS: lab allow_dup WEIGHT: 1 MAP ...... .nnnn. .n||n. .n||n. .nnnn. ...... ENDMAP ############################################################################ # The other minotaur's lava lair NAME: labyrinth_lava_lair TAGS: lab allow_dup MONS: minotaur zombie MAP ....... .lllll. .l***l. .l*1*l. .l***l. .lllll. ....... ENDMAP ############################################################################ # Baited teleport trap - this is evil! NAME: labyrinth_baited_teleportation_trap TAGS: lab allow_dup KFEAT: Y = teleport trap KITEM: Y = any good_item SHUFFLE: cxv WEIGHT: 1 MAP ..... .x=x. .=Y=. .x=x. ..... ENDMAP ############################################################################ # Teaser: fake exit NAME: labyrinth_fake_exit TAGS: lab allow_dup KFEAT: X = enter_abyss MAP ........ .vvvvvv. .v...Xv. .v.vvvv .v....v. .vvvv+v. ........ ENDMAP # Disheartened? ############################################################################ # A few monsters: Nothing is as it seems. NAME: labyrinth_single_monster TAGS: lab allow_dup generate_awake KFEAT: x = . KMONS: x = trapdoor spider / w:2 wandering mushroom MAP x ENDMAP # Death by starvation? NAME: labyrinth_hungry_ghost TAGS: lab allow_dup generate_awake WEIGHT: 2 KFEAT: x = . KMONS: x = hungry ghost MAP x ENDMAP