diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm
index 771aa9a77d2..7171237d633 100644
--- a/code/modules/detectivework/scanner.dm
+++ b/code/modules/detectivework/scanner.dm
@@ -3,8 +3,8 @@
// TODO: Split everything into easy to manage procs.
/obj/item/device/detective_scanner
- name = "scanner"
- desc = "Used to scan objects for DNA and fingerprints. Can print a report of the findings."
+ name = "forensic scanner"
+ desc = "Used to remotely scan objects and biomass for DNA and fingerprints. Can print a report of the findings."
icon_state = "forensic1"
w_class = 3.0
item_state = "electronic"
@@ -40,25 +40,25 @@
user << "The scanner has no logs or is in use."
/obj/item/device/detective_scanner/attack(mob/living/M as mob, mob/user as mob)
- scan(M, user)
+ return
-/obj/item/device/detective_scanner/afterattack(atom/A as obj|turf|area, mob/user as mob,proximity)
- if(!proximity)
- return
- if(!isturf(A) && !isobj(A))
- return
- if(loc != user)
- return
+/obj/item/device/detective_scanner/afterattack(atom/A, mob/user as mob, proximity)
scan(A, user)
/obj/item/device/detective_scanner/proc/scan(var/atom/A, var/mob/user)
if(!scanning)
+ // Can remotely scan objects and mobs.
+ if(!in_range(A, user) && !(A in view(world.view, user)))
+ return
+ if(loc != user)
+ return
+
scanning = 1
- user.visible_message("\The [user] scans \the [A] with \the [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]")
- user << "You scan [A]. The scanner is analysing the results..."
+ user.visible_message("\The [user] points the [src.name] at \the [A] and performs a forensic scan.")
+ user << "You scan \the [A]. The scanner is now analysing the results..."
// GATHER INFORMATION
@@ -151,7 +151,7 @@
if(!found_something)
add_log("# No forensic traces found #", 0) // Don't display this to the holder user
if(holder)
- holder << "Unable to locate any fingerprints, materials, fibers, or blood on [target_name]!"
+ holder << "Unable to locate any fingerprints, materials, fibers, or blood on \the [target_name]!"
else
if(holder)
holder << "You finish scanning \the [target_name]."