<Someone> noticed that when a monster escaped upladder in the wizard tower, it ended up outside the tower. This is due to the "wander" code in monster migration. Rather than add code to try to keep the monster from crossing the undiggable wall, just add REGIONs on the tower levels within the area, which then utilizes the existing in-a-room constraint behavior of monster migration. Of course, one can still fill a tower level with fodder, and then when another monster climbs the ladder, it will still end up outside the tower.
281 lines
7.3 KiB
Plaintext
281 lines
7.3 KiB
Plaintext
# SCCS Id: @(#)yendor.des 3.5 1996/10/20
|
|
# Copyright (c) 1989 by Jean-Christophe Collet
|
|
# Copyright (c) 1992 by M. Stephenson and Izchak Miller
|
|
# NetHack may be freely redistributed. See license for details.
|
|
#
|
|
# The top (real) wizard level.
|
|
# Keeping the Moat for old-time's sake
|
|
MAZE:"wizard1",random
|
|
FLAGS:noteleport,hardfloor
|
|
GEOMETRY:center,center
|
|
MAP
|
|
----------------------------.
|
|
|.......|..|.........|.....|.
|
|
|.......S..|.}}}}}}}.|.....|.
|
|
|..--S--|..|.}}---}}.|---S-|.
|
|
|..|....|..|.}--.--}.|..|..|.
|
|
|..|....|..|.}|...|}.|..|..|.
|
|
|..--------|.}--.--}.|..|..|.
|
|
|..|.......|.}}---}}.|..|..|.
|
|
|..S.......|.}}}}}}}.|..|..|.
|
|
|..|.......|.........|..|..|.
|
|
|..|.......|-----------S-S-|.
|
|
|..|.......S...............|.
|
|
----------------------------.
|
|
ENDMAP
|
|
STAIR:levregion(01,00,79,20),(0,0,28,12),up
|
|
STAIR:levregion(01,00,79,20),(0,0,28,12),down
|
|
BRANCH:levregion(01,00,79,20),(0,0,28,12)
|
|
TELEPORT_REGION:levregion(01,00,79,20),(0,0,27,12)
|
|
# Make it a morgue for rm id in mkmaze.c
|
|
# for the purpose of random sdoor placement
|
|
REGION:(12,01,20,09),unlit,"morgue",unfilled
|
|
# another region to constrain monster arrival
|
|
REGION:(01,01,10,11),unlit,"ordinary",unfilled
|
|
MAZEWALK:(28,05),east
|
|
LADDER:(06,05),down
|
|
# Non diggable walls
|
|
# Walls inside the moat stay diggable
|
|
NON_DIGGABLE:(00,00,11,12)
|
|
NON_DIGGABLE:(11,00,21,00)
|
|
NON_DIGGABLE:(11,10,27,12)
|
|
NON_DIGGABLE:(21,00,27,10)
|
|
# Non passable walls
|
|
NON_PASSWALL:(00,00,11,12)
|
|
NON_PASSWALL:(11,00,21,00)
|
|
NON_PASSWALL:(11,10,27,12)
|
|
NON_PASSWALL:(21,00,27,10)
|
|
# The wizard and his guards
|
|
MONSTER:'@',"Wizard of Yendor",(16,05),asleep
|
|
MONSTER:'d',"hell hound",(15,05)
|
|
MONSTER:'V',"vampire lord",(17,05)
|
|
# The local treasure
|
|
OBJECT:'+',"Book of the Dead",(16,05)
|
|
# Surrounding terror
|
|
MONSTER:';',"kraken",(14,02)
|
|
MONSTER:';',"giant eel",(17,02)
|
|
MONSTER:';',"kraken",(13,04)
|
|
MONSTER:';',"giant eel",(13,06)
|
|
MONSTER:';',"kraken",(19,04)
|
|
MONSTER:';',"giant eel",(19,06)
|
|
MONSTER:';',"kraken",(15,08)
|
|
MONSTER:';',"giant eel",(17,08)
|
|
MONSTER:';',"piranha",(15,02)
|
|
MONSTER:';',"piranha",(19,08)
|
|
# Random monsters
|
|
MONSTER:'D',random,random
|
|
MONSTER:'H',random,random
|
|
MONSTER:'&',random,random
|
|
MONSTER:'&',random,random
|
|
MONSTER:'&',random,random
|
|
MONSTER:'&',random,random
|
|
# And to make things a little harder.
|
|
TRAP:"board",(16,04)
|
|
TRAP:"board",(16,06)
|
|
TRAP:"board",(15,05)
|
|
TRAP:"board",(17,05)
|
|
# Random traps.
|
|
TRAP:"spiked pit",random
|
|
TRAP:"sleep gas",random
|
|
TRAP:"anti magic",random
|
|
TRAP:"magic",random
|
|
# Some random loot.
|
|
OBJECT:'*',"ruby",random
|
|
OBJECT:'!',random,random
|
|
OBJECT:'!',random,random
|
|
OBJECT:'?',random,random
|
|
OBJECT:'?',random,random
|
|
OBJECT:'+',random,random
|
|
OBJECT:'+',random,random
|
|
OBJECT:'+',random,random
|
|
|
|
|
|
# The middle wizard level.
|
|
MAZE:"wizard2",random
|
|
FLAGS:noteleport,hardfloor
|
|
GEOMETRY:center,center
|
|
MAP
|
|
----------------------------.
|
|
|.....|.S....|.............|.
|
|
|.....|.-------S--------S--|.
|
|
|.....|.|.........|........|.
|
|
|..-S--S|.........|........|.
|
|
|..|....|.........|------S-|.
|
|
|..|....|.........|.....|..|.
|
|
|-S-----|.........|.....|..|.
|
|
|.......|.........|S--S--..|.
|
|
|.......|.........|.|......|.
|
|
|-----S----S-------.|......|.
|
|
|............|....S.|......|.
|
|
----------------------------.
|
|
ENDMAP
|
|
STAIR:levregion(01,00,79,20),(0,0,28,12),up
|
|
STAIR:levregion(01,00,79,20),(0,0,28,12),down
|
|
BRANCH:levregion(01,00,79,20),(0,0,28,12)
|
|
TELEPORT_REGION:levregion(01,00,79,20),(0,0,27,12)
|
|
# entire tower in a region, constrains monster migration
|
|
REGION:(01,01,26,11),unlit,"ordinary",unfilled
|
|
REGION:(09,03,17,09),unlit,"zoo"
|
|
DOOR:closed,(15,02)
|
|
DOOR:closed,(11,10)
|
|
MAZEWALK:(28,05),east
|
|
LADDER:(12,01),up
|
|
LADDER:(14,11),down
|
|
# Non diggable walls everywhere
|
|
NON_DIGGABLE:(00,00,27,12)
|
|
#
|
|
NON_PASSWALL:(00,00,06,12)
|
|
NON_PASSWALL:(06,00,27,02)
|
|
NON_PASSWALL:(16,02,27,12)
|
|
NON_PASSWALL:(06,12,16,12)
|
|
# Random traps.
|
|
TRAP:"spiked pit",random
|
|
TRAP:"sleep gas",random
|
|
TRAP:"anti magic",random
|
|
TRAP:"magic",random
|
|
# Some random loot.
|
|
OBJECT:'!',random,random
|
|
OBJECT:'!',random,random
|
|
OBJECT:'?',random,random
|
|
OBJECT:'?',random,random
|
|
OBJECT:'+',random,random
|
|
# treasures
|
|
OBJECT:'"',random,(04,06)
|
|
|
|
|
|
# The bottom wizard level.
|
|
# Memorialize the fakewiz setup.
|
|
MAZE:"wizard3",random
|
|
FLAGS:noteleport,hardfloor
|
|
GEOMETRY:center,center
|
|
MAP
|
|
----------------------------.
|
|
|..|............S..........|.
|
|
|..|..------------------S--|.
|
|
|..|..|.........|..........|.
|
|
|..S..|.}}}}}}}.|..........|.
|
|
|..|..|.}}---}}.|-S--------|.
|
|
|..|..|.}--.--}.|..|.......|.
|
|
|..|..|.}|...|}.|..|.......|.
|
|
|..---|.}--.--}.|..|.......|.
|
|
|.....|.}}---}}.|..|.......|.
|
|
|.....S.}}}}}}}.|..|.......|.
|
|
|.....|.........|..S.......|.
|
|
----------------------------.
|
|
ENDMAP
|
|
STAIR:levregion(01,00,79,20),(0,0,28,12),up
|
|
STAIR:levregion(01,00,79,20),(0,0,28,12),down
|
|
BRANCH:levregion(01,00,79,20),(0,0,28,12)
|
|
TELEPORT_REGION:levregion(01,00,79,20),(0,0,27,12)
|
|
PORTAL:(25,11,25,11),(0,0,0,0),"fakewiz1"
|
|
MAZEWALK:(28,09),east
|
|
REGION:(07,03,15,11),unlit,"morgue",unfilled
|
|
REGION:(17,06,18,11),unlit,"beehive"
|
|
# make the entry chamber a real room; it affects monster arrival;
|
|
# `unfilled' is a kludge to force an ordinary room to remain a room
|
|
REGION:(20,06,26,11),unlit,"ordinary",unfilled
|
|
DOOR:closed,(18,05)
|
|
DOOR:closed,(19,11)
|
|
LADDER:(11,07),up
|
|
# Non diggable walls
|
|
# Walls inside the moat stay diggable
|
|
NON_DIGGABLE:(00,00,06,12)
|
|
NON_DIGGABLE:(06,00,27,02)
|
|
NON_DIGGABLE:(16,02,27,12)
|
|
NON_DIGGABLE:(06,12,16,12)
|
|
#
|
|
NON_PASSWALL:(00,00,06,12)
|
|
NON_PASSWALL:(06,00,27,02)
|
|
NON_PASSWALL:(16,02,27,12)
|
|
NON_PASSWALL:(06,12,16,12)
|
|
#
|
|
MONSTER:'L',random,(10,07)
|
|
MONSTER:'V',"vampire lord",(12,07)
|
|
# Some surrounding horrors
|
|
MONSTER:';',"kraken",(08,05)
|
|
MONSTER:';',"giant eel",(08,08)
|
|
MONSTER:';',"kraken",(14,05)
|
|
MONSTER:';',"giant eel",(14,08)
|
|
# Other monsters
|
|
MONSTER:'L',random,random
|
|
MONSTER:'D',random,random
|
|
MONSTER:'D',random,(26,09)
|
|
MONSTER:'&',random,random
|
|
MONSTER:'&',random,random
|
|
MONSTER:'&',random,random
|
|
# And to make things a little harder.
|
|
TRAP:"board",(10,07)
|
|
TRAP:"board",(12,07)
|
|
TRAP:"board",(11,06)
|
|
TRAP:"board",(11,08)
|
|
# Some loot
|
|
OBJECT:')',random,random
|
|
OBJECT:'!',random,random
|
|
OBJECT:'?',random,random
|
|
OBJECT:'?',random,random
|
|
OBJECT:'(',random,random
|
|
# treasures
|
|
OBJECT:'"',random,(11,07)
|
|
|
|
|
|
# The former decoy wizard levels.
|
|
# There are two of these, and we need to
|
|
# distinguish between them for the portal.
|
|
MAZE:"fakewiz1",random
|
|
GEOMETRY:center,center
|
|
MAP
|
|
.........
|
|
.}}}}}}}.
|
|
.}}---}}.
|
|
.}--.--}.
|
|
.}|...|}.
|
|
.}--.--}.
|
|
.}}---}}.
|
|
.}}}}}}}.
|
|
ENDMAP
|
|
STAIR:levregion(01,00,79,20),(0,0,8,7),up
|
|
STAIR:levregion(01,00,79,20),(0,0,8,7),down
|
|
BRANCH:levregion(01,00,79,20),(0,0,8,7)
|
|
TELEPORT_REGION:levregion(01,00,79,20),(2,2,6,6)
|
|
PORTAL:(4,4,4,4),(0,0,0,0),"wizard3"
|
|
MAZEWALK:(08,05),east
|
|
REGION:(04,03,06,06),unlit,"ordinary",unfilled,true
|
|
MONSTER:'L',random,(04,04)
|
|
MONSTER:'V',"vampire lord",(03,04)
|
|
MONSTER:';',"kraken",(06,06)
|
|
# And to make things a little harder.
|
|
TRAP:"board",(04,03)
|
|
TRAP:"board",(04,05)
|
|
TRAP:"board",(03,04)
|
|
TRAP:"board",(05,04)
|
|
|
|
|
|
MAZE:"fakewiz2",random
|
|
GEOMETRY:center,center
|
|
MAP
|
|
.........
|
|
.}}}}}}}.
|
|
.}}---}}.
|
|
.}--.--}.
|
|
.}|...|}.
|
|
.}--.--}.
|
|
.}}---}}.
|
|
.}}}}}}}.
|
|
ENDMAP
|
|
STAIR:levregion(01,00,79,20),(0,0,8,7),up
|
|
STAIR:levregion(01,00,79,20),(0,0,8,7),down
|
|
BRANCH:levregion(01,00,79,20),(0,0,8,7)
|
|
TELEPORT_REGION:levregion(01,00,79,20),(2,2,6,6)
|
|
MAZEWALK:(08,05),east
|
|
REGION:(04,03,06,06),unlit,"ordinary",unfilled,true
|
|
MONSTER:'L',random,(04,04)
|
|
MONSTER:'V',"vampire lord",(03,04)
|
|
MONSTER:';',"kraken",(06,06)
|
|
# And to make things a little harder.
|
|
TRAP:"board",(04,03)
|
|
TRAP:"board",(04,05)
|
|
TRAP:"board",(03,04)
|
|
TRAP:"board",(05,04)
|
|
# treasures
|
|
OBJECT:'"',random,(04,04)
|