diff options
author | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-04-07 23:04:11 +0000 |
---|---|---|
committer | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-04-07 23:04:11 +0000 |
commit | 3672d894756ece74eec3daa854a8e79cbe2f8f7d (patch) | |
tree | ebf4dbb9f810ae2ac9705b3e09950da65c0efc60 /crawl-ref/source/delay.cc | |
parent | 0915163a542776844b0ce664221417f86c05245c (diff) | |
download | crawl-ref-3672d894756ece74eec3daa854a8e79cbe2f8f7d.tar.gz crawl-ref-3672d894756ece74eec3daa854a8e79cbe2f8f7d.zip |
For consistency, if a holy being is permanently neutralized via Zin's
Recite or Elyvilon's healing, run the conversion-on-sight routine so
that they don't attack you.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4120 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/delay.cc')
-rw-r--r-- | crawl-ref/source/delay.cc | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/crawl-ref/source/delay.cc b/crawl-ref/source/delay.cc index c704083560..bc662d4332 100644 --- a/crawl-ref/source/delay.cc +++ b/crawl-ref/source/delay.cc @@ -183,16 +183,20 @@ static int recite_to_monsters(int x, int y, int pow, int unused) simple_monster_message(mons, " freezes in fright!"); break; default: - // permanently neutral, but same message as enchantment - mons->attitude = ATT_NEUTRAL; - mons->flags |= MF_WAS_NEUTRAL; - - // give half of the monster's xp - unsigned int exp_gain = 0, avail_gain = 0; - gain_exp( exper_value(mons) / 2 + 1, &exp_gain, &avail_gain ); - mons->flags |= MF_GOT_HALF_XP; - simple_monster_message(mons, " seems impressed!"); + if (holiness == MH_HOLY) + good_god_holy_attitude_change(mons); + else + { + // permanently neutral, but same message as enchantment + mons->attitude = ATT_NEUTRAL; + mons->flags |= MF_WAS_NEUTRAL; + + // give half of the monster's xp + unsigned int exp_gain = 0, avail_gain = 0; + gain_exp( exper_value(mons) / 2 + 1, &exp_gain, &avail_gain ); + mons->flags |= MF_GOT_HALF_XP; + } break; } @@ -206,11 +210,11 @@ static const char* _get_recite_speech(const std::string key, int weight) if (!str.empty()) return (str.c_str()); - + // in case nothing is found if (key == "start") return ("begin reciting the Axioms of Law."); - + return ("reciting"); } @@ -231,7 +235,7 @@ static bool is_parent_delay(delay_type delay) static int push_delay(const delay_queue_item &delay) { - for (delay_queue_type::iterator i = you.delay_queue.begin(); + for (delay_queue_type::iterator i = you.delay_queue.begin(); i != you.delay_queue.end(); ++i) { |