diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 9e9bda2d5c..e5e90c2be2 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -252,10 +252,7 @@ /atom/proc/get_examine_name(mob/user) . = "\a [src]" var/list/override = list(gender == PLURAL ? "some" : "a", " ", "[name]") - if(length(blood_DNA) && article) - . = "[article] [src]" - override[EXAMINE_POSITION_ARTICLE] = " blood-stained [article]" - else if(article) + if(article) . = "[article] [src]" override[EXAMINE_POSITION_ARTICLE] = article @@ -267,7 +264,18 @@ . = "[icon2html(src, user)] [thats? "That's ":""][get_examine_name(user)]" /atom/proc/examine(mob/user) - to_chat(user, "[get_examine_string(user, TRUE)].") + //This reformat names to get a/an properly working on item descriptions when they are bloody + var/f_name = "\a [src]." + if(src.blood_DNA && !istype(src, /obj/effect/decal)) + if(gender == PLURAL) + f_name = "some " + else + f_name = "a " + f_name += "blood-stained [name]!" + + to_chat(user, "[icon2html(src, user)] That's [f_name]") + +// to_chat(user, "[get_examine_string(user, TRUE)].") if(desc) to_chat(user, desc) @@ -377,14 +385,14 @@ var/list/blood_dna = M.get_blood_dna_list() if(!blood_dna) return FALSE - return add_blood_DNA(blood_dna) + return add_blood_DNA(blood_dna, M.diseases) //to add blood onto something, with blood dna info to include. /atom/proc/add_blood_DNA(list/blood_dna, list/datum/disease/diseases) return FALSE /obj/add_blood_DNA(list/blood_dna, list/datum/disease/diseases) - return transfer_blood_dna(blood_dna) + return transfer_blood_dna(blood_dna, diseases) /obj/item/add_blood_DNA(list/blood_dna, list/datum/disease/diseases) if(!..()) @@ -413,30 +421,30 @@ var/obj/effect/decal/cleanable/blood/splatter/B = locate() in src if(!B) B = new /obj/effect/decal/cleanable/blood/splatter(src, diseases) - B.transfer_blood_dna(blood_dna) //give blood info to the blood decal. + B.transfer_blood_dna(blood_dna, diseases) //give blood info to the blood decal. return TRUE //we bloodied the floor /mob/living/carbon/human/add_blood_DNA(list/blood_dna, list/datum/disease/diseases) if(head) - head.add_blood_DNA(blood_dna) + head.add_blood_DNA(blood_dna, diseases) update_inv_head() else if(wear_mask) - wear_mask.add_blood_DNA(blood_dna) + wear_mask.add_blood_DNA(blood_dna, diseases) update_inv_wear_mask() if(wear_neck) - wear_neck.add_blood_DNA(blood_dna) + wear_neck.add_blood_DNA(blood_dna, diseases) update_inv_neck() if(wear_suit) - wear_suit.add_blood_DNA(blood_dna) + wear_suit.add_blood_DNA(blood_dna, diseases) update_inv_wear_suit() else if(w_uniform) - w_uniform.add_blood_DNA(blood_dna) + w_uniform.add_blood_DNA(blood_dna, diseases) update_inv_w_uniform() if(gloves) var/obj/item/clothing/gloves/G = gloves - G.add_blood_DNA(blood_dna) + G.add_blood_DNA(blood_dna, diseases) else - transfer_blood_dna(blood_dna) + transfer_blood_dna(blood_dna, diseases) bloody_hands = rand(2, 4) update_inv_gloves() //handles bloody hands overlays and updating return TRUE diff --git a/code/game/objects/effects/decals/cleanable/aliens.dm b/code/game/objects/effects/decals/cleanable/aliens.dm index 45d3757921..988011c492 100644 --- a/code/game/objects/effects/decals/cleanable/aliens.dm +++ b/code/game/objects/effects/decals/cleanable/aliens.dm @@ -35,7 +35,7 @@ if(infective) diseases = infective.diseases var/obj/effect/decal/cleanable/blood/splatter/xeno/splat = new /obj/effect/decal/cleanable/blood/splatter/xeno(loc, diseases) - splat.transfer_blood_dna(blood_DNA) + splat.transfer_blood_dna(blood_DNA, diseases) if(!step_to(src, get_step(src, direction), 0)) break diff --git a/code/game/objects/effects/decals/cleanable/gibs.dm b/code/game/objects/effects/decals/cleanable/gibs.dm index c87f197ce7..e5d38d3ef6 100644 --- a/code/game/objects/effects/decals/cleanable/gibs.dm +++ b/code/game/objects/effects/decals/cleanable/gibs.dm @@ -16,7 +16,7 @@ if(gibs_reagent_id) reagents.add_reagent(gibs_reagent_id, 5) if(gibs_bloodtype) - add_blood_DNA(list("Non-human DNA" = gibs_bloodtype)) + add_blood_DNA(list("Non-human DNA" = gibs_bloodtype, diseases)) update_icon() @@ -50,7 +50,7 @@ if(infective) diseases = infective.diseases var/obj/effect/decal/cleanable/blood/splatter/splat = new /obj/effect/decal/cleanable/blood/splatter(loc, diseases) - splat.transfer_blood_dna(blood_DNA) + splat.transfer_blood_dna(blood_DNA, diseases) if(!step_to(src, get_step(src, direction), 0)) break diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index cb4cec175a..488f59bb88 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -45,7 +45,7 @@ return(BRUTELOSS) -/obj/item/clothing/shoes/transfer_blood_dna(list/blood_dna) +/obj/item/clothing/shoes/transfer_blood_dna(list/blood_dna, diseases) ..() if(blood_dna.len) last_bloodtype = blood_dna[blood_dna[blood_dna.len]]//trust me this works diff --git a/code/modules/detectivework/detective_work.dm b/code/modules/detectivework/detective_work.dm index 2b916ffc27..1a2405b9c4 100644 --- a/code/modules/detectivework/detective_work.dm +++ b/code/modules/detectivework/detective_work.dm @@ -7,7 +7,7 @@ if(add_blood_DNA(G.blood_DNA)) //only reduces the bloodiness of our gloves if the item wasn't already bloody G.transfer_blood-- else if(M.bloody_hands > 1) - if(add_blood_DNA(M.blood_DNA)) + if(add_blood_DNA(M.blood_DNA, M.diseases)) M.bloody_hands-- if(!suit_fibers) suit_fibers = list() diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 1117bc1000..06ce7b91e4 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -170,7 +170,7 @@ if(iscarbon(user)) var/mob/living/carbon/C = user user_dna = C.dna - B.add_blood_DNA(user_dna) + B.add_blood_DNA(user_dna, C.diseases) var/datum/callback/gibspawner = CALLBACK(GLOBAL_PROC, /proc/spawn_atom_to_turf, /obj/effect/gibspawner/generic, B, 1, FALSE, list(user_dna)) B.throw_at(target, BRAINS_BLOWN_THROW_RANGE, BRAINS_BLOWN_THROW_SPEED, callback=gibspawner) return(BRUTELOSS) diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 0e482f8cec..7bf660bf57 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -194,7 +194,7 @@ to_chat(usr, "ERROR: Cannot replicate virus strain.") return A = A.Copy() - var/list/data = list("viruses" = list(A)) + var/list/data = list("blood_DNA" = "UNKNOWN DNA", "blood_type" = "SY", "viruses" = list(A)) var/obj/item/reagent_containers/glass/bottle/B = new(drop_location()) B.name = "[A.name] culture bottle" B.desc = "A small bottle. Contains [A.agent] culture in synthblood medium." diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 0fcb7e6c30..16e99d53bd 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -35,7 +35,7 @@ /datum/reagent/blood/reaction_obj(obj/O, volume) if(volume >= 3 && istype(O)) - O.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"])) + O.add_blood_DNA(data) /datum/reagent/blood/on_new(list/data) if(istype(data)) @@ -107,8 +107,8 @@ if(reac_volume < 3) return - T.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"])) - var/obj/effect/decal/cleanable/blood/B = locate() in T + T.add_blood_DNA(data) + var/obj/effect/decal/cleanable/blood/B = locate() in T //find some blood here if(!B.reagents) B.reagents.add_reagent(id, reac_volume) B.update_icon() diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 48abfcb649..af3f475042 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -25,7 +25,7 @@ create_reagents(volume, reagent_flags) if(spawned_disease) var/datum/disease/F = new spawned_disease() - var/list/data = list("viruses"= list(F)) + var/list/data = list("blood_DNA" = "UNKNOWN DNA", "blood_type" = "SY","viruses"= list(F)) reagents.add_reagent("blood", disease_amount, data) add_initial_reagents()