diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 2a7ac81935b..a232b8949bd 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -46,70 +46,53 @@ else msg += ", a [lowertext(displayed_species)]!\n" - //uniform - if(w_uniform && !skipjumpsuit && !(w_uniform.flags & ABSTRACT)) - //Ties - var/tie_msg - if(istype(w_uniform,/obj/item/clothing/under)) - var/obj/item/clothing/under/U = w_uniform - if(U.accessories.len) - tie_msg += " with [english_accessory_list(U)]" + // All the things wielded/worn that can be reasonably described with a common template: + var/list/message_parts = list( + list("[p_are()] holding", l_hand, "in", "left hand"), + list("[p_are()] holding", r_hand, "in", "right hand"), + list("[p_are()] wearing", head, "on", "head"), + list("[p_are()] wearing", !skipjumpsuit && w_uniform, null, null), + list("[p_are()] wearing", wear_suit, null, null), + list("[p_are()] carrying", !skipsuitstorage && s_store, "on", wear_suit && wear_suit.name), + list("[p_have()]", back, "on", "back"), + list("[p_have()]", !skipgloves && gloves, "on", "hands"), + list("[p_have()]", belt, "about", "waist"), + list("[p_are()] wearing", !skipshoes && shoes, "on", "feet"), + list("[p_have()]", !skipmask && wear_mask, "on", "face"), + list("[p_have()]", glasses, "covering", "eyes"), + list("[p_have()]", !skipears && l_ear, "on", "left ear"), + list("[p_have()]", !skipears && r_ear, "on", "right ear"), + list("[p_are()] wearing", wear_id, null, null), + ) + for(var/parts in message_parts) + var/action = parts[1] + var/obj/item/item = parts[2] + var/preposition = parts[3] + var/limb_name = parts[4] - if(w_uniform.blood_DNA) - msg += "[p_they(TRUE)] [p_are()] wearing [bicon(w_uniform)] [w_uniform.gender==PLURAL?"some":"a"] [w_uniform.blood_color != "#030303" ? "blood-stained":"oil-stained"] [w_uniform.name][tie_msg]!\n" - else - msg += "[p_they(TRUE)] [p_are()] wearing [bicon(w_uniform)] \a [w_uniform][tie_msg].\n" - - //head - if(head && !(head.flags & ABSTRACT)) - if(head.blood_DNA) - msg += "[p_they(TRUE)] [p_are()] wearing [bicon(head)] [head.gender==PLURAL?"some":"a"] [head.blood_color != "#030303" ? "blood-stained":"oil-stained"] [head.name] on [p_their()] head!\n" - else - msg += "[p_they(TRUE)] [p_are()] wearing [bicon(head)] \a [head] on [p_their()] head.\n" - - //suit/armour - if(wear_suit && !(wear_suit.flags & ABSTRACT)) - if(wear_suit.blood_DNA) - msg += "[p_they(TRUE)] [p_are()] wearing [bicon(wear_suit)] [wear_suit.gender==PLURAL?"some":"a"] [wear_suit.blood_color != "#030303" ? "blood-stained":"oil-stained"] [wear_suit.name]!\n" - else - msg += "[p_they(TRUE)] [p_are()] wearing [bicon(wear_suit)] \a [wear_suit].\n" - - //suit/armour storage - if(s_store && !skipsuitstorage) - if(s_store.blood_DNA) - msg += "[p_they(TRUE)] [p_are()] carrying [bicon(s_store)] [s_store.gender==PLURAL?"some":"a"] [s_store.blood_color != "#030303" ? "blood-stained":"oil-stained"] [s_store.name] on [p_their()] [wear_suit.name]!\n" + if (item && !(item.flags & ABSTRACT)) + var/item_words = item.name + if (item.blood_DNA) + item_words = "[item.blood_color != "#030303" ? "blood-stained":"oil-stained"] [item_words]" + var/submsg = "[p_they(TRUE)] [action] [bicon(item)] \a [item_words]" + if (limb_name) + submsg += " [preposition] [p_their()] [limb_name]" + if (item.blood_DNA) + submsg = "[submsg]!\n" else - msg += "[p_they(TRUE)] [p_are()] carrying [bicon(s_store)] \a [s_store] on [p_their()] [wear_suit.name].\n" - - //back - if(back && !(back.flags & ABSTRACT)) - if(back.blood_DNA) - msg += "[p_they(TRUE)] [p_have()] [bicon(back)] [back.gender==PLURAL?"some":"a"] [back.blood_color != "#030303" ? "blood-stained":"oil-stained"] [back] on [p_their()] back.\n" + submsg = "[submsg].\n" + msg += submsg + continue else - msg += "[p_they(TRUE)] [p_have()] [bicon(back)] \a [back] on [p_their()] back.\n" - - //left hand - if(l_hand && !(l_hand.flags & ABSTRACT)) - if(l_hand.blood_DNA) - msg += "[p_they(TRUE)] [p_are()] holding [bicon(l_hand)] [l_hand.gender==PLURAL?"some":"a"] [l_hand.blood_color != "#030303" ? "blood-stained":"oil-stained"] [l_hand.name] in [p_their()] left hand!\n" - else - msg += "[p_they(TRUE)] [p_are()] holding [bicon(l_hand)] \a [l_hand] in [p_their()] left hand.\n" - - //right hand - if(r_hand && !(r_hand.flags & ABSTRACT)) - if(r_hand.blood_DNA) - msg += "[p_they(TRUE)] [p_are()] holding [bicon(r_hand)] [r_hand.gender==PLURAL?"some":"a"] [r_hand.blood_color != "#030303" ? "blood-stained":"oil-stained"] [r_hand.name] in [p_their()] right hand!\n" - else - msg += "[p_they(TRUE)] [p_are()] holding [bicon(r_hand)] \a [r_hand] in [p_their()] right hand.\n" - - //gloves - if(gloves && !skipgloves && !(gloves.flags & ABSTRACT)) - if(gloves.blood_DNA) - msg += "[p_they(TRUE)] [p_have()] [bicon(gloves)] [gloves.gender==PLURAL?"some":"a"] [gloves.blood_color != "#030303" ? "blood-stained":"oil-stained"] [gloves.name] on [p_their()] hands!\n" - else - msg += "[p_they(TRUE)] [p_have()] [bicon(gloves)] \a [gloves] on [p_their()] hands.\n" - else if(blood_DNA) - msg += "[p_they(TRUE)] [p_have()] [hand_blood_color != "#030303" ? "blood-stained":"oil-stained"] hands!\n" + // no items worn, thus revealing the skin + switch (limb_name) + if ("hands") + if (blood_DNA) + msg += "[p_they(TRUE)] [p_have()] [hand_blood_color != "#030303" ? "blood-stained":"oil-stained"] hands!\n" + if ("eyes") + if(iscultist(src) && HAS_TRAIT(src, CULT_EYES)) + msg += "[p_their(TRUE)] eyes are glowing an unnatural red!\n" + continue //handcuffed? if(handcuffed) @@ -120,52 +103,6 @@ else msg += "[p_they(TRUE)] [p_are()] [bicon(handcuffed)] handcuffed!\n" - //belt - if(belt) - if(belt.blood_DNA) - msg += "[p_they(TRUE)] [p_have()] [bicon(belt)] [belt.gender==PLURAL?"some":"a"] [belt.blood_color != "#030303" ? "blood-stained":"oil-stained"] [belt.name] about [p_their()] waist!\n" - else - msg += "[p_they(TRUE)] [p_have()] [bicon(belt)] \a [belt] about [p_their()] waist.\n" - - //shoes - if(shoes && !skipshoes && !(shoes.flags & ABSTRACT)) - if(shoes.blood_DNA) - msg += "[p_they(TRUE)] [p_are()] wearing [bicon(shoes)] [shoes.gender==PLURAL?"some":"a"] [shoes.blood_color != "#030303" ? "blood-stained":"oil-stained"] [shoes.name] on [p_their()] feet!\n" - else - msg += "[p_they(TRUE)] [p_are()] wearing [bicon(shoes)] \a [shoes] on [p_their()] feet.\n" - else if(blood_DNA) - msg += "[p_they(TRUE)] [p_have()] [feet_blood_color != "#030303" ? "blood-stained":"oil-stained"] feet!\n" - - - //mask - if(wear_mask && !skipmask && !(wear_mask.flags & ABSTRACT)) - if(wear_mask.blood_DNA) - msg += "[p_they(TRUE)] [p_have()] [bicon(wear_mask)] [wear_mask.gender==PLURAL?"some":"a"] [wear_mask.blood_color != "#030303" ? "blood-stained":"oil-stained"] [wear_mask.name] on [p_their()] face!\n" - else - msg += "[p_they(TRUE)] [p_have()] [bicon(wear_mask)] \a [wear_mask] on [p_their()] face.\n" - - //eyes - if(!skipeyes) - if(glasses && !(glasses.flags & ABSTRACT)) - if(glasses.blood_DNA) - msg += "[p_they(TRUE)] [p_have()] [bicon(glasses)] [glasses.gender==PLURAL?"some":"a"] [glasses.blood_color != "#030303" ? "blood-stained":"oil-stained"] [glasses] covering [p_their()] eyes!\n" - else - msg += "[p_they(TRUE)] [p_have()] [bicon(glasses)] \a [glasses] covering [p_their()] eyes.\n" - else if(iscultist(src) && HAS_TRAIT(src, CULT_EYES)) - msg += "[p_their(TRUE)] eyes are glowing an unnatural red!\n" - - //left ear - if(l_ear && !skipears) - msg += "[p_they(TRUE)] [p_have()] [bicon(l_ear)] \a [l_ear] on [p_their()] left ear.\n" - - //right ear - if(r_ear && !skipears) - msg += "[p_they(TRUE)] [p_have()] [bicon(r_ear)] \a [r_ear] on [p_their()] right ear.\n" - - //ID - if(wear_id) - msg += "[p_they(TRUE)] [p_are()] wearing [bicon(wear_id)] \a [wear_id].\n" - //Jitters switch(jitteriness) if(300 to INFINITY)