summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/fight.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-06-03 10:33:31 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-06-03 10:33:31 +0000
commit240d2022a003e137a8f32e7dd8985e8cb2871f8b (patch)
treefd5d5a5f66bef205f2c35d5666d7a7012b23a9b7 /crawl-ref/source/fight.cc
parent1e6c29fcdad466fe9bbae6326ef19bcad8e73707 (diff)
downloadcrawl-ref-240d2022a003e137a8f32e7dd8985e8cb2871f8b.tar.gz
crawl-ref-240d2022a003e137a8f32e7dd8985e8cb2871f8b.zip
Fix summoned monsters spattering blood.
Fix menu colouring giving away unknown evil items. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5456 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/fight.cc')
-rw-r--r--crawl-ref/source/fight.cc25
1 files changed, 16 insertions, 9 deletions
diff --git a/crawl-ref/source/fight.cc b/crawl-ref/source/fight.cc
index 21fdbe32e9..07d7087389 100644
--- a/crawl-ref/source/fight.cc
+++ b/crawl-ref/source/fight.cc
@@ -782,10 +782,11 @@ bool melee_attack::player_attack()
hit_woke_orc = true;
}
- // always upset monster regardless of damage
+ // Always upset monster regardless of damage.
behaviour_event(def, ME_WHACK, MHITYOU);
- if (damage_done > 0)
+ if (damage_done > 0 && !mons_is_summoned(def)
+ && !mons_is_submerged(def))
{
int blood = _modify_blood_amount(damage_done,
attacker->damage_type());
@@ -2385,8 +2386,11 @@ bool melee_attack::chop_hydra_head( int dam,
def->number--;
coord_def pos = defender->pos();
- bleed_onto_floor(pos.x, pos.y, defender->id(),
- def->hit_points, true);
+ if (!mons_is_summoned(def))
+ {
+ bleed_onto_floor(pos.x, pos.y, defender->id(),
+ def->hit_points, true);
+ }
defender->hurt(attacker, def->hit_points);
}
@@ -3842,13 +3846,16 @@ void melee_attack::mons_perform_attack_rounds()
if (defender->atype() == ACT_MONSTER)
type = defender->id();
- int blood = _modify_blood_amount(damage_done,
- attacker->damage_type());
- if (blood > defender->stat_hp())
- blood = defender->stat_hp();
+ if (type == -1 || !mons_is_summoned(def) && !mons_is_submerged(def))
+ {
+ int blood = _modify_blood_amount(damage_done,
+ attacker->damage_type());
- bleed_onto_floor(pos.x, pos.y, type, blood, true);
+ if (blood > defender->stat_hp())
+ blood = defender->stat_hp();
+ bleed_onto_floor(pos.x, pos.y, type, blood, true);
+ }
if (decapitate_hydra(damage_done,
attacker->damage_type(attack_number)))
{