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