From 55a78fd8ac0e9795620a5dc30a641de080dbf99a Mon Sep 17 00:00:00 2001 From: Jude Brown Date: Thu, 7 Jan 2010 21:48:15 +1000 Subject: 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. --- crawl-ref/source/dat/database/monspeak.txt | 2 +- crawl-ref/source/mon-stuff.cc | 17 ++++++++++++----- crawl-ref/source/view.cc | 8 ++++++++ 3 files changed, 21 insertions(+), 6 deletions(-) (limited to 'crawl-ref') 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!"); + } } } -- cgit v1.2.3-54-g00ecf