summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-28 18:43:34 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-28 18:43:34 +0000
commita7260191bfe7a52d60a139bae417404d298bb3a5 (patch)
tree53242a439ffd05eb90489fe31d1fc037d409a8cb /crawl-ref
parent30972f8855a581f440406e7bc5880f18a489efb4 (diff)
downloadcrawl-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.cc8
-rw-r--r--crawl-ref/source/player.cc2
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.