summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/fineff.cc
diff options
context:
space:
mode:
authorAdam Borowski <kilobyte@angband.pl>2012-06-20 22:52:30 +0200
committerAdam Borowski <kilobyte@angband.pl>2012-06-20 22:52:30 +0200
commit0bba2f6475367b7dfbd398797eba661a90c51cb4 (patch)
tree1228d8a132a537f11f98dacaa521087ad4230a61 /crawl-ref/source/fineff.cc
parent62c3c185bb8b18167044b3f1fd05850d20921b2c (diff)
downloadcrawl-ref-0bba2f6475367b7dfbd398797eba661a90c51cb4.tar.gz
crawl-ref-0bba2f6475367b7dfbd398797eba661a90c51cb4.zip
When an attacker blinks due to own melee attack, do it as a final effect.
This avoids crashes if he lands in a trap or in a shaft. The defender blinking is AFAIK safe.
Diffstat (limited to 'crawl-ref/source/fineff.cc')
-rw-r--r--crawl-ref/source/fineff.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/crawl-ref/source/fineff.cc b/crawl-ref/source/fineff.cc
index 76f2f92c37..6a11d3d41d 100644
--- a/crawl-ref/source/fineff.cc
+++ b/crawl-ref/source/fineff.cc
@@ -72,6 +72,7 @@ void fire_final_effects()
mpr("Electricity arcs through the water!");
conduct_electricity(fe.pos, attacker);
break;
+
case FINEFF_MIRROR_DAMAGE:
if (!attacker || attacker == defender || !attacker->alive())
continue;
@@ -102,6 +103,7 @@ void fire_final_effects()
attacker->hurt(defender, fe.x);
}
break;
+
case FINEFF_TRAMPLE_FOLLOW:
if (!attacker
|| attacker->pos() == fe.pos
@@ -112,6 +114,11 @@ void fire_final_effects()
}
attacker->move_to_pos(fe.pos);
break;
+
+ case FINEFF_BLINK:
+ if (defender && defender->alive() && !attacker->no_tele(true, false))
+ defender->blink();
+ break;
}
}
env.final_effects.clear();