diff options
author | Jude Brown <bookofjude@users.sourceforge.net> | 2010-01-07 21:48:15 +1000 |
---|---|---|
committer | Jude Brown <bookofjude@users.sourceforge.net> | 2010-01-07 22:00:17 +1000 |
commit | 55a78fd8ac0e9795620a5dc30a641de080dbf99a (patch) | |
tree | 9ae4b7adc6f8d5dda17abd3ba400f5d388a2e54b /crawl-ref | |
parent | 437d51508324242d03d1ad0978f71ffcc333a138 (diff) | |
download | crawl-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.txt | 2 | ||||
-rw-r--r-- | crawl-ref/source/mon-stuff.cc | 17 | ||||
-rw-r--r-- | crawl-ref/source/view.cc | 8 |
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!"); + } } } |