diff options
author | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-04-11 23:53:54 +0000 |
---|---|---|
committer | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-04-11 23:53:54 +0000 |
commit | e2af2ff4f44c359f1522b1695379bfc437b1bd42 (patch) | |
tree | 8de57c7095950c20869731aa9c53bbfee412081c /crawl-ref/source | |
parent | 5a90add2104dc9a44569f938b84df9f359b399aa (diff) | |
download | crawl-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.cc | 21 | ||||
-rw-r--r-- | crawl-ref/source/ouch.cc | 14 | ||||
-rw-r--r-- | crawl-ref/source/religion.cc | 6 |
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; } |