summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
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!");
+ }
}
}