From bb3ed07f0a62c723d1249c8086ef6971b22e9181 Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Fri, 5 Jun 2015 16:54:33 +0300 Subject: [PATCH] Prevent rays from bouncing off Plane of Air edges --- src/zap.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/zap.c b/src/zap.c index a81d77d7c..b507b0589 100644 --- a/src/zap.c +++ b/src/zap.c @@ -3980,8 +3980,13 @@ register int dx, dy; } bounce = 0; range--; - if (range && isok(lsx, lsy) && cansee(lsx, lsy)) - pline("%s bounces!", The(fltxt)); + if (range && isok(lsx, lsy) && cansee(lsx, lsy)) { + pline("%s %s!", The(fltxt), + Is_airlevel(&u.uz) + ? "vanishes into the aether" + : "bounces"); + if (Is_airlevel(&u.uz)) goto get_out_buzz; + } if (!dx || !dy || !rn2(20)) { dx = -dx; dy = -dy; @@ -4015,6 +4020,7 @@ register int dx, dy; tmp_at(DISP_END, 0); if (type == ZT_SPELL(ZT_FIRE)) explode(sx, sy, type, d(12, 6), 0, EXPL_FIERY); + get_out_buzz: if (shopdamage) pay_for_damage( abstype == ZT_FIRE