diff options
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!"); + } } } |