diff options
author | DracoOmega <draco_omega@live.com> | 2014-01-22 22:47:57 -0330 |
---|---|---|
committer | DracoOmega <draco_omega@live.com> | 2014-01-28 02:31:14 -0330 |
commit | 3b6715411341475540d2cb36859f48379e8bdb2c (patch) | |
tree | 5eb9dc78f46251a6b66c8ae3c59f81633adb1f61 /crawl-ref/source/misc.cc | |
parent | bfa2403b7f766ed32e6213c48e997ccaa586efc8 (diff) | |
download | crawl-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.cc | 11 |
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. |