summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/delay.cc
diff options
context:
space:
mode:
authordolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-04-07 23:04:11 +0000
committerdolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-04-07 23:04:11 +0000
commit3672d894756ece74eec3daa854a8e79cbe2f8f7d (patch)
treeebf4dbb9f810ae2ac9705b3e09950da65c0efc60 /crawl-ref/source/delay.cc
parent0915163a542776844b0ce664221417f86c05245c (diff)
downloadcrawl-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.cc28
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)
{