[MIRROR] Makes n2o nontoxic, for reasons (#3321)

* Makes n2o nontoxic, for reasons (#56839)

Counter to the original intent of the change seen here #50126, n2o will currently deal damage when used with both internal tanks and floods, as the threshold picked for it was about 0.15 moles at room temperature. Even outside this oversight, the original goal can't easily be achieved. Because breathing works off partial pressures, anything you can do with an anesthetic can you can do with an n2o flood.

Therefore I don't think it's behavior worth keeping, as even as a way to disincentivize non-antag n2o floods it would do little.

* Makes n2o nontoxic, for reasons

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
This commit is contained in:
SkyratBot
2021-02-12 12:52:34 +00:00
committed by GitHub
co-authored by LemonInTheDark
parent 7b1a338f2a
commit bff6b2e317
4 changed files with 16 additions and 12 deletions
+6 -5
View File
@@ -242,21 +242,22 @@
if(breath_gases[/datum/gas/nitrous_oxide])
var/SA_partialpressure = (breath_gases[/datum/gas/nitrous_oxide][MOLES]/breath.total_moles())*breath_pressure
if(SA_partialpressure > SA_para_min)
throw_alert("too_much_n2o", /atom/movable/screen/alert/too_much_n2o)
SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "chemical_euphoria")
Unconscious(60)
if(SA_partialpressure > SA_sleep_min)
Sleeping(max(AmountSleeping() + 40, 200))
else if(SA_partialpressure > 0.01)
clear_alert("too_much_n2o")
if(prob(20))
emote(pick("giggle","laugh"))
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "chemical_euphoria", /datum/mood_event/chemical_euphoria)
if(SA_partialpressure > safe_tox_max*3)
var/ratio = (breath_gases[/datum/gas/nitrous_oxide][MOLES]/safe_tox_max)
adjustToxLoss(clamp(ratio, MIN_TOXIC_GAS_DAMAGE, MAX_TOXIC_GAS_DAMAGE))
throw_alert("too_much_tox", /atom/movable/screen/alert/too_much_tox)
else
clear_alert("too_much_tox")
SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "chemical_euphoria")
clear_alert("too_much_n2o")
else
SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "chemical_euphoria")
clear_alert("too_much_n2o")
//BZ (Facepunch port of their Agent B)
if(breath_gases[/datum/gas/bz])