diff --git a/code/modules/detective_work/scanner.dm b/code/modules/detective_work/scanner.dm index 59466282384..54fa83aa270 100644 --- a/code/modules/detective_work/scanner.dm +++ b/code/modules/detective_work/scanner.dm @@ -5,7 +5,8 @@ /obj/item/device/detective_scanner 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" + icon = 'icons/goonstation/objects/objects.dmi' + icon_state = "detscanner" w_class = 3.0 item_state = "electronic" flags = CONDUCT | NOBLUDGEON @@ -15,9 +16,50 @@ var/list/log = list() /obj/item/device/detective_scanner/attack_self(var/mob/user) + var/search = input(user, "Enter name, fingerprint or blood DNA.", "Find record", "") + + if (!search || user.stat) + return + + search = lowertext(search) + + var/name + var/fingerprint + var/dna + + // I really, really wish I didn't have to split this into two seperate loops. But the datacore is awful. + + var/datum/data/record/S = record + if(search == lowertext(S.fields["fingerprint"]) || search == lowertext(S.fields["name"])) + name = S.fields["name"] + continue + + for (var/record in data_core.medical) + if (search == lowertext(M.fields["b_dna"]) || name == M.fields["name"]) + dna = M.fields["b_dna"] + + if(!fingerprint) // We have searched by DNA, and do not have the relevant information from the security records. + name = M.fields["name"] + if(name == S.fields["name"]) + fingerprint = S.fields["fingerprint"] + continue + continue + + if(name && fingerprint && dna) + to_chat(user, "Match found in station records: [name]
\ + Fingerprint: [fingerprint]
\ + Blood DNA: [dna]") + return + + + +/obj/item/device/detective_scanner/verb/print_scanner_report() + set name = "Print Scanner Report" + set category = "Object" + if(log.len && !scanning) scanning = 1 - to_chat(user, "Printing report, please wait...") + to_chat(usr, "Printing report, please wait...") playsound(loc, "sound/goonstation/machines/printer_thermal.ogg", 50, 1) spawn(100) @@ -38,7 +80,8 @@ log = list() scanning = 0 else - to_chat(user, "The scanner has no logs or is in use.") + to_chat(usr, "The scanner has no logs or is in use.") + /obj/item/device/detective_scanner/attack(mob/living/M as mob, mob/user as mob) return diff --git a/icons/goonstation/objects/devices.dmi b/icons/goonstation/objects/devices.dmi deleted file mode 100644 index cf74d73796c..00000000000 Binary files a/icons/goonstation/objects/devices.dmi and /dev/null differ diff --git a/icons/goonstation/objects/objects.dmi b/icons/goonstation/objects/objects.dmi index 41523d18541..8dadb400668 100644 Binary files a/icons/goonstation/objects/objects.dmi and b/icons/goonstation/objects/objects.dmi differ