summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2012-04-08 21:48:41 +0200
committerBardur Arantsson <bardur@scientician.net>2012-04-08 22:19:24 +0200
commitebba95ce9866866cccfc6e5fbf7dfbd5445f3b08 (patch)
tree60b87e6d792fdd2967b1a5f617b6656f58bc252a
parent588796622eef2419931bf759188a90822be8574f (diff)
Lua: Move per-god dungeon setup to C
-rw-r--r--lib/mods/theme/scpt/god.lua384
-rw-r--r--lib/scpt/god.lua220
-rw-r--r--src/plots.h9
-rw-r--r--src/q_god.c438
-rw-r--r--src/quest.pkg9
5 files changed, 470 insertions, 590 deletions
diff --git a/lib/mods/theme/scpt/god.lua b/lib/mods/theme/scpt/god.lua
index 1c932029..fe8caf5f 100644
--- a/lib/mods/theme/scpt/god.lua
+++ b/lib/mods/theme/scpt/god.lua
@@ -281,389 +281,23 @@ function set_god_dungeon_attributes()
-- dungeon properties altered according to which god player is worshipping,
if player.pgod == GOD_ERU then
-
- -- The Eru temple is based on Meneltarma.
- -- W: Not too many monsters (they'll be tough though, with big levels)
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_level = 14
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_chance = 200
-
- -- L: Dirt and grass. More dirt at bottom, more grass at top. rocky ground would be nice
- dungeon(god_quest.DUNGEON_GOD).floor1 = 88
- dungeon(god_quest.DUNGEON_GOD).floor2 = 89
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[1] = 70
- dungeon(god_quest.DUNGEON_GOD).floor_percent2[1] = 30
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[2] = 10
- dungeon(god_quest.DUNGEON_GOD).floor_percent2[2] = 90
-
- -- A: Outer wall mountain chain. other walls granite
- dungeon(god_quest.DUNGEON_GOD).fill_type1 = 97
- dungeon(god_quest.DUNGEON_GOD).fill_percent1[1] = 100
- dungeon(god_quest.DUNGEON_GOD).outer_wall = 57
- dungeon(god_quest.DUNGEON_GOD).inner_wall = 97
- dungeon(god_quest.DUNGEON_GOD).fill_method = 2
-
- -- O: "At Meneltarma no weapon or tool had ever been borne" (but invaders would have left a small number)
- dungeon(god_quest.DUNGEON_GOD).objs.treasure = 45
- dungeon(god_quest.DUNGEON_GOD).objs.combat = 5
- dungeon(god_quest.DUNGEON_GOD).objs.magic = 45
- dungeon(god_quest.DUNGEON_GOD).objs.tools = 5
-
- -- F: A large pillar, with stairs created at edges. (You can't climb a rock through the middle, can you?)
- dungeon(god_quest.DUNGEON_GOD).flags1 = bor(DF1_BIG, DF1_NO_DOORS, DF1_CIRCULAR_ROOMS, DF1_EMPTY, DF1_TOWER, DF1_FLAT, DF1_ADJUST_LEVEL_2)
- dungeon(god_quest.DUNGEON_GOD).flags2 = bor(DF2_ADJUST_LEVEL_1_2, DF2_NO_SHAFT, DF2_ADJUST_LEVEL_PLAYER)
-
- -- R:
- dungeon(god_quest.DUNGEON_GOD).rules[1].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[1].percent = 50
-
- -- M: We want evil or flying characters
- dungeon(god_quest.DUNGEON_GOD).rules[1].mflags3 = RF3_EVIL
-
- dungeon(god_quest.DUNGEON_GOD).rules[2].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[2].percent = 50
-
- -- M: We want evil or flying characters
- dungeon(god_quest.DUNGEON_GOD).rules[2].mflags7 = RF7_CAN_FLY
-
-
+ quest_god_set_god_dungeon_attributes_eru()
elseif player.pgod == GOD_MANWE then
-
- -- Manwe's lost temple is high in the clouds
- -- W: Has average number of monsters.
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_level = 18
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_chance = 160
-
-
- -- L: floor will be 'cloud-like vapour' and pools of 'condensing water'
- dungeon(god_quest.DUNGEON_GOD).floor1 = 208
- dungeon(god_quest.DUNGEON_GOD).floor2 = 209
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[1] = 85
- dungeon(god_quest.DUNGEON_GOD).floor_percent2[1] = 15
-
- -- A: Outer wall is 'hail stone wall', inner wall 'dense fog'. FIlled at max smoothing, like islands.
- dungeon(god_quest.DUNGEON_GOD).fill_type1 = 211
- dungeon(god_quest.DUNGEON_GOD).fill_percent1[1] = 100
- dungeon(god_quest.DUNGEON_GOD).outer_wall = 210
- dungeon(god_quest.DUNGEON_GOD).inner_wall = 211
- dungeon(god_quest.DUNGEON_GOD).fill_method = 4
-
- -- O: Can't imagine Manwe having much treasure. Little need for tools in a cloud temple. lots of magical stuff though...
- dungeon(god_quest.DUNGEON_GOD).objs.treasure = 15
- dungeon(god_quest.DUNGEON_GOD).objs.combat = 25
- dungeon(god_quest.DUNGEON_GOD).objs.magic = 55
- dungeon(god_quest.DUNGEON_GOD).objs.tools = 5
-
- -- F: It's open, goes up like a tower, give it a few interesting rooms, make the monsters hard(ish).
- dungeon(god_quest.DUNGEON_GOD).flags1 = bor(DF1_NO_DOORS, DF1_TOWER, DF1_CAVERN, DF1_ADJUST_LEVEL_2)
- dungeon(god_quest.DUNGEON_GOD).flags2 = bor(DF2_NO_SHAFT, DF2_ADJUST_LEVEL_PLAYER)
-
- -- R:
- dungeon(god_quest.DUNGEON_GOD).rules[1].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[1].percent = 20
- dungeon(god_quest.DUNGEON_GOD).rules[2].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[2].percent = 20
- dungeon(god_quest.DUNGEON_GOD).rules[3].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[3].percent = 20
- dungeon(god_quest.DUNGEON_GOD).rules[4].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[4].percent = 20
- dungeon(god_quest.DUNGEON_GOD).rules[5].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[5].percent = 20
-
- -- M: We want air(poison-type) or flying characters. Orcs too. They would have ransacked his elf-loving temple :)
- dungeon(god_quest.DUNGEON_GOD).rules[1].mflags2 = RF2_INVISIBLE
- dungeon(god_quest.DUNGEON_GOD).rules[2].mflags3 = bor(RF3_ORC, RF3_IM_POIS)
- dungeon(god_quest.DUNGEON_GOD).rules[3].mflags4 = bor(RF4_BR_POIS, RF4_BR_GRAV)
- dungeon(god_quest.DUNGEON_GOD).rules[4].mflags5 = RF5_BA_POIS
- dungeon(god_quest.DUNGEON_GOD).rules[5].mflags7 = RF7_CAN_FLY
-
-
+ quest_god_set_god_dungeon_attributes_manwe()
elseif player.pgod == GOD_TULKAS then
-
- -- Tulkas dungeon is quite normal, possibly a bit boring to be honest. Maybe I should add something radical to it.
- -- 'The house of Tulkas in the midmost of Valmar was a house of mirth and revelry. It sprang into the air with many storeys,
- -- and had a tower of bronze and pillars of copper in a wide arcade'
- -- W: but with lots of monsters
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_level = 20
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_chance = 120
-
- -- L: floor is normal
- dungeon(god_quest.DUNGEON_GOD).floor1 = 1
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[1] = 100
-
- -- A: Granite walls
- dungeon(god_quest.DUNGEON_GOD).fill_type1 = 56
- dungeon(god_quest.DUNGEON_GOD).fill_percent1[1] = 100
- dungeon(god_quest.DUNGEON_GOD).outer_wall = 58
- dungeon(god_quest.DUNGEON_GOD).inner_wall = 57
- dungeon(god_quest.DUNGEON_GOD).fill_method = 0
-
- -- O: Loads of combat drops
- dungeon(god_quest.DUNGEON_GOD).objs.treasure = 10
- dungeon(god_quest.DUNGEON_GOD).objs.combat = 70
- dungeon(god_quest.DUNGEON_GOD).objs.magic = 5
- dungeon(god_quest.DUNGEON_GOD).objs.tools = 15
-
- -- F: fairly standard
- dungeon(god_quest.DUNGEON_GOD).flags1 = bor(DF1_NO_DESTROY, DF1_ADJUST_LEVEL_2)
- dungeon(god_quest.DUNGEON_GOD).flags2 = DF2_ADJUST_LEVEL_PLAYER
-
- -- R:
- dungeon(god_quest.DUNGEON_GOD).rules[1].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[1].percent = 100
-
- -- M: plenty demons please
- dungeon(god_quest.DUNGEON_GOD).rules[1].mflags3 = bor(RF3_DEMON, RF3_EVIL)
-
-
+ quest_god_set_god_dungeon_attributes_tulkas()
elseif player.pgod == GOD_MELKOR then
-
- -- Melkors dungeon will be dark, fiery and stuff
- -- Many many monsters! (but prob ADJUST_LEVEL_1_2)
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_level = 24
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_chance = 80
-
-
- -- L: floor is dirt/mud/nether
- dungeon(god_quest.DUNGEON_GOD).floor1 = 88
- dungeon(god_quest.DUNGEON_GOD).floor2 = 94
- dungeon(god_quest.DUNGEON_GOD).floor3 = 102
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[1] = 45
- dungeon(god_quest.DUNGEON_GOD).floor_percent2[1] = 45
- dungeon(god_quest.DUNGEON_GOD).floor_percent3[1] = 10
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[2] = 35
- dungeon(god_quest.DUNGEON_GOD).floor_percent2[2] = 35
- dungeon(god_quest.DUNGEON_GOD).floor_percent3[2] = 30
-
- -- A: Granite walls to fill but glass walls for room perimeters (you can see the nasty monsters coming)
- dungeon(god_quest.DUNGEON_GOD).fill_type1 = 188
- dungeon(god_quest.DUNGEON_GOD).fill_percent1[1] = 100
- dungeon(god_quest.DUNGEON_GOD).outer_wall = 188
- dungeon(god_quest.DUNGEON_GOD).inner_wall = 57
- dungeon(god_quest.DUNGEON_GOD).fill_method = 1
-
- -- O: Even drops
- dungeon(god_quest.DUNGEON_GOD).objs.treasure = 25
- dungeon(god_quest.DUNGEON_GOD).objs.combat = 25
- dungeon(god_quest.DUNGEON_GOD).objs.magic = 25
- dungeon(god_quest.DUNGEON_GOD).objs.tools = 25
-
- -- F: Small, lava rivers, nasty monsters hehehehehe
- dungeon(god_quest.DUNGEON_GOD).flags1 = bor(DF1_SMALL, DF1_LAVA_RIVERS, DF1_ADJUST_LEVEL_1)
- dungeon(god_quest.DUNGEON_GOD).flags2 = bor(DF2_ADJUST_LEVEL_1_2, DF2_ADJUST_LEVEL_PLAYER)
-
- -- R: No restrictions on monsters here
- dungeon(god_quest.DUNGEON_GOD).rules[1].mode = 0
- dungeon(god_quest.DUNGEON_GOD).rules[1].percent = 80
-
- -- R: Apart from making sure we have some GOOD ones
- dungeon(god_quest.DUNGEON_GOD).rules[2].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[2].percent = 20
-
- -- M:
- dungeon(god_quest.DUNGEON_GOD).rules[2].mflags3 = RF3_GOOD
-
+ quest_god_set_god_dungeon_attributes_melkor()
elseif player.pgod == GOD_YAVANNA then
-
- -- Yavannas dungeon will be very natural, tress and stuff.
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_level = 22
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_chance = 100
-
- -- L: floor is grass/flowers, plus dirt so not always regenerating quick!
- dungeon(god_quest.DUNGEON_GOD).floor1 = 89
- dungeon(god_quest.DUNGEON_GOD).floor2 = 199
- dungeon(god_quest.DUNGEON_GOD).floor3 = 88
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[1] = 40
- dungeon(god_quest.DUNGEON_GOD).floor_percent2[1] = 15
- dungeon(god_quest.DUNGEON_GOD).floor_percent3[1] = 45
-
- -- A: Tree walls to fill, small trees for inner walls
- dungeon(god_quest.DUNGEON_GOD).fill_type1 = 96
- dungeon(god_quest.DUNGEON_GOD).fill_percent1[1] = 100
- dungeon(god_quest.DUNGEON_GOD).outer_wall = 202
- dungeon(god_quest.DUNGEON_GOD).inner_wall = 96
- dungeon(god_quest.DUNGEON_GOD).fill_method = 1
-
- -- O: nt much combat.. tools where ransackers have tried to chop trees down.
- dungeon(god_quest.DUNGEON_GOD).objs.treasure = 20
- dungeon(god_quest.DUNGEON_GOD).objs.combat = 10
- dungeon(god_quest.DUNGEON_GOD).objs.magic = 30
- dungeon(god_quest.DUNGEON_GOD).objs.tools = 40
-
- -- F: Natural looking
- dungeon(god_quest.DUNGEON_GOD).flags1 = bor(DF1_NO_DOORS, DF1_WATER_RIVERS, DF1_NO_DESTROY, DF1_ADJUST_LEVEL_1, DF1_NO_RECALL)
- dungeon(god_quest.DUNGEON_GOD).flags2 = bor(DF2_ADJUST_LEVEL_1_2, DF2_NO_SHAFT, DF2_NO_GENO, DF2_ADJUST_LEVEL_PLAYER)
-
- -- R: Demons, Undead, non-living
- dungeon(god_quest.DUNGEON_GOD).rules[1].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[1].percent = 100
-
- -- M:
- dungeon(god_quest.DUNGEON_GOD).rules[1].mflags3 = bor(RF3_DEMON, RF3_UNDEAD, RF3_NONLIVING)
-
+ quest_god_set_god_dungeon_attributes_yavanna()
elseif player.pgod == GOD_AULE then
-
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_level = 24
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_chance = 80
-
- -- L: floor is dirt/mud/shallow water
- dungeon(god_quest.DUNGEON_GOD).floor1 = 88
- dungeon(god_quest.DUNGEON_GOD).floor2 = 94
- dungeon(god_quest.DUNGEON_GOD).floor3 = 84
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[1] = 45
- dungeon(god_quest.DUNGEON_GOD).floor_percent2[1] = 45
- dungeon(god_quest.DUNGEON_GOD).floor_percent3[1] = 10
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[2] = 35
- dungeon(god_quest.DUNGEON_GOD).floor_percent2[2] = 35
- dungeon(god_quest.DUNGEON_GOD).floor_percent3[2] = 30
-
- -- A: Grey mountains, inner walls are low hills
- dungeon(god_quest.DUNGEON_GOD).fill_type1 = 216
- dungeon(god_quest.DUNGEON_GOD).fill_percent1[1] = 100
- dungeon(god_quest.DUNGEON_GOD).outer_wall = 216
- dungeon(god_quest.DUNGEON_GOD).inner_wall = 213
- dungeon(god_quest.DUNGEON_GOD).fill_method = 1
-
- -- O: Weapons and tools only
- dungeon(god_quest.DUNGEON_GOD).objs.treasure = 0
- dungeon(god_quest.DUNGEON_GOD).objs.combat = 50
- dungeon(god_quest.DUNGEON_GOD).objs.magic = 0
- dungeon(god_quest.DUNGEON_GOD).objs.tools = 50
-
- -- F: Small, no destroyed levels, min monster level = dungeon level
- dungeon(god_quest.DUNGEON_GOD).flags1 = bor(DF1_SMALL, DF1_NO_DESTROY, DF1_ADJUST_LEVEL_1, DF1_NO_STREAMERS)
-
- -- R: No restrictions on monsters here
- dungeon(god_quest.DUNGEON_GOD).rules[1].mode = 0
- dungeon(god_quest.DUNGEON_GOD).rules[1].percent = 80
-
+ quest_god_set_god_dungeon_attributes_aule()
elseif player.pgod == GOD_VARDA then
-
- -- Varda lives with Manwe, so high in the clouds
- -- W: Has average number of monsters.
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_level = 18
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_chance = 160
-
-
- -- L: floor will be grass and flowers
- dungeon(god_quest.DUNGEON_GOD).floor1 = 89
- dungeon(god_quest.DUNGEON_GOD).floor2 = 82
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[1] = 85
- dungeon(god_quest.DUNGEON_GOD).floor_percent2[1] = 15
-
- -- A: Outer wall is 'hail stone wall', inner wall 'dense fog'. Filled at max smoothing, like islands.
- dungeon(god_quest.DUNGEON_GOD).fill_type1 = 211
- dungeon(god_quest.DUNGEON_GOD).fill_percent1[1] = 100
- dungeon(god_quest.DUNGEON_GOD).outer_wall = 210
- dungeon(god_quest.DUNGEON_GOD).inner_wall = 211
- dungeon(god_quest.DUNGEON_GOD).fill_method = 4
-
- -- O: Varda likes magical items and tools, not much treasure or weapons
- dungeon(god_quest.DUNGEON_GOD).objs.treasure = 15
- dungeon(god_quest.DUNGEON_GOD).objs.combat = 5
- dungeon(god_quest.DUNGEON_GOD).objs.magic = 55
- dungeon(god_quest.DUNGEON_GOD).objs.tools = 25
-
- -- F: It's open, goes up like a tower, give it a few interesting rooms, make the monsters hard(ish).
- dungeon(god_quest.DUNGEON_GOD).flags1 = bor(DF1_NO_DOORS, DF1_TOWER, DF1_CAVERN, DF1_ADJUST_LEVEL_1)
- dungeon(god_quest.DUNGEON_GOD).flags2 = bor(DF2_NO_SHAFT, DF2_ADJUST_LEVEL_PLAYER)
-
- -- R:
- dungeon(god_quest.DUNGEON_GOD).rules[1].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[1].percent = 20
- dungeon(god_quest.DUNGEON_GOD).rules[2].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[2].percent = 20
- dungeon(god_quest.DUNGEON_GOD).rules[3].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[3].percent = 20
- dungeon(god_quest.DUNGEON_GOD).rules[4].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[4].percent = 20
- dungeon(god_quest.DUNGEON_GOD).rules[5].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[5].percent = 20
-
- -- M: We want air(poison-type) or flying characters. Orcs too.
- dungeon(god_quest.DUNGEON_GOD).rules[1].mflags2 = RF2_INVISIBLE
- dungeon(god_quest.DUNGEON_GOD).rules[2].mflags3 = bor(RF3_ORC, RF3_IM_POIS)
- dungeon(god_quest.DUNGEON_GOD).rules[3].mflags4 = bor(RF4_BR_POIS, RF4_BR_GRAV)
- dungeon(god_quest.DUNGEON_GOD).rules[4].mflags5 = RF5_BA_POIS
- dungeon(god_quest.DUNGEON_GOD).rules[5].mflags7 = RF7_CAN_FLY
-
-
+ quest_god_set_god_dungeon_attributes_varda()
elseif player.pgod == GOD_ULMO then
-
- -- Mandos dungeon is basically Tulkas, except with undead.
- -- W: but with lots of monsters
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_level = 20
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_chance = 120
-
- -- L: floor is dirt
- dungeon(god_quest.DUNGEON_GOD).floor1 = 88
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[1] = 100
-
- -- A: Cheat: walls are water.
- dungeon(god_quest.DUNGEON_GOD).fill_type1 = 187
- dungeon(god_quest.DUNGEON_GOD).fill_percent1[1] = 100
- dungeon(god_quest.DUNGEON_GOD).outer_wall = 238
- dungeon(god_quest.DUNGEON_GOD).inner_wall = 84
- dungeon(god_quest.DUNGEON_GOD).fill_method = 0
-
- -- O: Lots of treasure, not much else.
- dungeon(god_quest.DUNGEON_GOD).objs.treasure = 90
- dungeon(god_quest.DUNGEON_GOD).objs.combat = 0
- dungeon(god_quest.DUNGEON_GOD).objs.magic = 5
- dungeon(god_quest.DUNGEON_GOD).objs.tools = 5
-
- -- F: fairly standard
- dungeon(god_quest.DUNGEON_GOD).flags1 = bor(DF1_NO_DESTROY, DF1_ADJUST_LEVEL_2)
- dungeon(god_quest.DUNGEON_GOD).flags2 = DF2_ADJUST_LEVEL_PLAYER
-
- -- R:
- dungeon(god_quest.DUNGEON_GOD).rules[1].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[1].percent = 35
- dungeon(god_quest.DUNGEON_GOD).rules[2].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[2].percent = 30
- dungeon(god_quest.DUNGEON_GOD).rules[3].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[3].percent = 30
-
- -- M: Aquatic creatures only.
- dungeon(god_quest.DUNGEON_GOD).rules[1].mflags3 = RF7_CAN_FLY
- dungeon(god_quest.DUNGEON_GOD).rules[2].mflags3 = RF7_AQUATIC
- dungeon(god_quest.DUNGEON_GOD).rules[3].mflags3 = RF3_RES_WATE
-
+ quest_god_set_god_dungeon_attributes_ulmo()
elseif player.pgod == GOD_MANDOS then
-
- -- Mandos dungeon is basically Tulkas, except with undead.
- -- W: but with lots of monsters
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_level = 20
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_chance = 120
-
- -- L: floor is normal
- dungeon(god_quest.DUNGEON_GOD).floor1 = 1
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[1] = 100
-
- -- A: Granite walls
- dungeon(god_quest.DUNGEON_GOD).fill_type1 = 56
- dungeon(god_quest.DUNGEON_GOD).fill_percent1[1] = 100
- dungeon(god_quest.DUNGEON_GOD).outer_wall = 58
- dungeon(god_quest.DUNGEON_GOD).inner_wall = 57
- dungeon(god_quest.DUNGEON_GOD).fill_method = 0
-
- -- O: Loads of combat drops
- dungeon(god_quest.DUNGEON_GOD).objs.treasure = 10
- dungeon(god_quest.DUNGEON_GOD).objs.combat = 70
- dungeon(god_quest.DUNGEON_GOD).objs.magic = 5
- dungeon(god_quest.DUNGEON_GOD).objs.tools = 15
-
- -- F: fairly standard
- dungeon(god_quest.DUNGEON_GOD).flags1 = bor(DF1_NO_DESTROY, DF1_ADJUST_LEVEL_2)
- dungeon(god_quest.DUNGEON_GOD).flags2 = DF2_ADJUST_LEVEL_PLAYER
-
- -- R:
- dungeon(god_quest.DUNGEON_GOD).rules[1].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[1].percent = 100
-
- -- M: vampires!
- dungeon(god_quest.DUNGEON_GOD).rules[1].r_char = "V"
- dungeon(god_quest.DUNGEON_GOD).rules[1].mflags3 = bor(RF3_UNDEAD, RF3_EVIL)
-
+ quest_god_set_god_dungeon_attributes_mandos()
end
-- W: All dungeons are 5 levels deep, and created at 2/3 of the player clvl when the quest is given
diff --git a/lib/scpt/god.lua b/lib/scpt/god.lua
index bb7aa92c..1b668b47 100644
--- a/lib/scpt/god.lua
+++ b/lib/scpt/god.lua
@@ -273,225 +273,15 @@ function set_god_dungeon_attributes()
-- dungeon properties altered according to which god player is worshipping,
if player.pgod == GOD_ERU then
-
- -- The Eru temple is based on Meneltarma.
- -- W: Not too many monsters (they'll be tough though, with big levels)
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_level = 14
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_chance = 200
-
- -- L: Dirt and grass. More dirt at bottom, more grass at top. rocky ground would be nice
- dungeon(god_quest.DUNGEON_GOD).floor1 = 88
- dungeon(god_quest.DUNGEON_GOD).floor2 = 89
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[1] = 70
- dungeon(god_quest.DUNGEON_GOD).floor_percent2[1] = 30
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[2] = 10
- dungeon(god_quest.DUNGEON_GOD).floor_percent2[2] = 90
-
- -- A: Outer wall mountain chain. other walls granite
- dungeon(god_quest.DUNGEON_GOD).fill_type1 = 97
- dungeon(god_quest.DUNGEON_GOD).fill_percent1[1] = 100
- dungeon(god_quest.DUNGEON_GOD).outer_wall = 57
- dungeon(god_quest.DUNGEON_GOD).inner_wall = 97
- dungeon(god_quest.DUNGEON_GOD).fill_method = 2
-
- -- O: "At Meneltarma no weapon or tool had ever been borne" (but invaders would have left a small number)
- dungeon(god_quest.DUNGEON_GOD).objs.treasure = 45
- dungeon(god_quest.DUNGEON_GOD).objs.combat = 5
- dungeon(god_quest.DUNGEON_GOD).objs.magic = 45
- dungeon(god_quest.DUNGEON_GOD).objs.tools = 5
-
- -- F: A large pillar, with stairs created at edges. (You can't climb a rock through the middle, can you?)
- dungeon(god_quest.DUNGEON_GOD).flags1 = bor(DF1_BIG, DF1_NO_DOORS, DF1_CIRCULAR_ROOMS, DF1_EMPTY, DF1_TOWER, DF1_FLAT, DF1_ADJUST_LEVEL_2)
- dungeon(god_quest.DUNGEON_GOD).flags2 = bor(DF2_ADJUST_LEVEL_1_2, DF2_NO_SHAFT, DF2_ADJUST_LEVEL_PLAYER)
-
- -- R:
- dungeon(god_quest.DUNGEON_GOD).rules[1].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[1].percent = 50
-
- -- M: We want evil or flying characters
- dungeon(god_quest.DUNGEON_GOD).rules[1].mflags3 = RF3_EVIL
-
- dungeon(god_quest.DUNGEON_GOD).rules[2].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[2].percent = 50
-
- -- M: We want evil or flying characters
- dungeon(god_quest.DUNGEON_GOD).rules[2].mflags7 = RF7_CAN_FLY
-
-
+ quest_god_set_god_dungeon_attributes_eru()
elseif player.pgod == GOD_MANWE then
-
- -- Manwe's lost temple is high in the clouds
- -- W: Has average number of monsters.
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_level = 18
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_chance = 160
-
-
- -- L: floor will be 'cloud-like vapour' and pools of 'condensing water'
- dungeon(god_quest.DUNGEON_GOD).floor1 = 208
- dungeon(god_quest.DUNGEON_GOD).floor2 = 209
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[1] = 85
- dungeon(god_quest.DUNGEON_GOD).floor_percent2[1] = 15
-
- -- A: Outer wall is 'hail stone wall', inner wall 'dense fog'. FIlled at max smoothing, like islands.
- dungeon(god_quest.DUNGEON_GOD).fill_type1 = 211
- dungeon(god_quest.DUNGEON_GOD).fill_percent1[1] = 100
- dungeon(god_quest.DUNGEON_GOD).outer_wall = 210
- dungeon(god_quest.DUNGEON_GOD).inner_wall = 211
- dungeon(god_quest.DUNGEON_GOD).fill_method = 4
-
- -- O: Can't imagine Manwe having much treasure. Little need for tools in a cloud temple. lots of magical stuff though...
- dungeon(god_quest.DUNGEON_GOD).objs.treasure = 15
- dungeon(god_quest.DUNGEON_GOD).objs.combat = 25
- dungeon(god_quest.DUNGEON_GOD).objs.magic = 55
- dungeon(god_quest.DUNGEON_GOD).objs.tools = 5
-
- -- F: It's open, goes up like a tower, give it a few interesting rooms, make the monsters hard(ish).
- dungeon(god_quest.DUNGEON_GOD).flags1 = bor(DF1_NO_DOORS, DF1_TOWER, DF1_CAVERN, DF1_ADJUST_LEVEL_2)
- dungeon(god_quest.DUNGEON_GOD).flags2 = bor(DF2_NO_SHAFT, DF2_ADJUST_LEVEL_PLAYER)
-
- -- R:
- dungeon(god_quest.DUNGEON_GOD).rules[1].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[1].percent = 20
- dungeon(god_quest.DUNGEON_GOD).rules[2].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[2].percent = 20
- dungeon(god_quest.DUNGEON_GOD).rules[3].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[3].percent = 20
- dungeon(god_quest.DUNGEON_GOD).rules[4].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[4].percent = 20
- dungeon(god_quest.DUNGEON_GOD).rules[5].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[5].percent = 20
-
- -- M: We want air(poison-type) or flying characters. Orcs too. They would have ransacked his elf-loving temple :)
- dungeon(god_quest.DUNGEON_GOD).rules[1].mflags2 = RF2_INVISIBLE
- dungeon(god_quest.DUNGEON_GOD).rules[2].mflags3 = bor(RF3_ORC, RF3_IM_POIS)
- dungeon(god_quest.DUNGEON_GOD).rules[3].mflags4 = bor(RF4_BR_POIS, RF4_BR_GRAV)
- dungeon(god_quest.DUNGEON_GOD).rules[4].mflags5 = RF5_BA_POIS
- dungeon(god_quest.DUNGEON_GOD).rules[5].mflags7 = RF7_CAN_FLY
-
-
+ quest_god_set_god_dungeon_attributes_manwe()
elseif player.pgod == GOD_TULKAS then
-
- -- Tulkas dungeon is quite normal, possibly a bit boring to be honest. Maybe I should add something radical to it.
- -- 'The house of Tulkas in the midmost of Valmar was a house of mirth and revelry. It sprang into the air with many storeys,
- -- and had a tower of bronze and pillars of copper in a wide arcade'
- -- W: but with lots of monsters
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_level = 20
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_chance = 120
-
- -- L: floor is normal
- dungeon(god_quest.DUNGEON_GOD).floor1 = 1
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[1] = 100
-
- -- A: Granite walls
- dungeon(god_quest.DUNGEON_GOD).fill_type1 = 56
- dungeon(god_quest.DUNGEON_GOD).fill_percent1[1] = 100
- dungeon(god_quest.DUNGEON_GOD).outer_wall = 58
- dungeon(god_quest.DUNGEON_GOD).inner_wall = 57
- dungeon(god_quest.DUNGEON_GOD).fill_method = 0
-
- -- O: Loads of combat drops
- dungeon(god_quest.DUNGEON_GOD).objs.treasure = 10
- dungeon(god_quest.DUNGEON_GOD).objs.combat = 70
- dungeon(god_quest.DUNGEON_GOD).objs.magic = 5
- dungeon(god_quest.DUNGEON_GOD).objs.tools = 15
-
- -- F: fairly standard
- dungeon(god_quest.DUNGEON_GOD).flags1 = bor(DF1_NO_DESTROY, DF1_ADJUST_LEVEL_2)
- dungeon(god_quest.DUNGEON_GOD).flags2 = DF2_ADJUST_LEVEL_PLAYER
-
- -- R:
- dungeon(god_quest.DUNGEON_GOD).rules[1].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[1].percent = 100
-
- -- M: plenty demons please
- dungeon(god_quest.DUNGEON_GOD).rules[1].mflags3 = bor(RF3_DEMON, RF3_EVIL)
-
-
+ quest_god_set_god_dungeon_attributes_tulkas()
elseif player.pgod == GOD_MELKOR then
-
- -- Melkors dungeon will be dark, fiery and stuff
- -- Many many monsters! (but prob ADJUST_LEVEL_1_2)
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_level = 24
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_chance = 80
-
-
- -- L: floor is dirt/mud/nether
- dungeon(god_quest.DUNGEON_GOD).floor1 = 88
- dungeon(god_quest.DUNGEON_GOD).floor2 = 94
- dungeon(god_quest.DUNGEON_GOD).floor3 = 102
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[1] = 45
- dungeon(god_quest.DUNGEON_GOD).floor_percent2[1] = 45
- dungeon(god_quest.DUNGEON_GOD).floor_percent3[1] = 10
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[2] = 35
- dungeon(god_quest.DUNGEON_GOD).floor_percent2[2] = 35
- dungeon(god_quest.DUNGEON_GOD).floor_percent3[2] = 30
-
- -- A: Granite walls to fill but glass walls for room perimeters (you can see the nasty monsters coming)
- dungeon(god_quest.DUNGEON_GOD).fill_type1 = 188
- dungeon(god_quest.DUNGEON_GOD).fill_percent1[1] = 100
- dungeon(god_quest.DUNGEON_GOD).outer_wall = 188
- dungeon(god_quest.DUNGEON_GOD).inner_wall = 57
- dungeon(god_quest.DUNGEON_GOD).fill_method = 1
-
- -- O: Even drops
- dungeon(god_quest.DUNGEON_GOD).objs.treasure = 25
- dungeon(god_quest.DUNGEON_GOD).objs.combat = 25
- dungeon(god_quest.DUNGEON_GOD).objs.magic = 25
- dungeon(god_quest.DUNGEON_GOD).objs.tools = 25
-
- -- F: Small, lava rivers, nasty monsters hehehehehe
- dungeon(god_quest.DUNGEON_GOD).flags1 = bor(DF1_SMALL, DF1_LAVA_RIVERS, DF1_ADJUST_LEVEL_1)
- dungeon(god_quest.DUNGEON_GOD).flags2 = bor(DF2_ADJUST_LEVEL_1_2, DF2_ADJUST_LEVEL_PLAYER)
-
- -- R: No restrictions on monsters here
- dungeon(god_quest.DUNGEON_GOD).rules[1].mode = 0
- dungeon(god_quest.DUNGEON_GOD).rules[1].percent = 80
-
- -- R: Apart from making sure we have some GOOD ones
- dungeon(god_quest.DUNGEON_GOD).rules[2].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[2].percent = 20
-
- -- M:
- dungeon(god_quest.DUNGEON_GOD).rules[2].mflags3 = RF3_GOOD
-
+ quest_god_set_god_dungeon_attributes_melkor()
elseif player.pgod == GOD_YAVANNA then
-
- -- Yavannas dungeon will be very natural, tress and stuff.
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_level = 22
- dungeon(god_quest.DUNGEON_GOD).min_m_alloc_chance = 100
-
- -- L: floor is grass/flowers, plus dirt so not always regenerating quick!
- dungeon(god_quest.DUNGEON_GOD).floor1 = 89
- dungeon(god_quest.DUNGEON_GOD).floor2 = 199
- dungeon(god_quest.DUNGEON_GOD).floor3 = 88
- dungeon(god_quest.DUNGEON_GOD).floor_percent1[1] = 40
- dungeon(god_quest.DUNGEON_GOD).floor_percent2[1] = 15
- dungeon(god_quest.DUNGEON_GOD).floor_percent3[1] = 45
-
- -- A: Tree walls to fill, small trees for inner walls
- dungeon(god_quest.DUNGEON_GOD).fill_type1 = 96
- dungeon(god_quest.DUNGEON_GOD).fill_percent1[1] = 100
- dungeon(god_quest.DUNGEON_GOD).outer_wall = 202
- dungeon(god_quest.DUNGEON_GOD).inner_wall = 96
- dungeon(god_quest.DUNGEON_GOD).fill_method = 1
-
- -- O: nt much combat.. tools where ransackers have tried to chop trees down.
- dungeon(god_quest.DUNGEON_GOD).objs.treasure = 20
- dungeon(god_quest.DUNGEON_GOD).objs.combat = 10
- dungeon(god_quest.DUNGEON_GOD).objs.magic = 30
- dungeon(god_quest.DUNGEON_GOD).objs.tools = 40
-
- -- F: Natural looking
- dungeon(god_quest.DUNGEON_GOD).flags1 = bor(DF1_NO_DOORS, DF1_WATER_RIVERS, DF1_NO_DESTROY, DF1_ADJUST_LEVEL_1, DF1_NO_RECALL)
- dungeon(god_quest.DUNGEON_GOD).flags2 = bor(DF2_ADJUST_LEVEL_1_2, DF2_NO_SHAFT, DF2_NO_GENO, DF2_ADJUST_LEVEL_PLAYER)
-
- -- R: Demons, Undead, non-living
- dungeon(god_quest.DUNGEON_GOD).rules[1].mode = 3
- dungeon(god_quest.DUNGEON_GOD).rules[1].percent = 100
-
- -- M:
- dungeon(god_quest.DUNGEON_GOD).rules[1].mflags3 = bor(RF3_DEMON, RF3_UNDEAD, RF3_NONLIVING)
-
+ quest_god_set_god_dungeon_attributes_yavanna()
end
-- W: All dungeons are 5 levels deep, and created at 2/3 of the player clvl when the quest is given
diff --git a/src/plots.h b/src/plots.h
index 31653f36..9ec9bf80 100644
--- a/src/plots.h
+++ b/src/plots.h
@@ -66,3 +66,12 @@ extern bool_ quest_fireproof_describe(FILE *fff);
/******* Plot God Quest **************/
extern void quest_god_place_rand_dung();
extern void quest_god_generate_relic();
+extern void quest_god_set_god_dungeon_attributes_eru();
+extern void quest_god_set_god_dungeon_attributes_manwe();
+extern void quest_god_set_god_dungeon_attributes_tulkas();
+extern void quest_god_set_god_dungeon_attributes_melkor();
+extern void quest_god_set_god_dungeon_attributes_yavanna();
+extern void quest_god_set_god_dungeon_attributes_aule();
+extern void quest_god_set_god_dungeon_attributes_varda();
+extern void quest_god_set_god_dungeon_attributes_ulmo();
+extern void quest_god_set_god_dungeon_attributes_mandos();
diff --git a/src/q_god.c b/src/q_god.c
index 5725c984..9b302011 100644
--- a/src/q_god.c
+++ b/src/q_god.c
@@ -183,3 +183,441 @@ void quest_god_generate_relic()
/* Reset some variables */
set_relic_gen_tries(0);
}
+
+void quest_god_set_god_dungeon_attributes_eru()
+{
+ /* The Eru temple is based on Meneltarma. */
+
+ /* W: Not too many monsters (they'll be tough though, with big
+ * levels) */
+ d_info[DUNGEON_GOD].min_m_alloc_level = 14;
+ d_info[DUNGEON_GOD].max_m_alloc_chance = 200;
+
+ /* L: Dirt and grass. More dirt at bottom, more grass at
+ * top. rocky ground would be nice */
+ d_info[DUNGEON_GOD].floor1 = 88;
+ d_info[DUNGEON_GOD].floor2 = 89;
+ d_info[DUNGEON_GOD].floor_percent1[0] = 70;
+ d_info[DUNGEON_GOD].floor_percent2[0] = 30;
+ d_info[DUNGEON_GOD].floor_percent1[1] = 10;
+ d_info[DUNGEON_GOD].floor_percent2[1] = 90;
+
+ /* A: Outer wall mountain chain. other walls granite */
+ d_info[DUNGEON_GOD].fill_type1 = 97;
+ d_info[DUNGEON_GOD].fill_percent1[0] = 100;
+ d_info[DUNGEON_GOD].outer_wall = 57;
+ d_info[DUNGEON_GOD].inner_wall = 97;
+ d_info[DUNGEON_GOD].fill_method = 2;
+
+ /* O: "At Meneltarma no weapon or tool had ever been borne"
+ * (but invaders would have left a small number) */
+ d_info[DUNGEON_GOD].objs.treasure = 45;
+ d_info[DUNGEON_GOD].objs.combat = 5;
+ d_info[DUNGEON_GOD].objs.magic = 45;
+ d_info[DUNGEON_GOD].objs.tools = 5;
+
+ /* F: A large pillar, with stairs created at edges. (You can't
+ * climb a rock through the middle, can you?) */
+ d_info[DUNGEON_GOD].flags1 =
+ DF1_BIG | DF1_NO_DOORS | DF1_CIRCULAR_ROOMS |
+ DF1_EMPTY | DF1_TOWER | DF1_FLAT | DF1_ADJUST_LEVEL_2;
+ d_info[DUNGEON_GOD].flags2 =
+ DF2_ADJUST_LEVEL_1_2 |
+ DF2_NO_SHAFT |
+ DF2_ADJUST_LEVEL_PLAYER;
+
+ /* R: */
+ d_info[DUNGEON_GOD].rules[0].mode = 3;
+ d_info[DUNGEON_GOD].rules[0].percent = 50;
+
+ /* M: We want evil or flying characters */
+ d_info[DUNGEON_GOD].rules[0].mflags3 = RF3_EVIL;
+
+ d_info[DUNGEON_GOD].rules[1].mode = 3;
+ d_info[DUNGEON_GOD].rules[1].percent = 50;
+
+ /* M: We want evil or flying characters */
+ d_info[DUNGEON_GOD].rules[1].mflags7 = RF7_CAN_FLY;
+}
+
+void quest_god_set_god_dungeon_attributes_manwe()
+{
+ /* Manwe's lost temple is high in the clouds */
+
+ /* W: Has average number of monsters. */
+ d_info[DUNGEON_GOD].min_m_alloc_level = 18;
+ d_info[DUNGEON_GOD].max_m_alloc_chance = 160;
+
+ /* L: floor will be 'cloud-like vapour' and pools of
+ * 'condensing water' */
+ d_info[DUNGEON_GOD].floor1 = 208;
+ d_info[DUNGEON_GOD].floor2 = 209;
+ d_info[DUNGEON_GOD].floor_percent1[0] = 85;
+ d_info[DUNGEON_GOD].floor_percent2[0] = 15;
+
+ /* A: Outer wall is 'hail stone wall', inner wall 'dense
+ * fog'. FIlled at max smoothing, like islands. */
+ d_info[DUNGEON_GOD].fill_type1 = 211;
+ d_info[DUNGEON_GOD].fill_percent1[0] = 100;
+ d_info[DUNGEON_GOD].outer_wall = 210;
+ d_info[DUNGEON_GOD].inner_wall = 211;
+ d_info[DUNGEON_GOD].fill_method = 4;
+
+ /* O: Can't imagine Manwe having much treasure. Little need
+ * for tools in a cloud temple. lots of magical stuff
+ * though... */
+ d_info[DUNGEON_GOD].objs.treasure = 15;
+ d_info[DUNGEON_GOD].objs.combat = 25;
+ d_info[DUNGEON_GOD].objs.magic = 55;
+ d_info[DUNGEON_GOD].objs.tools = 5;
+
+ /* F: It's open, goes up like a tower, give it a few
+ * interesting rooms, make the monsters hard(ish). */
+ d_info[DUNGEON_GOD].flags1 =
+ DF1_NO_DOORS | DF1_TOWER |
+ DF1_CAVERN | DF1_ADJUST_LEVEL_2;
+ d_info[DUNGEON_GOD].flags2 =
+ DF2_NO_SHAFT | DF2_ADJUST_LEVEL_PLAYER;
+
+ /* R: */
+ d_info[DUNGEON_GOD].rules[0].mode = 3;
+ d_info[DUNGEON_GOD].rules[0].percent = 20;
+ d_info[DUNGEON_GOD].rules[1].mode = 3;
+ d_info[DUNGEON_GOD].rules[1].percent = 20;
+ d_info[DUNGEON_GOD].rules[2].mode = 3;
+ d_info[DUNGEON_GOD].rules[2].percent = 20;
+ d_info[DUNGEON_GOD].rules[3].mode = 3;
+ d_info[DUNGEON_GOD].rules[3].percent = 20;
+ d_info[DUNGEON_GOD].rules[4].mode = 3;
+ d_info[DUNGEON_GOD].rules[4].percent = 20;
+
+ /* M: We want air(poison-type) or flying characters. Orcs
+ * too. They would have ransacked his elf-loving temple :) */
+ d_info[DUNGEON_GOD].rules[0].mflags2 = RF2_INVISIBLE;
+ d_info[DUNGEON_GOD].rules[1].mflags3 = RF3_ORC | RF3_IM_POIS;
+ d_info[DUNGEON_GOD].rules[2].mflags4 = RF4_BR_POIS | RF4_BR_GRAV;
+ d_info[DUNGEON_GOD].rules[3].mflags5 = RF5_BA_POIS;
+ d_info[DUNGEON_GOD].rules[4].mflags7 = RF7_CAN_FLY;
+}
+
+void quest_god_set_god_dungeon_attributes_tulkas()
+{
+ /* Tulkas dungeon is quite normal, possibly a bit boring to be
+ * honest. Maybe I should add something radical to it. 'The
+ * house of Tulkas in the midmost of Valmar was a house of
+ * mirth and revelry. It sprang into the air with many
+ * storeys, and had a tower of bronze and pillars of copper in
+ * a wide arcade'
+ */
+
+ /* W: but with lots of monsters */
+ d_info[DUNGEON_GOD].min_m_alloc_level = 20;
+ d_info[DUNGEON_GOD].max_m_alloc_chance = 120;
+
+ /* L: floor is normal */
+ d_info[DUNGEON_GOD].floor1 = 1;
+ d_info[DUNGEON_GOD].floor_percent1[0] = 100;
+
+ /* A: Granite walls */
+ d_info[DUNGEON_GOD].fill_type1 = 56;
+ d_info[DUNGEON_GOD].fill_percent1[0] = 100;
+ d_info[DUNGEON_GOD].outer_wall = 58;
+ d_info[DUNGEON_GOD].inner_wall = 57;
+ d_info[DUNGEON_GOD].fill_method = 0;
+
+ /* O: Loads of combat drops */
+ d_info[DUNGEON_GOD].objs.treasure = 10;
+ d_info[DUNGEON_GOD].objs.combat = 70;
+ d_info[DUNGEON_GOD].objs.magic = 5;
+ d_info[DUNGEON_GOD].objs.tools = 15;
+
+ /* F: fairly standard */
+ d_info[DUNGEON_GOD].flags1 = DF1_NO_DESTROY | DF1_ADJUST_LEVEL_2;
+ d_info[DUNGEON_GOD].flags2 = DF2_ADJUST_LEVEL_PLAYER;
+
+ /* R: */
+ d_info[DUNGEON_GOD].rules[0].mode = 3;
+ d_info[DUNGEON_GOD].rules[0].percent = 100;
+
+ /* M: plenty demons please */
+ d_info[DUNGEON_GOD].rules[0].mflags3 = RF3_DEMON | RF3_EVIL;
+}
+
+void quest_god_set_god_dungeon_attributes_melkor()
+{
+ /* Melkors dungeon will be dark, fiery and stuff */
+
+ /* Many many monsters! (but prob ADJUST_LEVEL_1_2) */
+ d_info[DUNGEON_GOD].min_m_alloc_level = 24;
+ d_info[DUNGEON_GOD].max_m_alloc_chance = 80;
+
+ /* L: floor is dirt/mud/nether */
+ d_info[DUNGEON_GOD].floor1 = 88;
+ d_info[DUNGEON_GOD].floor2 = 94;
+ d_info[DUNGEON_GOD].floor3 = 102;
+ d_info[DUNGEON_GOD].floor_percent1[0] = 45;
+ d_info[DUNGEON_GOD].floor_percent2[0] = 45;
+ d_info[DUNGEON_GOD].floor_percent3[0] = 10;
+ d_info[DUNGEON_GOD].floor_percent1[1] = 35;
+ d_info[DUNGEON_GOD].floor_percent2[1] = 35;
+ d_info[DUNGEON_GOD].floor_percent3[1] = 30;
+
+ /* A: Granite walls to fill but glass walls for room
+ * perimeters (you can see the nasty monsters coming) */
+ d_info[DUNGEON_GOD].fill_type1 = 188;
+ d_info[DUNGEON_GOD].fill_percent1[0] = 100;
+ d_info[DUNGEON_GOD].outer_wall = 188;
+ d_info[DUNGEON_GOD].inner_wall = 57;
+ d_info[DUNGEON_GOD].fill_method = 1;
+
+ /* O: Even drops */
+ d_info[DUNGEON_GOD].objs.treasure = 25;
+ d_info[DUNGEON_GOD].objs.combat = 25;
+ d_info[DUNGEON_GOD].objs.magic = 25;
+ d_info[DUNGEON_GOD].objs.tools = 25;
+
+ /* F: Small, lava rivers, nasty monsters hehehehehe */
+ d_info[DUNGEON_GOD].flags1 = DF1_SMALL | DF1_LAVA_RIVERS | DF1_ADJUST_LEVEL_1;
+ d_info[DUNGEON_GOD].flags2 = DF2_ADJUST_LEVEL_1_2 | DF2_ADJUST_LEVEL_PLAYER;
+
+ /* R: No restrictions on monsters here */
+ d_info[DUNGEON_GOD].rules[0].mode = 0;
+ d_info[DUNGEON_GOD].rules[0].percent = 80;
+
+ /* R: Apart from making sure we have some GOOD ones */
+ d_info[DUNGEON_GOD].rules[1].mode = 3;
+ d_info[DUNGEON_GOD].rules[1].percent = 20;
+
+ /* M: */
+ d_info[DUNGEON_GOD].rules[1].mflags3 = RF3_GOOD;
+}
+
+void quest_god_set_god_dungeon_attributes_yavanna()
+{
+ /* Yavannas dungeon will be very natural, tress and stuff. */
+
+ d_info[DUNGEON_GOD].min_m_alloc_level = 22;
+ d_info[DUNGEON_GOD].max_m_alloc_chance = 100;
+
+ /* L: floor is grass/flowers, plus dirt so not always
+ * regenerating quick! */
+ d_info[DUNGEON_GOD].floor1 = 89;
+ d_info[DUNGEON_GOD].floor2 = 199;
+ d_info[DUNGEON_GOD].floor3 = 88;
+ d_info[DUNGEON_GOD].floor_percent1[0] = 40;
+ d_info[DUNGEON_GOD].floor_percent2[0] = 15;
+ d_info[DUNGEON_GOD].floor_percent3[0] = 45;
+
+ /* A: Tree walls to fill, small trees for inner walls */
+ d_info[DUNGEON_GOD].fill_type1 = 96;
+ d_info[DUNGEON_GOD].fill_percent1[0] = 100;
+ d_info[DUNGEON_GOD].outer_wall = 202;
+ d_info[DUNGEON_GOD].inner_wall = 96;
+ d_info[DUNGEON_GOD].fill_method = 1;
+
+ /* O: not much combat.. tools where ransackers have tried to
+ * chop trees down. */
+ d_info[DUNGEON_GOD].objs.treasure = 20;
+ d_info[DUNGEON_GOD].objs.combat = 10;
+ d_info[DUNGEON_GOD].objs.magic = 30;
+ d_info[DUNGEON_GOD].objs.tools = 40;
+
+ /* F: Natural looking */
+ d_info[DUNGEON_GOD].flags1 =
+ DF1_NO_DOORS | DF1_WATER_RIVERS |
+ DF1_NO_DESTROY | DF1_ADJUST_LEVEL_1 |
+ DF1_NO_RECALL;
+ d_info[DUNGEON_GOD].flags2 =
+ DF2_ADJUST_LEVEL_1_2 | DF2_NO_SHAFT |
+ DF2_NO_GENO | DF2_ADJUST_LEVEL_PLAYER;
+
+ /* R: Demons, Undead, non-living */
+ d_info[DUNGEON_GOD].rules[0].mode = 3;
+ d_info[DUNGEON_GOD].rules[0].percent = 100;
+
+ /* M: */
+ d_info[DUNGEON_GOD].rules[0].mflags3 =
+ RF3_DEMON | RF3_UNDEAD | RF3_NONLIVING;
+}
+
+void quest_god_set_god_dungeon_attributes_aule()
+{
+ d_info[DUNGEON_GOD].min_m_alloc_level = 24;
+ d_info[DUNGEON_GOD].max_m_alloc_chance = 80;
+
+ /* L: floor is dirt/mud/shallow water */
+ d_info[DUNGEON_GOD].floor1 = 88;
+ d_info[DUNGEON_GOD].floor2 = 94;
+ d_info[DUNGEON_GOD].floor3 = 84;
+ d_info[DUNGEON_GOD].floor_percent1[0] = 45;
+ d_info[DUNGEON_GOD].floor_percent2[0] = 45;
+ d_info[DUNGEON_GOD].floor_percent3[0] = 10;
+ d_info[DUNGEON_GOD].floor_percent1[1] = 35;
+ d_info[DUNGEON_GOD].floor_percent2[1] = 35;
+ d_info[DUNGEON_GOD].floor_percent3[1] = 30;
+
+ /* A: Grey mountains, inner walls are low hills */
+ d_info[DUNGEON_GOD].fill_type1 = 216;
+ d_info[DUNGEON_GOD].fill_percent1[0] = 100;
+ d_info[DUNGEON_GOD].outer_wall = 216;
+ d_info[DUNGEON_GOD].inner_wall = 213;
+ d_info[DUNGEON_GOD].fill_method = 1;
+
+ /* O: Weapons and tools only */
+ d_info[DUNGEON_GOD].objs.treasure = 0;
+ d_info[DUNGEON_GOD].objs.combat = 50;
+ d_info[DUNGEON_GOD].objs.magic = 0;
+ d_info[DUNGEON_GOD].objs.tools = 50;
+
+ /* F: Small, no destroyed levels, min monster level = dungeon
+ * level */
+ d_info[DUNGEON_GOD].flags1 =
+ DF1_SMALL | DF1_NO_DESTROY |
+ DF1_ADJUST_LEVEL_1 | DF1_NO_STREAMERS;
+
+ /* R: No restrictions on monsters here */
+ d_info[DUNGEON_GOD].rules[0].mode = 0;
+ d_info[DUNGEON_GOD].rules[0].percent = 80;
+}
+
+void quest_god_set_god_dungeon_attributes_varda()
+{
+ /* Varda lives with Manwe, so high in the clouds */
+
+ /* W: Has average number of monsters. */
+ d_info[DUNGEON_GOD].min_m_alloc_level = 18;
+ d_info[DUNGEON_GOD].max_m_alloc_chance = 160;
+
+ /* L: floor will be grass and flowers */
+ d_info[DUNGEON_GOD].floor1 = 89;
+ d_info[DUNGEON_GOD].floor2 = 82;
+ d_info[DUNGEON_GOD].floor_percent1[0] = 85;
+ d_info[DUNGEON_GOD].floor_percent2[0] = 15;
+
+ /* A: Outer wall is 'hail stone wall', inner wall 'dense
+ * fog'. Filled at max smoothing, like islands. */
+ d_info[DUNGEON_GOD].fill_type1 = 211;
+ d_info[DUNGEON_GOD].fill_percent1[0] = 100;
+ d_info[DUNGEON_GOD].outer_wall = 210;
+ d_info[DUNGEON_GOD].inner_wall = 211;
+ d_info[DUNGEON_GOD].fill_method = 4;
+
+ /* O: Varda likes magical items and tools, not much treasure
+ * or weapons */
+ d_info[DUNGEON_GOD].objs.treasure = 15;
+ d_info[DUNGEON_GOD].objs.combat = 5;
+ d_info[DUNGEON_GOD].objs.magic = 55;
+ d_info[DUNGEON_GOD].objs.tools = 25;
+
+ /* F: It's open, goes up like a tower, give it a few
+ * interesting rooms, make the monsters hard(ish). */
+ d_info[DUNGEON_GOD].flags1 =
+ DF1_NO_DOORS | DF1_TOWER |
+ DF1_CAVERN | DF1_ADJUST_LEVEL_1;
+ d_info[DUNGEON_GOD].flags2 =
+ DF2_NO_SHAFT | DF2_ADJUST_LEVEL_PLAYER;
+
+ /* R: */
+ d_info[DUNGEON_GOD].rules[0].mode = 3;
+ d_info[DUNGEON_GOD].rules[0].percent = 20;
+ d_info[DUNGEON_GOD].rules[1].mode = 3;
+ d_info[DUNGEON_GOD].rules[1].percent = 20;
+ d_info[DUNGEON_GOD].rules[2].mode = 3;
+ d_info[DUNGEON_GOD].rules[2].percent = 20;
+ d_info[DUNGEON_GOD].rules[3].mode = 3;
+ d_info[DUNGEON_GOD].rules[3].percent = 20;
+ d_info[DUNGEON_GOD].rules[4].mode = 3;
+ d_info[DUNGEON_GOD].rules[4].percent = 20;
+
+ /* M: We want air(poison-type) or flying characters. Orcs too. */
+ d_info[DUNGEON_GOD].rules[0].mflags2 = RF2_INVISIBLE;
+ d_info[DUNGEON_GOD].rules[1].mflags3 = RF3_ORC | RF3_IM_POIS;
+ d_info[DUNGEON_GOD].rules[2].mflags4 = RF4_BR_POIS | RF4_BR_GRAV;
+ d_info[DUNGEON_GOD].rules[3].mflags5 = RF5_BA_POIS;
+ d_info[DUNGEON_GOD].rules[4].mflags7 = RF7_CAN_FLY;
+}
+
+void quest_god_set_god_dungeon_attributes_ulmo()
+{
+ /* Ulmo dungeon is basically Tulkas, except with acquatic creatures. */
+
+ /* W: but with lots of monsters */
+ d_info[DUNGEON_GOD].min_m_alloc_level = 20;
+ d_info[DUNGEON_GOD].max_m_alloc_chance = 120;
+
+ /* L: floor is dirt */
+ d_info[DUNGEON_GOD].floor1 = 88;
+ d_info[DUNGEON_GOD].floor_percent1[0] = 100;
+
+ /* A: Cheat: walls are water. */
+ d_info[DUNGEON_GOD].fill_type1 = 187;
+ d_info[DUNGEON_GOD].fill_percent1[0] = 100;
+ d_info[DUNGEON_GOD].outer_wall = 238;
+ d_info[DUNGEON_GOD].inner_wall = 84;
+ d_info[DUNGEON_GOD].fill_method = 0;
+
+ /* O: Lots of treasure, not much else. */
+ d_info[DUNGEON_GOD].objs.treasure = 90;
+ d_info[DUNGEON_GOD].objs.combat = 0;
+ d_info[DUNGEON_GOD].objs.magic = 5;
+ d_info[DUNGEON_GOD].objs.tools = 5;
+
+ /* F: fairly standard */
+ d_info[DUNGEON_GOD].flags1 = DF1_NO_DESTROY | DF1_ADJUST_LEVEL_2;
+ d_info[DUNGEON_GOD].flags2 = DF2_ADJUST_LEVEL_PLAYER;
+
+ /* R: */
+ d_info[DUNGEON_GOD].rules[0].mode = 3;
+ d_info[DUNGEON_GOD].rules[0].percent = 35;
+ d_info[DUNGEON_GOD].rules[1].mode = 3;
+ d_info[DUNGEON_GOD].rules[1].percent = 30;
+ d_info[DUNGEON_GOD].rules[2].mode = 3;
+ d_info[DUNGEON_GOD].rules[2].percent = 30;
+
+ /* M: Aquatic creatures only. */
+ d_info[DUNGEON_GOD].rules[0].mflags3 = RF7_CAN_FLY;
+ d_info[DUNGEON_GOD].rules[1].mflags3 = RF7_AQUATIC;
+ d_info[DUNGEON_GOD].rules[2].mflags3 = RF3_RES_WATE;
+}
+
+void quest_god_set_god_dungeon_attributes_mandos()
+{
+ /* Mandos dungeon is basically Tulkas, except with undead. */
+
+ /* W: but with lots of monsters */
+ d_info[DUNGEON_GOD].min_m_alloc_level = 20;
+ d_info[DUNGEON_GOD].max_m_alloc_chance = 120;
+
+ /* L: floor is normal */
+ d_info[DUNGEON_GOD].floor1 = 1;
+ d_info[DUNGEON_GOD].floor_percent1[0] = 100;
+
+ /* A: Granite walls */
+ d_info[DUNGEON_GOD].fill_type1 = 56;
+ d_info[DUNGEON_GOD].fill_percent1[0] = 100;
+ d_info[DUNGEON_GOD].outer_wall = 58;
+ d_info[DUNGEON_GOD].inner_wall = 57;
+ d_info[DUNGEON_GOD].fill_method = 0;
+
+ /* O: Loads of combat drops */
+ d_info[DUNGEON_GOD].objs.treasure = 10;
+ d_info[DUNGEON_GOD].objs.combat = 70;
+ d_info[DUNGEON_GOD].objs.magic = 5;
+ d_info[DUNGEON_GOD].objs.tools = 15;
+
+ /* F: fairly standard */
+ d_info[DUNGEON_GOD].flags1 = DF1_NO_DESTROY | DF1_ADJUST_LEVEL_2;
+ d_info[DUNGEON_GOD].flags2 = DF2_ADJUST_LEVEL_PLAYER;
+
+ /* R: */
+ d_info[DUNGEON_GOD].rules[0].mode = 3;
+ d_info[DUNGEON_GOD].rules[0].percent = 100;
+
+ /* M: vampires! */
+ d_info[DUNGEON_GOD].rules[0].r_char[0] = 'V';
+ d_info[DUNGEON_GOD].rules[0].r_char[1] = '\0';
+ d_info[DUNGEON_GOD].rules[0].r_char[2] = '\0';
+ d_info[DUNGEON_GOD].rules[0].r_char[3] = '\0';
+ d_info[DUNGEON_GOD].rules[0].r_char[4] = '\0';
+ d_info[DUNGEON_GOD].rules[0].mflags3 = RF3_UNDEAD | RF3_EVIL;
+}
diff --git a/src/quest.pkg b/src/quest.pkg
index e5780e3f..c2610d9e 100644
--- a/src/quest.pkg
+++ b/src/quest.pkg
@@ -165,3 +165,12 @@ extern void desc_quest @ quest_desc(int q_idx, int d, char *desc);
*/
extern void quest_god_place_rand_dung();
extern void quest_god_generate_relic();
+extern void quest_god_set_god_dungeon_attributes_eru();
+extern void quest_god_set_god_dungeon_attributes_manwe();
+extern void quest_god_set_god_dungeon_attributes_tulkas();
+extern void quest_god_set_god_dungeon_attributes_melkor();
+extern void quest_god_set_god_dungeon_attributes_yavanna();
+extern void quest_god_set_god_dungeon_attributes_aule();
+extern void quest_god_set_god_dungeon_attributes_varda();
+extern void quest_god_set_god_dungeon_attributes_ulmo();
+extern void quest_god_set_god_dungeon_attributes_mandos();