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"