diff --git a/code/ZAS/Phoron.dm b/code/ZAS/Phoron.dm
index 187fc3bed65..e380c832d9f 100644
--- a/code/ZAS/Phoron.dm
+++ b/code/ZAS/Phoron.dm
@@ -93,19 +93,25 @@ obj/var/contaminated = 0
//Burn eyes if exposed.
if(vsc.plc.EYE_BURNS)
- if(!head)
- if(!wear_mask)
- burn_eyes()
- else
- if(!(wear_mask.body_parts_covered & EYES))
- burn_eyes()
- else
- if(!(head.body_parts_covered & EYES))
- if(!wear_mask)
- burn_eyes()
- else
- if(!(wear_mask.body_parts_covered & EYES))
- burn_eyes()
+
+ var/burn_eyes = 1
+
+ //Check for protective glasses
+ if(glasses && (glasses.body_parts_covered & EYES) && (glasses.item_flags & AIRTIGHT))
+ burn_eyes = 0
+
+ //Check for protective maskwear
+ if(burn_eyes && wear_mask && (wear_mask.body_parts_covered & EYES) && (wear_mask.item_flags & AIRTIGHT))
+ burn_eyes = 0
+
+ //Check for protective helmets
+ if(burn_eyes && head && (head.body_parts_covered & EYES) && (head.item_flags & AIRTIGHT))
+ burn_eyes = 0
+
+ //If we still need to, burn their eyes
+ if(burn_eyes)
+ burn_eyes()
+
//Genetic Corruption
if(vsc.plc.GENETIC_CORRUPTION)
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 09011735756..7151dd3b3e2 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -16,7 +16,7 @@
var/germ_level = GERM_LEVEL_AMBIENT // The higher the germ level, the more germ on the atom.
var/simulated = 1 //filter for actions - used by lighting overlays
var/fluorescent // Shows up under a UV light.
-
+
///Chemistry.
var/datum/reagents/reagents = null
@@ -226,10 +226,9 @@
//Deal with gloves the pass finger/palm prints.
if(!ignoregloves)
- if(H.gloves != src)
- if(prob(75) && istype(H.gloves, /obj/item/clothing/gloves/latex))
- return 0
- else if(H.gloves && !istype(H.gloves, /obj/item/clothing/gloves/latex))
+ if(H.gloves && H.gloves != src)
+ var/obj/item/clothing/gloves/G = H.gloves
+ if(!prob(G.fingerprint_chance))
return 0
//More adminstuffz
diff --git a/code/modules/client/preference_setup/loadout/loadout_eyes.dm b/code/modules/client/preference_setup/loadout/loadout_eyes.dm
index 19d87364699..4d2de740355 100644
--- a/code/modules/client/preference_setup/loadout/loadout_eyes.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_eyes.dm
@@ -21,6 +21,10 @@
display_name = "monocle"
path = /obj/item/clothing/glasses/monocle
+/datum/gear/eyes/glasses/goggles
+ display_name = "goggles"
+ path = /obj/item/clothing/glasses/goggles
+
/datum/gear/eyes/scanning_goggles
display_name = "scanning goggles"
path = /obj/item/clothing/glasses/regular/scanners
@@ -28,7 +32,7 @@
/datum/gear/eyes/sciencegoggles
display_name = "science Goggles"
path = /obj/item/clothing/glasses/science
-
+
/datum/gear/eyes/mesonprescription
display_name = "meson goggles, prescription"
path = /obj/item/clothing/glasses/meson/prescription
diff --git a/code/modules/client/preference_setup/loadout/loadout_gloves.dm b/code/modules/client/preference_setup/loadout/loadout_gloves.dm
index d22fccc4664..2f0e0869231 100644
--- a/code/modules/client/preference_setup/loadout/loadout_gloves.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_gloves.dm
@@ -24,3 +24,7 @@
gloves["grey gloves"] = /obj/item/clothing/gloves/grey
gloves["rainbow gloves"] = /obj/item/clothing/gloves/rainbow
gear_tweaks += new/datum/gear_tweak/path(gloves)
+
+/datum/gear/gloves/evening
+ display_name = "evening gloves"
+ path = /obj/item/clothing/gloves/evening
diff --git a/code/modules/client/preference_setup/loadout/loadout_shoes.dm b/code/modules/client/preference_setup/loadout/loadout_shoes.dm
index 23b4b0a031b..00229828175 100644
--- a/code/modules/client/preference_setup/loadout/loadout_shoes.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_shoes.dm
@@ -13,10 +13,18 @@
display_name = "workboots"
path = /obj/item/clothing/shoes/workboots
+/datum/gear/shoes/workboots_toeless
+ display_name = "/obj/item/clothing/shoes/workboots/toeless"
+ path = /obj/item/clothing/shoes/workboots/toeless
+
/datum/gear/shoes/sandals
display_name = "sandals"
path = /obj/item/clothing/shoes/sandal
+/datum/gear/shoes/footwraps
+ display_name = "cloth footwraps"
+ path = /obj/item/clothing/shoes/footwraps
+
/datum/gear/shoes/color
display_name = "shoe selection"
path = /obj/item/clothing/shoes/black
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 0b7f1b8f3dd..4b14426a80f 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -214,6 +214,7 @@ BLIND // can't see anything
var/wired = 0
var/obj/item/weapon/cell/cell = 0
var/clipped = 0
+ var/fingerprint_chance = 0
body_parts_covered = HANDS
slot_flags = SLOT_GLOVES
attack_verb = list("challenged")
diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm
index 42cc5f7c684..d5d2e4888ee 100644
--- a/code/modules/clothing/glasses/glasses.dm
+++ b/code/modules/clothing/glasses/glasses.dm
@@ -44,6 +44,7 @@
toggleable = 1
vision_flags = SEE_TURFS
see_invisible = SEE_INVISIBLE_NOLIGHTING
+ item_flags = AIRTIGHT
/obj/item/clothing/glasses/meson/Initialize()
. = ..()
@@ -61,6 +62,7 @@
item_state = "glasses"
toggleable = 1
unacidable = 1
+ item_flags = AIRTIGHT
/obj/item/clothing/glasses/science/Initialize()
. = ..()
@@ -82,12 +84,32 @@
. = ..()
overlay = global_hud.nvg
+/obj/item/clothing/glasses/goggles
+ name = "goggles"
+ desc = "A simple pair of plain goggles."
+ icon_state = "plaingoggles"
+ item_flags = AIRTIGHT
+
+
/obj/item/clothing/glasses/eyepatch
name = "eyepatch"
desc = "Yarr."
icon_state = "eyepatch"
item_state = "eyepatch"
body_parts_covered = 0
+ var/flipped = 0
+
+/obj/item/clothing/glasses/eyepatch/attack_self(mob/user)
+ src.flipped = !src.flipped
+ if(src.flipped)
+ src.icon_state = "[icon_state]_1"
+ src.item_state = "[icon_state]_1"
+ to_chat(user, "You change \the [src] to cover the left eye.")
+ else
+ src.icon_state = initial(icon_state)
+ src.icon_state = initial(icon_state)
+ to_chat(user, "You change \the [src] to cover the right eye.")
+ user.update_inv_glasses()
/obj/item/clothing/glasses/monocle
name = "monocle"
@@ -105,6 +127,7 @@
origin_tech = list(TECH_MAGNET = 3, TECH_ENGINEERING = 3)
toggleable = 1
vision_flags = SEE_OBJS
+ item_flags = AIRTIGHT
/obj/item/clothing/glasses/regular
name = "prescription glasses"
@@ -250,15 +273,16 @@
desc = "Sunglasses with a HUD."
icon_state = "sunhud"
- Initialize()
- . = ..()
- src.hud = new/obj/item/clothing/glasses/hud/security(src)
- return
+/obj/item/clothing/glasses/sunglasses/sechud/Initialize()
+ . = ..()
+ src.hud = new/obj/item/clothing/glasses/hud/security(src)
+ return
/obj/item/clothing/glasses/sunglasses/sechud/tactical
name = "tactical HUD"
desc = "Flash-resistant goggles with inbuilt combat and security information."
icon_state = "swatgoggles"
+ item_flags = AIRTIGHT
/obj/item/clothing/glasses/thermal
name = "optical thermal scanner"
@@ -271,19 +295,20 @@
vision_flags = SEE_MOBS
see_invisible = SEE_INVISIBLE_NOLIGHTING
flash_protection = FLASH_PROTECTION_REDUCED
+ item_flags = AIRTIGHT
- emp_act(severity)
- if(istype(src.loc, /mob/living/carbon/human))
- var/mob/living/carbon/human/M = src.loc
- M << "\The [src] overloads and blinds you!"
- if(M.glasses == src)
- M.eye_blind = 3
- M.eye_blurry = 5
- // Don't cure being nearsighted
- if(!(M.disabilities & NEARSIGHTED))
- M.disabilities |= NEARSIGHTED
- addtimer(CALLBACK(M, /mob/living/carbon/human/.proc/thermal_reset_blindness), 100)
- ..()
+/obj/item/clothing/glasses/thermal/emp_act(severity)
+ if(istype(src.loc, /mob/living/carbon/human))
+ var/mob/living/carbon/human/M = src.loc
+ M << "\The [src] overloads and blinds you!"
+ if(M.glasses == src)
+ M.eye_blind = 3
+ M.eye_blurry = 5
+ // Don't cure being nearsighted
+ if(!(M.disabilities & NEARSIGHTED))
+ M.disabilities |= NEARSIGHTED
+ addtimer(CALLBACK(M, /mob/living/carbon/human/.proc/thermal_reset_blindness), 100)
+ ..()
/obj/item/clothing/glasses/thermal/Initialize()
. = ..()
@@ -302,12 +327,14 @@
toggleable = 0
activation_sound = null
action_button_name = null
+ item_flags = AIRTIGHT
/obj/item/clothing/glasses/thermal/plain/monocle
name = "thermoncle"
desc = "A monocle thermal."
icon_state = "thermoncle"
flags = null //doesn't protect eyes because it's a monocle, duh
+ item_flags = null
body_parts_covered = 0
@@ -317,9 +344,11 @@
icon_state = "eyepatch"
item_state = "eyepatch"
body_parts_covered = 0
+ item_flags = null
/obj/item/clothing/glasses/thermal/plain/jensen
name = "optical thermal implants"
desc = "A set of implantable lenses designed to augment your vision"
icon_state = "thermalimplants"
item_state = "syringe_kit"
+ item_flags = null
\ No newline at end of file
diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm
index a5978870d6a..7853d0a300f 100644
--- a/code/modules/clothing/gloves/color.dm
+++ b/code/modules/clothing/gloves/color.dm
@@ -84,7 +84,7 @@
desc = "A pair of gloves, they don't look special in any way."
icon_state = "brown"
item_state = "browngloves"
-
+
/obj/item/clothing/gloves/white
name = "white gloves"
desc = "These look pretty fancy."
@@ -125,7 +125,7 @@
name = "red gloves"
desc = "Red gloves made for Unathi use."
species_restricted = list("Unathi")
-
+
/obj/item/clothing/gloves/red/tajara
name = "red gloves"
desc = "Red gloves made for Tajaran use."
@@ -135,27 +135,27 @@
name = "blue gloves"
desc = "Blue gloves made for Unathi use."
species_restricted = list("Unathi")
-
+
/obj/item/clothing/gloves/blue/tajara
name = "blue gloves"
desc = "Blue gloves made for Tajaran use."
species_restricted = list("Tajara")
-
+
/obj/item/clothing/gloves/orange/unathi
name = "orange gloves"
desc = "Orange gloves made for Unathi use."
species_restricted = list("Unathi")
-
+
/obj/item/clothing/gloves/orange/tajara
name = "orange gloves"
desc = "Orange gloves made for Tajaran use."
species_restricted = list("Tajara")
-
+
/obj/item/clothing/gloves/purple/unathi
name = "purple gloves"
desc = "Purple gloves made for Unathi use."
species_restricted = list("Unathi")
-
+
/obj/item/clothing/gloves/purple/tajara
name = "purple gloves"
desc = "Purple gloves made for Tajaran use."
@@ -165,28 +165,33 @@
name = "brown gloves"
desc = "Brown gloves made for Unathi use."
species_restricted = list("Unathi")
-
+
/obj/item/clothing/gloves/brown/tajara
name = "brown gloves"
desc = "Brown gloves made for Tajaran use."
species_restricted = list("Tajara")
-
+
/obj/item/clothing/gloves/green/unathi
name = "green gloves"
desc = "Green gloves made for Unathi use."
species_restricted = list("Unathi")
-
+
/obj/item/clothing/gloves/green/tajara
name = "green gloves"
desc = "Green gloves made for Tajaran use."
species_restricted = list("Tajara")
-
+
/obj/item/clothing/gloves/white/unathi
name = "white gloves"
desc = "White gloves made for Unathi use."
species_restricted = list("Unathi")
-
+
/obj/item/clothing/gloves/white/tajara
name = "white gloves"
desc = "White gloves made for Tajaran use."
species_restricted = list ("Tajara")
+
+/obj/item/clothing/gloves/evening
+ name = "evening gloves"
+ desc = "A pair of gloves that reach past the elbow."
+ icon_state = "evening_gloves"
diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm
index 08aaa43eedb..f08e6291744 100644
--- a/code/modules/clothing/gloves/miscellaneous.dm
+++ b/code/modules/clothing/gloves/miscellaneous.dm
@@ -44,7 +44,8 @@
siemens_coefficient = 1.0 //thin latex gloves, much more conductive than fabric gloves (basically a capacitor for AC)
permeability_coefficient = 0.01
germ_level = 0
-
+ fingerprint_chance = 75
+
/obj/item/clothing/gloves/latex/nitrile
name = "nitrile gloves"
desc = "Sterile nitrile gloves."
@@ -60,7 +61,7 @@
name = "tajaran latex gloves"
desc = "Sterile latex gloves. Designed for Tajara use."
species_restricted = list("Tajara")
-
+
/obj/item/clothing/gloves/botanic_leather
desc = "These leather work gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin."
name = "leather gloves"
@@ -68,7 +69,7 @@
item_state = "ggloves"
permeability_coefficient = 0.05
siemens_coefficient = 0.50 //thick work gloves
-
+
/obj/item/clothing/gloves/botanic_leather/unathi
name = "unathi leather gloves"
species_restricted = list("Unathi")
@@ -87,6 +88,7 @@
species_restricted = null
gender = NEUTER
body_parts_covered = null
+ fingerprint_chance = 100
verb/checktime()
set category = "Object"
diff --git a/code/modules/clothing/shoes/jobs.dm b/code/modules/clothing/shoes/jobs.dm
index 719c3a49f93..a7bb17da0ea 100644
--- a/code/modules/clothing/shoes/jobs.dm
+++ b/code/modules/clothing/shoes/jobs.dm
@@ -32,3 +32,10 @@
armor = list(melee = 40, bullet = 0, laser = 0, energy = 15, bomb = 20, bio = 0, rad = 20)
siemens_coefficient = 0.7
can_hold_knife = 1
+
+/obj/item/clothing/shoes/workboots/toeless
+ name = "toe-less workboots"
+ desc = "A pair of toeless work boots designed for use in industrial settings. Modified for species whose toes have claws."
+ icon_state = "workbootstoeless"
+ item_state = "workbootstoeless"
+ species_restricted = null
\ No newline at end of file
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index 9defcc1bb0f..64d0534d9c9 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -123,3 +123,20 @@
icon_state = "flippers"
item_flags = NOSLIP
slowdown = SHOES_SLOWDOWN+1
+
+/obj/item/clothing/shoes/footwraps
+ name = "cloth footwraps"
+ desc = "A roll of treated canvas used for wrapping clawed feet."
+ icon_state = "clothwrap"
+ item_state = "clothwrap"
+ w_class = 2
+ species_restricted = null
+
+/obj/item/clothing/shoes/winter
+ name = "winter boots"
+ desc = "Boots lined with 'synthetic' animal fur."
+ icon_state = "winterboots"
+ cold_protection = FEET|LEGS
+ min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE
+ heat_protection = FEET|LEGS
+ max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE
\ No newline at end of file
diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi
index 188266bc48d..10c1778e9ad 100644
Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ
diff --git a/icons/mob/eyes.dmi b/icons/mob/eyes.dmi
index 416eefa8833..87dee9eda88 100644
Binary files a/icons/mob/eyes.dmi and b/icons/mob/eyes.dmi differ
diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi
index ec210b21714..cd871912667 100644
Binary files a/icons/mob/feet.dmi and b/icons/mob/feet.dmi differ
diff --git a/icons/mob/hands.dmi b/icons/mob/hands.dmi
index 813de1d11d9..964c53a290c 100644
Binary files a/icons/mob/hands.dmi and b/icons/mob/hands.dmi differ
diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi
index 5c5f54f644b..5d512c42899 100644
Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ
diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi
index 185e8171a1b..15041202ed0 100644
Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ
diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi
index 50c8b9b4741..6f509f7bac8 100644
Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ
diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi
index 5c3b482c036..a188d07cd1d 100644
Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ