diff options
author | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-05-10 05:34:41 +0000 |
---|---|---|
committer | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-05-10 05:34:41 +0000 |
commit | d9e5c7dc0abf85f79fb37e046c1654a27edb2bdf (patch) | |
tree | 4f5ac41963a7174ba559bfc7c1cbb3896b150513 /crawl-ref/source | |
parent | 8442bde3acd4192a03970a9f347124a3855e8d40 (diff) | |
download | crawl-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')
-rw-r--r-- | crawl-ref/source/monplace.cc | 10 | ||||
-rw-r--r-- | crawl-ref/source/religion.cc | 8 |
2 files changed, 12 insertions, 6 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)) { diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc index 94b05fe8ae..446d4c6022 100644 --- a/crawl-ref/source/religion.cc +++ b/crawl-ref/source/religion.cc @@ -3735,9 +3735,11 @@ static bool _holy_beings_on_level_attitude_change() // holy beings hostile. else if (!is_good_god(you.religion)) { - if (monster->attitude != ATT_HOSTILE) + if (monster->attitude != ATT_HOSTILE + || monster->has_ench(ENCH_CHARM)) { monster->attitude = ATT_HOSTILE; + monster->del_ench(ENCH_CHARM, true); behaviour_event(monster, ME_ALERT, MHITYOU); // for now CREATED_FRIENDLY/WAS_NEUTRAL stays @@ -3776,9 +3778,11 @@ static bool _evil_beings_on_level_attitude_change() { // If you worship a good god, you make all non-hostile // evil and unholy beings hostile. - if (monster->attitude != ATT_HOSTILE) + if (monster->attitude != ATT_HOSTILE + || monster->has_ench(ENCH_CHARM)) { monster->attitude = ATT_HOSTILE; + monster->del_ench(ENCH_CHARM, true); behaviour_event(monster, ME_ALERT, MHITYOU); // for now CREATED_FRIENDLY/WAS_NEUTRAL stays |