diff --git a/code/__defines/items_clothing.dm b/code/__defines/items_clothing.dm index f857a8f232..c33d92609c 100644 --- a/code/__defines/items_clothing.dm +++ b/code/__defines/items_clothing.dm @@ -34,6 +34,7 @@ #define ACCESSORY_SLOT_ARMOR_L "Leg armor" #define ACCESSORY_SLOT_ARMOR_S "Armor storage" #define ACCESSORY_SLOT_ARMOR_M "Misc armor" +#define ACCESSORY_SLOT_HELM_C "Helmet cover" // Flags bitmasks. #define NOBLUDGEON 0x1 // When an item has this it produces no "X has been hit by Y with Z" message with the default handler. @@ -111,6 +112,21 @@ #define slot_w_uniform_str "slot_w_uniform" #define slot_head_str "slot_head" #define slot_wear_suit_str "slot_suit" +#define slot_l_ear_str "slot_l_ear" +#define slot_r_ear_str "slot_r_ear" +#define slot_belt_str "slot_belt" +#define slot_shoes_str "slot_shoes" +#define slot_head_str "slot_head" +#define slot_wear_mask_str "slot_wear_mask" +#define slot_handcuffed_str "slot_handcuffed" +#define slot_legcuffed_str "slot_legcuffed" +#define slot_wear_mask_str "slot_wear_mask" +#define slot_wear_id_str "slot_wear_id" +#define slot_gloves_str "slot_gloves" +#define slot_glasses_str "slot_glasses" +#define slot_s_store_str "slot_s_store" +#define slot_tie_str "slot_tie" + // Bitflags for clothing parts. #define HEAD 0x1 diff --git a/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm b/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm index c173ba55ac..85fa496181 100644 --- a/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm +++ b/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm @@ -102,6 +102,8 @@ desc = "You could probably shock someone badly if you touched them, or recharge something." icon = 'icons/obj/weapons.dmi' icon_state = "electric_hand" + show_examine = 0 + var/shock_cost = 10 var/agony_amount = 60 var/electrocute_amount = 10 diff --git a/code/game/gamemodes/changeling/powers/electric_lockpick.dm b/code/game/gamemodes/changeling/powers/electric_lockpick.dm index dd77debc97..ab3d79520c 100644 --- a/code/game/gamemodes/changeling/powers/electric_lockpick.dm +++ b/code/game/gamemodes/changeling/powers/electric_lockpick.dm @@ -30,6 +30,7 @@ desc = "This finger appears to be an organic datajack." icon = 'icons/obj/weapons.dmi' icon_state = "electric_hand" + show_examine = 0 /obj/item/weapon/finger_lockpick/New() if(ismob(loc)) diff --git a/code/game/gamemodes/technomancer/spell_objs.dm b/code/game/gamemodes/technomancer/spell_objs.dm index fb28813102..87dee6714c 100644 --- a/code/game/gamemodes/technomancer/spell_objs.dm +++ b/code/game/gamemodes/technomancer/spell_objs.dm @@ -31,6 +31,7 @@ ) throwforce = 0 force = 0 + show_examine = 0 // var/mob/living/carbon/human/owner = null var/mob/living/owner = null var/obj/item/weapon/technomancer_core/core = null diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 84f9f88602..4011b3476f 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -14,6 +14,8 @@ var/show_messages var/preserve_item = 0 //whether this object is preserved when its owner goes into cryo-storage, gateway, etc + var/show_examine = 1 // Does this pop up on a mob when the mob is examined? + /obj/Destroy() processing_objects -= src return ..() diff --git a/code/modules/clothing/clothing_accessories.dm b/code/modules/clothing/clothing_accessories.dm index 58de134f7f..0fa70c68ca 100644 --- a/code/modules/clothing/clothing_accessories.dm +++ b/code/modules/clothing/clothing_accessories.dm @@ -37,6 +37,8 @@ for(var/obj/item/clothing/accessory/A in accessories) A.attack_hand(user) return + if ((ishuman(usr) || issmall(usr)) && src.loc == user) + return return ..() /obj/item/clothing/MouseDrop(var/obj/over_object) @@ -70,10 +72,16 @@ * user is the user doing the attaching. Can be null, such as when attaching * items on spawn */ +/obj/item/clothing/proc/update_accessory_slowdown() + slowdown = initial(slowdown) + for(var/obj/item/clothing/accessory/A in accessories) + slowdown += A.slowdown + /obj/item/clothing/proc/attach_accessory(mob/user, obj/item/clothing/accessory/A) accessories += A A.on_attached(src, user) src.verbs |= /obj/item/clothing/proc/removetie_verb + update_accessory_slowdown() update_clothing_icon() /obj/item/clothing/proc/remove_accessory(mob/user, obj/item/clothing/accessory/A) @@ -82,6 +90,7 @@ A.on_removed(user) accessories -= A + update_accessory_slowdown() update_clothing_icon() /obj/item/clothing/proc/removetie_verb() diff --git a/code/modules/clothing/gloves/arm_guards.dm b/code/modules/clothing/gloves/arm_guards.dm index 84f364e4d5..d258cb5b63 100644 --- a/code/modules/clothing/gloves/arm_guards.dm +++ b/code/modules/clothing/gloves/arm_guards.dm @@ -28,7 +28,7 @@ icon_state = "arm_guards_bullet" item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat") siemens_coefficient = 0.7 - armor = list(melee = 10, bullet = 80, laser = 10, energy = 50, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 10, bullet = 80, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) /obj/item/clothing/gloves/arm_guard/riot name = "riot arm guards" @@ -36,7 +36,7 @@ icon_state = "arm_guards_riot" item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat") siemens_coefficient = 0.5 - armor = list(melee = 80, bullet = 10, laser = 10, energy = 50, bomb = 0, bio = 0, rad = 0) + armor = list(melee = 80, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) /obj/item/clothing/gloves/arm_guard/combat name = "combat arm guards" diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 8527e8b501..3a2a4f7328 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -2,6 +2,8 @@ name = "helmet" desc = "Standard Security gear. Protects the head from impacts." icon_state = "helmet" + valid_accessory_slots = list(ACCESSORY_SLOT_HELM_C) + restricted_accessory_slots = list(ACCESSORY_SLOT_HELM_C) flags = THICKMATERIAL armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 10, bio = 0, rad = 0) flags_inv = HIDEEARS|HIDEEYES @@ -18,6 +20,7 @@ desc = "A helmet painted in Peacekeeper blue. Stands out like a sore thumb." icon_state = "helmet_sol" armor = list(melee = 50, bullet = 50, laser = 50,energy = 25, bomb = 30, bio = 0, rad = 0) + valid_accessory_slots = null /obj/item/clothing/head/helmet/solgov/command name = "command helmet" @@ -61,6 +64,7 @@ armor = list(melee = 80, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) flags_inv = HIDEEARS siemens_coefficient = 0.7 + valid_accessory_slots = null action_button_name = "Toggle Visor" /obj/item/clothing/head/helmet/riot/attack_self(mob/user as mob) @@ -80,6 +84,7 @@ armor = list(melee = 10, bullet = 10, laser = 80 ,energy = 50, bomb = 0, bio = 0, rad = 0) flags_inv = HIDEEARS siemens_coefficient = 0.1 + valid_accessory_slots = null /obj/item/clothing/head/helmet/bulletproof name = "bullet-resistant helmet" @@ -89,6 +94,7 @@ armor = list(melee = 10, bullet = 80, laser = 10 ,energy = 10, bomb = 0, bio = 0, rad = 0) flags_inv = HIDEEARS siemens_coefficient = 0.7 + valid_accessory_slots = null /obj/item/clothing/head/helmet/combat name = "combat helmet" @@ -98,6 +104,7 @@ armor = list(melee = 50, bullet = 50, laser = 50 ,energy = 30, bomb = 30, bio = 0, rad = 0) flags_inv = HIDEEARS siemens_coefficient = 0.6 + valid_accessory_slots = null /obj/item/clothing/head/helmet/swat name = "\improper SWAT helmet" @@ -115,6 +122,7 @@ icon_state = "alienhelmet" siemens_coefficient = 0.4 armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 0, rad = 40) + valid_accessory_slots = null /obj/item/clothing/head/helmet/alien/tank name = "alien warhelm" @@ -137,6 +145,7 @@ flags = BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES siemens_coefficient = 1 + valid_accessory_slots = null /obj/item/clothing/head/helmet/tactical name = "tactical helmet" @@ -151,6 +160,7 @@ armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) flags_inv = HIDEEARS siemens_coefficient = 0.7 + valid_accessory_slots = null /obj/item/clothing/head/helmet/augment name = "Augment Array" @@ -162,6 +172,7 @@ cold_protection = HEAD min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE siemens_coefficient = 0.5 + valid_accessory_slots = null //Non-hardsuit ERT helmets. /obj/item/clothing/head/helmet/ert @@ -170,6 +181,7 @@ icon_state = "erthelmet_cmd" item_state_slots = list(slot_r_hand_str = "syndicate-helm-green", slot_l_hand_str = "syndicate-helm-green") armor = list(melee = 62, bullet = 50, laser = 50,energy = 35, bomb = 10, bio = 2, rad = 0) + valid_accessory_slots = null //Commander /obj/item/clothing/head/helmet/ert/command diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index bb8f29e892..0cda9f312f 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -103,18 +103,27 @@ icon_state = "beret_corporate_warden" item_state_slots = list(slot_r_hand_str = "beret_black", slot_l_hand_str = "beret_black") -/obj/item/clothing/head/helmet/warden //should these be helmets? +/obj/item/clothing/head/helmet/warden + name = "warden's helmet" + desc = "Standard Warden gear. Protects the head from impacts." + +/obj/item/clothing/head/helmet/warden/hat //should these be helmets? name = "warden's hat" desc = "It's a special helmet issued to the Warden of a securiy force." icon_state = "policehelm" body_parts_covered = 0 /obj/item/clothing/head/helmet/HoS + name = "Head of Security helmet" + desc = "Standard Head of Security gear. Protects the head from impacts." + +/obj/item/clothing/head/helmet/HoS/hat name = "Head of Security Hat" desc = "The hat of the Head of Security. For showing the officers who's in charge." icon_state = "hoscap" body_parts_covered = 0 + /obj/item/clothing/head/helmet/HoS/dermal name = "Dermal Armour Patch" desc = "You're not quite sure how you manage to take it on and off, but it implants nicely in your head." diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm index 8eb3ad56c9..fdf5a92868 100644 --- a/code/modules/clothing/spacesuits/spacesuits.dm +++ b/code/modules/clothing/spacesuits/spacesuits.dm @@ -18,6 +18,7 @@ preserve_item = 1 phoronproof = 1 flash_protection = FLASH_PROTECTION_MAJOR + valid_accessory_slots = null var/obj/machinery/camera/camera var/list/camera_networks diff --git a/code/modules/clothing/under/accessories/armor.dm b/code/modules/clothing/under/accessories/armor.dm index f17c5e7ad2..4b2d0e0858 100644 --- a/code/modules/clothing/under/accessories/armor.dm +++ b/code/modules/clothing/under/accessories/armor.dm @@ -1,4 +1,10 @@ +/* +// This file holds all of the accessories used as part of the modular armor system. At some point it might be wise to split this into multiple files. +*/ + +/////////// //Pouches +/////////// /obj/item/clothing/accessory/storage/pouches name = "storage pouches" desc = "A collection of black pouches that can be attached to a plate carrier. Carries up to two items." @@ -31,6 +37,7 @@ desc = "A collection of black pouches that can be attached to a plate carrier. Carries up to four items." icon_state = "lpouches" slots = 4 + slowdown = 0.25 /obj/item/clothing/accessory/storage/pouches/large/blue desc = "A collection of blue pouches that can be attached to a plate carrier. Carries up to four items." @@ -48,7 +55,9 @@ desc = "A collection of tan pouches that can be attached to a plate carrier. Carries up to four items." icon_state = "lpouches_tan" +//////////////// //Armor plates +//////////////// /obj/item/clothing/accessory/armorplate name = "light armor plate" desc = "A basic armor plate made of steel-reinforced synthetic fibers. Attaches to a plate carrier." @@ -76,7 +85,9 @@ icon_state = "armor_heavy" armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) +////////////// //Arm guards +////////////// /obj/item/clothing/accessory/armguards name = "arm guards" desc = "A pair of black arm pads reinforced with armor plating. Attaches to a plate carrier." @@ -111,7 +122,33 @@ icon_state = "armguards_merc" armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) +/obj/item/clothing/accessory/armguards/laserproof + name = "ablative arm guards" + desc = "These arm guards will protect your arms from energy weapons." + icon_state = "armguards_laser" + item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat") + siemens_coefficient = 0.4 //This is worse than the other ablative pieces, to avoid this from becoming the poor warden's insulated gloves. + armor = list(melee = 10, bullet = 10, laser = 80, energy = 50, bomb = 0, bio = 0, rad = 0) + +/obj/item/clothing/accessory/armguards/bulletproof + name = "bullet resistant arm guards" + desc = "These arm guards will protect your arms from ballistic weapons." + icon_state = "armguards_bullet" + item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat") + siemens_coefficient = 0.7 + armor = list(melee = 10, bullet = 80, laser = 10, energy = 50, bomb = 0, bio = 0, rad = 0) + +/obj/item/clothing/accessory/armguards/riot + name = "riot arm guards" + desc = "These arm guards will protect your arms from close combat weapons." + icon_state = "armguards_riot" + item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat") + siemens_coefficient = 0.5 + armor = list(melee = 80, bullet = 10, laser = 10, energy = 50, bomb = 0, bio = 0, rad = 0) + +////////////// //Leg guards +////////////// /obj/item/clothing/accessory/legguards name = "leg guards" desc = "A pair of armored leg pads in black. Attaches to a plate carrier." @@ -146,8 +183,33 @@ icon_state = "legguards_merc" armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) +/obj/item/clothing/shoes/legguard/laserproof + name = "ablative leg guards" + desc = "These will protect your legs from energy weapons." + icon_state = "legguards_laser" + item_state_slots = list(slot_r_hand_str = "jackboots", slot_l_hand_str = "jackboots") + siemens_coefficient = 0.1 + armor = list(melee = 10, bullet = 10, laser = 80, energy = 50, bomb = 0, bio = 0, rad = 0) +/obj/item/clothing/shoes/legguard/bulletproof + name = "bullet resistant leg guards" + desc = "These will protect your legs from ballistic weapons." + icon_state = "legguards_bullet" + item_state_slots = list(slot_r_hand_str = "jackboots", slot_l_hand_str = "jackboots") + siemens_coefficient = 0.7 + armor = list(melee = 10, bullet = 80, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) + +/obj/item/clothing/shoes/legguard/riot + name = "riot leg guards" + desc = "These will protect your legs from close combat weapons." + icon_state = "legguards_riot" + item_state_slots = list(slot_r_hand_str = "jackboots", slot_l_hand_str = "jackboots") + siemens_coefficient = 0.5 + armor = list(melee = 80, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) + +////////////////////////// //Decorative attachments +////////////////////////// /obj/item/clothing/accessory/armor/tag name = "\improper SCG Flag" desc = "An emblem depicting the Solar Confederate Government's flag." @@ -226,3 +288,50 @@ name = "\improper AB- blood patch" desc = "An embroidered patch indicating the wearer's blood type as AB NEGATIVE." icon_state = "abnegtag" + +///////////////// +// Helmet Covers +///////////////// + +obj/item/clothing/accessory/armor/helmcover + name = "helmet cover" + desc = "A fabric cover for armored helmets." + icon_override = 'icons/mob/ties.dmi' + icon = 'icons/obj/clothing/modular_armor.dmi' + icon_state = "helmcover_blue" + slot = ACCESSORY_SLOT_HELM_C + +/obj/item/clothing/accessory/armor/helmcover/blue + name = "blue helmet cover" + desc = "A fabric cover for armored helmets in a bright blue color." + icon_state = "helmcover_blue" + +/obj/item/clothing/accessory/armor/helmcover/navy + name = "navy blue helmet cover" + desc = "A fabric cover for armored helmets. This one is colored navy blue." + icon_state = "helmcover_navy" + +/obj/item/clothing/accessory/armor/helmcover/green + name = "green helmet cover" + desc = "A fabric cover for armored helmets. This one has a woodland camouflage pattern." + icon_state = "helmcover_green" + +/obj/item/clothing/accessory/armor/helmcover/tan + name = "tan helmet cover" + desc = "A fabric cover for armored helmets. This one has a desert camouflage pattern." + icon_state = "helmcover_tan" + +/obj/item/clothing/accessory/armor/helmcover/nt + name = "\improper NanoTrasen helmet cover" + desc = "A fabric cover for armored helmets. This one has NanoTrasen's colors." + icon_state = "helmcover_nt" + +/obj/item/clothing/accessory/armor/helmcover/pcrc + name = "\improper PCRC helmet cover" + desc = "A fabric cover for armored helmets. This one is colored navy blue and has a tag in the back with the words PROXIMA CENTAURI RISK CONTROL printed in cyan lettering on it." + icon_state = "helmcover_pcrc" + +/obj/item/clothing/accessory/armor/helmcover/saare + name = "\improper SAARE helmet cover" + desc = "A fabric cover for armored helmets. This one has SAARE's colors." + icon_state = "helmcover_saare" \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 54bc007f94..b82da13991 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -133,7 +133,7 @@ msg += "
" //uniform - if(w_uniform && !skipjumpsuit) + if(w_uniform && !skipjumpsuit && w_uniform.show_examine) //Ties var/tie_msg if(istype(w_uniform,/obj/item/clothing/under) && !skiptie) @@ -142,7 +142,7 @@ if(skipholster) var/list/accessories_visible = new/list() //please let this fix the stupid fucking runtimes for(var/obj/item/clothing/accessory/A in U.accessories) - if(A.concealed_holster == 0) + if(A.concealed_holster == 0 && A.show_examine) accessories_visible.Add(A) if(accessories_visible.len) tie_msg += ". Attached to it is [lowertext(english_list(accessories_visible))]" @@ -154,7 +154,7 @@ msg += "[T.He] [T.is] wearing \icon[w_uniform] \a [w_uniform][tie_msg].\n" //head - if(head) + if(head && head.show_examine) if(head.blood_DNA) msg += "[T.He] [T.is] wearing \icon[head] [head.gender==PLURAL?"some":"a"] [(head.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [head.name] on [T.his] head!\n" else @@ -174,35 +174,35 @@ msg += "[T.He] [T.is] wearing \icon[wear_suit] \a [wear_suit][tie_msg].\n" //suit/armour storage - if(s_store && !skipsuitstorage) + if(s_store && !skipsuitstorage && s_store.show_examine) if(s_store.blood_DNA) msg += "[T.He] [T.is] carrying \icon[s_store] [s_store.gender==PLURAL?"some":"a"] [(s_store.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [s_store.name] on [T.his] [wear_suit.name]!\n" else msg += "[T.He] [T.is] carrying \icon[s_store] \a [s_store] on [T.his] [wear_suit.name].\n" //back - if(back) + if(back && back.show_examine) if(back.blood_DNA) msg += "[T.He] [T.has] \icon[back] [back.gender==PLURAL?"some":"a"] [(back.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [back] on [T.his] back.\n" else msg += "[T.He] [T.has] \icon[back] \a [back] on [T.his] back.\n" //left hand - if(l_hand) + if(l_hand && l_hand.show_examine) if(l_hand.blood_DNA) msg += "[T.He] [T.is] holding \icon[l_hand] [l_hand.gender==PLURAL?"some":"a"] [(l_hand.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [l_hand.name] in [T.his] left hand!\n" else msg += "[T.He] [T.is] holding \icon[l_hand] \a [l_hand] in [T.his] left hand.\n" //right hand - if(r_hand) + if(r_hand && r_hand.show_examine) if(r_hand.blood_DNA) msg += "[T.He] [T.is] holding \icon[r_hand] [r_hand.gender==PLURAL?"some":"a"] [(r_hand.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [r_hand.name] in [T.his] right hand!\n" else msg += "[T.He] [T.is] holding \icon[r_hand] \a [r_hand] in [T.his] right hand.\n" //gloves - if(gloves && !skipgloves) + if(gloves && !skipgloves && gloves.show_examine) if(gloves.blood_DNA) msg += "[T.He] [T.has] \icon[gloves] [gloves.gender==PLURAL?"some":"a"] [(gloves.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [gloves.name] on [T.his] hands!\n" else @@ -211,7 +211,7 @@ msg += "[T.He] [T.has] [(hand_blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained hands!\n" //handcuffed? - if(handcuffed) + if(handcuffed && handcuffed.show_examine) if(istype(handcuffed, /obj/item/weapon/handcuffs/cable)) msg += "[T.He] [T.is] \icon[handcuffed] restrained with cable!\n" else @@ -222,14 +222,14 @@ msg += "[T.He] [T.is] \icon[buckled] buckled to [buckled]!\n" //belt - if(belt) + if(belt && belt.show_examine) if(belt.blood_DNA) msg += "[T.He] [T.has] \icon[belt] [belt.gender==PLURAL?"some":"a"] [(belt.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [belt.name] about [T.his] waist!\n" else msg += "[T.He] [T.has] \icon[belt] \a [belt] about [T.his] waist.\n" //shoes - if(shoes && !skipshoes) + if(shoes && !skipshoes && shoes.show_examine) if(shoes.blood_DNA) msg += "[T.He] [T.is] wearing \icon[shoes] [shoes.gender==PLURAL?"some":"a"] [(shoes.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [shoes.name] on [T.his] feet!\n" else @@ -238,7 +238,7 @@ msg += "[T.He] [T.has] [(feet_blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained feet!\n" //mask - if(wear_mask && !skipmask) + if(wear_mask && !skipmask && wear_mask.show_examine) var/descriptor = "on [T.his] face" if(istype(wear_mask, /obj/item/weapon/grenade) && check_has_mouth()) descriptor = "in [T.his] mouth" @@ -249,22 +249,22 @@ msg += "[T.He] [T.has] \icon[wear_mask] \a [wear_mask] [descriptor].\n" //eyes - if(glasses && !skipeyes) + if(glasses && !skipeyes && glasses.show_examine) if(glasses.blood_DNA) msg += "[T.He] [T.has] \icon[glasses] [glasses.gender==PLURAL?"some":"a"] [(glasses.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [glasses] covering [T.his] eyes!\n" else msg += "[T.He] [T.has] \icon[glasses] \a [glasses] covering [T.his] eyes.\n" //left ear - if(l_ear && !skipears) + if(l_ear && !skipears && l_ear.show_examine) msg += "[T.He] [T.has] \icon[l_ear] \a [l_ear] on [T.his] left ear.\n" //right ear - if(r_ear && !skipears) + if(r_ear && !skipears && r_ear.show_examine) msg += "[T.He] [T.has] \icon[r_ear] \a [r_ear] on [T.his] right ear.\n" //ID - if(wear_id) + if(wear_id && wear_id.show_examine) /*var/id if(istype(wear_id, /obj/item/device/pda)) var/obj/item/device/pda/pda = wear_id diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 75228b376a..4c046bc52a 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -949,10 +949,12 @@ var/global/list/damage_icon_parts = list() /mob/living/carbon/human/update_inv_head(var/update_icons=1) + world << "update_inv_head" if(QDESTROYING(src)) return if(head) + world << "Has head" head.screen_loc = ui_head //TODO //Determine the icon to use @@ -1004,6 +1006,14 @@ var/global/list/damage_icon_parts = list() standing = image(base) else standing.color = head.color + + // Accessories - copied from uniform, BOILERPLATE because fuck this system. + var/obj/item/clothing/head/hat = head + if(istype(hat) && hat.accessories.len) + for(var/obj/item/clothing/accessory/A in hat.accessories) + world << "[A.name]" + standing.overlays |= A.get_mob_overlay() + overlays_standing[HEAD_LAYER] = standing else diff --git a/icons/mob/modular_armor.dmi b/icons/mob/modular_armor.dmi index 2c7d8ea841..f8e4fe7738 100644 Binary files a/icons/mob/modular_armor.dmi and b/icons/mob/modular_armor.dmi differ diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi index fa22bde1c4..b90b3bb18d 100644 Binary files a/icons/mob/ties.dmi and b/icons/mob/ties.dmi differ diff --git a/icons/obj/clothing/modular_armor.dmi b/icons/obj/clothing/modular_armor.dmi index 89ef66aa8c..10bffa0857 100644 Binary files a/icons/obj/clothing/modular_armor.dmi and b/icons/obj/clothing/modular_armor.dmi differ diff --git a/polaris.dme b/polaris.dme index f8ffc3a198..719cc3fc72 100644 --- a/polaris.dme +++ b/polaris.dme @@ -2406,7 +2406,7 @@ #include "code\ZAS\Zone.dm" #include "interface\interface.dm" #include "interface\skin.dmf" -#include "maps\southern_cross\southern_cross.dm" +#include "maps\example\example.dm" #include "maps\submaps\_readme.dm" #include "maps\submaps\space_submaps\space.dm" #include "maps\submaps\surface_submaps\mountains\mountains.dm"