[MIRROR] refactors most spans (#9139)

Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com>
Co-authored-by: Kashargul <KashL@t-online.de>
This commit is contained in:
CHOMPStation2
2024-10-04 06:00:17 -07:00
committed by GitHub
parent 43ee646816
commit ab154b48b2
1511 changed files with 12497 additions and 12357 deletions

View File

@@ -21,11 +21,11 @@
/obj/machinery/dnaforensics/attackby(obj/item/W, mob/user)
if(bloodsamp)
to_chat(user, "<span class='warning'>There is a sample in the machine.</span>")
to_chat(user, span_warning("There is a sample in the machine."))
return
if(scanning)
to_chat(user, "<span class='warning'>[src] is busy scanning right now.</span>")
to_chat(user, span_warning("[src] is busy scanning right now."))
return
if(default_deconstruction_screwdriver(user, W))
@@ -38,10 +38,10 @@
user.unEquip(W)
bloodsamp = swab
swab.forceMove(src)
to_chat(user, "<span class='notice'>You insert [W] into [src].</span>")
to_chat(user, span_notice("You insert [W] into [src]."))
update_icon()
else
to_chat(user, "<span class='warning'>\The [src] only accepts used swabs.</span>")
to_chat(user, span_warning("\The [src] only accepts used swabs."))
return
/obj/machinery/dnaforensics/tgui_interact(mob/user, datum/tgui/ui)
@@ -77,10 +77,10 @@
if(bloodsamp)
scanner_progress = 0
scanning = TRUE
to_chat(usr, "<span class='notice'>Scan initiated.</span>")
to_chat(usr, span_notice("Scan initiated."))
update_icon()
else
to_chat(usr, "<span class='warning'>Insert an item to scan.</span>")
to_chat(usr, span_warning("Insert an item to scan."))
. = TRUE
if("ejectItem")
@@ -105,7 +105,7 @@
last_process_worldtime = world.time
/obj/machinery/dnaforensics/proc/complete_scan()
visible_message("<span class='notice'>[icon2html(src,viewers(src))] makes an insistent chime.</span>", 2)
visible_message(span_notice("[icon2html(src,viewers(src))] makes an insistent chime."), 2)
update_icon()
if(bloodsamp)
var/obj/item/paper/P = new(src)

View File

@@ -13,11 +13,11 @@
/obj/machinery/microscope/attackby(obj/item/W as obj, mob/user as mob)
if(sample)
to_chat(user, "<span class='warning'>There is already a slide in the microscope.</span>")
to_chat(user, span_warning("There is already a slide in the microscope."))
return
if(istype(W, /obj/item/forensics/swab)|| istype(W, /obj/item/sample/fibers) || istype(W, /obj/item/sample/print))
to_chat(user, "<span class='notice'>You insert \the [W] into the microscope.</span>")
to_chat(user, span_notice("You insert \the [W] into the microscope."))
user.unEquip(W)
W.forceMove(src)
sample = W
@@ -27,16 +27,16 @@
/obj/machinery/microscope/attack_hand(mob/user)
if(!sample)
to_chat(user, "<span class='warning'>The microscope has no sample to examine.</span>")
to_chat(user, span_warning("The microscope has no sample to examine."))
return
to_chat(user, "<span class='notice'>The microscope whirrs as you examine \the [sample].</span>")
to_chat(user, span_notice("The microscope whirrs as you examine \the [sample]."))
if(!do_after(user, 2 SECONDS) || !sample)
to_chat(user, "<span class='notice'>You stop examining \the [sample].</span>")
to_chat(user, span_notice("You stop examining \the [sample]."))
return
to_chat(user, "<span class='notice'>Printing findings now...</span>")
to_chat(user, span_notice("Printing findings now..."))
var/obj/item/paper/report = new(get_turf(src))
report.stamped = list(/obj/item/stamp)
report.overlays = list("paper_stamped")
@@ -70,7 +70,7 @@
if(card.evidence && card.evidence.len)
report.info += "Surface analysis has determined unique fingerprint strings:<br><br>"
for(var/prints in card.evidence)
report.info += "<span class='notice'>Fingerprint string: </span>"
report.info += span_notice("Fingerprint string: ")
if(!is_complete_print(card.evidence[prints]))
report.info += "INCOMPLETE PRINT:[card.evidence[prints]]"
else
@@ -89,9 +89,9 @@
if(!istype(remover) || remover.incapacitated() || !Adjacent(remover))
return
if(!sample)
to_chat(remover, "<span class='warning'>\The [src] does not have a sample in it.</span>")
to_chat(remover, span_warning("\The [src] does not have a sample in it."))
return
to_chat(remover, "<span class='notice'>You remove \the [sample] from \the [src].</span>")
to_chat(remover, span_notice("You remove \the [sample] from \the [src]."))
sample.forceMove(get_turf(src))
remover.put_in_hands(sample)
sample = null

View File

@@ -39,15 +39,15 @@
return
if(istype(I, /obj/item/evidencebag))
to_chat(user, "<span class='notice'>You find putting an evidence bag in another evidence bag to be slightly absurd.</span>")
to_chat(user, span_notice("You find putting an evidence bag in another evidence bag to be slightly absurd."))
return
if(I.w_class > 3)
to_chat(user, "<span class='notice'>[I] won't fit in [src].</span>")
to_chat(user, span_notice("[I] won't fit in [src]."))
return
if(contents.len)
to_chat(user, "<span class='notice'>[src] already has something inside it.</span>")
to_chat(user, span_notice("[src] already has something inside it."))
return
user.visible_message("[user] puts [I] into [src]", "You put [I] inside [src].",\

View File

@@ -41,7 +41,7 @@
/obj/item/reagent_containers/glass/rag/attack_self(mob/user as mob)
if(on_fire)
user.visible_message("<span class='warning'>\The [user] stamps out [src].</span>", "<span class='warning'>You stamp out [src].</span>")
user.visible_message(span_warning("\The [user] stamps out [src]."), span_warning("You stamp out [src]."))
user.unEquip(src)
extinguish()
else
@@ -53,9 +53,9 @@
if(F.lit)
src.ignite()
if(on_fire)
visible_message("<span class='warning'>\The [user] lights [src] with [W].</span>")
visible_message(span_warning("\The [user] lights [src] with [W]."))
else
to_chat(user, "<span class='warning'>You manage to singe [src], but fail to light it.</span>")
to_chat(user, span_warning("You manage to singe [src], but fail to light it."))
. = ..()
update_name()
@@ -84,19 +84,19 @@
if(reagents.total_volume)
var/target_text = trans_dest? "\the [trans_dest]" : "\the [user.loc]"
user.visible_message("<span class='danger'>\The [user] begins to wring out [src] over [target_text].</span>", "<span class='notice'>You begin to wring out [src] over [target_text].</span>")
user.visible_message(span_danger("\The [user] begins to wring out [src] over [target_text]."), span_notice("You begin to wring out [src] over [target_text]."))
if(do_after(user, reagents.total_volume*5)) //50 for a fully soaked rag
if(trans_dest)
reagents.trans_to(trans_dest, reagents.total_volume)
else
reagents.splash(user.loc, reagents.total_volume)
user.visible_message("<span class='danger'>\The [user] wrings out [src] over [target_text].</span>", "<span class='notice'>You finish to wringing out [src].</span>")
user.visible_message(span_danger("\The [user] wrings out [src] over [target_text]."), span_notice("You finish to wringing out [src]."))
update_name()
/obj/item/reagent_containers/glass/rag/proc/wipe_down(atom/A, mob/user)
if(!reagents.total_volume)
to_chat(user, "<span class='warning'>The [initial(name)] is dry!</span>")
to_chat(user, span_warning("The [initial(name)] is dry!"))
else
user.visible_message("[user] starts to wipe [A] with [src].")
update_name()
@@ -108,29 +108,29 @@
if(isliving(target)) //Leaving this as isliving.
var/mob/living/M = target
if(on_fire) //Check if rag is on fire, if so igniting them and stopping.
user.visible_message("<span class='danger'>\The [user] hits [target] with [src]!</span>",)
user.visible_message(span_danger("\The [user] hits [target] with [src]!"),)
user.do_attack_animation(src)
M.IgniteMob()
else if(user.zone_sel.selecting == O_MOUTH) //Check player target location, provided the rag is not on fire. Then check if mouth is exposed.
if(ishuman(target)) //Added this since player species process reagents in majority of cases.
var/mob/living/carbon/human/H = target
if(H.head && (H.head.body_parts_covered & FACE)) //Check human head coverage.
to_chat(user, "<span class='warning'>Remove their [H.head] first.</span>")
to_chat(user, span_warning("Remove their [H.head] first."))
return
else if(reagents.total_volume) //Final check. If the rag is not on fire and their face is uncovered, smother target.
user.do_attack_animation(src)
user.visible_message(
"<span class='danger'>\The [user] smothers [target] with [src]!</span>",
"<span class='warning'>You smother [target] with [src]!</span>",
span_danger("\The [user] smothers [target] with [src]!"),
span_warning("You smother [target] with [src]!"),
"You hear some struggling and muffled cries of surprise"
)
//it's inhaled, so... maybe CHEM_BLOOD doesn't make a whole lot of sense but it's the best we can do for now
reagents.trans_to_mob(target, amount_per_transfer_from_this, CHEM_BLOOD)
update_name()
else
to_chat(user, "<span class='warning'>You can't smother this creature.</span>")
to_chat(user, span_warning("You can't smother this creature."))
else
to_chat(user, "<span class='warning'>You can't smother this creature.</span>")
to_chat(user, span_warning("You can't smother this creature."))
else
wipe_down(target, user)
else
@@ -143,11 +143,11 @@
if(istype(A, /obj/structure/reagent_dispensers) || istype(A, /obj/item/reagent_containers/glass/bucket) || istype(A, /obj/structure/mopbucket)) //VOREStation Edit - "Allows rags to be used on buckets and mopbuckets"
if(!reagents.get_free_space())
to_chat(user, "<span class='warning'>\The [src] is already soaked.</span>")
to_chat(user, span_warning("\The [src] is already soaked."))
return
if(A.reagents && A.reagents.trans_to_obj(src, reagents.maximum_volume))
user.visible_message("<b>\The [user]</b> soaks [src] using [A].", "<span class='notice'>You soak [src] using [A].</span>")
user.visible_message("<b>\The [user]</b> soaks [src] using [A].", span_notice("You soak [src] using [A]."))
update_name()
return
@@ -185,7 +185,7 @@
//also copied from matches
if(reagents.get_reagent_amount("phoron")) // the phoron explodes when exposed to fire
visible_message("<span class='danger'>\The [src] conflagrates violently!</span>")
visible_message(span_danger("\The [src] conflagrates violently!"))
var/datum/effect/effect/system/reagents_explosion/e = new()
e.set_up(round(reagents.get_reagent_amount("phoron") / 2.5, 1), get_turf(src), 0, 0)
e.start()
@@ -206,7 +206,7 @@
//rags sitting around with 1 second of burn time left is dumb.
//ensures players always have a few seconds of burn time left when they light their rag
if(burn_time <= 5)
visible_message("<span class='warning'>\The [src] falls apart!</span>")
visible_message(span_warning("\The [src] falls apart!"))
new /obj/effect/decal/cleanable/ash(get_turf(src))
qdel(src)
update_name()
@@ -214,7 +214,7 @@
/obj/item/reagent_containers/glass/rag/process()
if(!can_ignite())
visible_message("<span class='warning'>\The [src] burns out.</span>")
visible_message(span_warning("\The [src] burns out."))
extinguish()
//copied from matches

View File

@@ -25,7 +25,7 @@
return 0
evidence |= supplied.evidence
name = "[initial(name)] (combined)"
to_chat(user, "<span class='notice'>You transfer the contents of \the [supplied] into \the [src].</span>")
to_chat(user, span_notice("You transfer the contents of \the [supplied] into \the [src]."))
return 1
/obj/item/sample/print/merge_evidence(var/obj/item/sample/supplied, var/mob/user)
@@ -37,7 +37,7 @@
else
evidence[print] = supplied.evidence[print]
name = "[initial(name)] (combined)"
to_chat(user, "<span class='notice'>You overlay \the [src] and \the [supplied], combining the print records.</span>")
to_chat(user, span_notice("You overlay \the [src] and \the [supplied], combining the print records."))
return 1
/obj/item/sample/attackby(var/obj/O, var/mob/user)
@@ -67,10 +67,10 @@
return
var/mob/living/carbon/human/H = user
if(H.gloves)
to_chat(user, "<span class='warning'>Take \the [H.gloves] off first.</span>")
to_chat(user, span_warning("Take \the [H.gloves] off first."))
return
to_chat(user, "<span class='notice'>You firmly press your fingertips onto the card.</span>")
to_chat(user, span_notice("You firmly press your fingertips onto the card."))
var/fullprint = H.get_full_print()
evidence[fullprint] = fullprint
name = "[initial(name)] (\the [H])"
@@ -87,11 +87,11 @@
var/mob/living/carbon/human/H = M
if(H.gloves)
to_chat(user, "<span class='warning'>\The [H] is wearing gloves.</span>")
to_chat(user, span_warning("\The [H] is wearing gloves."))
return 1
if(user != H && H.a_intent != "help" && !H.lying)
user.visible_message("<span class='danger'>\The [user] tries to take prints from \the [H], but they move away.</span>")
user.visible_message(span_danger("\The [user] tries to take prints from \the [H], but they move away."))
return 1
if(user.zone_sel.selecting == "r_hand" || user.zone_sel.selecting == "l_hand")
@@ -104,7 +104,7 @@
if(istype(O) && !O.is_stump())
has_hand = 1
if(!has_hand)
to_chat(user, "<span class='warning'>They don't have any hands.</span>")
to_chat(user, span_warning("They don't have any hands."))
return 1
user.visible_message("[user] takes a copy of \the [H]'s fingerprints.")
var/fullprint = H.get_full_print()
@@ -134,7 +134,7 @@
/obj/item/forensics/sample_kit/proc/take_sample(var/mob/user, var/atom/supplied)
var/obj/item/sample/S = new evidence_path(get_turf(user), supplied)
to_chat(user, "<span class='notice'>You transfer [S.evidence.len] [S.evidence.len > 1 ? "[evidence_type]s" : "[evidence_type]"] to \the [S].</span>")
to_chat(user, span_notice("You transfer [S.evidence.len] [S.evidence.len > 1 ? "[evidence_type]s" : "[evidence_type]"] to \the [S]."))
/obj/item/forensics/sample_kit/afterattack(var/atom/A, var/mob/user, var/proximity)
if(!proximity)
@@ -144,7 +144,7 @@
take_sample(user,A)
return 1
else
to_chat(user, "<span class='warning'>You are unable to locate any [evidence_type]s on \the [A].</span>")
to_chat(user, span_warning("You are unable to locate any [evidence_type]s on \the [A]."))
return ..()
/obj/item/forensics/sample_kit/powder

View File

@@ -15,26 +15,26 @@
/obj/item/detective_scanner/attack(mob/living/carbon/human/M as mob, mob/user as mob)
if (!ishuman(M))
to_chat(user, "<span class='warning'>\The [M] does not seem to be compatible with this device.</span>")
to_chat(user, span_warning("\The [M] does not seem to be compatible with this device."))
flick("[icon_state]0",src)
return 0
if(reveal_fingerprints)
if((!( istype(M.dna, /datum/dna) ) || M.gloves))
to_chat(user, "<span class='notice'>No fingerprints found on [M]</span>")
to_chat(user, span_notice("No fingerprints found on [M]"))
flick("[icon_state]0",src)
return 0
else if(user.zone_sel.selecting == "r_hand" || user.zone_sel.selecting == "l_hand")
var/obj/item/sample/print/P = new /obj/item/sample/print(user.loc)
P.attack(M, user)
to_chat(user, "<span class='notice'>Done printing.</span>")
// to_chat(user, "<span class='notice'>[M]'s Fingerprints: [md5(M.dna.uni_identity)]</span>")
to_chat(user, span_notice("Done printing."))
// to_chat(user, span_notice("[M]'s Fingerprints: [md5(M.dna.uni_identity)]"))
if(reveal_blood && M.blood_DNA && M.blood_DNA.len)
to_chat(user, "<span class='notice'>Blood found on [M]. Analysing...</span>")
to_chat(user, span_notice("Blood found on [M]. Analysing..."))
spawn(15)
for(var/blood in M.blood_DNA)
to_chat(user, "<span class='notice'>Blood type: [M.blood_DNA[blood]]\nDNA: [blood]</span>")
to_chat(user, span_notice("Blood type: [M.blood_DNA[blood]]\nDNA: [blood]"))
return
/obj/item/detective_scanner/afterattack(atom/A as obj|turf, mob/user, proximity)
@@ -45,7 +45,7 @@
/*
if(istype(A,/obj/machinery/computer/forensic_scanning))
user.visible_message("[user] takes a cord out of [src] and hooks its end into [A]" ,\
"<span class='notice'>You download data from [src] to [A]</span>")
span_notice("You download data from [src] to [A]"))
var/obj/machinery/computer/forensic_scanning/F = A
F.sync_data(stored)
return
@@ -59,27 +59,27 @@
add_fingerprint(user)
if(!(do_after(user, 1 SECOND)))
to_chat(user, "<span class='warning'>You must remain still for the device to complete its work.</span>")
to_chat(user, span_warning("You must remain still for the device to complete its work."))
return 0
//General
if ((!A.fingerprints || !A.fingerprints.len) && !A.suit_fibers && !A.blood_DNA)
user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\
"<span class='warning'>Unable to locate any fingerprints, materials, fibers, or blood on [A]!</span>",\
span_warning("Unable to locate any fingerprints, materials, fibers, or blood on [A]!"),\
"You hear a faint hum of electrical equipment.")
flick("[icon_state]0",src)
return 0
if(add_data(A))
to_chat(user,"<span class='notice'>Object already in internal memory. Consolidating data...</span>")
to_chat(user,span_notice("Object already in internal memory. Consolidating data..."))
flick("[icon_state]1",src)
return
//PRINTS
if(A.fingerprints && A.fingerprints.len)
to_chat(user, "<span class='notice'>Isolated [A.fingerprints.len] fingerprints:</span>")
to_chat(user, span_notice("Isolated [A.fingerprints.len] fingerprints:"))
if(!reveal_incompletes)
to_chat(user, "<span class='warning'>Rapid Analysis Imperfect: Scan samples with H.R.F.S. equipment to determine nature of incomplete prints.</span>")
to_chat(user, span_warning("Rapid Analysis Imperfect: Scan samples with H.R.F.S. equipment to determine nature of incomplete prints."))
var/list/complete_prints = list()
var/list/incomplete_prints = list()
for(var/i in A.fingerprints)
@@ -89,38 +89,38 @@
else
incomplete_prints += print
if(complete_prints.len < 1)
to_chat(user, "<span class='notice'>No intact prints found</span>")
to_chat(user, span_notice("No intact prints found"))
else
to_chat(user, "<span class='notice'>Found [complete_prints.len] intact prints</span>")
to_chat(user, span_notice("Found [complete_prints.len] intact prints"))
if(reveal_fingerprints)
for(var/i in complete_prints)
to_chat(user, "<span class='notice'>&nbsp;&nbsp;&nbsp;&nbsp;[i]</span>")
to_chat(user, span_notice("&nbsp;&nbsp;&nbsp;&nbsp;[i]"))
to_chat(user, "<span class='notice'>Found [incomplete_prints.len] incomplete prints</span>")
to_chat(user, span_notice("Found [incomplete_prints.len] incomplete prints"))
if(reveal_incompletes)
for(var/i in incomplete_prints)
to_chat(user, "<span class='notice'>&nbsp;&nbsp;&nbsp;&nbsp;[i]</span>")
to_chat(user, span_notice("&nbsp;&nbsp;&nbsp;&nbsp;[i]"))
//FIBERS
if(A.suit_fibers && A.suit_fibers.len)
to_chat(user,"<span class='notice'>Fibers/Materials detected.[reveal_fibers ? " Analysing..." : " Acquisition of fibers for H.R.F.S. analysis advised."]</span>")
to_chat(user,span_notice("Fibers/Materials detected.[reveal_fibers ? " Analysing..." : " Acquisition of fibers for H.R.F.S. analysis advised."]"))
flick("[icon_state]1",src)
if(reveal_fibers && do_after(user, 5 SECONDS))
to_chat(user, "<span class='notice'>Apparel samples scanned:</span>")
to_chat(user, span_notice("Apparel samples scanned:"))
for(var/sample in A.suit_fibers)
to_chat(user, " - <span class='notice'>[sample]</span>")
//Blood
if (A.blood_DNA && A.blood_DNA.len)
to_chat(user, "<span class='notice'>Blood detected.[reveal_blood ? " Analysing..." : " Acquisition of swab for H.R.F.S. analysis advised."]</span>")
to_chat(user, span_notice("Blood detected.[reveal_blood ? " Analysing..." : " Acquisition of swab for H.R.F.S. analysis advised."]"))
if(reveal_blood && do_after(user, 5 SECONDS))
flick("[icon_state]1",src)
for(var/blood in A.blood_DNA)
to_chat(user, "Blood type: <span class='warning'>[A.blood_DNA[blood]]</span> DNA: <span class='warning'>[blood]</span>")
user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\
"<span class='notice'>You finish scanning \the [A].</span>",\
span_notice("You finish scanning \the [A]."),\
"You hear a faint hum of electrical equipment.")
flick("[icon_state]1",src)
return 0
@@ -153,7 +153,7 @@
var/list/fibers = F.fields["fibers"]
var/list/bloods = F.fields["blood"]
to_chat(user, "<span class='notice'>Data for: [F.fields["name"]]</span>")
to_chat(user, span_notice("Data for: [F.fields["name"]]"))
if(reveal_fingerprints)
var/list/complete_prints = list()
@@ -167,20 +167,20 @@
incomplete_prints += print
if(complete_prints.len < 1)
to_chat(user, "<span class='notice'>No intact prints found.</span>")
to_chat(user, span_notice("No intact prints found."))
if(reveal_incompletes)
for(var/print in incomplete_prints)
to_chat(user, " - <span class='notice'>[print]</span>")
if(fibers && fibers.len)
to_chat(user, "<span class='notice'>[fibers.len] samples of material were present.</span>")
to_chat(user, span_notice("[fibers.len] samples of material were present."))
if(reveal_fibers)
for(var/sample in fibers)
to_chat(user, " - <span class='notice'>[sample]</span>")
if(bloods && bloods.len)
to_chat(user, "<span class='notice'>[bloods.len] samples of blood were present.</span>")
to_chat(user, span_notice("[bloods.len] samples of blood were present."))
if(reveal_blood)
for(var/bloodsample in bloods)
to_chat(user, " - <span class='warning'>[bloodsample]</span> Type: [bloods[bloodsample]]")
@@ -192,7 +192,7 @@
if (tgui_alert(usr, "Are you sure you want to wipe all data from [src]?","Wipe Data",list("Yes","No")) == "Yes")
stored = list()
to_chat(usr, "<span class='notice'>Forensic data erase complete.</span>")
to_chat(usr, span_notice("Forensic data erase complete."))
/obj/item/detective_scanner/advanced
name = "advanced forensic scanner"

View File

@@ -23,23 +23,23 @@
var/sample_type
if(H.wear_mask)
to_chat(user, "<span class='warning'>\The [H] is wearing a mask.</span>")
to_chat(user, span_warning("\The [H] is wearing a mask."))
return
if(!H.dna || !H.dna.unique_enzymes)
to_chat(user, "<span class='warning'>They don't seem to have DNA!</span>")
to_chat(user, span_warning("They don't seem to have DNA!"))
return
if(user != H && H.a_intent != "help" && !H.lying)
user.visible_message("<span class='danger'>\The [user] tries to take a swab sample from \the [H], but they move away.</span>")
user.visible_message(span_danger("\The [user] tries to take a swab sample from \the [H], but they move away."))
return
if(user.zone_sel.selecting == O_MOUTH)
if(!H.organs_by_name[BP_HEAD])
to_chat(user, "<span class='warning'>They don't have a head.</span>")
to_chat(user, span_warning("They don't have a head."))
return
if(!H.check_has_mouth())
to_chat(user, "<span class='warning'>They don't have a mouth.</span>")
to_chat(user, span_warning("They don't have a mouth."))
return
user.visible_message("[user] swabs \the [H]'s mouth for a saliva sample.")
dna = list(H.dna.unique_enzymes)
@@ -55,7 +55,7 @@
if(istype(O) && !O.is_stump())
has_hand = 1
if(!has_hand)
to_chat(user, "<span class='warning'>They don't have any hands.</span>")
to_chat(user, span_warning("They don't have any hands."))
return
user.visible_message("[user] swabs [H]'s palm for a sample.")
sample_type = "GSR"
@@ -74,7 +74,7 @@
return
if(is_used())
to_chat(user, "<span class='warning'>This swab has already been used.</span>")
to_chat(user, span_warning("This swab has already been used."))
return
add_fingerprint(user)
@@ -87,7 +87,7 @@
var/choice
if(!choices.len)
to_chat(user, "<span class='warning'>There is no evidence on \the [A].</span>")
to_chat(user, span_warning("There is no evidence on \the [A]."))
return
else if(choices.len == 1)
choice = choices[1]
@@ -106,7 +106,7 @@
else if(choice == "Gunshot Residue")
var/obj/item/clothing/B = A
if(!istype(B) || !B.gunshot_residue)
to_chat(user, "<span class='warning'>There is no residue on \the [A].</span>")
to_chat(user, span_warning("There is no residue on \the [A]."))
return
gsr = B.gunshot_residue
sample_type = "residue"