summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/fight.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/fight.cc')
-rw-r--r--crawl-ref/source/fight.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/crawl-ref/source/fight.cc b/crawl-ref/source/fight.cc
index e8e77072a4..a824eb64c5 100644
--- a/crawl-ref/source/fight.cc
+++ b/crawl-ref/source/fight.cc
@@ -3971,8 +3971,12 @@ void melee_attack::mons_perform_attack_rounds()
defender->hurt(attacker, damage_done + special_damage);
- if (!defender->alive() || attacker == defender)
+ // Yredelemnul's injury mirroring can kill the attacker.
+ if (!attacker->alive() || !defender->alive()
+ || attacker == defender)
+ {
return;
+ }
special_damage = 0;
special_damage_message.clear();
@@ -3983,6 +3987,10 @@ void melee_attack::mons_perform_attack_rounds()
if (special_damage > 0)
defender->hurt(attacker, special_damage);
+
+ // Yredelemnul's injury mirroring can kill the attacker.
+ if (!attacker->alive())
+ return;
}
item_def *weap = atk->mslot_item(MSLOT_WEAPON);