Point Refactor (#17120)

* Point refactor

* Big think

* Fixes so Kash won't yell at me

---------

Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com>
This commit is contained in:
Guti
2025-02-27 05:05:34 -05:00
committed by GitHub
co-authored by Selis
parent 64ab3cdf8e
commit 16f01791e7
8 changed files with 116 additions and 42 deletions
+4 -4
View File
@@ -830,11 +830,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
W.add_hiddenprint(src)
W.visible_message(span_filter_notice(span_red("Invisible fingers crudely paint something in blood on [T]...")))
/mob/observer/dead/pointed(atom/A as mob|obj|turf in view())
/mob/observer/dead/_pointed(atom/pointed_at)
if(!..())
return 0
src.visible_message(span_deadsay(span_bold("[src]") + " points to [A]."))
return 1
return FALSE
visible_message(span_deadsay(span_bold("[src]") + " points to [pointed_at]."))
/mob/observer/dead/proc/manifest(mob/user)
is_manifest = TRUE
+9 -7
View File
@@ -118,16 +118,18 @@
return
//mob verbs are faster than object verbs. See above.
/mob/living/pointed(atom/A as mob|obj|turf in view())
/mob/living/pointed(atom/A as mob|obj|turf in view(client.view, src))
if(src.stat || src.restrained())
return 0
return FALSE
if(src.status_flags & FAKEDEATH)
return 0
if(!..())
return 0
return FALSE
return ..()
src.visible_message(span_filter_notice(span_bold("[src]") + " points to [A]."))
return 1
/mob/living/_pointed(atom/pointing_at)
if(!..())
return FALSE
visible_message(span_info(span_bold("[src]") + " points at [pointing_at]."), span_info("You point at [pointing_at]."))
/mob/living/verb/succumb()
set name = "Succumb to death"
-31
View File
@@ -251,37 +251,6 @@
client.eye = loc
return TRUE
/mob/verb/pointed(atom/A as mob|obj|turf in view())
set name = "Point To"
set category = "Object"
if(!src || !isturf(loc) || !(A in view(loc)))
return 0
if(istype(A, /obj/effect/decal/point))
return 0
var/turf/tile = get_turf(A)
if (!tile)
return 0
var/turf/our_tile = get_turf(src)
var/obj/visual = new /obj/effect/decal/point(our_tile)
visual.invisibility = invisibility
visual.plane = ABOVE_PLANE
visual.layer = FLY_LAYER
animate(visual,
pixel_x = (tile.x - our_tile.x) * world.icon_size + A.pixel_x,
pixel_y = (tile.y - our_tile.y) * world.icon_size + A.pixel_y,
time = 1.7,
easing = EASE_OUT)
QDEL_IN(visual, 2 SECONDS) //Better qdel
face_atom(A)
return 1
/mob/proc/ret_grab(list/L, flag)
return