Porting pair pinpointers and fixing an edge case runtime.
This commit is contained in:
@@ -26,6 +26,7 @@
|
||||
/obj/item/pinpointer/Destroy()
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
GLOB.pinpointer_list -= src
|
||||
target = null
|
||||
return ..()
|
||||
|
||||
/obj/item/pinpointer/attack_self(mob/living/user)
|
||||
@@ -57,7 +58,7 @@
|
||||
return
|
||||
var/turf/here = get_turf(src)
|
||||
var/turf/there = get_turf(target)
|
||||
if(here.z != there.z)
|
||||
if(!here || !there || here.z != there.z)
|
||||
add_overlay("pinon[alert ? "alert" : ""]null")
|
||||
return
|
||||
if(get_dist_euclidian(here,there) <= minimum_range)
|
||||
@@ -143,3 +144,34 @@
|
||||
target = null
|
||||
if(!target) //target can be set to null from above code, or elsewhere
|
||||
active = FALSE
|
||||
|
||||
/obj/item/pinpointer/pair
|
||||
name = "pair pinpointer"
|
||||
desc = "A handheld tracking device that locks onto its other half of the matching pair."
|
||||
var/other_pair
|
||||
|
||||
/obj/item/pinpointer/pair/Destroy()
|
||||
other_pair = null
|
||||
. = ..()
|
||||
|
||||
/obj/item/pinpointer/pair/scan_for_target()
|
||||
target = other_pair
|
||||
|
||||
/obj/item/pinpointer/pair/examine(mob/user)
|
||||
. = ..()
|
||||
if(!active || !target)
|
||||
return
|
||||
var/mob/mob_holder = get(target, /mob)
|
||||
if(istype(mob_holder))
|
||||
to_chat(user, "Its pair is being held by [mob_holder].")
|
||||
return
|
||||
|
||||
/obj/item/storage/box/pinpointer_pairs
|
||||
name = "pinpointer pair box"
|
||||
|
||||
/obj/item/storage/box/pinpointer_pairs/PopulateContents()
|
||||
var/obj/item/pinpointer/pair/A = new(src)
|
||||
var/obj/item/pinpointer/pair/B = new(src)
|
||||
|
||||
A.other_pair = B
|
||||
B.other_pair = A
|
||||
|
||||
Reference in New Issue
Block a user