Changes how forensic machine reports works (#12868)

This commit is contained in:
Casper3667
2022-01-17 16:51:52 +01:00
committed by GitHub
parent 4a8e97befc
commit 9e732afe63
10 changed files with 113 additions and 53 deletions
@@ -99,7 +99,7 @@
last_process_worldtime = world.time
/obj/machinery/dnaforensics/proc/complete_scan()
visible_message("<span class='notice'>[icon2html(src, viewers(get_turf(src)))] makes an insistent chime.</span>", range = 2)
visible_message(SPAN_NOTICE("[icon2html(src, viewers(get_turf(src)))] makes an insistent chime."), range = 2)
update_icon()
if(bloodsamp)
var/obj/item/paper/P = new()
@@ -110,13 +110,15 @@
//dna data itself
var/data = "No scan information available."
if(bloodsamp.dna != null)
data = "Spectometric analysis on provided sample has determined the presence of [bloodsamp.dna.len] strings of DNA.<br><br>"
data = "Spectometric analysis on provided sample has determined the presence of [length(bloodsamp.dna)] string\s of DNA.<br><br>"
for(var/blood in bloodsamp.dna)
data += "<span class='notice'>Blood type: [bloodsamp.dna[blood]]<br>\nDNA: [blood]<br><br></span>"
if(bloodsamp.dna[blood])
data += "<b>Blood type:</b> [bloodsamp.dna[blood]]<br>"
data += "<b>DNA:</b> [blood]<br><br>"
else
data += "No DNA found.<br>"
info = "<b>[src] analysis report #[report_num]</b><br>"
info += "<b>Scanned item:</b><br>[bloodsamp.name]<br>[bloodsamp.desc]<br><br>" + data
info = "<b><font size=\"4\">[src] analysis report #[report_num]</font></b><HR>"
info += "<b>Scanned item:</b> [bloodsamp.name]<br><br>" + data
P.set_content_unsafe(pname, info)
print(P)
scanning = 0
@@ -10,7 +10,9 @@
density = 1
var/obj/item/sample = null
var/report_num = 0
var/report_fiber_num = 0
var/report_print_num = 0
var/report_gsr_num = 0
/obj/machinery/microscope/attackby(obj/item/W as obj, mob/user as mob)
@@ -43,47 +45,56 @@
var/info
report.stamped = list(/obj/item/stamp)
report.overlays = list("paper_stamped")
report_num++
if(istype(sample, /obj/item/forensics/slide))
var/obj/item/forensics/slide/slide = sample
if(slide.has_swab)
var/obj/item/forensics/swab/swab = slide.has_swab
pname = "GSR report #[report_num]"
info = "<b>Scanned item:</b><br>[swab.name]<br><br>"
if(swab.gsr)
info += "Residue from a [swab.gsr] bullet detected."
report_gsr_num++
pname = "GSR report #[report_gsr_num]"
info = "<b><font size=\"4\">GSR anaylsis report #[report_gsr_num]</font></b><HR>"
if(length(swab.gsr))
info += "Residue analysis of the [swab.name] has determined the presence of the following residues.<ul>"
for(var/gsr in swab.gsr)
info += "<li>Residue from a [gsr] bullet detected.</li>"
info += "</ul>"
else
info += "No gunpowder residue found."
else if(slide.has_sample)
var/obj/item/sample/fibers/fibers = slide.has_sample
pname = "Fiber report #[report_num]"
info = "<b>Scanned item:</b><br>[initial(fibers.name)]<br><br>"
report_fiber_num++
pname = "Fiber report #[report_fiber_num]"
if(fibers.evidence)
info = "Molecular analysis on [fibers.name] has determined the presence of unique fiber strings.<br><br>"
info = "<b><font size=\"4\">Fiber anaylsis report #[report_fiber_num]</font></b><HR>"
info += "<b>Source locations:</b> "
info += "[english_list(fibers.source, "no sources were found", ", ", ", ", "")].<br><br>"
info += "Molecular analysis on [fibers.name] has determined the presence of unique fiber strings.<ul>"
for(var/fiber in fibers.evidence)
info += SPAN_NOTICE("Most likely match for fibers: [fiber]<br><br>")
info += "<li><b>Most likely match for fibers:</b> [fiber]</li>"
info += "</ul>"
else
info += "No fibers found."
else
pname = "Empty slide report #[report_num]"
pname = "Empty slide report #[report_fiber_num]"
info = "Evidence suggests that there's nothing in this slide."
else if(istype(sample, /obj/item/sample/print))
pname = "Fingerprint report #[report_num]"
info = "<b>Fingerprint analysis report #[report_num]</b>: [sample.name]<br>"
report_print_num++
pname = "Fingerprint report #[report_print_num]"
var/obj/item/sample/print/card = sample
info = "<b><font size=\"4\">Fingerprint analysis report #[report_print_num]</font></b><HR>"
info += "<b>Source locations:</b> "
info += "[english_list(card.source, "no sources were found", ", ", ", ", "")].<br><br>"
if(card.evidence && card.evidence.len)
info += "Surface analysis has determined unique fingerprint strings:<br><br>"
info += "Surface analysis has determined unique fingerprint strings:<ul>"
for(var/prints in card.evidence)
info += SPAN_NOTICE("Fingerprint string: ")
info += "<li><b>Fingerprint string: </b>"
if(!is_complete_print(prints))
info += "INCOMPLETE PRINT"
else
info += "[prints]"
info += "<br>"
info += "</li>"
info += "</ul>"
else
info += "No information available."