diff --git a/dat/dungeon.def b/dat/dungeon.def new file mode 100644 index 000000000..61db72049 --- /dev/null +++ b/dat/dungeon.def @@ -0,0 +1,140 @@ +# SCCS Id: @(#)dungeon.def 3.3 96/03/10 +# Copyright (c) 1990-95 by M. Stephenson +# NetHack may be freely redistributed. See license for details. +# +# The dungeon description file for the "standard" 3.1 NetHack. +# +# Note: The order of the definition of dungeons in this file +# reflects in their order of creation in the real dungeon. +# The "Main" branch must *always* be first. +# Also note that the order of the dungeons in this file +# determines the order in which branch levels are assigned. +# If two dungeons have overlapping ranges for their entry +# points, then you should list the dungeon with the _least_ +# number of choices for its branch level _first_. +# + +DUNGEON: "The Dungeons of Doom" "D" (25, 5) +ALIGNMENT: unaligned +BRANCH: "The Gnomish Mines" @ (2, 3) +%REINCARNATION LEVEL: "rogue" "R" @ (15, 4) +LEVEL: "oracle" "O" @ (5, 5) +LEVALIGN: neutral +CHAINBRANCH: "Sokoban" "oracle" + (1, 0) up +RNDLEVEL: "bigrm" "B" @ (10, 3) 40 5 +CHAINBRANCH: "The Quest" "oracle" + (6, 2) portal +BRANCH: "Fort Ludios" @ (18, 4) portal +RNDLEVEL: "medusa" "none" @ (-5, 4) 2 +LEVALIGN: chaotic +LEVEL: "castle" "none" @ (-1, 0) +CHAINBRANCH: "Gehennom" "castle" + (0, 0) no_down +BRANCH: "The Elemental Planes" @ (1, 0) no_down up + +# +# Gehennom +# +# Now re-worked for 3.1, hell is hopefully going to be a little +# less boring. Also, in 3.1, the tower is not considered as a +# part of hell, but is set up as a separate dungeon. +# +# Gehennom is no longer considered "hellish" as a complete dungeon. +# That is, fire resistance is no longer a condition for survival in +# it. However, Gehennom, and the special levels in it in particular, +# is abundant with fire traps. As a result, fire resistance is still +# a prudent survival strategy in Gehennom. +# +# Note: Gehennom *must* be the second dungeon defined so that +# monsters can properly migrate here under certain +# circumstances. +# +DUNGEON: "Gehennom" "G" (20, 5) +DESCRIPTION: mazelike +DESCRIPTION: hellish +ALIGNMENT: noalign +BRANCH: "Vlad's Tower" @ (9, 5) up +LEVEL: "valley" "V" @ (1, 0) +LEVEL: "sanctum" "none" @ (-1, 0) +LEVEL: "juiblex" "J" @ (4, 4) +LEVEL: "baalz" "B" @ (6, 4) +LEVEL: "asmodeus" "A" @ (2, 6) +LEVEL: "wizard1" "none" @ (11, 6) +CHAINLEVEL: "wizard2" "X" "wizard1" + (1, 0) +CHAINLEVEL: "wizard3" "Y" "wizard1" + (2, 0) +LEVEL: "orcus" "O" @ (10, 6) +LEVEL: "fakewiz1" "F" @ (-6,4) +LEVEL: "fakewiz2" "G" @ (-6,4) + +# +# The Mines of the Gnomes of Zurich. +# +DUNGEON: "The Gnomish Mines" "M" (8, 2) +ALIGNMENT: lawful +DESCRIPTION: mazelike +# LEVEL: "minetown" "T" @ (3, 2) +RNDLEVEL: "minetn" "T" @ (3, 2) 2 +LEVELDESC: town +# LEVEL: "mine_end" "E" @ (-1, 0) +RNDLEVEL: "minend" "E" @ (-1, 0) 2 + +# +# The Questdungeon +# +# This is a proto-dungeon. The level file names will be prepended with +# the first letter of the character name during initialization. +# A special "x-fill" level must be defined in the levels description +# file. It will be used for all levels not defined explicitly below. +# +DUNGEON: "The Quest" "Q" (5, 2) +LEVEL: "x-strt" "none" @ (1, 1) +LEVEL: "x-loca" "L" @ (3, 1) +LEVEL: "x-goal" "none" @ (-1, 0) + +# +# Sokoban +# +DUNGEON: "Sokoban" "none" (4, 0) +DESCRIPTION: mazelike +ALIGNMENT: neutral +ENTRY: -1 +RNDLEVEL: "soko1" "none" @ (1, 0) 2 +RNDLEVEL: "soko2" "none" @ (2, 0) 2 +RNDLEVEL: "soko3" "none" @ (3, 0) 2 +RNDLEVEL: "soko4" "none" @ (4, 0) 2 + +# +# The Central Vault of Croesus. +# +DUNGEON: "Fort Ludios" "K" (1, 0) +DESCRIPTION: mazelike +ALIGNMENT: unaligned +LEVEL: "knox" "K" @ (-1, 0) +# +# Vlad's Tower +# +# It has been removed from Gehennom, and it is surrounded by stone. +# Must not allow bones files for its top level. +# +DUNGEON: "Vlad's Tower" "T" (3, 0) +PROTOFILE: "tower" +DESCRIPTION: mazelike +ALIGNMENT: chaotic +ENTRY: -1 +LEVEL: "tower1" "none" @ (1, 0) + +# +# The Endgame levels +# +# Enter on 2nd level from bottom; 1st (from bottom) is a +# placeholder for surface level, and should be unreachable. +# [Note: the name "dummy" is checked for in init_dungeons().] +# +DUNGEON: "The Elemental Planes" "E" (6, 0) +DESCRIPTION: mazelike +ALIGNMENT: unaligned +ENTRY: -2 +LEVEL: "astral" "none" @ (1, 0) +LEVEL: "water" "none" @ (2, 0) +LEVEL: "fire" "none" @ (3, 0) +LEVEL: "air" "none" @ (4, 0) +LEVEL: "earth" "none" @ (5, 0) +LEVEL: "dummy" "none" @ (6, 0)