mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-28 14:37:04 +01:00
Makes Nitrous Oxide Visible on Air Alarm, PDA, and Analyzer (#20891)
* Makes N2O not a trace gas * Back end for nitrous readout on air alarm * Makes nitrous appear on atmosphere scanners * adds N2O bar to air alarm UI * adds nitrous to PDA scanner * TGUI Rebuild
This commit is contained in:
@@ -56,7 +56,7 @@ What are the archived variables for?
|
||||
return moles
|
||||
|
||||
/datum/gas_mixture/proc/total_trace_moles()
|
||||
var/moles = sleeping_agent + agent_b
|
||||
var/moles = agent_b
|
||||
return moles
|
||||
|
||||
/// Calculate pressure in kilopascals
|
||||
|
||||
@@ -154,6 +154,7 @@
|
||||
"nitrogen" = new/datum/tlv(-1.0, -1.0, -1.0, -1.0), // Partial pressure, kpa
|
||||
"carbon dioxide" = new/datum/tlv(-1.0, -1.0, 5, 10), // Partial pressure, kpa
|
||||
"plasma" = new/datum/tlv(-1.0, -1.0, 0.2, 0.5), // Partial pressure, kpa
|
||||
"nitrous oxide" = new/datum/tlv(-1.0, -1.0, 0.2, 0.5), // Partial pressure, kpa
|
||||
"other" = new/datum/tlv(-1.0, -1.0, 0.5, 1.0), // Partial pressure, kpa
|
||||
"pressure" = new/datum/tlv(ONE_ATMOSPHERE*0.80,ONE_ATMOSPHERE*0.90,ONE_ATMOSPHERE*1.10,ONE_ATMOSPHERE*1.20), /* kpa */
|
||||
"temperature" = new/datum/tlv(T0C, T0C+10, T0C+40, T0C+66), // K
|
||||
@@ -165,6 +166,7 @@
|
||||
"nitrogen" = new/datum/tlv(16, 19, 135, 140), // Partial pressure, kpa
|
||||
"carbon dioxide" = new/datum/tlv(-1.0, -1.0, 5, 10), // Partial pressure, kpa
|
||||
"plasma" = new/datum/tlv(-1.0, -1.0, 0.2, 0.5), // Partial pressure, kpa
|
||||
"nitrous oxide" = new/datum/tlv(-1.0, -1.0, 0.2, 0.5), // Partial pressure, kpa
|
||||
"other" = new/datum/tlv(-1.0, -1.0, 0.5, 1.0), // Partial pressure, kpa
|
||||
"pressure" = new/datum/tlv(ONE_ATMOSPHERE*0.80,ONE_ATMOSPHERE*0.90,ONE_ATMOSPHERE*1.10,ONE_ATMOSPHERE*1.20), /* kpa */
|
||||
"temperature" = new/datum/tlv(T0C, T0C+10, T0C+40, T0C+66), // K
|
||||
@@ -175,6 +177,7 @@
|
||||
"nitrogen" = new/datum/tlv(-1.0, -1.0, -1.0, -1.0), // Partial pressure, kpa
|
||||
"carbon dioxide" = new/datum/tlv(-1.0, -1.0, 5, 10), // Partial pressure, kpa
|
||||
"plasma" = new/datum/tlv(-1.0, -1.0, 0.2, 0.5), // Partial pressure, kpa
|
||||
"nitrous oxide" = new/datum/tlv(-1.0, -1.0, 0.2, 0.5), // Partial pressure, kpa
|
||||
"other" = new/datum/tlv(-1.0, -1.0, 0.5, 1.0), // Partial pressure, kpa
|
||||
"pressure" = new/datum/tlv(ONE_ATMOSPHERE*0.80,ONE_ATMOSPHERE*0.90,ONE_ATMOSPHERE*1.50,ONE_ATMOSPHERE*1.60), /* kpa */
|
||||
"temperature" = new/datum/tlv(T0C-50, T0C-20, T0C, T20C), // K
|
||||
@@ -185,6 +188,7 @@
|
||||
"nitrogen" = new/datum/tlv(-1.0, -1.0, -1.0, -1.0), // Partial pressure, kpa
|
||||
"carbon dioxide" = new/datum/tlv(-1.0, -1.0, -1.0, -1.0), // Partial pressure, kpa
|
||||
"plasma" = new/datum/tlv(-1.0, -1.0, -1.0, -1.0), // Partial pressure, kpa
|
||||
"nitrous oxide" = new/datum/tlv(-1.0, -1.0, -1.0, -1.0), // Partial pressure, kpa
|
||||
"other" = new/datum/tlv(-1.0, -1.0, -1.0, -1.0), // Partial pressure, kpa
|
||||
"pressure" = new/datum/tlv(-1.0, -1.0, -1.0, -1.0), /* kpa */
|
||||
"temperature" = new/datum/tlv(0, 0, T20C + 5, T20C + 15), // K
|
||||
@@ -196,6 +200,7 @@
|
||||
"nitrogen" = new/datum/tlv(-1.0, -1.0, -1.0, -1.0), // Partial pressure, kpa
|
||||
"carbon dioxide" = new/datum/tlv(-1.0, -1.0, -1.0, -1.0), // Partial pressure, kpa
|
||||
"plasma" = new/datum/tlv(-1.0, -1.0, -1.0, -1.0), // Partial pressure, kpa
|
||||
"nitrous oxide" = new/datum/tlv(-1.0, -1.0, -1.0, -1.0), // Partial pressure, kpa
|
||||
"other" = new/datum/tlv(-1.0, -1.0, -1.0, -1.0), // Partial pressure, kpa
|
||||
"pressure" = new/datum/tlv(-1.0, -1.0, -1.0, -1.0), /* kpa */
|
||||
"temperature" = new/datum/tlv(-1.0, -1.0, -1.0, -1.0), // K
|
||||
@@ -295,6 +300,9 @@
|
||||
cur_tlv = TLV["plasma"]
|
||||
var/plasma_dangerlevel = cur_tlv.get_danger_level(environment.toxins*GET_PP)
|
||||
|
||||
cur_tlv = TLV["nitrous oxide"]
|
||||
var/sleeping_agent_dangerlevel = cur_tlv.get_danger_level(environment.sleeping_agent*GET_PP)
|
||||
|
||||
cur_tlv = TLV["other"]
|
||||
var/other_dangerlevel = cur_tlv.get_danger_level(environment.total_trace_moles() * GET_PP)
|
||||
|
||||
@@ -308,6 +316,7 @@
|
||||
nitrogen_dangerlevel,
|
||||
co2_dangerlevel,
|
||||
plasma_dangerlevel,
|
||||
sleeping_agent_dangerlevel,
|
||||
other_dangerlevel,
|
||||
temperature_dangerlevel
|
||||
)
|
||||
@@ -584,7 +593,7 @@
|
||||
return
|
||||
|
||||
var/datum/gas_mixture/environment = location.return_air()
|
||||
var/known_total = environment.oxygen + environment.nitrogen + environment.carbon_dioxide + environment.toxins
|
||||
var/known_total = environment.oxygen + environment.nitrogen + environment.carbon_dioxide + environment.toxins + environment.sleeping_agent
|
||||
var/total = environment.total_moles()
|
||||
|
||||
var/datum/tlv/cur_tlv
|
||||
@@ -610,6 +619,10 @@
|
||||
var/plasma_dangerlevel = cur_tlv.get_danger_level(environment.toxins*GET_PP)
|
||||
var/plasma_percent = total ? environment.toxins / total * 100 : 0
|
||||
|
||||
cur_tlv = TLV["nitrous oxide"]
|
||||
var/sleeping_agent_dangerlevel = cur_tlv.get_danger_level(environment.sleeping_agent*GET_PP)
|
||||
var/sleeping_agent_percent = total ? environment.sleeping_agent / total * 100 : 0
|
||||
|
||||
cur_tlv = TLV["other"]
|
||||
var/other_moles = total - known_total
|
||||
var/other_dangerlevel = cur_tlv.get_danger_level(other_moles*GET_PP)
|
||||
@@ -629,6 +642,7 @@
|
||||
percentages["nitrogen"] = nitrogen_percent
|
||||
percentages["co2"] = co2_percent
|
||||
percentages["plasma"] = plasma_percent
|
||||
percentages["n2o"] = sleeping_agent_percent
|
||||
percentages["other"] = other_percent
|
||||
data["contents"] = percentages
|
||||
|
||||
@@ -639,6 +653,7 @@
|
||||
danger["nitrogen"] = nitrogen_dangerlevel
|
||||
danger["co2"] = co2_dangerlevel
|
||||
danger["plasma"] = plasma_dangerlevel
|
||||
danger["n2o"] = sleeping_agent_dangerlevel
|
||||
danger["other"] = other_dangerlevel
|
||||
danger["overall"] = max(pressure_dangerlevel,oxygen_dangerlevel,nitrogen_dangerlevel,co2_dangerlevel,plasma_dangerlevel,other_dangerlevel,temperature_dangerlevel)
|
||||
data["danger"] = danger
|
||||
@@ -739,6 +754,7 @@
|
||||
"nitrogen" = "N2",
|
||||
"carbon dioxide" = "CO2",
|
||||
"plasma" = "Toxin",
|
||||
"nitrous oxide" = "N2O",
|
||||
"other" = "Other")
|
||||
for(var/g in gas_names)
|
||||
thresholds += list(list("name" = gas_names[g], "settings" = list()))
|
||||
|
||||
@@ -113,7 +113,8 @@
|
||||
var/n2_level = environment.nitrogen/total_moles
|
||||
var/co2_level = environment.carbon_dioxide/total_moles
|
||||
var/plasma_level = environment.toxins/total_moles
|
||||
var/unknown_level = 1-(o2_level+n2_level+co2_level+plasma_level)
|
||||
var/n2o_level = environment.sleeping_agent/total_moles
|
||||
var/unknown_level = 1-(o2_level+n2_level+co2_level+plasma_level+n2o_level)
|
||||
results = list(
|
||||
list("entry" = "Pressure", "units" = "kPa", "val" = "[round(pressure,0.1)]", "bad_high" = 120, "poor_high" = 110, "poor_low" = 95, "bad_low" = 80),
|
||||
list("entry" = "Temperature", "units" = "C", "val" = "[round(environment.temperature-T0C,0.1)]", "bad_high" = 35, "poor_high" = 25, "poor_low" = 15, "bad_low" = 5),
|
||||
@@ -121,6 +122,7 @@
|
||||
list("entry" = "Nitrogen", "units" = "%", "val" = "[round(n2_level*100,0.1)]", "bad_high" = 105, "poor_high" = 85, "poor_low" = 50, "bad_low" = 40),
|
||||
list("entry" = "Carbon Dioxide", "units" = "%", "val" = "[round(co2_level*100,0.1)]", "bad_high" = 10, "poor_high" = 5, "poor_low" = 0, "bad_low" = 0),
|
||||
list("entry" = "Plasma", "units" = "%", "val" = "[round(plasma_level*100,0.01)]", "bad_high" = 0.5, "poor_high" = 0, "poor_low" = 0, "bad_low" = 0),
|
||||
list("entry" = "Nitrous Oxide", "units" = "%", "val" = "[round(n2o_level*100,0.01)]", "bad_high" = 0.5, "poor_high" = 0, "poor_low" = 0, "bad_low" = 0),
|
||||
list("entry" = "Other", "units" = "%", "val" = "[round(unknown_level*100,0.01)]", "bad_high" = 1, "poor_high" = 0.5, "poor_low" = 0, "bad_low" = 0)
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user