summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authorJude Brown <bookofjude@users.sourceforge.net>2010-01-07 21:48:15 +1000
committerJude Brown <bookofjude@users.sourceforge.net>2010-01-07 22:00:17 +1000
commit55a78fd8ac0e9795620a5dc30a641de080dbf99a (patch)
tree9ae4b7adc6f8d5dda17abd3ba400f5d388a2e54b /crawl-ref
parent437d51508324242d03d1ad0978f71ffcc333a138 (diff)
downloadcrawl-ref-55a78fd8ac0e9795620a5dc30a641de080dbf99a.tar.gz
crawl-ref-55a78fd8ac0e9795620a5dc30a641de080dbf99a.zip
Unnerf Dowan.
The previous incarnation basically made it a necessity to kill Duvessa first, otherwise she would go berserk and easily kill the player; this is both spoiler-ridden and unbalanced. Instead of making Dowan run away in fear, he'll be temporarily hasted, and receive an upgrade of spells. Fireball will replace both of his conjurations, and Corona and Haste Other are replaced by Blink and Haste respectively. Fireball tracers currently don't seem to work properly, meaning that Dowan can kill himself with his own Fireball. This is undesirable.
Diffstat (limited to 'crawl-ref')
-rw-r--r--crawl-ref/source/dat/database/monspeak.txt2
-rw-r--r--crawl-ref/source/mon-stuff.cc17
-rw-r--r--crawl-ref/source/view.cc8
3 files changed, 21 insertions, 6 deletions
diff --git a/crawl-ref/source/dat/database/monspeak.txt b/crawl-ref/source/dat/database/monspeak.txt
index 95ef7accc5..4fe0238c00 100644
--- a/crawl-ref/source/dat/database/monspeak.txt
+++ b/crawl-ref/source/dat/database/monspeak.txt
@@ -1826,7 +1826,7 @@ _Dowan_Duvessa_dies_
@The_monster@ screams, "No! No!"
-@The_monster@ starts to cry.
+@The_monster@ seems overcome with grief, but rights himself soon after.
@The_monster@ screams, "No! Oh no!"
%%%%
diff --git a/crawl-ref/source/mon-stuff.cc b/crawl-ref/source/mon-stuff.cc
index 43db612472..81c687de3f 100644
--- a/crawl-ref/source/mon-stuff.cc
+++ b/crawl-ref/source/mon-stuff.cc
@@ -1154,12 +1154,19 @@ static void _elven_twin_died(monsters* twin, bool in_transit)
}
else if (found_dowan)
{
- // Doesn't provide any message, so needs one, but only if visible.
- // Doesn't matter if has been polymorphed or not.
if (monster->observable())
- simple_monster_message(monster, " turns to flee.");
- monster->add_ench(mon_enchant(ENCH_FEAR, 0, KC_YOU));
- behaviour_event(monster, ME_SCARE, MHITNOT);
+ {
+ monster->add_ench(ENCH_HASTE);
+ simple_monster_message(monster, " seems to find hidden reserves of power!");
+ }
+ else
+ monster->props["dowan_upgrade"] = bool(true);
+
+ monster->spells[0] = SPELL_FIREBALL;
+ monster->spells[1] = SPELL_BLINK;
+ monster->spells[3] = SPELL_FIREBALL;
+ monster->spells[4] = SPELL_HASTE;
+ // Nothing with 6.
}
}
diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc
index 94ad2a572c..e5d54546a3 100644
--- a/crawl-ref/source/view.cc
+++ b/crawl-ref/source/view.cc
@@ -152,6 +152,14 @@ void monster_grid_updates()
mi->flags &= ~MF_GOING_BERSERK;
mi->go_berserk(true);
}
+
+ // XXX: Hack for triggering Dowan's spell changes.
+ if (mi->props.exists("dowan_upgrade"))
+ {
+ mi->add_ench(ENCH_HASTE);
+ mi->props.erase("dowan_upgrade");
+ simple_monster_message(*mi, " seems to find hidden reserves of power!");
+ }
}
}