anchor.diff:  		if(bomb.timing)
   			to_chat(user, "Extreme danger. Arming signal detected. Time remaining: [bomb.get_time_left()]")
   
  -/obj/item/pinpointer/process()
  -	if(!active)
  -		STOP_PROCESSING(SSfastprocess, src)
  -		return
  -	scan_for_target()
  -	point_to_target()
  -	my_god_jc_a_bomb()
  -	addtimer(CALLBACK(src, .proc/refresh_target), 50, TIMER_UNIQUE)
  +/obj/item/pinpointer/nuke/process()
  +	..()
  +	if(active) // If shit's going down
  +		for(var/obj/machinery/nuclearbomb/bomb in GLOB.nuke_list)
  +			if(bomb.timing)
  +				if(!alert)
  +					alert = TRUE
  +					playsound(src, 'sound/items/nuke_toy_lowpower.ogg', 50, 0)
  +					if(isliving(loc))
  +						var/mob/living/L = loc
  +						to_chat(L, "<span class='userdanger'>Your [name] vibrates and lets out a tinny alarm. Uh oh.</span>")
   
  -/obj/item/pinpointer/proc/scan_for_target() //Looks for whatever it's tracking
  -	if(target)
  -		if(isliving(target))
  -			var/mob/living/L = target
  -			if(L.stat == DEAD)
  -				target = null
  -		return
  +/obj/item/pinpointer/nuke/scan_for_target()
  +	target = null
   	switch(mode)
   		if(TRACK_NUKE_DISK)
   			var/obj/item/disk/nuclear/N = locate() in GLOB.poi_list
  
positive.code: //Pinpointers are used to track atoms from a distance as long as they're on the same z-level. The captain and nuke ops have ones that track the nuclear authentication disk.
  /obj/item/pinpointer
  	name = "pinpointer"
  	desc = "A handheld tracking device that locks onto certain signals."
  	icon = 'icons/obj/device.dmi'
  	icon_state = "pinoff"
  	flags_1 = CONDUCT_1
  	slot_flags = SLOT_BELT
  	w_class = WEIGHT_CLASS_SMALL
  	item_state = "electronic"
  	lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
  	righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
  	throw_speed = 3
  	throw_range = 7
  	materials = list(MAT_METAL = 500, MAT_GLASS = 250)
  	resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
  	var/active = FALSE
  	var/atom/movable/target = null //The thing we're searching for
  	var/atom/movable/constant_target = null //The thing we're always focused on, if we're in the right mode
  	var/target_x = 0 //The target coordinates if we're tracking those
  	var/target_y = 0
  	var/minimum_range = 0 //at what range the pinpointer declares you to be at your destination
  	var/nuke_warning = FALSE // If we've set off a miniature alarm about an armed nuke
  	var/mode = TRACK_NUKE_DISK //What are we looking for?
  
  /obj/item/pinpointer/New()
  	..()
  	GLOB.pinpointer_list += src
  
  /obj/item/pinpointer/Destroy()
  	STOP_PROCESSING(SSfastprocess, src)
  	GLOB.pinpointer_list -= src
  	return ..()
  
  /obj/item/pinpointer/attack_self(mob/living/user)
  	active = !active
  	user.visible_message("<span class='notice'>[user] [active ? "" : "de"]activates their pinpointer.</span>", "<span class='notice'>You [active ? "" : "de"]activate your pinpointer.</span>")
  	playsound(user, 'sound/items/screwdriver2.ogg', 50, 1)
  	icon_state = "pin[active ? "onnull" : "off"]"
  	if(active)
  		START_PROCESSING(SSfastprocess, src)
  	else
  		target = null //Restarting the pinpointer forces a target reset
  		STOP_PROCESSING(SSfastprocess, src)
  
  /obj/item/pinpointer/attackby(obj/item/I, mob/living/user, params)
  	if(mode != TRACK_ATOM)
  		return ..()
  	user.visible_message("<span class='notice'>[user] tunes [src] to [I].</span>", "<span class='notice'>You fine-tune [src]'s tracking to track [I].</span>")
  	playsound(src, 'sound/machines/click.ogg', 50, 1)
  	constant_target = I
  
  /obj/item/pinpointer/examine(mob/user)
  	..()
  	var/msg = "Its tracking indicator reads "
  	switch(mode)
  
negative.code: 					target = A
  		if(TRACK_INFILTRATOR)
  			target = SSshuttle.getShuttle("syndicate")
  	..()
  
  /obj/item/pinpointer/nuke/proc/switch_mode_to(new_mode)
  	if(isliving(loc))
  		var/mob/living/L = loc
  		to_chat(L, "<span class='userdanger'>Your [name] beeps as it reconfigures its tracking algorithms.</span>")
  		playsound(L, 'sound/machines/triple_beep.ogg', 50, 1)
  	mode = new_mode
  	scan_for_target()
  
  /obj/item/pinpointer/nuke/syndicate // Syndicate pinpointers automatically point towards the infiltrator once the nuke is active.
  	name = "syndicate pinpointer"
  	desc = "A handheld tracking device that locks onto certain signals. It's configured to switch tracking modes once it detects the activation signal of a nuclear device."
  	icon_state = "pinpointer_syndicate"
  
  /obj/item/pinpointer/syndicate_cyborg // Cyborg pinpointers just look for a random operative.
  	name = "cyborg syndicate pinpointer"
  	desc = "An integrated tracking device, jury-rigged to search for living Syndicate operatives."
  	flags_1 = NODROP_1
  
  /obj/item/pinpointer/syndicate_cyborg/scan_for_target()
  	target = null
  	var/list/possible_targets = list()
  	var/turf/here = get_turf(src)
  	for(var/V in SSticker.mode.syndicates)
  		var/datum/mind/M = V
  		if(M.current && M.current.stat != DEAD)
  			possible_targets |= M.current
  	var/mob/living/closest_operative = get_closest_atom(/mob/living/carbon/human, possible_targets, here)
  	if(closest_operative)
  		target = closest_operative
  	..()
  
  