From 972e517cfecb4fb2e801865c6a3652d0b6db88da Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Sun, 4 Feb 2024 14:01:05 +0100
Subject: [PATCH] [MIRROR] Less laughing from trace nitrous (#26341)
* Less laughing from trace nitrous (#81223)
## About The Pull Request
Re-open of #80808 post embargo
I've increased the minimum amount of n2o required in the air to cause
giggling. Threshold is still well below the para and sleep values.
This should stop people randomly getting drugged and giggly from trace
amounts of gas.
I'm not gonna lie I had no idea how to fully dial this in, so the
numbers are an arbitrary ~~10x increase from .01 mol to .1 mol~~ 8x
increase from .01 mol to .08 mol.
## Why It's Good For The Game
After "extensive" real life testing I've determined that giggling and
euphoria from trace amounts of the gas is unrealistic.
Also it would be a lot less annoying. @ Cheshify also called it qol so
I'm sticking with that.
## Changelog
:cl:
qol: Increased threshold of trace n2o required to make euphoria and
giggles happen.
/:cl:
* Less laughing from trace nitrous
---------
Co-authored-by: Swift
---
code/modules/surgery/organs/internal/lungs/_lungs.dm | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/code/modules/surgery/organs/internal/lungs/_lungs.dm b/code/modules/surgery/organs/internal/lungs/_lungs.dm
index 874ec320648..78afbd9871e 100644
--- a/code/modules/surgery/organs/internal/lungs/_lungs.dm
+++ b/code/modules/surgery/organs/internal/lungs/_lungs.dm
@@ -47,6 +47,7 @@
var/safe_plasma_min = 0
///How much breath partial pressure is a safe amount of plasma. 0 means that we are immune to plasma.
var/safe_plasma_max = 0.05
+ var/n2o_detect_min = 0.08 //Minimum n2o for effects
var/n2o_para_min = 1 //Sleeping agent
var/n2o_sleep_min = 5 //Sleeping agent
var/BZ_trip_balls_min = 1 //BZ gas
@@ -503,12 +504,12 @@
/obj/item/organ/internal/lungs/proc/too_much_n2o(mob/living/carbon/breather, datum/gas_mixture/breath, n2o_pp, old_n2o_pp)
if(n2o_pp < n2o_para_min)
// Small amount of N2O, small side-effects.
- if(n2o_pp <= 0.01)
- if(old_n2o_pp > 0.01)
+ if(n2o_pp <= n2o_detect_min)
+ if(old_n2o_pp > n2o_detect_min)
return BREATH_LOST
return
// No alert for small amounts, but the mob randomly feels euphoric.
- if(old_n2o_pp >= n2o_para_min || old_n2o_pp <= 0.01)
+ if(old_n2o_pp >= n2o_para_min || old_n2o_pp <= n2o_detect_min)
breather.clear_alert(ALERT_TOO_MUCH_N2O)
if(prob(20))