Fixes reflection of hitscan beams against tiles (#56881)

Co-authored-by: Ranged <nickvanderkroon@gmail.com>
This commit is contained in:
NotRanged
2021-02-18 21:56:43 +01:00
committed by GitHub
parent f0071727d9
commit 0427c0c1ba
7 changed files with 97 additions and 61 deletions
+7 -7
View File
@@ -26,9 +26,9 @@
add_overlay(deflector_overlay)
if(rotation_angle == -1)
setAngle(dir2angle(dir))
set_angle(dir2angle(dir))
else
setAngle(rotation_angle)
set_angle(rotation_angle)
if(admin)
can_rotate = FALSE
@@ -43,7 +43,7 @@
else
. += "<span class='notice'>Use screwdriver to unlock the rotation.</span>"
/obj/structure/reflector/proc/setAngle(new_angle)
/obj/structure/reflector/proc/set_angle(new_angle)
if(can_rotate)
rotation_angle = new_angle
if(deflector_overlay)
@@ -160,7 +160,7 @@
if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user)))
return
if(!isnull(new_angle))
setAngle(SIMPLIFY_DEGREES(new_angle))
set_angle(SIMPLIFY_DEGREES(new_angle))
return TRUE
/obj/structure/reflector/AltClick(mob/user)
@@ -195,7 +195,7 @@
if(abs(incidence) > 90 && abs(incidence) < 270)
return FALSE
var/new_angle = SIMPLIFY_DEGREES(rotation_angle + incidence)
P.setAngle(new_angle)
P.set_angle_centered(new_angle)
return ..()
//DOUBLE
@@ -219,7 +219,7 @@
/obj/structure/reflector/double/auto_reflect(obj/projectile/P, pdir, turf/ploc, pangle)
var/incidence = GET_ANGLE_OF_INCIDENCE(rotation_angle, (P.Angle + 180))
var/new_angle = SIMPLIFY_DEGREES(rotation_angle + incidence)
P.setAngle(new_angle)
P.set_angle_centered(new_angle)
return ..()
//BOX
@@ -241,7 +241,7 @@
anchored = TRUE
/obj/structure/reflector/box/auto_reflect(obj/projectile/P)
P.setAngle(rotation_angle)
P.set_angle_centered(rotation_angle)
return ..()
/obj/structure/reflector/ex_act()