/obj/item/autopsy_scanner name = "autopsy scanner" desc = "Extracts information on wounds." icon = 'icons/obj/surgery.dmi' icon_state = "autopsy_scanner" flags = CONDUCT slot_flags = SLOT_FLAG_BELT w_class = WEIGHT_CLASS_SMALL origin_tech = "magnets=1;biotech=1" var/list/datum/autopsy_data_scanner/wdata = list() var/list/chemtraces = list() var/target_name = null var/target_UID = null var/timeofdeath = null var/target_rank = null /obj/item/autopsy_scanner/Destroy() QDEL_LIST_ASSOC_VAL(wdata) return ..() /datum/autopsy_data_scanner var/weapon = null // this is the DEFINITE weapon type that was used var/list/organs_scanned = list() // this maps a number of scanned organs to // the wounds to those organs with this data's weapon type var/organ_names = "" /datum/autopsy_data_scanner/Destroy() QDEL_LIST_ASSOC_VAL(organs_scanned) return ..() /datum/autopsy_data var/weapon = null var/damage = 0 var/hits = 0 var/time_inflicted = 0 /datum/autopsy_data/proc/copy() var/datum/autopsy_data/W = new() W.weapon = weapon W.damage = damage W.hits = hits W.time_inflicted = time_inflicted return W /obj/item/autopsy_scanner/proc/add_data(obj/item/organ/O) if(length(O.autopsy_data)) for(var/V in O.autopsy_data) var/datum/autopsy_data/W = O.autopsy_data[V] var/datum/autopsy_data_scanner/D = wdata[V] if(!D) D = new() D.weapon = W.weapon wdata[V] = D if(!D.organs_scanned[O.name]) if(D.organ_names == "") D.organ_names = O.name else D.organ_names += ", [O.name]" qdel(D.organs_scanned[O.name]) D.organs_scanned[O.name] = W.copy() if(length(O.trace_chemicals)) for(var/V in O.trace_chemicals) if(O.trace_chemicals[V] > 0 && !chemtraces.Find(V)) chemtraces += V /obj/item/autopsy_scanner/examine(mob/user) . = ..() if(Adjacent(user)) . += "You can use a pen on it to quickly write a coroner's report." /obj/item/autopsy_scanner/attackby(obj/item/P, mob/user) if(!is_pen(P)) return ..() var/dead_name = tgui_input_text(user, "Insert name of deceased individual", default = target_name, title = "Coroner's Report", max_length = 60) var/rank = tgui_input_text(user, "Insert rank of deceased individual", default = target_rank, title = "Coroner's Report", max_length = 60) var/tod = tgui_input_text(user, "Insert time of death", default = station_time_timestamp("hh:mm", timeofdeath), title = "Coroner's Report", max_length = 60) var/cause = tgui_input_text(user, "Insert cause of death", title = "Coroner's Report", max_length = 60) var/chems = tgui_input_text(user, "Insert any chemical traces", multiline = TRUE, title = "Coroner's Report") var/notes = tgui_input_text(user, "Insert any relevant notes", multiline = TRUE, title = "Coroner's Report") var/obj/item/paper/R = new(user.loc) R.name = "Official Coroner's Report - [dead_name]" R.info = "