Refactors projectile ricochets (#25764)

* same taste, twice the speed

* pulls proc/handle_ricochet() to the atom level. adds var/flags_ricochet and related defines.

* space indentation sneaks its way in yet again

---------

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
This commit is contained in:
chuga-git
2024-06-12 19:08:57 +00:00
committed by GitHub
co-authored by Luc
parent c46630b1ea
commit 438faac253
10 changed files with 86 additions and 37 deletions
+1 -11
View File
@@ -24,6 +24,7 @@
explosion_block = 1
flags_2 = RAD_PROTECT_CONTENTS_2 | RAD_NO_CONTAMINATE_2
flags_ricochet = RICOCHET_HARD
rad_insulation = RAD_MEDIUM_INSULATION
thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT
@@ -154,17 +155,6 @@
else
update_icon()
/turf/simulated/wall/handle_ricochet(obj/item/projectile/P) //A huge pile of shitcode!
var/turf/p_turf = get_turf(P)
var/face_direction = get_dir(src, p_turf)
var/face_angle = dir2angle(face_direction)
var/incidence_s = GET_ANGLE_OF_INCIDENCE(face_angle, (P.Angle + 180))
if(abs(incidence_s) > 90 && abs(incidence_s) < 270)
return FALSE
var/new_angle_s = SIMPLIFY_DEGREES(face_angle + incidence_s)
P.set_angle(new_angle_s)
return TRUE
/turf/simulated/wall/dismantle_wall(devastated = FALSE, explode = FALSE)
if(devastated)
devastate_wall()
+1 -1
View File
@@ -220,7 +220,7 @@
icon_state = "plastinum_wall-0"
base_icon_state = "plastinum_wall"
explosion_block = 3
flags_2 = CHECK_RICOCHET_2
flags_ricochet = RICOCHET_SHINY | RICOCHET_HARD
sheet_type = /obj/item/stack/sheet/mineral/titanium
smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS
smoothing_groups = list(SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE)