summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source
diff options
context:
space:
mode:
authordolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-04-11 23:53:54 +0000
committerdolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-04-11 23:53:54 +0000
commite2af2ff4f44c359f1522b1695379bfc437b1bd42 (patch)
tree8de57c7095950c20869731aa9c53bbfee412081c /crawl-ref/source
parent5a90add2104dc9a44569f938b84df9f359b399aa (diff)
downloadcrawl-ref-e2af2ff4f44c359f1522b1695379bfc437b1bd42.tar.gz
crawl-ref-e2af2ff4f44c359f1522b1695379bfc437b1bd42.zip
Adjust cleansing flame damage. It's now consistent between the player
and monsters; it now damages non-evil and non-unholy monsters (but only at a 50% rate); and, if you worship a good god, your followers resist it. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4204 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source')
-rw-r--r--crawl-ref/source/beam.cc21
-rw-r--r--crawl-ref/source/ouch.cc14
-rw-r--r--crawl-ref/source/religion.cc6
3 files changed, 22 insertions, 19 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index 47d7b07725..0818210d53 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -1804,20 +1804,19 @@ int mons_adjust_flavoured( monsters *monster, bolt &pbolt,
break;
case BEAM_HOLY: // flame of cleansing
- if (mons_is_unholy( monster ))
- {
- if (doFlavouredEffects)
- simple_monster_message( monster, " writhes in agony!" );
-
+ if (mons_is_unholy(monster))
hurted = (hurted * 3) / 2;
- }
- else if (!mons_is_evil( monster ))
- {
- if (doFlavouredEffects)
- simple_monster_message( monster, " appears unharmed." );
-
+ else if (is_good_god(you.religion) && is_follower(monster))
hurted = 0;
+ else if (!mons_is_evil(monster))
+ hurted /= 2;
+
+ if (doFlavouredEffects)
+ {
+ simple_monster_message(monster, (hurted == 0) ?
+ " appears unharmed." : " writhes in agony!");
}
+
break;
case BEAM_ICE:
diff --git a/crawl-ref/source/ouch.cc b/crawl-ref/source/ouch.cc
index 082c28923a..b4b4527525 100644
--- a/crawl-ref/source/ouch.cc
+++ b/crawl-ref/source/ouch.cc
@@ -241,12 +241,16 @@ int check_your_resists(int hurted, beam_type flavour)
break;
case BEAM_HOLY:
- if (!you.is_undead && you.species != SP_DEMONSPAWN &&
- !is_evil_god(you.religion))
- {
- canned_msg( MSG_YOU_RESIST );
+ if (you.is_undead || you.species != SP_DEMONSPAWN)
+ hurted = (hurted * 3) / 2;
+ else if (is_good_god(you.religion))
hurted = 0;
- }
+ else if (!is_evil_god(you.religion))
+ hurted /= 2;
+
+ if (hurted == 0)
+ canned_msg(MSG_YOU_RESIST);
+
break;
default:
diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc
index e5523f698a..f19a9966c8 100644
--- a/crawl-ref/source/religion.cc
+++ b/crawl-ref/source/religion.cc
@@ -782,9 +782,7 @@ bool is_tso_follower(const monsters* mon)
{
// Don't check for evil or unholy allies here, as that's done
// elsewhere.
- return (mon->alive()
- && (mon->attitude == ATT_FRIENDLY
- || mon->has_ench(ENCH_CHARM)));
+ return (mon->alive() && mons_friendly(mon));
}
bool is_orcish_follower(const monsters* mon)
@@ -809,6 +807,8 @@ bool is_follower(const monsters* mon)
break;
default:
+ // Currently, this is identical to is_tso_follower().
+ result = (mon->alive() && mons_friendly(mon));
break;
}