# === Understanding dungeon_profile.txt === # // how each type of dungeon level (and the town) are generated. # name: The profile name. This needs to match the corresponding entry in # list-dun-profiles.h so the correct level-building function can be called # params: block_size : rooms : unusual : rarity # The dungeon is divided into non-overlapping square blocks of block_size by # block_size grids. When rooms are placed, each is assigned a rectangular # chunk of blocks, and those assignments won't leave a block assigned to more # than one room. So, block_size affects how densely the rooms can be packed # and the maximum number of rooms possible. rooms is the number of rooms to # aim for. unusual is a measure of how likely high rarity roooms are to # appear - higher values make the rare rooms rarer. rarity is the maximum # rarity room allowed with this cave profile. # tunnel: rnd : chg : con : pen : jct # These are percentage chances - rnd of choosing a random tunnel direction # (as opposed to heading in the desired direction), chg the chance of changing # direction, at any tunnel grid, con the chance of just terminating a tunnel, # pen the chance of putting a door in a room entrance, jct the chance of a # door at a tunnel junction. # streamer: den : rng : mag : mc : qua : qc # Streamers are drawn as a random walk which stops at the dungeon edge. # den is the number of grids near any walk grid to make streamer; rng is how # far from the walk those grids can be; mag and qua are the numbers of magma # and quartz streamers per level; 1/mc and 1/qc are the chances of treasure in # magma and quartz. # A number of stairs is randomly placed on a level. # up is the random value used for up staircases # down is the random value used for down staircases # alloc is used to decide which profile to use. For a profile that has a # positive value for alloc, the profile will be used for a level that satisfies # the profile's min-level with a probability of the value of alloc divided by # the sum of the alloc values for all other possible profiles at that level. # Except for the town profile, if alloc is zero or less than -1, the profile # will not be used. If alloc is -1, the profile can only be selected by # hard-coded tests in generate.c for the profile selection. If those tests do # not already include the profile, using a value of -1 will be the same as # using 0 for alloc. The hard-coded tests currently include checks for the # town, moria, and labyrinth profiles. # min-level is the shallowest dungeon level on which the profile can be used # room: name : rating : height : width : level : pit : rarity : cutoff # name is the room name, which must match the name in list-rooms.h so the # correct room-building function can be called. # rating is the rating of the room (used only for template rooms). # height and width are the maximum dimensions of the room, and define how much # space is allocated for that room. # level is the minimum depth at which this room can appear. # pit is 1 if the room is a pit/nest, 0 otherwise. # rarity is the room's rarity - normally 0, 1 or 2 (see comments about profile # rarity above). Some rooms are chosen by a different means; in this case # rarity is usually 0. # cutoff is used to pick between rooms once a rarity is chosen: a random value # from 0 to 99 is selected and a room may appear if its cutoff is greater than # that value. It is IMPORTANT that non-zero cutoffs appear in ascending order # within the rooms of the same rarity for a given profile: a room with a # smaller cutoff appearing after one with a larger cutoff will never be # selected. # Note that getting a smaller cave profile cutoff or room cutoff after a larger # one will result in the smaller one never appearing. ## Town name:town params:1:0:200:0 streamer:1:1:0:0:0:0 alloc:-1 ## Labyrinth - these have alloc -1, but still appear after other checks ## To completely turn them off, set alloc to zero name:labyrinth params:1:0:200:0 up:1 down:3+1d2 alloc:-1 ## Cavern name:cavern params:1:0:200:0 up:1d2 down:3+1d2 min-level:15 alloc:10 ## Classic name:classic params:11:50:200:2 tunnel:10:30:15:25:50 streamer:5:2:3:90:2:40 up:1d2 down:3+1d2 alloc:90 # Greater vaults only have rarity 0 but they have other checks room:Greater vault:0:44:66:35:0:0:100 # Very rare rooms (rarity = 2) room:monster pit:0:11:33:5:1:2:8 room:monster nest:0:11:33:5:1:2:16 room:Medium vault:0:22:33:30:0:2:38 room:Lesser vault:0:22:33:20:0:2:55 # Unusual rooms (rarity = 1) room:large room:0:11:33:3:0:1:15 room:crossed room:0:11:33:3:0:1:35 room:circular room:0:22:22:1:0:1:50 room:overlap room:0:11:33:1:0:1:70 room:room template:1:11:33:1:0:1:95 room:room template:2:11:33:10:0:1:99 room:room template:3:11:33:30:0:1:100 # Normal rooms (rarity = 0) room:simple room:0:11:33:1:0:0:100 ## Modified name:modified params:1:50:300:2 tunnel:10:30:15:25:50 streamer:5:2:3:90:2:40 up:1d2 down:3+1d2 alloc:97 # Really big rooms only have rarity 0 but they have other checks room:Greater vault:0:44:66:35:0:0:100 room:huge room:0:44:66:40:0:0:100 # Very rare rooms (rarity = 2) room:room of chambers:0:44:66:10:0:2:4 room:monster pit:0:11:33:5:1:2:12 room:monster nest:0:11:33:5:1:2:20 room:Medium vault:0:22:33:30:0:2:40 room:Lesser vault:0:22:33:20:0:2:60 # Unusual rooms (rarity = 1) room:Interesting room:0:44:55:0:0:1:10 room:large room:0:11:33:3:0:1:25 room:crossed room:0:11:33:3:0:1:40 room:circular room:0:22:22:1:0:1:55 room:overlap room:0:11:33:1:0:1:70 room:room template:1:11:33:1:0:1:95 room:room template:2:11:33:10:0:1:99 room:room template:3:11:33:30:0:1:100 # Normal rooms (rarity = 0) room:simple room:0:11:33:1:0:0:100 ## Moria - these have alloc -1, but still appear after other checks ## To completely turn them off, set alloc to zero name:moria params:1:50:250:2 tunnel:10:30:15:25:30 streamer:5:2:3:90:2:40 up:1d2 down:3+1d2 alloc:-1 # Really big rooms only have rarity 0 but they have other checks room:Greater vault:0:44:66:35:0:0:100 # Very rare rooms (rarity = 2) room:room of chambers:0:44:66:10:0:2:4 room:monster pit:0:11:33:5:1:2:12 room:monster nest:0:11:33:5:1:2:20 room:Medium vault:0:22:33:30:0:2:40 room:Lesser vault:0:22:33:20:0:2:60 room:Interesting room:0:44:55:0:0:2:100 # Normal moria-style rooms (rarity = 0) room:moria room:0:11:33:1:0:0:100 ## Lair name:lair params:1:50:500:2 tunnel:10:30:15:25:50 streamer:5:2:3:90:2:40 up:1d2 down:2+1d2 min-level:20 alloc:1 # Really big rooms only have rarity 0 but they have other checks room:Greater vault:0:44:66:35:0:0:100 room:huge room:0:44:66:40:0:0:100 # Very rare rooms (rarity = 2) room:room of chambers:0:44:66:10:0:2:4 room:monster pit:0:11:33:5:1:2:12 room:monster nest:0:11:33:5:1:2:20 room:Medium vault:0:22:33:30:0:2:40 room:Lesser vault:0:22:33:20:0:2:60 # Unusual rooms (rarity = 1) room:Interesting room:0:44:55:0:0:1:10 room:large room:0:11:33:3:0:1:25 room:crossed room:0:11:33:3:0:1:40 room:circular room:0:22:22:1:0:1:55 room:overlap room:0:11:33:1:0:1:70 room:room template:1:11:33:1:0:1:95 room:room template:2:11:33:10:0:1:99 room:room template:3:11:33:30:0:1:100 # Normal rooms (rarity = 0) room:simple room:0:11:33:1:0:0:100 ## Gauntlet name:gauntlet params:1:0:200:0 up:1d3 down:1+1d2 min-level:20 alloc:1 ## Hard Centre name:hard centre params:1:0:200:0 up:1d2 down:1d3 min-level:50 alloc:1 ## Wilderness name:wilderness params:1:0:200:0 alloc:-1 ## MAngband-style town name:mang_town params:1:0:200:0 streamer:1:1:0:0:0:0 alloc:-1 ## Arena name:arena params:11:50:200:2 tunnel:10:30:15:25:50 up:1d2 down:3+1d2 alloc:-1 # Greater vaults only have rarity 0 but they have other checks room:Greater vault:0:44:66:35:0:0:100 # Very rare rooms (rarity = 2) room:monster pit:0:11:33:5:1:2:8 room:monster nest:0:11:33:5:1:2:16 room:Medium vault:0:22:33:30:0:2:38 room:Lesser vault:0:22:33:20:0:2:55 # Unusual rooms (rarity = 1) room:large room:0:11:33:3:0:1:20 room:crossed room:0:11:33:3:0:1:50 room:circular room:0:22:22:1:0:1:70 room:overlap room:0:11:33:1:0:1:100 # Normal rooms (rarity = 0) room:simple room:0:11:33:1:0:0:100