Skip to content

Commit

Permalink
Hazardous Gases (Cl and HCl) (#3180)
Browse files Browse the repository at this point in the history
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request
Adds chlorine gas and hydrogen chloride gas
These gases hurt to be exposed to in high concentration if not in EVA
Plasma, Trit, Cl, and HCl now damage eyes if not wearing goggles
(welding, heat, or cold goggles currently)
Chlorine reacts with hydrogen to make HCl and makes heat while doing so.
HCl burns into H2O and Cl.

![image](https://github.com/shiptest-ss13/Shiptest/assets/90987989/e0263c74-0958-475f-b956-4024b32ed237)

![image](https://github.com/user-attachments/assets/ac384206-c567-4baa-9fbc-42ec56a5e02e)

Scrubbers are now set to filter most gases at roundstart.

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## Why It's Good For The Game
Hazardous planetary gases! (not actually implemented in this PR, but
opens up the possibility)
More gases that are actually relevant to Normal shiptest rounds is good,
since there's few station gases that can be reasonably seen or made
(freon has been made like once. stimulum and nitryl are dumb. likely
could be removed)
<!-- Please add a short description of why you think these changes would
benefit the game. If you can't justify it in words, it might not be
worth adding. -->

## Changelog

:cl:
add: Chlorine and Hydrogen Chloride gases! Wear your goggles!
/:cl:

<!-- Both :cl:'s are required for the changelog to work! You can put
your name to the right of the first :cl: if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

---------

Signed-off-by: HelmCrab <[email protected]>
Co-authored-by: Mark Suckerberg <[email protected]>
Co-authored-by: JimKil3 <[email protected]>
Co-authored-by: goober3 <[email protected]>
Co-authored-by: FalloutFalcon <[email protected]>
Co-authored-by: rye-rice <[email protected]>
Co-authored-by: Theos <[email protected]>
  • Loading branch information
7 people authored Aug 6, 2024
1 parent a71d677 commit 07e83a6
Show file tree
Hide file tree
Showing 26 changed files with 274 additions and 37 deletions.
2 changes: 2 additions & 0 deletions code/__DEFINES/atmospherics.dm
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,8 @@
#define GAS_PLUOXIUM "pluox"
#define GAS_FREON "freon"
#define GAS_HYDROGEN "h2"
#define GAS_CHLORINE "cl2"
#define GAS_HYDROGEN_CHLORIDE "hcl"

#define GAS_FLAG_DANGEROUS (1<<0)
#define GAS_FLAG_BREATH_PROC (1<<1)
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/obj_flags.dm
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
#define ANTI_TINFOIL_MANEUVER (1<<12) //Hats with negative effects when worn (i.e the tinfoil hat).
#define DANGEROUS_OBJECT (1<<13) //Clothes that cause a larger notification when placed on a person.
#define FAST_EMBARK (1<<14) //Clothes that speed up mech and pod boarding.
#define SEALS_EYES (1<<15) //Goggles and helmets that seal eyes from the enviroment
/// Flags for the organ_flags var on /obj/item/organ

#define ORGAN_SYNTHETIC (1<<0) //Synthetic organs, or cybernetic organs. Reacts to EMPs and don't deteriorate or heal
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_RESISTCOLD "resist_cold"
#define TRAIT_RESISTHIGHPRESSURE "resist_high_pressure"
#define TRAIT_RESISTLOWPRESSURE "resist_low_pressure"
#define TRAIT_METALLIC "metallic" //used on IPCs
#define TRAIT_BOMBIMMUNE "bomb_immunity"
#define TRAIT_RADIMMUNE "rad_immunity"
#define TRAIT_GENELESS "geneless"
Expand Down
1 change: 1 addition & 0 deletions code/_globalvars/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_RESISTCOLD" = TRAIT_RESISTCOLD,
"TRAIT_RESISTHIGHPRESSURE" = TRAIT_RESISTHIGHPRESSURE,
"TRAIT_RESISTLOWPRESSURE" = TRAIT_RESISTLOWPRESSURE,
"TRAIT_METALLIC" = TRAIT_METALLIC,
"TRAIT_BOMBIMMUNE" = TRAIT_BOMBIMMUNE,
"TRAIT_RADIMMUNE" = TRAIT_RADIMMUNE,
"TRAIT_GENELESS" = TRAIT_GENELESS,
Expand Down
3 changes: 2 additions & 1 deletion code/game/machinery/shuttle/shuttle_heater.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,14 @@
//it for the engine.
//-----------------------------------------------

#define CHLORINE_OXIDATION_VALUE 0.5
#define O2_OXIDATION_VALUE 1
#define NITRYL_OXIDATION_VALUE 1
#define NITROUS_OXIDATION_VALUE 3

#define HYDROGEN_THRUSTER_VALUE 0.5
#define PLASMA_THRUSTER_VALUE 1
#define TRITRIUM_THRUSTER_VALUE 3
#define HYDROGEN_THRUSTER_VALUE 0.5

#define NITROUS_COOLING_MULTIPIER 500
#define NITROUS_COOLING_MIN 173
Expand Down
24 changes: 24 additions & 0 deletions code/modules/atmospherics/auxgm/gas_types.dm
Original file line number Diff line number Diff line change
Expand Up @@ -168,3 +168,27 @@
enthalpy = FIRE_HYDROGEN_ENERGY_RELEASED
fire_burn_rate = 2
fire_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST - 50

/datum/gas/chlorine
id = GAS_CHLORINE
specific_heat = 20
name = "Chlorine"
flags = GAS_FLAG_DANGEROUS
moles_visible = MOLES_GAS_VISIBLE * 5
gas_overlay = "nitrous_oxide"
color = "#FFFB89"
fusion_power = 0

/datum/gas/hydrogen_chloride
id = GAS_HYDROGEN_CHLORIDE
specific_heat = 40
name = "Hydrogen Chloride"
flags = GAS_FLAG_DANGEROUS
moles_visible = MOLES_GAS_VISIBLE * 2
gas_overlay = "nitrous_oxide"
color = "#5bfd45"
fusion_power = 0
fire_products = list(GAS_CHLORINE = 1, GAS_H2O = 0.5)
enthalpy = 63000
fire_burn_rate = 1
fire_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST
2 changes: 1 addition & 1 deletion code/modules/atmospherics/gasmixtures/auxgm.dm
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
GLOBAL_LIST_INIT(hardcoded_gases, list(GAS_O2, GAS_N2, GAS_CO2, GAS_PLASMA)) //the main four gases, which were at one time hardcoded
GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(GAS_O2, GAS_N2, GAS_CO2, GAS_PLUOXIUM, GAS_STIMULUM, GAS_NITRYL))) //unable to react amongst themselves
GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(GAS_O2, GAS_N2, GAS_CO2, GAS_PLUOXIUM, GAS_STIMULUM, GAS_NITRYL, GAS_CHLORINE, GAS_HYDROGEN_CHLORIDE))) //unable to react amongst themselves

// Auxgm
// It's a send-up of XGM, like what baystation got.
Expand Down
29 changes: 29 additions & 0 deletions code/modules/atmospherics/gasmixtures/reactions.dm
Original file line number Diff line number Diff line change
Expand Up @@ -825,3 +825,32 @@
if(new_heat_capacity > MINIMUM_HEAT_CAPACITY)
air.set_temperature(clamp((air.return_temperature()*old_heat_capacity + energy_released)/new_heat_capacity,TCMB,INFINITY))
return REACTING

/datum/gas_reaction/hydrogen_chloride_formation
priority = 11
name = "Hydrogen Chloride formation"
id = "hydrogenchlorideformation"

/datum/gas_reaction/hydrogen_chloride_formation/init_reqs()
min_requirements = list(
GAS_CHLORINE = 5,
GAS_HYDROGEN = 5,
"TEMP" = FIRE_MINIMUM_TEMPERATURE_TO_EXIST
)

/datum/gas_reaction/hydrogen_chloride_formation/react(datum/gas_mixture/air)
var/temperature = air.return_temperature()
var/old_heat_capacity = air.heat_capacity()
var/reaction_efficency = min((temperature/(FIRE_MINIMUM_TEMPERATURE_TO_EXIST*10)),air.get_moles(GAS_CHLORINE),air.get_moles(GAS_HYDROGEN))
var/energy_released = reaction_efficency*185000
if ((air.get_moles(GAS_CHLORINE) - reaction_efficency < 0)|| (air.get_moles(GAS_HYDROGEN) - (reaction_efficency) < 0) || energy_released <= 0) //Shouldn't produce gas from nothing.
return NO_REACTION
air.adjust_moles(GAS_HYDROGEN_CHLORIDE, reaction_efficency)
air.adjust_moles(GAS_HYDROGEN, -reaction_efficency)
air.adjust_moles(GAS_CHLORINE, -reaction_efficency)

if(energy_released > 0)
var/new_heat_capacity = air.heat_capacity()
if(new_heat_capacity > MINIMUM_HEAT_CAPACITY)
air.set_temperature(max(((temperature*old_heat_capacity + energy_released)/new_heat_capacity),TCMB))
return REACTING
36 changes: 17 additions & 19 deletions code/modules/atmospherics/machinery/airalarm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,11 @@
var/alarm_frequency = FREQ_ATMOS_ALARMS
var/datum/radio_frequency/radio_connection

//anything outright hazardous (flammable, toxic, generally Weird)
var/list/filter_basic = list(GAS_CO2, GAS_PLASMA, GAS_NITROUS, GAS_BZ, GAS_TRITIUM, GAS_NITRYL, GAS_FREON, GAS_HYDROGEN, GAS_CHLORINE, GAS_HYDROGEN_CHLORIDE)
//anything that isn't o2 or n2.
var/list/filter_extra = list(GAS_CO2, GAS_PLASMA, GAS_NITROUS, GAS_BZ, GAS_TRITIUM, GAS_NITRYL, GAS_FREON, GAS_HYDROGEN, GAS_CHLORINE, GAS_HYDROGEN_CHLORIDE, GAS_H2O, GAS_HYPERNOB, GAS_STIMULUM, GAS_PLUOXIUM)

var/list/TLV = list( // Breathable air.
"pressure" = new/datum/tlv(HAZARD_LOW_PRESSURE, WARNING_LOW_PRESSURE, WARNING_HIGH_PRESSURE, HAZARD_HIGH_PRESSURE), // kPa. Values are min2, min1, max1, max2
"temperature" = new/datum/tlv(T0C, T0C+10, T0C+40, T0C+66),
Expand All @@ -122,7 +127,9 @@
GAS_NITRYL = new/datum/tlv/dangerous,
GAS_PLUOXIUM = new/datum/tlv(-1, -1, 5, 6), // Unlike oxygen, pluoxium does not fuel plasma/tritium fires
GAS_FREON = new/datum/tlv/dangerous,
GAS_HYDROGEN = new/datum/tlv/dangerous
GAS_HYDROGEN = new/datum/tlv/dangerous,
GAS_CHLORINE = new/datum/tlv/dangerous,
GAS_HYDROGEN_CHLORIDE = new/datum/tlv/dangerous
)

/obj/machinery/airalarm/server // No checks here.
Expand All @@ -142,7 +149,9 @@
GAS_NITRYL = new/datum/tlv/no_checks,
GAS_PLUOXIUM = new/datum/tlv/no_checks,
GAS_FREON = new/datum/tlv/no_checks,
GAS_HYDROGEN = new/datum/tlv/no_checks
GAS_HYDROGEN = new/datum/tlv/no_checks,
GAS_CHLORINE = new/datum/tlv/dangerous,
GAS_HYDROGEN_CHLORIDE = new/datum/tlv/dangerous
)
heating_manage = FALSE

Expand All @@ -163,7 +172,9 @@
GAS_NITRYL = new/datum/tlv/dangerous,
GAS_PLUOXIUM = new/datum/tlv(-1, -1, 1000, 1000), // Unlike oxygen, pluoxium does not fuel plasma/tritium fires
GAS_FREON = new/datum/tlv/dangerous,
GAS_HYDROGEN = new/datum/tlv/dangerous
GAS_HYDROGEN = new/datum/tlv/dangerous,
GAS_CHLORINE = new/datum/tlv/dangerous,
GAS_HYDROGEN_CHLORIDE = new/datum/tlv/dangerous
)
heating_manage = FALSE

Expand Down Expand Up @@ -542,7 +553,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/airalarm, 27)
for(var/device_id in A.air_scrub_names)
send_signal(device_id, list(
"power" = 1,
"set_filters" = list(GAS_CO2, GAS_BZ),
"set_filters" = filter_basic,
"scrubbing" = 1,
"widenet" = 0
), signal_source)
Expand All @@ -556,20 +567,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/airalarm, 27)
for(var/device_id in A.air_scrub_names)
send_signal(device_id, list(
"power" = 1,
"set_filters" = list(
GAS_CO2,
GAS_PLASMA,
GAS_H2O,
GAS_HYPERNOB,
GAS_NITROUS,
GAS_NITRYL,
GAS_TRITIUM,
GAS_BZ,
GAS_STIMULUM,
GAS_PLUOXIUM,
GAS_FREON,
GAS_HYDROGEN
),
"set_filters" = filter_extra,
"scrubbing" = 1,
"widenet" = 1
), signal_source)
Expand All @@ -596,7 +594,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/airalarm, 27)
for(var/device_id in A.air_scrub_names)
send_signal(device_id, list(
"power" = 1,
"set_filters" = list(GAS_CO2, GAS_BZ),
"set_filters" = filter_basic,
"scrubbing" = 1,
"widenet" = 0
), signal_source)
Expand Down
18 changes: 17 additions & 1 deletion code/modules/atmospherics/machinery/portable/canister.dm
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,9 @@
"caution" = /obj/machinery/portable_atmospherics/canister,
"freon" = /obj/machinery/portable_atmospherics/canister/freon,
"hydrogen" = /obj/machinery/portable_atmospherics/canister/hydrogen,
"fuel mix" = /obj/machinery/portable_atmospherics/canister/fuel
"fuel mix" = /obj/machinery/portable_atmospherics/canister/fuel,
"cl2" = /obj/machinery/portable_atmospherics/canister/chlorine,
"hcl" =/obj/machinery/portable_atmospherics/canister/hydrogen_chloride,
)

/obj/machinery/portable_atmospherics/canister/interact(mob/user)
Expand Down Expand Up @@ -170,6 +172,20 @@
air_contents.set_moles(GAS_HYDROGEN, 1000)
air_contents.set_temperature(T20C)

/obj/machinery/portable_atmospherics/canister/chlorine
name = "chlorine canister"
desc = "chlorine"
icon_state = "greenys"
gas_type = GAS_CHLORINE
filled = 1

/obj/machinery/portable_atmospherics/canister/hydrogen_chloride
name = "hydrogen chloride canister"
desc = "awful"
icon_state = "greenyshaz"
gas_type = GAS_HYDROGEN_CHLORIDE
filled = 1

/obj/machinery/portable_atmospherics/canister/fusion_test
name = "fusion test canister"
desc = "Don't be a badmin."
Expand Down
6 changes: 4 additions & 2 deletions code/modules/clothing/glasses/_glasses.dm
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@
flash_protect = FLASH_PROTECTION_WELDER
custom_materials = list(/datum/material/iron = 250)
tint = 2
visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT
visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT | SEALS_EYES
flags_cover = GLASSESCOVERSEYES
glass_colour_type = /datum/client_colour/glass_colour/gray
supports_variations = VOX_VARIATION
Expand Down Expand Up @@ -485,12 +485,14 @@
desc = "A pair of goggles meant for low temperatures."
icon_state = "cold"
item_state = "cold"
flags_cover = GLASSESCOVERSEYES | SEALS_EYES

/obj/item/clothing/glasses/heat
name = "heat goggles"
desc = "A pair of goggles meant for high temperatures."
icon_state = "heat"
item_state = "heat"
flags_cover = GLASSESCOVERSEYES | SEALS_EYES

/obj/item/clothing/glasses/orange
name = "orange glasses"
Expand Down Expand Up @@ -572,7 +574,7 @@
desc = "Medical, security and diagnostic hud. Alt click to toggle xray."
icon_state = "nvgmeson"
item_state = "nvgmeson"
flags_cover = GLASSESCOVERSEYES
flags_cover = GLASSESCOVERSEYES | SEALS_EYES
darkness_view = 8
flash_protect = FLASH_PROTECTION_WELDER
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/head/hardhat.dm
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
cold_protection = HEAD
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF | SEALS_EYES

/obj/item/clothing/head/hardhat/mining
name = "mining helmet"
Expand Down
4 changes: 2 additions & 2 deletions code/modules/clothing/head/helmet.dm
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@
visor_flags_inv = HIDEFACE
toggle_cooldown = 0
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF | SEALS_EYES
dog_fashion = null

/obj/item/clothing/head/helmet/justice
Expand Down Expand Up @@ -492,7 +492,7 @@
resistance_flags = FIRE_PROOF | ACID_PROOF
flash_protect = FLASH_PROTECTION_WELDER
flags_inv = HIDEHAIR|HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF | SEALS_EYES
strip_delay = 80

/obj/item/clothing/head/helmet/swat/inteq
Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/masks/gasmask.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
item_state = "gas_alt"
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH | PEPPERPROOF
flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH | PEPPERPROOF | SEALS_EYES
resistance_flags = NONE

/obj/item/clothing/mask/gas/atmos
Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/spacesuits/_spacesuits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
flash_protect = FLASH_PROTECTION_WELDER
strip_delay = 50
equip_delay_other = 50
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF | SEALS_EYES
resistance_flags = NONE
dog_fashion = null
content_overlays = FALSE
Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/spacesuits/hardsuit.dm
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
actions_types = list(/datum/action/item_action/toggle_helmet)
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF | SEALS_EYES
var/rad_count = 0
var/rad_record = 0
var/grace_count = 0
Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/spacesuits/plasmamen.dm
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
actions_types = list(/datum/action/item_action/toggle_helmet_light)
visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
flags_cover = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF
flags_cover = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF | SEALS_EYES
visor_flags_inv = HIDEEYES|HIDEFACE

// WS Begin - plasmeme command helmets buff - used for RD bomb scanner
Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/suits/bio.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 20, "fire" = 30, "acid" = 100)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE
resistance_flags = ACID_PROOF
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF | SEALS_EYES

/obj/item/clothing/suit/bio_suit
name = "bio suit"
Expand Down
4 changes: 2 additions & 2 deletions code/modules/clothing/suits/utility.dm
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT
strip_delay = 70
equip_delay_other = 70
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF | SEALS_EYES
resistance_flags = NONE


Expand Down Expand Up @@ -126,7 +126,7 @@
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 60, "rad" = 100, "fire" = 30, "acid" = 30)
strip_delay = 60
equip_delay_other = 60
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF | SEALS_EYES
resistance_flags = NONE
flags_1 = RAD_PROTECT_CONTENTS_1
supports_variations = VOX_VARIATION
Expand Down
15 changes: 15 additions & 0 deletions code/modules/mob/living/carbon/human/life.dm
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,21 @@
return ONE_ATMOSPHERE
return pressure

/mob/living/carbon/human/proc/check_for_seal()
var/obj/item/clothing/clothing_suit = wear_suit
var/obj/item/clothing/clothing_head = head
if(istype(clothing_suit) && istype(clothing_head))
if (clothing_suit.clothing_flags & clothing_head.clothing_flags & STOPSPRESSUREDAMAGE)
return TRUE
return FALSE

/mob/living/carbon/human/proc/check_for_goggles()
if(head?.flags_cover & SEALS_EYES)
return head
if(wear_mask?.flags_cover & SEALS_EYES)
return wear_mask
if(glasses?.flags_cover & SEALS_EYES)
return glasses

/mob/living/carbon/human/handle_traits()
if (getOrganLoss(ORGAN_SLOT_BRAIN) >= 60)
Expand Down
Loading

0 comments on commit 07e83a6

Please sign in to comment.