diff --git a/code/modules/atmospherics/gasmixtures/gas_types.dm b/code/modules/atmospherics/gasmixtures/gas_types.dm
index 1542e081897..875fe2caef6 100644
--- a/code/modules/atmospherics/gasmixtures/gas_types.dm
+++ b/code/modules/atmospherics/gasmixtures/gas_types.dm
@@ -72,6 +72,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
id = "co2"
specific_heat = 30
name = "Carbon Dioxide"
+ dangerous = TRUE
rarity = 700
purchaseable = TRUE
base_value = 0.2
@@ -171,6 +172,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
id = "miasma"
specific_heat = 20
name = "Miasma"
+ dangerous = TRUE
gas_overlay = "miasma"
moles_visible = MOLES_GAS_VISIBLE * 60
rarity = 250
@@ -180,6 +182,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
id = "freon"
specific_heat = 600
name = "Freon"
+ dangerous = TRUE
gas_overlay = "freon"
moles_visible = MOLES_GAS_VISIBLE *30
fusion_power = -5
diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm
index beedded4b05..223dcc19af1 100644
--- a/code/modules/atmospherics/machinery/portable/canister.dm
+++ b/code/modules/atmospherics/machinery/portable/canister.dm
@@ -667,28 +667,35 @@ GLOBAL_LIST_INIT(gas_id_to_canister, init_gas_id_to_canister())
if(.)
release_pressure = clamp(round(pressure), can_min_release_pressure, can_max_release_pressure)
investigate_log("was set to [release_pressure] kPa by [key_name(usr)].", INVESTIGATE_ATMOS)
- if("valve")
+ if("valve") //logging for openning canisters
var/logmsg
+ var/admin_msg
+ var/danger = FALSE
+ var/n = 0
valve_open = !valve_open
if(valve_open)
SSair.start_processing_machine(src)
logmsg = "Valve was opened by [key_name(usr)], starting a transfer into \the [holding || "air"].
"
if(!holding)
- var/list/danger = list()
+ var/list/gaseslog = list() //list for logging all gases in canister
for(var/id in air_contents.gases)
var/gas = air_contents.gases[id]
+ gaseslog[gas[GAS_META][META_GAS_NAME]] = gas[MOLES] //adds gases to gaseslog
if(!gas[GAS_META][META_GAS_DANGER])
continue
if(gas[MOLES] > (gas[GAS_META][META_GAS_MOLES_VISIBLE] || MOLES_GAS_VISIBLE)) //if moles_visible is undefined, default to default visibility
- danger[gas[GAS_META][META_GAS_NAME]] = gas[MOLES] //ex. "plasma" = 20
-
- if(danger.len)
- message_admins("[ADMIN_LOOKUPFLW(usr)] opened a canister that contains the following at [ADMIN_VERBOSEJMP(src)]:")
- log_admin("[key_name(usr)] opened a canister that contains the following at [AREACOORD(src)]:")
- for(var/name in danger)
- var/msg = "[name]: [danger[name]] moles."
- log_admin(msg)
- message_admins(msg)
+ danger = TRUE //at least 1 danger gas
+ logmsg = "[key_name(usr)] opened a canister that contains the following:"
+ admin_msg = "[key_name(usr)] opened a canister that contains the following at [ADMIN_VERBOSEJMP(src)]:"
+ for(var/name in gaseslog)
+ n = n + 1
+ logmsg += "\n[name]: [gaseslog[name]] moles."
+ if(n <= 5) //the first five gases added
+ admin_msg += "\n[name]: [gaseslog[name]] moles."
+ if(n == 5 && gaseslog.len > 5) //message added if more than 5 gases
+ admin_msg += "\nToo many gases to log. Check investigate log."
+ if(danger) //sent to admin's chat if contains dangerous gases
+ message_admins(admin_msg)
else
logmsg = "Valve was closed by [key_name(usr)], stopping the transfer into \the [holding || "air"].
"
investigate_log(logmsg, INVESTIGATE_ATMOS)