summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/monplace.cc
diff options
context:
space:
mode:
authordolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-05-10 05:34:41 +0000
committerdolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-05-10 05:34:41 +0000
commitd9e5c7dc0abf85f79fb37e046c1654a27edb2bdf (patch)
tree4f5ac41963a7174ba559bfc7c1cbb3896b150513 /crawl-ref/source/monplace.cc
parent8442bde3acd4192a03970a9f347124a3855e8d40 (diff)
downloadcrawl-ref-d9e5c7dc0abf85f79fb37e046c1654a27edb2bdf.tar.gz
crawl-ref-d9e5c7dc0abf85f79fb37e046c1654a27edb2bdf.zip
Make monsters angered by your worshipping a god they hate lose charm.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4986 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/monplace.cc')
-rw-r--r--crawl-ref/source/monplace.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/crawl-ref/source/monplace.cc b/crawl-ref/source/monplace.cc
index 17ad44a2f6..f2197a952d 100644
--- a/crawl-ref/source/monplace.cc
+++ b/crawl-ref/source/monplace.cc
@@ -1778,15 +1778,15 @@ int mons_place( mgen_data mg )
if (mg.behaviour == BEH_GOD_GIFT)
creation->flags |= MF_GOD_GIFT;
- if (!(mg.flags & MG_FORCE_BEH) && player_angers_monster(creation))
- creation->attitude = ATT_HOSTILE;
-
if (mg.behaviour == BEH_CHARMED)
{
creation->attitude = ATT_HOSTILE;
creation->add_ench(ENCH_CHARM);
}
+ if (!(mg.flags & MG_FORCE_BEH))
+ player_angers_monster(creation);
+
// make summoned being aware of player's presence
behaviour_event(creation, ME_ALERT, MHITYOU);
@@ -1910,9 +1910,11 @@ bool player_angers_monster(monsters *mon, bool actual)
// (to prevent e.g. demon-scumming)
if (holy || antimagical)
{
- if (actual && mon->attitude != ATT_HOSTILE)
+ if (actual
+ && (mon->attitude != ATT_HOSTILE || mon->has_ench(ENCH_CHARM)))
{
mon->attitude = ATT_HOSTILE;
+ mon->del_ench(ENCH_CHARM);
behaviour_event(mon, ME_ALERT, MHITYOU);
if (see_grid(mon->x, mon->y) && player_monster_visible(mon))
{