Prevent rays from bouncing off Plane of Air edges
This commit is contained in:
@@ -3980,8 +3980,13 @@ register int dx, dy;
|
|||||||
}
|
}
|
||||||
bounce = 0;
|
bounce = 0;
|
||||||
range--;
|
range--;
|
||||||
if (range && isok(lsx, lsy) && cansee(lsx, lsy))
|
if (range && isok(lsx, lsy) && cansee(lsx, lsy)) {
|
||||||
pline("%s bounces!", The(fltxt));
|
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)) {
|
if (!dx || !dy || !rn2(20)) {
|
||||||
dx = -dx;
|
dx = -dx;
|
||||||
dy = -dy;
|
dy = -dy;
|
||||||
@@ -4015,6 +4020,7 @@ register int dx, dy;
|
|||||||
tmp_at(DISP_END, 0);
|
tmp_at(DISP_END, 0);
|
||||||
if (type == ZT_SPELL(ZT_FIRE))
|
if (type == ZT_SPELL(ZT_FIRE))
|
||||||
explode(sx, sy, type, d(12, 6), 0, EXPL_FIERY);
|
explode(sx, sy, type, d(12, 6), 0, EXPL_FIERY);
|
||||||
|
get_out_buzz:
|
||||||
if (shopdamage)
|
if (shopdamage)
|
||||||
pay_for_damage(
|
pay_for_damage(
|
||||||
abstype == ZT_FIRE
|
abstype == ZT_FIRE
|
||||||
|
|||||||
Reference in New Issue
Block a user