diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 34d16bbdc0d..b003c72465c 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -443,7 +443,7 @@ its easier to just keep the beam vertical.
/atom/proc/examine(mob/user, var/size = "", var/show_name = TRUE, var/show_icon = TRUE)
//This reformat names to get a/an properly working on item descriptions when they are bloody
var/f_name = "\a [src]."
- if(blood_DNA && blood_DNA.len)
+ if(is_blood_stained())
var/stain_text = get_stain_text(FALSE)
f_name = "[get_indefinite_article(stain_text, gender)] [stain_text] [name]!"
@@ -1006,7 +1006,9 @@ its easier to just keep the beam vertical.
var/stains[0]
for (var/this_blood_DNA in blood_DNA)
if (this_blood_DNA)
- stains[get_stain_name(blood_DNA[this_blood_DNA])]++
+ var/stain_name = get_stain_name(blood_DNA[this_blood_DNA])
+ if (stain_name)
+ stains[stain_name]++
if (stains.len)
for (var/thisstain in stains)
. += "[. ? "and-" : ""][thisstain]-"
@@ -1018,7 +1020,7 @@ its easier to just keep the beam vertical.
if (findtextEx("A+A-B+B-AB+AB-O+O-", stain_type))
return "blood"
else if (stain_type == "N/A")
- return "blood" //call everything unspecified "blood" just in case
+ return
else
return stain_type
@@ -1031,3 +1033,8 @@ its easier to just keep the beam vertical.
if (colored_text && blood_color)
stain_text = "[stain_text]"
return indef_art + " " + stain_text
+
+/atom/proc/is_blood_stained()
+ if (blood_color && blood_DNA && blood_DNA.len)
+ return TRUE
+ return FALSE
\ No newline at end of file
diff --git a/code/game/objects/structures/mannequin.dm b/code/game/objects/structures/mannequin.dm
index 75e51fc4670..c1be0470206 100644
--- a/code/game/objects/structures/mannequin.dm
+++ b/code/game/objects/structures/mannequin.dm
@@ -292,7 +292,7 @@
var/msg = ""
for(var/obj/item/I in held_items)
- if(I.blood_DNA && I.blood_DNA.len)
+ if(I.is_blood_stained())
msg += "It's holding [bicon(I)] [I.a_stained()] [I.name] in its [get_index_limb_name(is_holding_item(I))]!\n"
else
msg += "It's holding [bicon(I)] \a [I] in its [get_index_limb_name(is_holding_item(I))].\n"
@@ -320,7 +320,7 @@
if(SLOT_MANNEQUIN_EARS)
slot_examine = " on its ears"
- if(clothToExamine.blood_DNA && clothToExamine.blood_DNA.len)
+ if(clothToExamine.is_blood_stained())
msg += "It's wearing [bicon(clothToExamine)] [clothToExamine.a_stained()] [clothToExamine][slot_examine]![clothToExamine.description_accessories()]\n"
else
msg += "It's wearing [bicon(clothToExamine)] \a [clothToExamine][slot_examine].[clothToExamine.description_accessories()] \n"
diff --git a/code/modules/mob/living/carbon/complex/examine.dm b/code/modules/mob/living/carbon/complex/examine.dm
index 5c56db7adce..4c85a3f2337 100644
--- a/code/modules/mob/living/carbon/complex/examine.dm
+++ b/code/modules/mob/living/carbon/complex/examine.dm
@@ -10,7 +10,7 @@
for(var/obj/item/I in held_items)
if(I.is_visible())
- if(I.blood_DNA && I.blood_DNA.len)
+ if(I.is_blood_stained())
msg += "It has [bicon(I)] [I.a_stained()] [I.name] in its [get_index_limb_name(is_holding_item(I))]!\n"
else
msg += "It has [bicon(I)] \a [I] in its [get_index_limb_name(is_holding_item(I))].\n"
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 91274a2d9fe..d0eeeed163d 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -57,50 +57,50 @@
//uniform
if(w_uniform && !(slot_w_uniform in obscured) && w_uniform.is_visible())
- if(w_uniform.blood_DNA && w_uniform.blood_DNA.len)
+ if(w_uniform.is_blood_stained())
msg += "[t_He] [t_is] wearing [bicon(w_uniform)] [w_uniform.a_stained()] [w_uniform.name]! [format_examine(w_uniform, "Examine")][w_uniform.description_accessories()]\n"
else
msg += "[t_He] [t_is] wearing [bicon(w_uniform)] \a [w_uniform]. [format_examine(w_uniform, "Examine")][w_uniform.description_accessories()]\n"
//head
if(head && head.is_visible())
- if(head.blood_DNA && head.blood_DNA.len)
+ if(head.is_blood_stained())
msg += "[t_He] [t_is] wearing [bicon(head)] [head.a_stained()] [head.name] on [t_his] head! [format_examine(head, "Examine")][head.description_accessories()]\n"
else
msg += "[t_He] [t_is] wearing [bicon(head)] \a [head] on [t_his] head. [format_examine(head, "Examine")][head.description_accessories()][head.description_hats()]\n"
//suit/armour
if(wear_suit && wear_suit.is_visible())
- if(wear_suit.blood_DNA && wear_suit.blood_DNA.len)
+ if(wear_suit.is_blood_stained())
msg += "[t_He] [t_is] wearing [bicon(wear_suit)] [wear_suit.a_stained()] [wear_suit.name]! [format_examine(wear_suit, "Examine")][wear_suit.description_accessories()]\n"
else
msg += "[t_He] [t_is] wearing [bicon(wear_suit)] \a [wear_suit]. [format_examine(wear_suit, "Examine")][wear_suit.description_accessories()]\n"
//suit/armour storage
if(s_store)
- if(s_store.blood_DNA && s_store.blood_DNA.len)
+ if(s_store.is_blood_stained())
msg += "[t_He] [t_is] carrying [bicon(s_store)] [s_store.a_stained()] [s_store.name] on [t_his] [wear_suit.name]! [format_examine(s_store, "Examine")]\n"
else
msg += "[t_He] [t_is] carrying [bicon(s_store)] \a [s_store] on [t_his] [wear_suit.name].\n"
//back
if(back && back.is_visible())
- if(back.blood_DNA && back.blood_DNA.len)
- msg += "[t_He] [t_has] [bicon(back)] [back.a_stained()] [back] on [t_his] back! [format_examine(back, "Examine")][back.description_accessories()]\n"
+ if(back.is_blood_stained())
+ msg += "[t_He] [t_has] [bicon(back)] [back.a_stained()] [back.name] on [t_his] back! [format_examine(back, "Examine")][back.description_accessories()]\n"
else
msg += "[t_He] [t_has] [bicon(back)] \a [back] on [t_his] back. [format_examine(back, "Examine")][back.description_accessories()]\n"
//hands
for(var/obj/item/I in held_items)
if(I.is_visible())
- if(I.blood_DNA && I.blood_DNA.len)
+ if(I.is_blood_stained())
msg += "[t_He] [t_is] holding [bicon(I)] [I.a_stained()] [I.name] in [t_his] [get_index_limb_name(is_holding_item(I))]! [format_examine(I, "Examine")]\n"
else
msg += "[t_He] [t_is] holding [bicon(I)] \a [I] in [t_his] [get_index_limb_name(is_holding_item(I))]. [format_examine(I, "Examine")]\n"
//gloves
if(gloves && !(slot_gloves in obscured) && gloves.is_visible())
- if(gloves.blood_DNA && gloves.blood_DNA.len)
+ if(gloves.is_blood_stained())
msg += "[t_He] [t_has] [bicon(gloves)] [gloves.a_stained()] [gloves.name] on [t_his] hands! [format_examine(gloves, "Examine")][gloves.description_accessories()]\n"
else
msg += "[t_He] [t_has] [bicon(gloves)] \a [gloves] on [t_his] hands. [format_examine(gloves, "Examine")][gloves.description_accessories()]\n"
@@ -116,35 +116,38 @@
//belt
if(belt && belt.is_visible())
- if(belt.blood_DNA && belt.blood_DNA.len)
+ if(belt.is_blood_stained())
msg += "[t_He] [t_has] [bicon(belt)] [belt.a_stained()] [belt.name] about [t_his] waist! [format_examine(belt, "Examine")][belt.description_accessories()]\n"
else
msg += "[t_He] [t_has] [bicon(belt)] \a [belt] about [t_his] waist. [format_examine(belt, "Examine")][belt.description_accessories()]\n"
//shoes
if(shoes && !(slot_shoes in obscured) && shoes.is_visible())
- if(shoes.blood_DNA && shoes.blood_DNA.len)
+ if(shoes.is_blood_stained())
msg += "[t_He] [t_is] wearing [bicon(shoes)] [shoes.a_stained()] [shoes.name] on [t_his] feet! [format_examine(shoes, "Examine")][shoes.description_accessories()]\n"
else
msg += "[t_He] [t_is] wearing [bicon(shoes)] \a [shoes] on [t_his] feet. [format_examine(shoes, "Examine")][shoes.description_accessories()]\n"
//mask
if(wear_mask && !(slot_wear_mask in obscured) && wear_mask.is_visible())
- if(wear_mask.blood_DNA && wear_mask.blood_DNA.len)
+ if(wear_mask.is_blood_stained())
msg += "[t_He] [t_has] [bicon(wear_mask)] [wear_mask.a_stained()] [wear_mask.name] [wear_mask.goes_in_mouth ? "in" : "on"] [t_his] [wear_mask.goes_in_mouth ? "mouth" : "face"]! [format_examine(wear_mask, "Examine")][wear_mask.description_accessories()]\n"
else
msg += "[t_He] [t_has] [bicon(wear_mask)] \a [wear_mask] [wear_mask.goes_in_mouth ? "in" : "on"] [t_his] [wear_mask.goes_in_mouth ? "mouth" : "face"]. [format_examine(wear_mask, "Examine")][wear_mask.description_accessories()]\n"
//eyes
if(glasses && !(slot_glasses in obscured) && glasses.is_visible())
- if(glasses.blood_DNA && glasses.blood_DNA.len)
- msg += "[t_He] [t_has] [bicon(glasses)] [glasses.a_stained()] [glasses] covering [t_his] eyes! [format_examine(glasses, "Examine")][glasses.description_accessories()]\n"
+ if(glasses.is_blood_stained())
+ msg += "[t_He] [t_has] [bicon(glasses)] [glasses.a_stained()] [glasses.name] covering [t_his] eyes! [format_examine(glasses, "Examine")][glasses.description_accessories()]\n"
else
msg += "[t_He] [t_has] [bicon(glasses)] \a [glasses] covering [t_his] eyes. [format_examine(glasses, "Examine")][glasses.description_accessories()]\n"
//ears
if(ears && !(slot_ears in obscured) && ears.is_visible())
- msg += "[t_He] [t_has] [bicon(ears)] \a [ears] on [t_his] ears. [format_examine(ears, "Examine")][ears.description_accessories()]\n"
+ if(ears.is_blood_stained())
+ msg += "[t_He] [t_has] [bicon(ears)] [ears.a_stained()] [ears.name] on [t_his] ears! [format_examine(ears, "Examine")][ears.description_accessories()]\n"
+ else
+ msg += "[t_He] [t_has] [bicon(ears)] \a [ears] on [t_his] ears. [format_examine(ears, "Examine")][ears.description_accessories()]\n"
//ID
if(wear_id)
diff --git a/code/modules/mob/living/carbon/monkey/examine.dm b/code/modules/mob/living/carbon/monkey/examine.dm
index 9eb6d63b54e..0d80f6e57b6 100644
--- a/code/modules/mob/living/carbon/monkey/examine.dm
+++ b/code/modules/mob/living/carbon/monkey/examine.dm
@@ -14,7 +14,7 @@
for(var/obj/item/I in held_items)
if(I.is_visible())
- if(I.blood_DNA && I.blood_DNA.len)
+ if(I.is_blood_stained())
msg += "It has [bicon(I)] [I.a_stained()] [I.name] in its [get_index_limb_name(is_holding_item(I))]!\n"
else
msg += "It has [bicon(I)] \a [I] in its [get_index_limb_name(is_holding_item(I))].\n"