summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authorevktalo <evktalo@c06c8d41-db1a-0410-9941-cceddc491573>2009-08-19 14:55:09 +0000
committerevktalo <evktalo@c06c8d41-db1a-0410-9941-cceddc491573>2009-08-19 14:55:09 +0000
commit309425214082f560faa1d32b1d834644e0d4464d (patch)
treee51b9fcaf095c8d03309db6d713836c4c7a6959c /crawl-ref
parenta0ac735b25ccb42e5576c610527724bf7a17e090 (diff)
downloadcrawl-ref-309425214082f560faa1d32b1d834644e0d4464d.tar.gz
crawl-ref-309425214082f560faa1d32b1d834644e0d4464d.zip
Apply patch #2838024 by bookofjude: new Elven twins uniques, Duvessa and Dowan. I'll do the tiles later.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10578 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref')
-rw-r--r--crawl-ref/source/dat/database/monspeak.txt72
-rw-r--r--crawl-ref/source/dat/database/quotes.txt15
-rw-r--r--crawl-ref/source/dat/descript/monsters.txt8
-rw-r--r--crawl-ref/source/dat/sewer.des2
-rw-r--r--crawl-ref/source/dungeon.cc7
-rw-r--r--crawl-ref/source/enum.h5
-rw-r--r--crawl-ref/source/makeitem.cc18
-rw-r--r--crawl-ref/source/mon-data.h23
-rw-r--r--crawl-ref/source/mon-spll.h11
-rw-r--r--crawl-ref/source/monplace.cc9
-rw-r--r--crawl-ref/source/monplace.h1
11 files changed, 163 insertions, 8 deletions
diff --git a/crawl-ref/source/dat/database/monspeak.txt b/crawl-ref/source/dat/database/monspeak.txt
index 5a17c651e1..cdc907d1b4 100644
--- a/crawl-ref/source/dat/database/monspeak.txt
+++ b/crawl-ref/source/dat/database/monspeak.txt
@@ -1340,11 +1340,81 @@ Donald
@_hostile_adventurer_@
%%%%
-# A mercenary guarding the dungeon
+############ DOWAN ### A vain elf caster, twin brother of Duvessa
+Dowan
+
+@_Dowan_common_@
+
+w:2
+@_Dowan_rare_@
+%%%%
+_Dowan_common_
+
+VISUAL:@The_monster@ points a slender finger @at_foe@ and smirks.
+
+@The_monster@ says @to_foe@, "My weaknesses are her strengths!"
+
+@The_monster@ says @to_foe@, "Stay away from my face!"
+
+@The_monster@ says @to_foe@, "Magic and the sword, together, will defeat you." @player_only@
+
+%%%%
+_Dowan_rare_
+
+VISUAL:@The_monster@ throws and catches a handful of magical flame, then smirks.
+
+VISUAL:@The_monster@ robes are whipped around by a magical breeze.
+
+# Removed VISUAL - makes no sense when silenced
+@The_monster@ goes cross-eyed from fumbling a word in a spell.
+
+@The_monster@ whispers @to_foe@, "It won't be long now."
+
+@The_monster@ hisses @to_foe@, "Insulting my beauty only makes me fight harder!"
+
+@The_monster@ says @to_foe@, "Where the sword fails, magic succeeds!"
+
+@The_monster@ says @to_foe@, "There's a certain beauty in death, don't you think?"
+
+@The_monster@ laughs at you. "Don't get delusional, you can't win!"
+
+%%%%
+############ DUANE ### A mercenary guarding the dungeon
Duane
@_mercenary_guard_@
%%%%
+############ DUVESSA ### An over-confident elf fighter, twin sister of Dowan
+Duvessa
+
+@_Duvessa_common_@
+
+w:2
+@_Duvessa_rare_@
+%%%%
+_Duvessa_common_
+
+VISUAL:@The_monster@ gestures towards you with her weapon.
+
+@The_monster@ says @to_foe@, "My weaknesses are his strengths!"
+
+@The_monster@ says @to_foe@, "Where magic fails, the sword succeeds!"
+
+@The_monster@ says @to_foe@, "When magic and the sword combine, nothing stands against them."
+
+%%%%
+_Duvessa_rare_
+
+@The_monster@ @shouts@ @to_foe@, "You can run, but you cannot escape us forever!" @player_only@
+
+@The_monster@ says @to_foe@, "I don't care about looks, I care about technique!"
+
+@The_monster@ says @to_foe@, "Did you see that move? Perfect!"
+
+@The_monster@ says @to_foe@, "Beauty is only skin deep, and my weapons penetrate much further than that."
+
+@The_monster@ says @to_foe@, "Practice, practice, practice! One day you'll be as good as me." @player_only@
+%%%%
############ EDMUND ### A mercenary guarding the dungeon
Edmund
diff --git a/crawl-ref/source/dat/database/quotes.txt b/crawl-ref/source/dat/database/quotes.txt
index 2dd3a3a01e..82d74129a9 100644
--- a/crawl-ref/source/dat/database/quotes.txt
+++ b/crawl-ref/source/dat/database/quotes.txt
@@ -403,6 +403,21 @@ Dispater
"Hoc idem magis ostendit antiquius Iovis nomen: nam olim Diovis et Diespiter dictus, id est dies pater; a quo dei dicti qui inde, et dius et divum, unde sub divo, Dius Fidius. Itaque inde eius perforatum tectum, ut ea videatur divum, id est caelum. Quidam negant sub tecto per hunc deierare oportere. Aelius Dium Fidium dicebat Diovis filium, ut Graeci Dioskopon Castorem, et putabat hunc esse Sancum ab Sabina lingua et Herculem a Graeca. Idem hic Dis pater dicitur infimus, qui est coniunctus terrae, ubi omnia ut oriuntur ita aboriuntur; quorum quod finis ortuum, Orcus dictus."
-Marcus Terentius Varro, _De Lingua Latina_, Liber V, circa 40 BC.
%%%%
+Dowan
+
+"Skill and grace, the twin brother and sister,
+ are dancing playfully on your finger tips."
+ -Rabindranath Tagore, _Chitra, Act I, Scene IV_
+%%%%
+Duvessa
+
+"Twin children: the Girl, she was plain;
+ The Brother was handsome & vain;
+ 'Let him brag of his looks,'
+ Father said; 'mind your books!
+ The best beauty is bred in the brain.'"
+ -Aesop & Walter Crane, _The Baby's Own Aesop: Brother & Sister_
+%%%%
Edmund
"When the forces stood in array Edmund proposed to decide their claims
diff --git a/crawl-ref/source/dat/descript/monsters.txt b/crawl-ref/source/dat/descript/monsters.txt
index 671ae35b18..460523f4c1 100644
--- a/crawl-ref/source/dat/descript/monsters.txt
+++ b/crawl-ref/source/dat/descript/monsters.txt
@@ -72,10 +72,18 @@ Donald
An adventurer like you, trying to find the Orb.
%%%%
+Dowan
+
+A beautiful but vain elf with an aptitude for magic and little else. His skills are the perfect complement of his twin sister Duvessa's fighting prowess.
+%%%%
Duane
An evil mercenary with unusually large ears.
%%%%
+Duvessa
+
+A plain-looking elven fighter who is technically brilliant in many forms of combat, but over-confident because of it. She is complemented by the magical skills of her twin brother, Dowan.
+%%%%
Edmund
A lightly armoured warrior.
diff --git a/crawl-ref/source/dat/sewer.des b/crawl-ref/source/dat/sewer.des
index 475bee319d..094e2ae824 100644
--- a/crawl-ref/source/dat/sewer.des
+++ b/crawl-ref/source/dat/sewer.des
@@ -239,7 +239,7 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP
############################################################################
-# Two fairly waterly vaults with (usually) two giant frogs in the end.
+# Two fairly watery vaults with (usually) two giant frogs in the end.
# More rare (3 out of 10 sewers are one of these).
# Loot are good items, and often a scroll of blinking.
#
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc
index 30b1fd1b9a..2c4a04ba1f 100644
--- a/crawl-ref/source/dungeon.cc
+++ b/crawl-ref/source/dungeon.cc
@@ -3288,16 +3288,17 @@ static monster_type _choose_unique_by_depth(int step)
{
case 0: // depth <= 3
ret = random_choose(MONS_TERENCE, MONS_JESSICA, MONS_IJYB,
- MONS_SIGMUND, -1);
+ MONS_SIGMUND, MONS_DUVESSA, -1);
break;
case 1: // depth <= 7
ret = random_choose(MONS_IJYB, MONS_SIGMUND, MONS_BLORK_THE_ORC,
MONS_EDMUND, MONS_PRINCE_RIBBIT, MONS_PURGY,
- MONS_MENKAURE, -1);
+ MONS_MENKAURE, MONS_DUVESSA, -1);
break;
case 2: // depth <= 9
ret = random_choose(MONS_BLORK_THE_ORC, MONS_EDMUND, MONS_PSYCHE,
- MONS_EROLCHA, MONS_PRINCE_RIBBIT, MONS_GRUM, -1);
+ MONS_EROLCHA, MONS_PRINCE_RIBBIT, MONS_GRUM,
+ -1);
break;
case 3: // depth <= 13
ret = random_choose(MONS_PSYCHE, MONS_EROLCHA, MONS_DONALD, MONS_URUG,
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index 28629576cc..e3021b85eb 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -2076,6 +2076,8 @@ enum monster_type // (int) menv[].type
MONS_GRUM,
MONS_PURGY,
MONS_MENKAURE,
+ MONS_DUVESSA,
+ MONS_DOWAN,
// Testing monsters
MONS_TEST_SPAWNER,
@@ -2283,7 +2285,8 @@ enum mon_spellbook_type
MST_PRINCE_RIBBIT, // 145
MST_NESSOS,
MST_KIRKE,
- MST_MENKAURE, // 148
+ MST_MENKAURE,
+ MST_DOWAN,
MST_GERYON = 150,
MST_DISPATER,
MST_ASMODEUS,
diff --git a/crawl-ref/source/makeitem.cc b/crawl-ref/source/makeitem.cc
index d429f5cfc2..e1dab60a06 100644
--- a/crawl-ref/source/makeitem.cc
+++ b/crawl-ref/source/makeitem.cc
@@ -3335,6 +3335,7 @@ static item_make_species_type _give_weapon(monsters *mon, int level,
0);
break;
+ case MONS_DUVESSA:
case MONS_DEEP_ELF_FIGHTER:
case MONS_DEEP_ELF_HIGH_PRIEST:
case MONS_DEEP_ELF_KNIGHT:
@@ -3714,7 +3715,15 @@ static item_make_species_type _give_weapon(monsters *mon, int level,
case MONS_ORC_SORCERER:
case MONS_NERGALLE:
item_race = MAKE_ITEM_ORCISH;
- // deliberate fall-through, I guess {dlb}
+ item.base_type = OBJ_WEAPONS;
+ item.sub_type = WPN_DAGGER;
+ break;
+
+ case MONS_DOWAN:
+ item_race = MAKE_ITEM_ELVEN;
+ item.base_type = OBJ_WEAPONS;
+ item.sub_type = WPN_DAGGER;
+ break;
case MONS_KOBOLD_DEMONOLOGIST:
case MONS_NECROMANCER:
@@ -4081,6 +4090,7 @@ void give_shield(monsters *mon, int level)
level * 2 + 1, MAKE_ITEM_NO_RACE, 1);
break;
+ case MONS_DUVESSA:
case MONS_DEEP_ELF_SOLDIER:
case MONS_DEEP_ELF_FIGHTER:
if (one_chance_in(6))
@@ -4152,6 +4162,7 @@ void give_armour(monsters *mon, int level)
item.sub_type = ARM_LEATHER_ARMOUR;
break;
+ case MONS_DUVESSA:
case MONS_DEEP_ELF_ANNIHILATOR:
case MONS_DEEP_ELF_CONJURER:
case MONS_DEEP_ELF_DEATH_MAGE:
@@ -4305,6 +4316,8 @@ void give_armour(monsters *mon, int level)
return;
break;
+ case MONS_DOWAN:
+ item_race = MAKE_ITEM_ELVEN;
case MONS_DONALD:
case MONS_JESSICA:
case MONS_KOBOLD_DEMONOLOGIST:
@@ -4328,7 +4341,8 @@ void give_armour(monsters *mon, int level)
case MONS_DRACONIAN_KNIGHT:
case MONS_WIZARD:
case MONS_ILSUIW:
- item_race = MAKE_ITEM_NO_RACE;
+ if (item_race == MAKE_ITEM_RANDOM_RACE)
+ item_race = MAKE_ITEM_NO_RACE;
item.base_type = OBJ_ARMOUR;
item.sub_type = ARM_ROBE;
break;
diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h
index ca3de95cab..873d61e05f 100644
--- a/crawl-ref/source/mon-data.h
+++ b/crawl-ref/source/mon-data.h
@@ -4177,6 +4177,29 @@ static monsterentry mondata[] = {
HT_LAND, 10, DEFAULT_ENERGY, MONUSE_STARTING_EQUIPMENT, SIZE_LARGE
},
+{
+ MONS_DUVESSA, 'e', BLUE, "Duvessa",
+ M_UNIQUE | M_FIGHTER | M_WARM_BLOOD | M_SPEAKS,
+ MR_NO_FLAGS,
+ 450, 10, MONS_ELF, MONS_ELF, MH_NATURAL, -6,
+ { {AT_HIT, AF_PLAIN, 15}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
+ { 6, 3, 3, 0 },
+ 0, 13, MST_NO_SPELLS, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_HIGH,
+ HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM
+},
+
+{
+ MONS_DOWAN, 'e', RED, "Dowan",
+ M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD
+ | M_SPEAKS,
+ MR_NO_FLAGS,
+ 450, 10, MONS_ELF, MONS_ELF, MH_NATURAL, -6,
+ { AT_NO_ATK, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
+ { 4, 3, 3, 0 },
+ 0, 13, MST_DOWAN, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_HIGH,
+ HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM
+},
+
// human uniques ('@')
{
MONS_TERENCE, '@', LIGHTCYAN, "Terence",
diff --git a/crawl-ref/source/mon-spll.h b/crawl-ref/source/mon-spll.h
index aadc32096f..8cc058d3de 100644
--- a/crawl-ref/source/mon-spll.h
+++ b/crawl-ref/source/mon-spll.h
@@ -1065,6 +1065,17 @@
}
},
+ { MST_DOWAN,
+ {
+ SPELL_THROW_FROST,
+ SPELL_BACKLIGHT,
+ SPELL_HASTE,
+ SPELL_THROW_FLAME,
+ SPELL_BLINK,
+ SPELL_MINOR_HEALING,
+ }
+ },
+
{ MST_GERYON,
{
SPELL_SUMMON_BEAST,
diff --git a/crawl-ref/source/monplace.cc b/crawl-ref/source/monplace.cc
index 1759dea158..f15b363918 100644
--- a/crawl-ref/source/monplace.cc
+++ b/crawl-ref/source/monplace.cc
@@ -1799,6 +1799,11 @@ static band_type _choose_band(int mon_type, int power, int &band_size)
band = BAND_AZRAEL;
band_size = 4 + random2(5);
break;
+
+ case MONS_DUVESSA:
+ band = BAND_DUVESSA;
+ band_size = 1;
+ break;
} // end switch
if (band != BAND_NO_BAND && band_size == 0)
@@ -2097,6 +2102,10 @@ static monster_type _band_member(band_type band, int power)
mon_type = coinflip()? MONS_FIRE_ELEMENTAL : MONS_HELL_HOUND;
break;
+ case BAND_DUVESSA:
+ mon_type = MONS_DOWAN;
+ break;
+
default:
break;
}
diff --git a/crawl-ref/source/monplace.h b/crawl-ref/source/monplace.h
index 093c714576..a895d88423 100644
--- a/crawl-ref/source/monplace.h
+++ b/crawl-ref/source/monplace.h
@@ -66,6 +66,7 @@ enum band_type
BAND_HARPIES,
BAND_ILSUIW,
BAND_AZRAEL,
+ BAND_DUVESSA, // 50
NUM_BANDS // always last
};