Unlock your quest by killing your quest leader

Allow killing your quest leader, just to make games winnable if you
converted before doing the quest.
Boost the quest leaders and give them some equipment. King Arthur
gets Excalibur. Killing quest leader gives really bad luck and
makes your god angry at you, and killing quest guardians gives
smaller penalties.

This is based on both the EvilHack implementation by
k21971 <keith.simpson1971@gmail.com>, and xNetHack
implementation by copperwater <aosdict@gmail.com>.
This commit is contained in:
Pasi Kallinen
2021-05-23 08:55:58 +03:00
parent 882efdcf58
commit 20cbadcf85
21 changed files with 135 additions and 68 deletions

View File

@@ -70,7 +70,10 @@ des.door("locked",24,14)
des.door("closed",31,14)
des.door("locked",49,14)
-- Lord Carnarvon
des.monster("Lord Carnarvon", 25, 10)
des.monster({ id = "Lord Carnarvon", coord = {25, 10}, inventory = function()
des.object({ id = "fedora", spe = 5 });
des.object({ id = "bullwhip", spe = 4 });
end })
-- The treasure of Lord Carnarvon
des.object("chest", 25, 10)
-- student guards for the audience chamber

View File

@@ -69,7 +69,10 @@ des.door("open",23,13)
des.door("open",25,10)
des.door("open",28,05)
-- Elder
des.monster("Pelias", 10, 07)
des.monster({ id = "Pelias", coord = {10, 07}, inventory = function()
des.object({ id = "runesword", spe = 5 });
des.object({ id = "chain mail", spe = 5 });
end })
-- The treasure of Pelias
des.object("chest", 09, 05)
-- chieftain guards for the audience chamber

View File

@@ -54,7 +54,10 @@ des.door("locked",19,06)
-- The temple altar (this will force a priest(ess) to be created)
des.altar({ x=36,y=02, align="coaligned", type="shrine" })
-- Shaman Karnov
des.monster("Shaman Karnov", 35, 02)
des.monster({ id = "Shaman Karnov", coord = {35, 02}, inventory = function()
des.object({ id = "leather armor", spe = 5 });
des.object({ id = "club", spe = 5 });
end })
-- The treasure of Shaman Karnov
des.object("chest", 34, 02)
-- neanderthal guards for the audience chamber

View File

@@ -60,7 +60,9 @@ des.door("closed",47,08)
des.door("closed",48,12)
des.door("locked",50,10)
-- Hippocrates
des.monster("Hippocrates", 37, 10)
des.monster({ id = "Hippocrates", coord = {37, 10}, inventory = function()
des.object({ id = "silver dagger", spe = 5 });
end })
-- The treasure of Hippocrates
des.object("chest", 37, 10)
-- intern guards for the audience chamber

View File

@@ -62,7 +62,10 @@ des.door("closed",45,03)
des.door("closed",04,12)
des.door("closed",45,12)
-- King Arthur
des.monster("King Arthur", 09, 07)
des.monster({ id = "King Arthur", coord = {09, 07}, inventory = function()
des.object({ id = "long sword", spe = 4, buc = "blessed", name = "Excalibur" });
des.object({ id = "plate mail", spe = 4 });
end })
-- The treasure of King Arthur
des.object("chest", 09, 07)
-- knight guards for the watchrooms

View File

@@ -71,7 +71,9 @@ des.door("closed",52,14)
-- Unattended Altar - unaligned due to conflict - player must align it.
des.altar({ x=28,y=09, align="noalign", type="altar" })
-- The Grand Master
des.monster("Grand Master", 28, 10)
des.monster({ id = "Grand Master", coord = {28, 10}, inventory = function()
des.object({ id = "robe", spe = 6 });
end })
-- No treasure chest!
-- guards for the audience chamber
des.monster("abbot", 32, 07)

View File

@@ -71,7 +71,10 @@ des.door("closed",52,14)
-- Unattended Altar - unaligned due to conflict - player must align it.
des.altar({ x=28, y=09, align="noalign", type="altar" })
-- High Priest
des.monster("Arch Priest", 28, 10)
des.monster({ id = "Arch Priest", coord = {28, 10}, inventory = function()
des.object({ id = "robe", spe = 4 });
des.object({ id = "mace", spe = 4 });
end })
-- The treasure of High Priest
des.object("chest", 27, 10)
-- knight guards for the audience chamber

View File

@@ -46,7 +46,11 @@ des.stair("down", 10,10)
-- Portal arrival point; just about anywhere on the right hand side of the map
des.levregion({ region = {51,2,77,18}, region_islev = 1, type="branch" })
-- Orion
des.monster("Orion", 20, 10)
des.monster({ id = "Orion", coord = {20, 10}, inventory = function()
des.object({ id = "leather armor", spe = 4 });
des.object({ id = "yumi", spe = 4 });
des.object({ id = "arrow", spe = 4, quantity = 50 });
end })
-- The treasure of Orion
des.object("chest", 20, 10)
-- Guards for the audience chamber

View File

@@ -103,7 +103,11 @@ des.door("closed", 6,18)
des.door("closed", 65,18)
des.door("closed", 68,18)
-- Master of Thieves
des.monster("Master of Thieves", 36, 11)
des.monster({ id = "Master of Thieves", coord = {36, 11}, inventory = function()
des.object({ id = "leather armor", spe = 5 });
des.object({ id = "silver dagger", spe = 4 });
des.object({ id = "dagger", spe = 2, quantity = d(2,4), buc = "not-cursed" });
end })
-- The treasure of Master of Thieves
des.object("chest", 36, 11)
-- thug guards, room #1

View File

@@ -54,7 +54,10 @@ des.door("locked",39,08)
des.door("closed",50,04)
des.door("closed",50,06)
-- Lord Sato
des.monster("Lord Sato", 20, 04)
des.monster({ id = "Lord Sato", coord = {20, 04}, inventory = function()
des.object({ id = "splint mail", spe = 5 });
des.object({ id = "katana", spe = 4 });
end })
-- The treasure of Lord Sato
des.object("chest", 20, 04)
-- roshi guards for the audience chamber

View File

@@ -95,7 +95,10 @@ des.monster("forest centaur")
des.monster("forest centaur")
des.monster("C")
-- Twoflower
des.monster("Twoflower", 64, 03)
des.monster({ id = "Twoflower", coord = {64, 03}, inventory = function()
des.object({ id = "walking shoes", spe = 3 });
des.object({ id = "hawaiian shirt", spe = 3 });
end })
-- The treasure of Twoflower
des.object("chest", 64, 03)
-- guides for the audience chamber

View File

@@ -61,7 +61,10 @@ des.feature("fountain", 53,02)
des.door("locked",26,10)
des.door("locked",43,10)
-- Norn
des.monster("Norn", 35, 10)
des.monster({ id = "Norn", coord = {35, 10}, inventory = function()
des.object({ id = "banded mail", spe = 5 });
des.object({ id = "long sword", spe = 4 });
end })
-- The treasure of the Norn
des.object("chest", 36, 10)
-- valkyrie guards for the audience chamber

View File

@@ -61,7 +61,10 @@ des.door("closed",15,10)
des.door("locked",19,10)
des.door("locked",20,10)
-- Neferet the Green, the quest leader
des.monster("Neferet the Green", 23, 05)
des.monster({ id = "Neferet the Green", coord = {23, 05}, inventory = function()
des.object({ id = "elven cloak", spe = 5 });
des.object({ id = "quarterstaff", spe = 5 });
end })
-- The treasure of the quest leader
des.object("chest", 24, 05)
-- apprentice guards for the audience chamber