diff options
author | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-07-28 18:43:34 +0000 |
---|---|---|
committer | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-07-28 18:43:34 +0000 |
commit | a7260191bfe7a52d60a139bae417404d298bb3a5 (patch) | |
tree | 53242a439ffd05eb90489fe31d1fc037d409a8cb /crawl-ref | |
parent | 30972f8855a581f440406e7bc5880f18a489efb4 (diff) | |
download | crawl-ref-a7260191bfe7a52d60a139bae417404d298bb3a5.tar.gz crawl-ref-a7260191bfe7a52d60a139bae417404d298bb3a5.zip |
Fix 2022451: Cleansing Flame hurting distracted monsters and angering
TSO. As suggested by David, I added no prompts but instead
made sure that fleeing/distracted/caught/... monsters are
simply not harmed (hurt = 0), meaning players don't have to
worry about accidentally angering TSO *and* they can't ever
use his power to hurt helpless creatures, even willingly.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6706 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref')
-rw-r--r-- | crawl-ref/source/beam.cc | 8 | ||||
-rw-r--r-- | crawl-ref/source/player.cc | 2 |
2 files changed, 7 insertions, 3 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc index ab1357f383..7580b544b9 100644 --- a/crawl-ref/source/beam.cc +++ b/crawl-ref/source/beam.cc @@ -2254,9 +2254,13 @@ int mons_adjust_flavoured(monsters *monster, bolt &pbolt, int hurted, break; case BEAM_HOLY: // flame of cleansing + // Cleansing flame doesn't hurt holy monsters or monsters your + // god wouldn't like to be hurt. if (mons_is_holy(monster) - || (is_good_god(you.religion) - && (is_follower(monster) || mons_neutral(monster)))) + || you.religion == GOD_SHINING_ONE + && is_unchivalric_attack(&you, monster, monster) + || is_good_god(you.religion) + && (is_follower(monster) || mons_neutral(monster))) { hurted = 0; } diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc index 2aa13c2613..6db9866b82 100644 --- a/crawl-ref/source/player.cc +++ b/crawl-ref/source/player.cc @@ -126,7 +126,7 @@ bool move_player_to_grid( const coord_def& p, bool stepped, bool allow_shift, || mons_is_submerged( &menv[ mgrd(p) ]))); const int cloud = env.cgrid(p); - if (cloud != EMPTY_CLOUD) + if (cloud != EMPTY_CLOUD && !you.duration[DUR_CONF]) { const cloud_type ctype = env.cloud[ cloud ].type; // Don't prompt if already in a cloud of the same type. |