summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/beam.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/beam.cc')
-rw-r--r--crawl-ref/source/beam.cc21
1 files changed, 14 insertions, 7 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index 4726f60cc7..74fdd24a67 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -711,7 +711,7 @@ bool player_tracer( zap_type ztype, int power, bolt &pbolt, int range)
if (pbolt.beam_cancelled)
{
#if DEBUG_DIAGNOSTICS
- mprf(MSGCH_DIAGNOSTICS, "%s", "Beam stopped.");
+ mprf(MSGCH_DIAGNOSTICS, "%s", "Beam cancelled.");
#endif
canned_msg(MSG_OK);
you.turn_is_over = false;
@@ -3630,13 +3630,20 @@ static int _affect_player( bolt &beam, item_def *item )
if (YOU_KILL(beam.thrower))
{
// Don't ask if we're aiming at ourselves.
- if (!beam.aimed_at_feet && !beam.dont_stop_player
- && !yesno("That beam is likely to hit yourself. Continue "
- "anyway?", false, 'n'))
+ if (!beam.aimed_at_feet && !beam.dont_stop_player)
{
- beam.fr_count += 1;
- beam.fr_power += you.experience_level;
- beam.dont_stop_player = true;
+ if (yesno("That beam is likely to hit yourself. Continue "
+ "anyway?", false, 'n'))
+ {
+ beam.fr_count += 1;
+ beam.fr_power += you.experience_level;
+ beam.dont_stop_player = true;
+ }
+ else
+ {
+ beam.beam_cancelled = true;
+ return (BEAM_STOP);
+ }
}
}
else if (beam.can_see_invis || !you.invisible()