anchor.diff:  					target = A
   		if(TRACK_INFILTRATOR)
   			target = SSshuttle.getShuttle("syndicate")
  -		if(TRACK_OPERATIVES)
  -			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
  -		if(TRACK_ATOM)
  -			if(constant_target)
  -				target = constant_target
  -		if(TRACK_COORDINATES)
  -			var/turf/T = get_turf(src)
  -			target = locate(target_x, target_y, T.z)
  +	..()
   
  -/obj/item/pinpointer/proc/point_to_target() //If we found what we're looking for, show the distance and direction
  -	if(!active)
  -		return
  -	if(!target || (mode == TRACK_ATOM && !constant_target))
  -		icon_state = "pinon[nuke_warning ? "alert" : ""]null"
  -		return
  -	var/turf/here = get_turf(src)
  -	var/turf/there = get_turf(target)
  -	if(here.z != there.z)
  -		icon_state = "pinon[nuke_warning ? "alert" : ""]null"
  -		return
  -	if(get_dist_euclidian(here,there)<=minimum_range)
  -		icon_state = "pinon[nuke_warning ? "alert" : ""]direct"
  -	else
  -		setDir(get_dir(here, there))
  -		switch(get_dist(here, there))
  -			if(1 to 8)
  -				icon_state = "pinon[nuke_warning ? "alert" : "close"]"
  -			if(9 to 16)
  -				icon_state = "pinon[nuke_warning ? "alert" : "medium"]"
  -			if(16 to INFINITY)
  -				icon_state = "pinon[nuke_warning ? "alert" : "far"]"
  -
  -/obj/item/pinpointer/proc/my_god_jc_a_bomb() //If we should get the hell back to the ship
  -	for(var/obj/machinery/nuclearbomb/bomb in GLOB.nuke_list)
  -		if(bomb.timing)
  -			if(!nuke_warning)
  -				nuke_warning = 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/switch_mode_to(new_mode) //If we shouldn't be tracking what we are
  +/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
  -	target = null //Switch modes so we can find the new target
  +	scan_for_target()
   
  -/obj/item/pinpointer/proc/refresh_target() //Periodically removes the target to allow the pinpointer to update (i.e. malf AI shunts, an operative dies)
  -	target = null
  -
  -/obj/item/pinpointer/syndicate //Syndicate pinpointers automatically point towards the infiltrator once the nuke is active.
  +/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.
  +/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."
  -	mode = TRACK_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
  +	..()
   
  -
  
positive.code: 		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/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
  	switch(mode)
  		if(TRACK_NUKE_DISK)
  			var/obj/item/disk/nuclear/N = locate() in GLOB.poi_list
  
negative.code: /obj/item/pinpointer/nuke
  	var/mode = TRACK_NUKE_DISK
  
  /obj/item/pinpointer/nuke/examine(mob/user)
  	..()
  	var/msg = "Its tracking indicator reads "
  	switch(mode)
  