diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index d221c94d39f..bfc30780b81 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -165,7 +165,10 @@ var/targetitem = input("Select item to search for.", "Item Mode Select","") as null|anything in item_names if(!targetitem) return - target = locate(item_paths[targetitem]) + var/list/obj/item/target_candidates = get_all_of_type(item_paths[targetitem], subtypes = TRUE) + for(var/obj/item/candidate in target_candidates) + if(!is_admin_level(candidate.loc.z)) + target = candidate if(!target) to_chat(usr, "Failed to locate [targetitem]!") return diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index ef68117e1c4..2d1b55c5b99 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -344,11 +344,14 @@ var/list/potential_theft_objectives = subtypesof(/datum/theft_objective) - /datu var/theft_area /datum/objective/steal/proc/get_location() - if(steal_target.location_override) - return steal_target.location_override - var/obj/item/T = locate(steal_target.typepath) - theft_area = get_area(T.loc) - return "[theft_area]" + if(steal_target.location_override) + return steal_target.location_override + var/list/obj/item/steal_candidates = get_all_of_type(steal_target.typepath, subtypes = TRUE) + for(var/obj/item/candidate in steal_candidates) + if(!is_admin_level(candidate.loc.z)) + theft_area = get_area(candidate.loc) + return "[theft_area]" + return "an unknown area" /datum/objective/steal/find_target() var/loop=50