summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/dat/database/quotes.txt11
-rw-r--r--crawl-ref/source/dat/descript/monsters.txt4
-rw-r--r--crawl-ref/source/dat/ossuary.des139
-rw-r--r--crawl-ref/source/dungeon.cc3
-rw-r--r--crawl-ref/source/enum.h2
-rw-r--r--crawl-ref/source/mon-data.h12
-rw-r--r--crawl-ref/source/mon-spll.h11
-rw-r--r--crawl-ref/source/monstuff.cc3
-rw-r--r--crawl-ref/source/rltiles/dc-mon.txt3
-rw-r--r--crawl-ref/source/tilepick.cc2
10 files changed, 188 insertions, 2 deletions
diff --git a/crawl-ref/source/dat/database/quotes.txt b/crawl-ref/source/dat/database/quotes.txt
index 3025bc7959..12bb8f1667 100644
--- a/crawl-ref/source/dat/database/quotes.txt
+++ b/crawl-ref/source/dat/database/quotes.txt
@@ -683,6 +683,17 @@ jelly
A splotch, a blotch..."
-Burt Bacharach, "Beware of the Blob"
%%%%
+Menkaure
+
+"Ye men of Egypt, ye have heard your king!
+ I go, and I return not. But the will
+ Of the great Gods is plain; and ye must bring
+ Ill deeds, ill passions, zealous to fulfil
+ Their pleasure, to their feet; and reap their praise,
+ The praise of Gods, rich boon! and length of days."
+ -Matthew Arnold, _Mycerinus_
+
+%%%%
manticore
"Ctesias writeth, that in Aethiopia likewise there is a beast which he calleth Mantichora, having three rankes of teeth, which when they meet togither are let in one within another like the teeth of combes: with the face and eares of a man, with red eyes; of colour sanguine, bodied like a lyon, and having a taile armed with a sting like a scorpion: his voice resembleth the noise of a flute and trumpet sounded together: very swift he is, and mans flesh of all others hee most desireth."
diff --git a/crawl-ref/source/dat/descript/monsters.txt b/crawl-ref/source/dat/descript/monsters.txt
index eb758896c5..671ae35b18 100644
--- a/crawl-ref/source/dat/descript/monsters.txt
+++ b/crawl-ref/source/dat/descript/monsters.txt
@@ -893,6 +893,10 @@ jellyfish
A pulsating glob of transparent flesh, waiting just below the surface to sting you with its many tentacles.
%%%%
+Menkaure
+
+A fair and noble ruler of an ancient and mighty kingdom, mummified after an early death. His faithful priests subsequently infused him with great and powerful magic, seeking to grant him eternal life. Now he is forgotten and reduced to mouldering bandages and dry, brittle bones.
+%%%%
killer bee
A giant bee, bearing a deadly barb which can sting repeatedly.
diff --git a/crawl-ref/source/dat/ossuary.des b/crawl-ref/source/dat/ossuary.des
index f1a160b59f..e430361434 100644
--- a/crawl-ref/source/dat/ossuary.des
+++ b/crawl-ref/source/dat/ossuary.des
@@ -386,3 +386,142 @@ ccc$dd.cc....cc.dd$ccc
ccc$ddccc.<A.cccdd$ccc
cccccccccccccccccccccc
ENDMAP
+
+# Guardian mummies are a clue, and actually quite a scary threat.
+NAME: ossuary_due_mausoleum
+WEIGHT: 5
+ORIENT: encompass
+TAGS: ossuary no_item_gen no_monster_gen no_rotate no_vmirror
+MONS: orc skeleton / kobold skeleton / \
+ hobgoblin skeleton / gnoll skeleton
+MONS: guardian mummy
+MONS: mummy
+# Loot: 22 items.
+ITEM: any scroll / any potion
+KITEM: x = any scroll / any potion
+KMONS: x = guardian mummy
+: ossuary_setup_features(_G)
+: ossuary_milestone(_G)
+MAP
+ccccccccccccccccccccccccccccc
+ccccccccccccccccccccccccccccc
+cc.........................cc
+cc.<..........1..........<.cc
+cc.......ccccc+ccccc.......cc
+cc......cc3...1...3cc......cc
+cc.....cc...cc=cc...cc.....cc
+cc....cc...codddoc...cc....cc
+cc....c...codddddoc...c....cc
+cc...1+3..=ddd<xdd=..3+1...cc
+cc....c...codddddoc...c....cc
+cc....cc...codddoc...cc....cc
+cc.....cc...cc=cc...cc.....cc
+cc......cc3...1...3cc......cc
+cc.......ccccc+ccccc.......cc
+cc.<..........1..........<.cc
+cc.........................cc
+ccccccccccccc111ccccccccccccc
+ccccccccccccc111ccccccccccccc
+ccccccccccccc111ccccccccccccc
+ccccccccccccc111ccccccccccccc
+ccccccccccccc+++ccccccccccccc
+cccccccccccc.....cccccccccccc
+ccccccccccc.......ccccccccccc
+cccccccc2o...<.A...o2cccccccc
+ccccccccccc.......ccccccccccc
+cccccccccccc.....cccccccccccc
+ccccccccccccc...ccccccccccccc
+ccccccccccccccocccccccccccccc
+cccccccccccccc2cccccccccccccc
+ccccccccccccccccccccccccccccc
+ENDMAP
+
+# INDY: Oh, rats! ... He hates rats. He's scared to death of 'em.
+NAME: ossuary_due_small_catacomb
+WEIGHT: 10
+ORIENT: encompass
+TAGS: ossuary no_item_gen no_monster_gen
+ITEM: any scroll / any potion
+MONS: kobold skeleton / goblin skeleton / gnoll skeleton / \
+ orc skeleton
+# Loot: 10-19
+# Guaranteed 10 items and 10 mummies, two in hidden rooms.
+# 50/50 chance of loot for each of the eleven rats in the rat room.
+KITEM: x = any scroll / any potion
+KMONS: x = mummy
+KFEAT: ^ = dart trap / arrow trap
+KITEM: y = any scroll w:5 / any potion w:5 / nothing w:10
+KMONS: y = rat skeleton
+: ossuary_setup_features(_G)
+: ossuary_milestone(_G)
+MAP
+ ccc
+ cccxccccc
+ ccc....+.^c cccccc
+ cc.1.ccccc.c cc.+^.cc
+ cc..cc cc+cc cc..cc..cc
+ cc.^cc cc...ccccc..cccc.1ccc
+ccc cc+cc c+.x.+...1.cc cc...cc
+cAccc...cc cc...cccxccc ccc.cc
+c..+.^1.+c cc+cc ccc ccc cc+cc
+c<ccc...cc cc..cc cccccxccc...c
+ccc cc+cc cc^1=cc cc..+.^..+.x.+
+ c.cc cc..cc.cc c.1ccccccc...c
+ c^cc cc..cccc.ccc.cc cc+cc
+ c..cccc+cc cc.cc+cc ccc
+ cc1.cc...cccccc=yyyccccc
+ cc.+..x..+...+yyyyy+.^cc
+ cccc...cccxcccyyyccc..cc
+ cc=cc ccc cc+cc cc1.ccccc
+ cxc ccc cc...=xc
+ ccc ccccccc
+ENDMAP
+
+# Menkaures's pyramid
+NAME: ossuary_due_pyramid
+WEIGHT: 10
+ORIENT: encompass
+TAGS: ossuary no_item_gen no_monster_gen no_rotate no_vmirror no_hmirror
+MONS: kobold zombie / gnoll zombie / orc zombie / rat zombie / \
+ goblin zombie / hobgoblin zombie
+MONS: kobold skeleton / gnoll skeleton / orc skeleton / rat skeleton / \
+ goblin skeleton / hobgoblin skeleton
+MONS: mummy
+MONS: Menkaure, mummy
+# Loot: 1-16 items
+ITEM: any scroll / any potion / w:5 nothing
+KFEAT: ^ = arrow trap / dart trap / alarm trap
+KFEAT: m = bolt trap
+KFEAT: ~ = alarm trap
+NSUBST: ' = 2:m / 25:1 / 25:2 / 30:^ / .
+: ossuary_setup_features(_G)
+: ossuary_milestone(_G)
+MAP
+ cc
+ cccc
+ cccccc
+ cc''''cc
+ cc''cc''cc
+ cc''cccc''cc
+ cc''cccccc''cc
+ cc''cc''''cc''cc
+ cc''cc''cc''cc''cc
+ cc''cc''cc=c''cc''cc
+ cc''cc''cc=ccc''cc''cc
+ cc''cc''cc''''cc''cc''cc
+ cc''cc''cc''cc''cc''cc''cc
+ cc''cc''cc''cccc''cc''cc''cc
+ cc''cc''cc''ccddcc''cc''cc''cc
+ cc''cc''cc''ccddddcc''cc''cc''cc
+ cc''cc''cc''ccd3dd3dcc''cc''cc''cc
+ cc''cc''cc''cc.^d<<d..cc''cc''cc''cc
+ cc''cc''cc''cc.^.4dd3^.^cc''cc''cc''cc
+ cc''cc''cc''cc^..^.dd^.~.~cc''cc''cc''cc
+ cc''cc''cc''cccccccccccccc==cc''cc''cc''cc
+ cc''cc''cc''''''''''''''''''''cc''cc''cc''cc
+ cc''cc''cccccccccccccccccccccccccc''cc''cc''cc
+ cc''c=''''''''''''''''''''''''''''''''cc''cc''cc
+ cc''cccccccccccccccccccccccccccccccccccccc''cc''cc
+ cc''''''''''''''''''''''''''''''''''''''''''''=c<Acc
+ cccccccccccccccccccccccccccccccccccccccccccccccccccccc
+ENDMAP
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc
index cfe2a84f0d..30b1fd1b9a 100644
--- a/crawl-ref/source/dungeon.cc
+++ b/crawl-ref/source/dungeon.cc
@@ -3292,7 +3292,8 @@ static monster_type _choose_unique_by_depth(int step)
break;
case 1: // depth <= 7
ret = random_choose(MONS_IJYB, MONS_SIGMUND, MONS_BLORK_THE_ORC,
- MONS_EDMUND, MONS_PRINCE_RIBBIT, MONS_PURGY, -1);
+ MONS_EDMUND, MONS_PRINCE_RIBBIT, MONS_PURGY,
+ MONS_MENKAURE, -1);
break;
case 2: // depth <= 9
ret = random_choose(MONS_BLORK_THE_ORC, MONS_EDMUND, MONS_PSYCHE,
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index fd323df555..24e16e394b 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -2049,6 +2049,7 @@ enum monster_type // (int) menv[].type
MONS_KIRKE,
MONS_GRUM,
MONS_PURGY,
+ MONS_MENKAURE,
// Testing monsters
MONS_TEST_SPAWNER,
@@ -2256,6 +2257,7 @@ enum mon_spellbook_type
MST_PRINCE_RIBBIT, // 145
MST_NESSOS,
MST_KIRKE,
+ MST_MENKAURE, // 148
MST_GERYON = 150,
MST_DISPATER,
MST_ASMODEUS,
diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h
index 97f8010b36..c936cb15c2 100644
--- a/crawl-ref/source/mon-data.h
+++ b/crawl-ref/source/mon-data.h
@@ -4033,6 +4033,18 @@ static monsterentry mondata[] = {
},
{
+ MONS_MENKAURE, 'M', MAGENTA, "Menkaure",
+ M_UNIQUE | M_SPEAKS | M_SEE_INVIS | M_EVIL | M_SPELLCASTER
+ | M_ACTUAL_SPELLS,
+ MR_RES_POISON | MR_VUL_FIRE | MR_RES_COLD,
+ 0, 20, MONS_MUMMY, MONS_MUMMY, MH_UNDEAD, -5,
+ { {AT_HIT, AF_PLAIN, 25}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
+ { 3, 5, 3, 0 },
+ 3, 6, MST_MENKAURE, CE_NOCORPSE, Z_NOZOMBIE, S_SHOUT, I_NORMAL,
+ HT_LAND, 6, DEFAULT_ENERGY, MONUSE_OPEN_DOORS, SIZE_MEDIUM
+},
+
+{
// May be re-spawned after his death.
MONS_BORIS, 'L', RED, "Boris",
M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_SEE_INVIS | M_EVIL
diff --git a/crawl-ref/source/mon-spll.h b/crawl-ref/source/mon-spll.h
index e859034c69..aadc32096f 100644
--- a/crawl-ref/source/mon-spll.h
+++ b/crawl-ref/source/mon-spll.h
@@ -999,6 +999,17 @@
}
},
+ { MST_MENKAURE,
+ {
+ SPELL_PAIN,
+ SPELL_NO_SPELL,
+ SPELL_HASTE,
+ SPELL_NO_SPELL,
+ SPELL_NO_SPELL,
+ SPELL_NO_SPELL
+ }
+ },
+
{ MST_EUSTACHIO,
{
SPELL_SUMMON_SMALL_MAMMALS,
diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc
index 01a8d55272..294ef6781c 100644
--- a/crawl-ref/source/monstuff.cc
+++ b/crawl-ref/source/monstuff.cc
@@ -957,6 +957,7 @@ static void _mummy_curse(monsters* monster, killer_type killer, int index)
switch (monster->type)
{
+ case MONS_MENKAURE:
case MONS_MUMMY: pow = 1; break;
case MONS_GUARDIAN_MUMMY: pow = 3; break;
case MONS_MUMMY_PRIEST: pow = 8; break;
@@ -990,7 +991,7 @@ static void _mummy_curse(monsters* monster, killer_type killer, int index)
if (!target->alive())
return;
- if (monster->type == MONS_MUMMY && YOU_KILL(killer))
+ if ((monster->type == MONS_MUMMY || monster->type == MONS_MENKAURE) && YOU_KILL(killer))
curse_an_item(true);
else
{
diff --git a/crawl-ref/source/rltiles/dc-mon.txt b/crawl-ref/source/rltiles/dc-mon.txt
index f71122592b..cc1b367a52 100644
--- a/crawl-ref/source/rltiles/dc-mon.txt
+++ b/crawl-ref/source/rltiles/dc-mon.txt
@@ -403,6 +403,9 @@ lich MONS_LICH
ancient_lich MONS_ANCIENT_LICH
## Mummies ('M')
+%sdir dc-mon/unique
+menkaure MONS_MENKAURE
+%sdir dc-mon
mummy MONS_MUMMY
guardian_mummy MONS_GUARDIAN_MUMMY
greater_mummy MONS_GREATER_MUMMY
diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc
index 7f1a85da12..8b822bab64 100644
--- a/crawl-ref/source/tilepick.cc
+++ b/crawl-ref/source/tilepick.cc
@@ -901,6 +901,8 @@ int tileidx_monster_base(const monsters *mon, bool detected)
return TILEP_MONS_IJYB;
case MONS_GRUM:
return TILEP_MONS_GRUM;
+ case MONS_MENKAURE:
+ return TILEP_MONS_MENKAURE;
case MONS_URUG:
return TILEP_MONS_URUG;
case MONS_EROLCHA: