summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/misc.cc
diff options
context:
space:
mode:
authorDracoOmega <draco_omega@live.com>2014-01-22 22:47:57 -0330
committerDracoOmega <draco_omega@live.com>2014-01-28 02:31:14 -0330
commit3b6715411341475540d2cb36859f48379e8bdb2c (patch)
tree5eb9dc78f46251a6b66c8ae3c59f81633adb1f61 /crawl-ref/source/misc.cc
parentbfa2403b7f766ed32e6213c48e997ccaa586efc8 (diff)
downloadcrawl-ref-3b6715411341475540d2cb36859f48379e8bdb2c.tar.gz
crawl-ref-3b6715411341475540d2cb36859f48379e8bdb2c.zip
Let blood scent trigger if blood would be spilled over ineligible squares
Most particularly this applies to water, when cannot be bloodied. But it seems curious that sharks have a gimmick that involves reacting to blood, when combat in their native terrain can never produce anyway. Since there are good reasons not to recolor water red all the time, instead merely trigger blood scent when blood would otherwise have been created, but do not bloody the square itself. Something similar could arguably be done for Ignite Blood, though I am uncertain of the implications of creating massive clouds of steam whenever you fight over water.
Diffstat (limited to 'crawl-ref/source/misc.cc')
-rw-r--r--crawl-ref/source/misc.cc11
1 files changed, 6 insertions, 5 deletions
diff --git a/crawl-ref/source/misc.cc b/crawl-ref/source/misc.cc
index 83990dc9ca..4ed88bd952 100644
--- a/crawl-ref/source/misc.cc
+++ b/crawl-ref/source/misc.cc
@@ -1016,8 +1016,6 @@ static void _maybe_bloodify_square(const coord_def& where, int amount,
return;
bool may_bleed = allow_bleeding_on_square(where);
- if (!spatter && !may_bleed)
- return;
bool ignite_blood = player_mutation_level(MUT_IGNITE_BLOOD)
&& you.see_cell(where);
@@ -1034,9 +1032,6 @@ static void _maybe_bloodify_square(const coord_def& where, int amount,
env.pgrid(where) |= FPROP_BLOODY;
_orient_wall_blood(where, from, old_blood);
- if (smell_alert && in_bounds(where))
- blood_smell(12, where);
-
if (ignite_blood
&& !cell_is_solid(where)
&& env.cgrid(where) == EMPTY_CLOUD)
@@ -1045,6 +1040,12 @@ static void _maybe_bloodify_square(const coord_def& where, int amount,
}
}
+ // The blood spilled can be detected via blood scent even if the
+ // spot it would fall is prevented from becoming bloodied (for
+ // example, because it is water)
+ if (smell_alert && in_bounds(where))
+ blood_smell(12, where);
+
if (spatter)
{
// Smaller chance of spattering surrounding squares.