Files
nethack/dat/yendor.des
cohrs d9368a3c09 constrain monster migration in wizard tower
<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.
2006-09-23 06:32:01 +00:00

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)