Lua: remove dgn_comp, use lua instead

This commit is contained in:
Pasi Kallinen
2019-07-14 10:07:11 +03:00
parent fd55d9118e
commit 9cd9280276
19 changed files with 578 additions and 5139 deletions

View File

@@ -1,143 +0,0 @@
# NetHack 3.6 dungeon.def $NHDT-Date: 1462486876 2016/05/05 22:21:16 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.14 $
# 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)
LEVEL: "rogue" "R" @ (15, 4)
LEVELDESC: roguelike
LEVEL: "oracle" "O" @ (5, 5)
LEVALIGN: neutral
CHAINBRANCH: "Sokoban" "oracle" + (1, 0) up
RNDLEVEL: "bigrm" "B" @ (10, 3) 40 10
CHAINBRANCH: "The Quest" "oracle" + (6, 2) portal
BRANCH: "Fort Ludios" @ (18, 4) portal
RNDLEVEL: "medusa" "none" @ (-5, 4) 4
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
RNDLEVEL: "minetn" "T" @ (3, 2) 7
LEVELDESC: town
RNDLEVEL: "minend" "E" @ (-1, 0) 3
#
# The Questdungeon
#
# This is a proto-dungeon. The level file names will be prepended with
# three letter role abbreviation during initialization, replacing "x".
# 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)
# it isn't necessary to list these last two, but doing so makes them
# show up in ^O output and in the level teleport menu
LEVEL: "tower2" "none" @ (2, 0)
LEVEL: "tower3" "none" @ (3, 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)

310
dat/dungeon.lua Normal file
View File

@@ -0,0 +1,310 @@
dungeon = {
{
name = "The Dungeons of Doom",
bonetag = "D",
base = 25,
range = 5,
alignment = "unaligned",
branches = {
{
name = "The Gnomish Mines",
base = 2,
range = 3
},
{
name = "Sokoban",
chainlevel = "oracle",
base = 1,
direction = "up"
},
{
name = "The Quest",
chainlevel = "oracle",
base = 6,
range = 2,
branchtype = "portal"
},
{
name = "Fort Ludios",
base = 18,
range = 4,
branchtype = "portal"
},
{
name = "Gehennom",
chainlevel = "castle",
base = 0,
branchtype = "no_down"
},
{
name = "The Elemental Planes",
base = 1,
branchtype = "no_down",
direction = "up"
}
},
levels = {
{
name = "rogue",
bonetag = "R",
base = 15,
range = 4,
flags = "roguelike",
},
{
name = "oracle",
bonetag = "O",
base = 5,
range = 5,
alignment = "neutral"
},
{
name = "bigrm",
bonetag = "B",
base = 10,
range = 3,
chance = 40,
nlevels = 10
},
{
name = "medusa",
base = -5,
range = 4,
nlevels = 4,
alignment = "chaotic"
},
{
name = "castle",
base = -1
}
}
},
{
name = "Gehennom",
bonetag = "G",
base = 20,
range = 5,
flags = { "mazelike", "hellish" },
alignment = "noalign",
branches = {
{
name = "Vlad's Tower",
base = 9,
range = 5,
direction = "up"
}
},
levels = {
{
name = "valley",
bonetag = "V",
base = 1
},
{
name = "sanctum",
base = -1
},
{
name = "juiblex",
bonetag = "J",
base = 4,
range = 4
},
{
name = "baalz",
bonetag = "B",
base = 6,
range = 4
},
{
name = "asmodeus",
bonetag = "A",
base = 2,
range = 6
},
{
name = "wizard1",
base = 11,
range = 6
},
{
name = "wizard2",
bonetag = "X",
chainlevel = "wizard1",
base = 1
},
{
name = "wizard3",
bonetag = "Y",
chainlevel = "wizard1",
base = 2
},
{
name = "orcus",
bonetag = "O",
base = 10,
range = 6
},
{
name = "fakewiz1",
bonetag = "F",
base = -6,
range = 4
},
{
name = "fakewiz2",
bonetag = "G",
base = -6,
range = 4
},
}
},
{
name = "The Gnomish Mines",
bonetag = "M",
base = 8,
range = 2,
alignment = "lawful",
flags = { "mazelike" },
levels = {
{
name = "minetn",
bonetag = "T",
base = 3,
range = 2,
nlevels = 7,
flags = "town"
},
{
name = "minend",
bonetag = "E",
base = -1,
nlevels = 3
},
}
},
{
name = "The Quest",
bonetag = "Q",
base = 5,
range = 2,
levels = {
{
name = "x-strt",
base = 1,
range = 1
},
{
name = "x-loca",
bonetag = "L",
base = 3,
range = 1
},
{
name = "x-goal",
base = -1
},
}
},
{
name = "Sokoban",
base = 4,
alignment = "neutral",
flags = { "mazelike" },
entry = -1,
levels = {
{
name = "soko1",
base = 1,
nlevels = 2
},
{
name = "soko2",
base = 2,
nlevels = 2
},
{
name = "soko3",
base = 3,
nlevels = 2
},
{
name = "soko4",
base = 4,
nlevels = 2
},
}
},
{
name = "Fort Ludios",
base = 1,
bonetag = "K",
flags = { "mazelike" },
alignment = "unaligned",
levels = {
{
name = "knox",
bonetag = "K",
base = -1
}
}
},
{
name = "Vlad's Tower",
base = 3,
bonetag = "T",
protofile = "tower",
alignment = "chaotic",
flags = { "mazelike" },
entry = -1,
levels = {
{
name = "tower1",
base = 1
},
{
name = "tower2",
base = 2
},
{
name = "tower3",
base = 3
},
}
},
{
name = "The Elemental Planes",
bonetag = "E",
base = 6,
alignment = "unaligned",
flags = { "mazelike" },
entry = -2,
levels = {
{
name = "astral",
base = 1
},
{
name = "water",
base = 2
},
{
name = "fire",
base = 3
},
{
name = "air",
base = 4
},
{
name = "earth",
base = 5
},
{
name = "dummy",
base = 6
},
}
},
}