mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-21 04:57:57 +01:00
nitryl and stimulum merge in nitrium (#62061)
This PR is the first of a few were i'll be merging similar working gases into one. This time is Nitryl and Stimulum. They'll be merged into Nitrium , a brown gas with both features of the two gases The main scope is to add dept to atmos by removing bloated content and/or repeated content that has never seen the lights of the day (how many times have you seen both gases made and used at the same time?) The PR so far: -removed nitryl -removed stimulum -merged them into Nitrium (Nitrium is now made with trit, nitrogen and bz from a minimum temperature of 1500 K) -made Nitrium have both gases features such as fast movements and sleep and stun immunity but increased damage taken -Nitrium can make crystals that spread the chemicals with a cloud (is still far more efficient to just breathe the gas) Less rare gases, going towards a better atmos gameplay loop
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
GLOBAL_LIST_INIT(hardcoded_gases, list(/datum/gas/oxygen, /datum/gas/nitrogen, /datum/gas/carbon_dioxide, /datum/gas/plasma)) //the main four gases, which were at one time hardcoded
|
||||
//Now this is what I call history
|
||||
GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/gas/nitrogen, /datum/gas/carbon_dioxide, /datum/gas/pluoxium, /datum/gas/stimulum, /datum/gas/nitryl))) //unable to react amongst themselves
|
||||
GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/gas/nitrogen, /datum/gas/carbon_dioxide, /datum/gas/pluoxium))) //unable to react amongst themselves
|
||||
|
||||
/proc/meta_gas_list()
|
||||
. = subtypesof(/datum/gas)
|
||||
@@ -121,15 +121,16 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
purchaseable = TRUE
|
||||
base_value = 3
|
||||
|
||||
/datum/gas/nitryl
|
||||
id = "no2"
|
||||
specific_heat = 20
|
||||
name = "Nitryl"
|
||||
gas_overlay = "nitryl"
|
||||
/datum/gas/nitrium
|
||||
id = "nitrium"
|
||||
specific_heat = 10
|
||||
name = "Nitrium"
|
||||
fusion_power = 7
|
||||
gas_overlay = "nitrium"
|
||||
moles_visible = MOLES_GAS_VISIBLE
|
||||
dangerous = TRUE
|
||||
rarity = 100
|
||||
base_value = 5
|
||||
rarity = 1
|
||||
base_value = 100
|
||||
|
||||
/datum/gas/tritium
|
||||
id = "tritium"
|
||||
@@ -152,14 +153,6 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g
|
||||
purchaseable = TRUE
|
||||
base_value = 2
|
||||
|
||||
/datum/gas/stimulum
|
||||
id = "stim"
|
||||
specific_heat = 5
|
||||
name = "Stimulum"
|
||||
fusion_power = 7
|
||||
rarity = 1
|
||||
base_value = 100
|
||||
|
||||
/datum/gas/pluoxium
|
||||
id = "pluox"
|
||||
specific_heat = 80
|
||||
|
||||
@@ -401,32 +401,33 @@
|
||||
air.temperature = max(((temperature * old_heat_capacity + energy_used) / new_heat_capacity), TCMB) //the air heats up when reacting
|
||||
return REACTING
|
||||
|
||||
/datum/gas_reaction/nitryl_decomposition //The decomposition of nitryl. Exothermic. Requires oxygen as catalyst.
|
||||
/datum/gas_reaction/nitrium_decomposition //The decomposition of nitrium. Exothermic. Requires oxygen as catalyst.
|
||||
priority_group = PRIORITY_PRE_FORMATION
|
||||
name = "Nitryl Decomposition"
|
||||
id = "nitryl_decomp"
|
||||
name = "Nitrium Decomposition"
|
||||
id = "nitrium_decomp"
|
||||
|
||||
/datum/gas_reaction/nitryl_decomposition/init_reqs()
|
||||
/datum/gas_reaction/nitrium_decomposition/init_reqs()
|
||||
requirements = list(
|
||||
/datum/gas/oxygen = MINIMUM_MOLE_COUNT,
|
||||
/datum/gas/nitryl = MINIMUM_MOLE_COUNT,
|
||||
/datum/gas/nitrium = MINIMUM_MOLE_COUNT,
|
||||
"MAX_TEMP" = T0C + 70 //Pretty warm, explicitly not fire temps. Time bombs are cool, but not that cool. If it makes you feel any better it's close
|
||||
)
|
||||
|
||||
/datum/gas_reaction/nitryl_decomposition/react(datum/gas_mixture/air)
|
||||
/datum/gas_reaction/nitrium_decomposition/react(datum/gas_mixture/air)
|
||||
var/list/cached_gases = air.gases
|
||||
var/temperature = air.temperature
|
||||
var/old_heat_capacity = air.heat_capacity()
|
||||
//This reaction is agressively slow. like, a tenth of a mole per fire slow. Keep that in mind
|
||||
var/heat_efficency = min(temperature / (FIRE_MINIMUM_TEMPERATURE_TO_EXIST * 8), cached_gases[/datum/gas/nitryl][MOLES])
|
||||
var/energy_produced = heat_efficency * NITRYL_DECOMPOSITION_ENERGY
|
||||
|
||||
if ((cached_gases[/datum/gas/nitryl][MOLES] - heat_efficency < 0)) //Shouldn't produce gas from nothing.
|
||||
//This reaction is agressively slow. like, a tenth of a mole per fire slow. Keep that in mind
|
||||
var/heat_efficency = min(temperature / (FIRE_MINIMUM_TEMPERATURE_TO_EXIST * 8), cached_gases[/datum/gas/nitrium][MOLES])
|
||||
var/energy_produced = heat_efficency * NITRIUM_DECOMPOSITION_ENERGY
|
||||
|
||||
if ((cached_gases[/datum/gas/nitrium][MOLES] - heat_efficency < 0)) //Shouldn't produce gas from nothing.
|
||||
return NO_REACTION
|
||||
|
||||
ASSERT_GAS(/datum/gas/nitrogen, air)
|
||||
cached_gases[/datum/gas/nitryl][MOLES] -= heat_efficency
|
||||
cached_gases[/datum/gas/oxygen][MOLES] += heat_efficency
|
||||
air.assert_gases(/datum/gas/nitrogen, /datum/gas/hydrogen)
|
||||
cached_gases[/datum/gas/nitrium][MOLES] -= heat_efficency
|
||||
cached_gases[/datum/gas/hydrogen][MOLES] += heat_efficency
|
||||
cached_gases[/datum/gas/nitrogen][MOLES] += heat_efficency
|
||||
|
||||
if(energy_produced> 0)
|
||||
@@ -435,36 +436,34 @@
|
||||
air.temperature = max(((temperature * old_heat_capacity + energy_produced) / new_heat_capacity), TCMB) //the air heats up when reacting
|
||||
return REACTING
|
||||
|
||||
/datum/gas_reaction/nitrylformation //The formation of nitryl. Endothermic. Requires bz.
|
||||
/datum/gas_reaction/nitrium_formation //The formation of nitrium. Endothermic. Requires bz.
|
||||
priority_group = PRIORITY_FORMATION
|
||||
name = "Nitryl formation"
|
||||
id = "nitrylformation"
|
||||
name = "Nitrium formation"
|
||||
id = "nitrium_formation"
|
||||
|
||||
/datum/gas_reaction/nitrylformation/init_reqs()
|
||||
/datum/gas_reaction/nitrium_formation/init_reqs()
|
||||
requirements = list(
|
||||
/datum/gas/oxygen = 10,
|
||||
/datum/gas/tritium = 20,
|
||||
/datum/gas/nitrogen = 10,
|
||||
/datum/gas/bz = 5,
|
||||
"MIN_TEMP" = 1500,
|
||||
"MAX_TEMP" = 10000
|
||||
"MIN_TEMP" = 1500
|
||||
)
|
||||
|
||||
/datum/gas_reaction/nitrylformation/react(datum/gas_mixture/air)
|
||||
/datum/gas_reaction/nitrium_formation/react(datum/gas_mixture/air)
|
||||
var/list/cached_gases = air.gases
|
||||
var/temperature = air.temperature
|
||||
|
||||
var/old_heat_capacity = air.heat_capacity()
|
||||
var/heat_efficency = min(temperature / (FIRE_MINIMUM_TEMPERATURE_TO_EXIST * 8), cached_gases[/datum/gas/oxygen][MOLES], cached_gases[/datum/gas/nitrogen][MOLES], cached_gases[/datum/gas/bz][MOLES] * INVERSE(0.05))
|
||||
var/energy_used = heat_efficency * NITRYL_FORMATION_ENERGY
|
||||
ASSERT_GAS(/datum/gas/nitryl, air)
|
||||
if ((cached_gases[/datum/gas/oxygen][MOLES] - heat_efficency < 0 ) || (cached_gases[/datum/gas/nitrogen][MOLES] - heat_efficency < 0) || (cached_gases[/datum/gas/bz][MOLES] - heat_efficency * 0.05 < 0)) //Shouldn't produce gas from nothing.
|
||||
var/heat_efficency = min(temperature / (FIRE_MINIMUM_TEMPERATURE_TO_EXIST * 8), cached_gases[/datum/gas/tritium][MOLES], cached_gases[/datum/gas/nitrogen][MOLES], cached_gases[/datum/gas/bz][MOLES] * INVERSE(0.05))
|
||||
var/energy_used = heat_efficency * NITRIUM_FORMATION_ENERGY
|
||||
ASSERT_GAS(/datum/gas/nitrium, air)
|
||||
if ((cached_gases[/datum/gas/tritium][MOLES] - heat_efficency < 0 ) || (cached_gases[/datum/gas/nitrogen][MOLES] - heat_efficency < 0) || (cached_gases[/datum/gas/bz][MOLES] - heat_efficency * 0.05 < 0)) //Shouldn't produce gas from nothing.
|
||||
return NO_REACTION
|
||||
|
||||
ASSERT_GAS(/datum/gas/nitryl, air)
|
||||
cached_gases[/datum/gas/oxygen][MOLES] -= heat_efficency
|
||||
cached_gases[/datum/gas/tritium][MOLES] -= heat_efficency
|
||||
cached_gases[/datum/gas/nitrogen][MOLES] -= heat_efficency
|
||||
cached_gases[/datum/gas/bz][MOLES] -= heat_efficency * 0.05 //bz gets consumed to balance the nitryl production and not make it too common and/or easy
|
||||
cached_gases[/datum/gas/nitryl][MOLES] += heat_efficency
|
||||
cached_gases[/datum/gas/bz][MOLES] -= heat_efficency * 0.05 //bz gets consumed to balance the nitrium production and not make it too common and/or easy
|
||||
cached_gases[/datum/gas/nitrium][MOLES] += heat_efficency
|
||||
|
||||
if(energy_used > 0)
|
||||
var/new_heat_capacity = air.heat_capacity()
|
||||
@@ -542,38 +541,6 @@
|
||||
air.temperature = max(((temperature * old_heat_capacity - energy_used)/new_heat_capacity), TCMB)
|
||||
return REACTING
|
||||
|
||||
/datum/gas_reaction/stimformation //Stimulum formation follows a strange pattern of how effective it will be at a given temperature, having some multiple peaks and some large dropoffs. Exo and endo thermic.
|
||||
priority_group = PRIORITY_FORMATION
|
||||
name = "Stimulum formation"
|
||||
id = "stimformation"
|
||||
|
||||
/datum/gas_reaction/stimformation/init_reqs()
|
||||
requirements = list(
|
||||
/datum/gas/tritium = 30,
|
||||
/datum/gas/bz = 20,
|
||||
/datum/gas/nitryl = 30,
|
||||
/datum/gas/plasma = MINIMUM_MOLE_COUNT,
|
||||
"MIN_TEMP" = 1500)
|
||||
|
||||
/datum/gas_reaction/stimformation/react(datum/gas_mixture/air)
|
||||
var/list/cached_gases = air.gases
|
||||
|
||||
var/old_heat_capacity = air.heat_capacity()
|
||||
var/heat_scale = min(air.temperature/STIMULUM_HEAT_SCALE, cached_gases[/datum/gas/tritium][MOLES], cached_gases[/datum/gas/plasma][MOLES], cached_gases[/datum/gas/nitryl][MOLES])
|
||||
var/stim_energy_change = heat_scale + STIMULUM_FIRST_RISE * (heat_scale ** 2) - STIMULUM_FIRST_DROP * (heat_scale ** 3) + STIMULUM_SECOND_RISE * (heat_scale ** 4) - STIMULUM_ABSOLUTE_DROP * (heat_scale ** 5)
|
||||
ASSERT_GAS(/datum/gas/stimulum, air)
|
||||
if ((cached_gases[/datum/gas/tritium][MOLES] - heat_scale < 0 ) || (cached_gases[/datum/gas/nitryl][MOLES] - heat_scale < 0)) //Shouldn't produce gas from nothing.
|
||||
return NO_REACTION
|
||||
cached_gases[/datum/gas/tritium][MOLES] -= heat_scale
|
||||
cached_gases[/datum/gas/nitryl][MOLES] -= heat_scale
|
||||
cached_gases[/datum/gas/stimulum][MOLES] += heat_scale * 0.75
|
||||
|
||||
if(stim_energy_change)
|
||||
var/new_heat_capacity = air.heat_capacity()
|
||||
if(new_heat_capacity > MINIMUM_HEAT_CAPACITY)
|
||||
air.temperature = max(((air.temperature * old_heat_capacity + stim_energy_change) / new_heat_capacity), TCMB)
|
||||
return REACTING
|
||||
|
||||
/datum/gas_reaction/nobliumformation //Hyper-Noblium formation is extrememly endothermic, but requires high temperatures to start. Due to its high mass, hyper-nobelium uses large amounts of nitrogen and tritium. BZ can be used as a catalyst to make it less endothermic.
|
||||
priority_group = PRIORITY_FORMATION
|
||||
name = "Hyper-Noblium condensation"
|
||||
@@ -739,7 +706,7 @@
|
||||
/datum/gas_reaction/zauker_formation/init_reqs()
|
||||
requirements = list(
|
||||
/datum/gas/hypernoblium = MINIMUM_MOLE_COUNT,
|
||||
/datum/gas/stimulum = MINIMUM_MOLE_COUNT,
|
||||
/datum/gas/nitrium = MINIMUM_MOLE_COUNT,
|
||||
"MIN_TEMP" = 50000,
|
||||
"MAX_TEMP" = 75000
|
||||
)
|
||||
@@ -748,13 +715,13 @@
|
||||
var/list/cached_gases = air.gases
|
||||
var/temperature = air.temperature
|
||||
var/old_heat_capacity = air.heat_capacity()
|
||||
var/heat_efficency = min(temperature * 0.000005, cached_gases[/datum/gas/hypernoblium][MOLES] * INVERSE(0.01), cached_gases[/datum/gas/stimulum][MOLES] * INVERSE(0.5))
|
||||
var/heat_efficency = min(temperature * 0.000005, cached_gases[/datum/gas/hypernoblium][MOLES] * INVERSE(0.01), cached_gases[/datum/gas/nitrium][MOLES] * INVERSE(0.5))
|
||||
var/energy_used = heat_efficency * 5000
|
||||
ASSERT_GAS(/datum/gas/zauker, air)
|
||||
if ((cached_gases[/datum/gas/hypernoblium][MOLES] - heat_efficency * 0.01 < 0 ) || (cached_gases[/datum/gas/stimulum][MOLES] - heat_efficency * 0.5 < 0)) //Shouldn't produce gas from nothing.
|
||||
if ((cached_gases[/datum/gas/hypernoblium][MOLES] - heat_efficency * 0.01 < 0 ) || (cached_gases[/datum/gas/nitrium][MOLES] - heat_efficency * 0.5 < 0)) //Shouldn't produce gas from nothing.
|
||||
return NO_REACTION
|
||||
cached_gases[/datum/gas/hypernoblium][MOLES] -= heat_efficency * 0.01
|
||||
cached_gases[/datum/gas/stimulum][MOLES] -= heat_efficency * 0.5
|
||||
cached_gases[/datum/gas/nitrium][MOLES] -= heat_efficency * 0.5
|
||||
cached_gases[/datum/gas/zauker][MOLES] += heat_efficency * 0.5
|
||||
|
||||
if(energy_used)
|
||||
|
||||
@@ -107,8 +107,7 @@
|
||||
/datum/gas/hypernoblium = new/datum/tlv(-1, -1, 1000, 1000), // Hyper-Noblium is inert and nontoxic
|
||||
/datum/gas/water_vapor = new/datum/tlv/dangerous,
|
||||
/datum/gas/tritium = new/datum/tlv/dangerous,
|
||||
/datum/gas/stimulum = new/datum/tlv/dangerous,
|
||||
/datum/gas/nitryl = new/datum/tlv/dangerous,
|
||||
/datum/gas/nitrium = new/datum/tlv/dangerous,
|
||||
/datum/gas/pluoxium = new/datum/tlv(-1, -1, 1000, 1000), // Unlike oxygen, pluoxium does not fuel plasma/tritium fires
|
||||
/datum/gas/freon = new/datum/tlv/dangerous,
|
||||
/datum/gas/hydrogen = new/datum/tlv/dangerous,
|
||||
@@ -454,10 +453,9 @@
|
||||
/datum/gas/water_vapor,
|
||||
/datum/gas/hypernoblium,
|
||||
/datum/gas/nitrous_oxide,
|
||||
/datum/gas/nitryl,
|
||||
/datum/gas/nitrium,
|
||||
/datum/gas/tritium,
|
||||
/datum/gas/bz,
|
||||
/datum/gas/stimulum,
|
||||
/datum/gas/pluoxium,
|
||||
/datum/gas/freon,
|
||||
/datum/gas/hydrogen,
|
||||
@@ -817,8 +815,7 @@
|
||||
/datum/gas/hypernoblium = new/datum/tlv/no_checks,
|
||||
/datum/gas/water_vapor = new/datum/tlv/no_checks,
|
||||
/datum/gas/tritium = new/datum/tlv/no_checks,
|
||||
/datum/gas/stimulum = new/datum/tlv/no_checks,
|
||||
/datum/gas/nitryl = new/datum/tlv/no_checks,
|
||||
/datum/gas/nitrium = new/datum/tlv/no_checks,
|
||||
/datum/gas/pluoxium = new/datum/tlv/no_checks,
|
||||
/datum/gas/freon = new/datum/tlv/no_checks,
|
||||
/datum/gas/hydrogen = new/datum/tlv/no_checks,
|
||||
@@ -844,8 +841,7 @@
|
||||
/datum/gas/hypernoblium = new/datum/tlv(-1, -1, 1000, 1000), // Hyper-Noblium is inert and nontoxic
|
||||
/datum/gas/water_vapor = new/datum/tlv/dangerous,
|
||||
/datum/gas/tritium = new/datum/tlv/dangerous,
|
||||
/datum/gas/stimulum = new/datum/tlv/dangerous,
|
||||
/datum/gas/nitryl = new/datum/tlv/dangerous,
|
||||
/datum/gas/nitrium = new/datum/tlv/dangerous,
|
||||
/datum/gas/pluoxium = new/datum/tlv(-1, -1, 1000, 1000), // Unlike oxygen, pluoxium does not fuel plasma/tritium fires
|
||||
/datum/gas/freon = new/datum/tlv/dangerous,
|
||||
/datum/gas/hydrogen = new/datum/tlv/dangerous,
|
||||
|
||||
@@ -136,5 +136,5 @@ GLOBAL_LIST_INIT(hfr_fuels_list, hfr_fuels_create_list())
|
||||
temperature_change_multiplier = 1
|
||||
requirements = list(/datum/gas/hypernoblium, /datum/gas/antinoblium)
|
||||
primary_products = list(/datum/gas/helium)
|
||||
secondary_products = list(/datum/gas/plasma, /datum/gas/oxygen, /datum/gas/nitrogen, /datum/gas/proto_nitrate, /datum/gas/stimulum, /datum/gas/miasma)
|
||||
secondary_products = list(/datum/gas/plasma, /datum/gas/oxygen, /datum/gas/nitrogen, /datum/gas/proto_nitrate, /datum/gas/nitrium, /datum/gas/miasma)
|
||||
meltdown_flags = HYPERTORUS_FLAG_DEVASTATING_EXPLOSION | HYPERTORUS_FLAG_RADIATION_PULSE | HYPERTORUS_FLAG_EMP | HYPERTORUS_FLAG_MASSIVE_SPREAD | HYPERTORUS_FLAG_CRITICAL_MELTDOWN
|
||||
|
||||
@@ -129,13 +129,13 @@
|
||||
// Gases that decrease the amount of energy
|
||||
energy_modifiers -= scaled_moderator_list[/datum/gas/hypernoblium] * 10 + \
|
||||
scaled_moderator_list[/datum/gas/water_vapor] * 0.75 + \
|
||||
scaled_moderator_list[/datum/gas/nitryl] * 0.15 + \
|
||||
scaled_moderator_list[/datum/gas/nitrium] * 0.15 + \
|
||||
scaled_moderator_list[/datum/gas/healium] * 0.45 + \
|
||||
scaled_moderator_list[/datum/gas/freon] * 1.15
|
||||
///Between 0.25 and 100, this value is used to modify the behaviour of the internal energy and the core temperature based on the gases present in the mix
|
||||
var/power_modifier = scaled_moderator_list[/datum/gas/oxygen] * 0.55 + \
|
||||
scaled_moderator_list[/datum/gas/carbon_dioxide] * 0.95 + \
|
||||
scaled_moderator_list[/datum/gas/nitryl] * 1.45 + \
|
||||
scaled_moderator_list[/datum/gas/nitrium] * 1.45 + \
|
||||
scaled_moderator_list[/datum/gas/zauker] * 5.55 + \
|
||||
scaled_moderator_list[/datum/gas/plasma] * 0.05 - \
|
||||
scaled_moderator_list[/datum/gas/nitrous_oxide] * 0.05 - \
|
||||
@@ -301,21 +301,21 @@
|
||||
if(moderator_list[/datum/gas/proto_nitrate] > 20)
|
||||
radiation *= 1.55
|
||||
heat_output *= 1.025
|
||||
internal_output.assert_gases(/datum/gas/stimulum)
|
||||
internal_output.gases[/datum/gas/stimulum][MOLES] += scaled_production * 1.05
|
||||
internal_output.assert_gases(/datum/gas/nitrium)
|
||||
internal_output.gases[/datum/gas/nitrium][MOLES] += scaled_production * 1.05
|
||||
moderator_internal.gases[/datum/gas/proto_nitrate][MOLES] -= min(moderator_internal.gases[/datum/gas/proto_nitrate][MOLES], scaled_production * 1.35)
|
||||
if(3, 4)
|
||||
if(moderator_list[/datum/gas/plasma] > 10)
|
||||
internal_output.assert_gases(/datum/gas/freon, /datum/gas/stimulum)
|
||||
internal_output.assert_gases(/datum/gas/freon, /datum/gas/nitrium)
|
||||
internal_output.gases[/datum/gas/freon][MOLES] += scaled_production * 0.15
|
||||
internal_output.gases[/datum/gas/stimulum][MOLES] += scaled_production * 1.05
|
||||
internal_output.gases[/datum/gas/nitrium][MOLES] += scaled_production * 1.05
|
||||
moderator_internal.gases[/datum/gas/plasma][MOLES] -= min(moderator_internal.gases[/datum/gas/plasma][MOLES], scaled_production * 0.45)
|
||||
if(moderator_list[/datum/gas/freon] > 50)
|
||||
heat_output *= 0.9
|
||||
radiation *= 0.8
|
||||
if(moderator_list[/datum/gas/proto_nitrate]> 15)
|
||||
internal_output.assert_gases(/datum/gas/stimulum, /datum/gas/halon)
|
||||
internal_output.gases[/datum/gas/stimulum][MOLES] += scaled_production * 1.25
|
||||
internal_output.assert_gases(/datum/gas/nitrium, /datum/gas/halon)
|
||||
internal_output.gases[/datum/gas/nitrium][MOLES] += scaled_production * 1.25
|
||||
internal_output.gases[/datum/gas/halon][MOLES] += scaled_production * 1.15
|
||||
moderator_internal.gases[/datum/gas/proto_nitrate][MOLES] -= min(moderator_internal.gases[/datum/gas/proto_nitrate][MOLES], scaled_production * 1.55)
|
||||
radiation *= 1.95
|
||||
@@ -334,8 +334,8 @@
|
||||
heat_output *= 0.5
|
||||
radiation *= 0.2
|
||||
if(moderator_list[/datum/gas/proto_nitrate] > 50)
|
||||
internal_output.assert_gases(/datum/gas/stimulum, /datum/gas/pluoxium)
|
||||
internal_output.gases[/datum/gas/stimulum][MOLES] += scaled_production * 1.95
|
||||
internal_output.assert_gases(/datum/gas/nitrium, /datum/gas/pluoxium)
|
||||
internal_output.gases[/datum/gas/nitrium][MOLES] += scaled_production * 1.95
|
||||
internal_output.gases[/datum/gas/pluoxium][MOLES] += scaled_production
|
||||
moderator_internal.gases[/datum/gas/proto_nitrate][MOLES] -= min(moderator_internal.gases[/datum/gas/proto_nitrate][MOLES], scaled_production * 1.35)
|
||||
radiation *= 1.95
|
||||
@@ -357,9 +357,9 @@
|
||||
moderator_internal.gases[/datum/gas/bz][MOLES] += scaled_production * 1.15
|
||||
moderator_internal.gases[/datum/gas/plasma][MOLES] -= min(moderator_internal.gases[/datum/gas/plasma][MOLES], scaled_production * 1.45)
|
||||
if(moderator_list[/datum/gas/proto_nitrate])
|
||||
internal_output.assert_gases(/datum/gas/zauker, /datum/gas/stimulum)
|
||||
internal_output.assert_gases(/datum/gas/zauker, /datum/gas/nitrium)
|
||||
internal_output.gases[/datum/gas/zauker][MOLES] += scaled_production * 5.35
|
||||
internal_output.gases[/datum/gas/stimulum][MOLES] += scaled_production * 2.15
|
||||
internal_output.gases[/datum/gas/nitrium][MOLES] += scaled_production * 2.15
|
||||
moderator_internal.gases[/datum/gas/proto_nitrate][MOLES] -= min(moderator_internal.gases[/datum/gas/proto_nitrate][MOLES], scaled_production * 3.35)
|
||||
radiation *= 2
|
||||
heat_output *= 2.25
|
||||
|
||||
+11
-1
@@ -180,7 +180,7 @@ GLOBAL_LIST_INIT(gas_recipe_meta, gas_recipes_list())
|
||||
name = "exotic fuel pellet"
|
||||
reaction_type = ENDOTHERMIC_REACTION
|
||||
energy_release = 6000000
|
||||
requirements = list(/datum/gas/hypernoblium = 100, /datum/gas/stimulum = 100)
|
||||
requirements = list(/datum/gas/hypernoblium = 100, /datum/gas/nitrium = 100)
|
||||
products = list(/obj/item/fuel_pellet/exotic = 1)
|
||||
|
||||
/datum/gas_recipe/crystallizer/crystal_foam
|
||||
@@ -190,3 +190,13 @@ GLOBAL_LIST_INIT(gas_recipe_meta, gas_recipes_list())
|
||||
energy_release = 140000
|
||||
requirements = list(/datum/gas/carbon_dioxide = 150, /datum/gas/nitrous_oxide = 100, /datum/gas/water_vapor = 25)
|
||||
products = list(/obj/item/grenade/gas_crystal/crystal_foam = 1)
|
||||
|
||||
/datum/gas_recipe/crystallizer/crystallized_nitrium
|
||||
id = "crystallized_nitrium"
|
||||
name = "Nitrium crystal"
|
||||
min_temp = 10
|
||||
max_temp = 25
|
||||
reaction_type = ENDOTHERMIC_REACTION
|
||||
energy_release = 45000
|
||||
requirements = list(/datum/gas/nitrium = 150, /datum/gas/oxygen = 70, /datum/gas/bz = 50)
|
||||
products = list(/obj/item/nitrium_crystal = 1)
|
||||
|
||||
@@ -404,8 +404,8 @@
|
||||
/obj/machinery/atmospherics/components/tank/miasma
|
||||
gas_type = /datum/gas/miasma
|
||||
|
||||
/obj/machinery/atmospherics/components/tank/nitryl
|
||||
gas_type = /datum/gas/nitryl
|
||||
/obj/machinery/atmospherics/components/tank/nitrium
|
||||
gas_type = /datum/gas/nitrium
|
||||
|
||||
/obj/machinery/atmospherics/components/tank/pluoxium
|
||||
gas_type = /datum/gas/pluoxium
|
||||
@@ -413,9 +413,6 @@
|
||||
/obj/machinery/atmospherics/components/tank/proto_nitrate
|
||||
gas_type = /datum/gas/proto_nitrate
|
||||
|
||||
/obj/machinery/atmospherics/components/tank/stimulum
|
||||
gas_type = /datum/gas/stimulum
|
||||
|
||||
/obj/machinery/atmospherics/components/tank/tritium
|
||||
gas_type = /datum/gas/tritium
|
||||
|
||||
|
||||
@@ -267,17 +267,14 @@
|
||||
name = "miasma filter"
|
||||
filter_type = list(/datum/gas/miasma)
|
||||
/obj/machinery/atmospherics/components/trinary/filter/atmos/no2
|
||||
name = "nitryl filter"
|
||||
filter_type = list(/datum/gas/nitryl)
|
||||
name = "nitrium filter"
|
||||
filter_type = list(/datum/gas/nitrium)
|
||||
/obj/machinery/atmospherics/components/trinary/filter/atmos/pluoxium
|
||||
name = "pluoxium filter"
|
||||
filter_type = list(/datum/gas/pluoxium)
|
||||
/obj/machinery/atmospherics/components/trinary/filter/atmos/proto_nitrate
|
||||
name = "proto-nitrate filter"
|
||||
filter_type = list(/datum/gas/proto_nitrate)
|
||||
/obj/machinery/atmospherics/components/trinary/filter/atmos/stimulum
|
||||
name = "stimulum filter"
|
||||
filter_type = list(/datum/gas/stimulum)
|
||||
/obj/machinery/atmospherics/components/trinary/filter/atmos/tritium
|
||||
name = "tritium filter"
|
||||
filter_type = list(/datum/gas/tritium)
|
||||
@@ -336,17 +333,14 @@
|
||||
name = "miasma filter"
|
||||
filter_type = list(/datum/gas/miasma)
|
||||
/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/no2
|
||||
name = "nitryl filter"
|
||||
filter_type = list(/datum/gas/nitryl)
|
||||
name = "nitrium filter"
|
||||
filter_type = list(/datum/gas/nitrium)
|
||||
/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/pluoxium
|
||||
name = "pluoxium filter"
|
||||
filter_type = list(/datum/gas/pluoxium)
|
||||
/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/proto_nitrate
|
||||
name = "proto-nitrate filter"
|
||||
filter_type = list(/datum/gas/proto_nitrate)
|
||||
/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/stimulum
|
||||
name = "stimulum filter"
|
||||
filter_type = list(/datum/gas/stimulum)
|
||||
/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/tritium
|
||||
name = "tritium filter"
|
||||
filter_type = list(/datum/gas/tritium)
|
||||
|
||||
@@ -263,18 +263,15 @@
|
||||
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/miasma_input
|
||||
name = "miasma tank input injector"
|
||||
id = ATMOS_GAS_MONITOR_INPUT_MIASMA
|
||||
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitryl_input
|
||||
name = "nitryl tank input injector"
|
||||
id = ATMOS_GAS_MONITOR_INPUT_NO2
|
||||
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrium_input
|
||||
name = "nitrium tank input injector"
|
||||
id = ATMOS_GAS_MONITOR_INPUT_NITRIUM
|
||||
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/pluoxium_input
|
||||
name = "pluoxium tank input injector"
|
||||
id = ATMOS_GAS_MONITOR_INPUT_PLUOXIUM
|
||||
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/proto_nitrate_input
|
||||
name = "proto-nitrate tank input injector"
|
||||
id = ATMOS_GAS_MONITOR_INPUT_PROTO_NITRATE
|
||||
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/stimulum_input
|
||||
name = "stimulum tank input injector"
|
||||
id = ATMOS_GAS_MONITOR_INPUT_STIMULUM
|
||||
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/tritium_input
|
||||
name = "tritium tank input injector"
|
||||
id = ATMOS_GAS_MONITOR_INPUT_TRITIUM
|
||||
|
||||
@@ -411,18 +411,15 @@
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/miasma_output
|
||||
name = "miasma tank output inlet"
|
||||
id_tag = ATMOS_GAS_MONITOR_OUTPUT_MIASMA
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitryl_output
|
||||
name = "nitryl tank output inlet"
|
||||
id_tag = ATMOS_GAS_MONITOR_OUTPUT_NO2
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrium_output
|
||||
name = "nitrium tank output inlet"
|
||||
id_tag = ATMOS_GAS_MONITOR_OUTPUT_NITRIUM
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/pluoxium_output
|
||||
name = "pluoxium tank output inlet"
|
||||
id_tag = ATMOS_GAS_MONITOR_OUTPUT_PLUOXIUM
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/proto_nitrate_output
|
||||
name = "proto-nitrate tank output inlet"
|
||||
id_tag = ATMOS_GAS_MONITOR_OUTPUT_PROTO_NITRATE
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/stimulum_output
|
||||
name = "stimulum tank output inlet"
|
||||
id_tag = ATMOS_GAS_MONITOR_OUTPUT_STIMULUM
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/tritium_output
|
||||
name = "tritium tank output inlet"
|
||||
id_tag = ATMOS_GAS_MONITOR_OUTPUT_TRITIUM
|
||||
|
||||
@@ -209,10 +209,10 @@
|
||||
overlay_color = "#395806"
|
||||
spawn_id = /datum/gas/miasma
|
||||
|
||||
/obj/machinery/atmospherics/miner/nitryl
|
||||
name = "\improper Nitryl Gas Miner"
|
||||
/obj/machinery/atmospherics/miner/nitrium
|
||||
name = "\improper Nitrium Gas Miner"
|
||||
overlay_color = "#752b00"
|
||||
spawn_id = /datum/gas/nitryl
|
||||
spawn_id = /datum/gas/nitrium
|
||||
|
||||
/obj/machinery/atmospherics/miner/pluoxium
|
||||
name = "\improper Pluoxium Gas Miner"
|
||||
@@ -224,11 +224,6 @@
|
||||
overlay_color = "#00571d"
|
||||
spawn_id = /datum/gas/proto_nitrate
|
||||
|
||||
/obj/machinery/atmospherics/miner/stimulum
|
||||
name = "\improper Stimulum Gas Miner"
|
||||
overlay_color = "#d577dd"
|
||||
spawn_id = /datum/gas/stimulum
|
||||
|
||||
/obj/machinery/atmospherics/miner/tritium
|
||||
name = "\improper Tritium Gas Miner"
|
||||
overlay_color = "#15ff00"
|
||||
|
||||
@@ -15,13 +15,12 @@ GLOBAL_LIST_INIT(gas_id_to_canister, init_gas_id_to_canister())
|
||||
"co2" = /obj/machinery/portable_atmospherics/canister/carbon_dioxide,
|
||||
"plasma" = /obj/machinery/portable_atmospherics/canister/plasma,
|
||||
"n2o" = /obj/machinery/portable_atmospherics/canister/nitrous_oxide,
|
||||
"no2" = /obj/machinery/portable_atmospherics/canister/nitryl,
|
||||
"nitrium" = /obj/machinery/portable_atmospherics/canister/nitrium,
|
||||
"bz" = /obj/machinery/portable_atmospherics/canister/bz,
|
||||
"air" = /obj/machinery/portable_atmospherics/canister/air,
|
||||
"water_vapor" = /obj/machinery/portable_atmospherics/canister/water_vapor,
|
||||
"tritium" = /obj/machinery/portable_atmospherics/canister/tritium,
|
||||
"hyper-noblium" = /obj/machinery/portable_atmospherics/canister/nob,
|
||||
"stimulum" = /obj/machinery/portable_atmospherics/canister/stimulum,
|
||||
"pluoxium" = /obj/machinery/portable_atmospherics/canister/pluoxium,
|
||||
"caution" = /obj/machinery/portable_atmospherics/canister,
|
||||
"miasma" = /obj/machinery/portable_atmospherics/canister/miasma,
|
||||
@@ -216,10 +215,10 @@ GLOBAL_LIST_INIT(gas_id_to_canister, init_gas_id_to_canister())
|
||||
greyscale_config = /datum/greyscale_config/canister/double_stripe
|
||||
greyscale_colors = "#c63e3b#f7d5d3"
|
||||
|
||||
/obj/machinery/portable_atmospherics/canister/nitryl
|
||||
name = "Nitryl canister"
|
||||
desc = "Nitryl gas. Feels great 'til the acid eats your lungs."
|
||||
gas_type = /datum/gas/nitryl
|
||||
/obj/machinery/portable_atmospherics/canister/nitrium
|
||||
name = "Nitrium canister"
|
||||
desc = "Nitrium gas. Feels great 'til the acid eats your lungs."
|
||||
gas_type = /datum/gas/nitrium
|
||||
greyscale_config = /datum/greyscale_config/canister
|
||||
greyscale_colors = "#7b4732"
|
||||
|
||||
@@ -252,13 +251,6 @@ GLOBAL_LIST_INIT(gas_id_to_canister, init_gas_id_to_canister())
|
||||
greyscale_config = /datum/greyscale_config/canister/double_stripe
|
||||
greyscale_colors = "#008200#33cc33"
|
||||
|
||||
/obj/machinery/portable_atmospherics/canister/stimulum
|
||||
name = "Stimulum canister"
|
||||
desc = "Stimulum. High energy gas, high energy people."
|
||||
gas_type = /datum/gas/stimulum
|
||||
greyscale_config = /datum/greyscale_config/canister
|
||||
greyscale_colors = "#9b5d7f"
|
||||
|
||||
/obj/machinery/portable_atmospherics/canister/plasma
|
||||
name = "Plasma canister"
|
||||
desc = "Plasma gas. The reason YOU are here. Highly toxic."
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
/datum/gas/carbon_dioxide,
|
||||
/datum/gas/nitrous_oxide,
|
||||
/datum/gas/bz,
|
||||
/datum/gas/nitryl,
|
||||
/datum/gas/nitrium,
|
||||
/datum/gas/tritium,
|
||||
/datum/gas/hypernoblium,
|
||||
/datum/gas/water_vapor,
|
||||
|
||||
@@ -15,10 +15,10 @@
|
||||
return FALSE
|
||||
return our_mix.gases[gas_type][MOLES] >= moles_required
|
||||
|
||||
/datum/bounty/item/engineering/gas/nitryl_tank
|
||||
name = "Full Tank of Nitryl"
|
||||
description = "The non-human staff of Station 88 has been volunteered to test performance enhancing drugs. Ship them a tank full of Nitryl so they can get started. (20 Moles)"
|
||||
gas_type = /datum/gas/nitryl
|
||||
/datum/bounty/item/engineering/gas/nitrium_tank
|
||||
name = "Full Tank of Nitrium"
|
||||
description = "The non-human staff of Station 88 has been volunteered to test performance enhancing drugs. Ship them a tank full of Nitrium so they can get started. (20 Moles)"
|
||||
gas_type = /datum/gas/nitrium
|
||||
|
||||
/datum/bounty/item/engineering/gas/freon_tank
|
||||
name = "Full Tank of Freon"
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
var/canister_gas = canister_mix.gases
|
||||
var/list/gases_to_check = list(
|
||||
/datum/gas/bz,
|
||||
/datum/gas/stimulum,
|
||||
/datum/gas/nitrium,
|
||||
/datum/gas/hypernoblium,
|
||||
/datum/gas/miasma,
|
||||
/datum/gas/tritium,
|
||||
|
||||
@@ -35,8 +35,7 @@
|
||||
)
|
||||
///List of gases with medium filter priority
|
||||
var/list/mid_filtering_gases = list(
|
||||
/datum/gas/nitryl,
|
||||
/datum/gas/stimulum,
|
||||
/datum/gas/nitrium,
|
||||
/datum/gas/freon,
|
||||
/datum/gas/hypernoblium,
|
||||
/datum/gas/bz
|
||||
|
||||
@@ -246,10 +246,13 @@
|
||||
else if(bz_partialpressure > 0.01)
|
||||
hallucination += 5
|
||||
|
||||
//NITRYL
|
||||
if(breath_gases[/datum/gas/nitryl])
|
||||
var/nitryl_partialpressure = (breath_gases[/datum/gas/nitryl][MOLES]/breath.total_moles())*breath_pressure
|
||||
adjustFireLoss(nitryl_partialpressure/4)
|
||||
//NITRIUM
|
||||
if(breath_gases[/datum/gas/nitrium])
|
||||
var/nitrium_partialpressure = (breath_gases[/datum/gas/nitrium][MOLES]/breath.total_moles())*breath_pressure
|
||||
if(nitrium_partialpressure > 0.5)
|
||||
adjustFireLoss(nitrium_partialpressure * 0.15)
|
||||
if(nitrium_partialpressure > 5)
|
||||
adjustToxLoss(nitrium_partialpressure * 0.05)
|
||||
|
||||
//FREON
|
||||
if(breath_gases[/datum/gas/freon])
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
/datum/movespeed_modifier/reagent/methamphetamine
|
||||
multiplicative_slowdown = -0.65
|
||||
|
||||
/datum/movespeed_modifier/reagent/nitryl
|
||||
/datum/movespeed_modifier/reagent/nitrium
|
||||
multiplicative_slowdown = -0.65
|
||||
|
||||
/datum/movespeed_modifier/reagent/cannabis
|
||||
|
||||
@@ -1388,55 +1388,55 @@
|
||||
M.set_confusion(min(M.get_confusion() + 2, 5))
|
||||
..()
|
||||
|
||||
/datum/reagent/stimulum
|
||||
name = "Stimulum"
|
||||
description = "An unstable experimental gas that greatly increases the energy of those that inhale it, while dealing increasing toxin damage over time."
|
||||
/datum/reagent/nitrium_high_metabolization
|
||||
name = "Nitrosyl plasmide"
|
||||
description = "A highly reactive byproduct that stops you from sleeping, while dealing increasing toxin damage over time."
|
||||
reagent_state = GAS
|
||||
metabolization_rate = REAGENTS_METABOLISM * 0.5 // Because stimulum/nitryl/freon/hypernoblium are handled through gas breathing, metabolism must be lower for breathcode to keep up
|
||||
metabolization_rate = REAGENTS_METABOLISM * 0.5 // Because nitrium/freon/hypernoblium are handled through gas breathing, metabolism must be lower for breathcode to keep up
|
||||
color = "E1A116"
|
||||
taste_description = "sourness"
|
||||
ph = 1.8
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_NO_RANDOM_RECIPE
|
||||
addiction_types = list(/datum/addiction/stimulants = 14)
|
||||
|
||||
/datum/reagent/stimulum/on_mob_metabolize(mob/living/L)
|
||||
..()
|
||||
/datum/reagent/nitrium_high_metabolization/on_mob_metabolize(mob/living/L)
|
||||
. = ..()
|
||||
ADD_TRAIT(L, TRAIT_STUNIMMUNE, type)
|
||||
ADD_TRAIT(L, TRAIT_SLEEPIMMUNE, type)
|
||||
|
||||
/datum/reagent/stimulum/on_mob_end_metabolize(mob/living/L)
|
||||
/datum/reagent/nitrium_high_metabolization/on_mob_end_metabolize(mob/living/L)
|
||||
REMOVE_TRAIT(L, TRAIT_STUNIMMUNE, type)
|
||||
REMOVE_TRAIT(L, TRAIT_SLEEPIMMUNE, type)
|
||||
..()
|
||||
return ..()
|
||||
|
||||
/datum/reagent/stimulum/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
/datum/reagent/nitrium_high_metabolization/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
|
||||
M.adjustStaminaLoss(-2 * REM * delta_time, 0)
|
||||
M.adjustToxLoss(0.1 * current_cycle * REM * delta_time, 0) // 1 toxin damage per cycle at cycle 10
|
||||
..()
|
||||
return ..()
|
||||
|
||||
/datum/reagent/nitryl
|
||||
name = "Nitryl"
|
||||
/datum/reagent/nitrium_low_metabolization
|
||||
name = "Nitrium"
|
||||
description = "A highly reactive gas that makes you feel faster."
|
||||
reagent_state = GAS
|
||||
metabolization_rate = REAGENTS_METABOLISM * 0.5 // Because stimulum/nitryl/freon/hypernoblium are handled through gas breathing, metabolism must be lower for breathcode to keep up
|
||||
metabolization_rate = REAGENTS_METABOLISM * 0.5 // Because nitrium/freon/hypernoblium are handled through gas breathing, metabolism must be lower for breathcode to keep up
|
||||
color = "90560B"
|
||||
taste_description = "burning"
|
||||
ph = 2
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_NO_RANDOM_RECIPE
|
||||
|
||||
/datum/reagent/nitryl/on_mob_metabolize(mob/living/L)
|
||||
..()
|
||||
L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/nitryl)
|
||||
/datum/reagent/nitrium_low_metabolization/on_mob_metabolize(mob/living/L)
|
||||
. = ..()
|
||||
L.add_movespeed_modifier(/datum/movespeed_modifier/reagent/nitrium)
|
||||
|
||||
/datum/reagent/nitryl/on_mob_end_metabolize(mob/living/L)
|
||||
L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/nitryl)
|
||||
..()
|
||||
/datum/reagent/nitrium_low_metabolization/on_mob_end_metabolize(mob/living/L)
|
||||
L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/nitrium)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/freon
|
||||
name = "Freon"
|
||||
description = "A powerful heat absorbent."
|
||||
reagent_state = GAS
|
||||
metabolization_rate = REAGENTS_METABOLISM * 0.5 // Because stimulum/nitryl/freon/hypernoblium are handled through gas breathing, metabolism must be lower for breathcode to keep up
|
||||
metabolization_rate = REAGENTS_METABOLISM * 0.5 // Because nitrium/freon/hypernoblium are handled through gas breathing, metabolism must be lower for breathcode to keep up
|
||||
color = "90560B"
|
||||
taste_description = "burning"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_NO_RANDOM_RECIPE
|
||||
@@ -1453,7 +1453,7 @@
|
||||
name = "Hyper-Noblium"
|
||||
description = "A suppressive gas that stops gas reactions on those who inhale it."
|
||||
reagent_state = GAS
|
||||
metabolization_rate = REAGENTS_METABOLISM * 0.5 // Because stimulum/nitryl/freon/hyper-nob are handled through gas breathing, metabolism must be lower for breathcode to keep up
|
||||
metabolization_rate = REAGENTS_METABOLISM * 0.5 // Because nitrium/freon/hyper-nob are handled through gas breathing, metabolism must be lower for breathcode to keep up
|
||||
color = "90560B"
|
||||
taste_description = "searingly cold"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_NO_RANDOM_RECIPE
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
var/SA_sleep_min = 5 //Sleeping agent
|
||||
var/BZ_trip_balls_min = 1 //BZ gas
|
||||
var/BZ_brain_damage_min = 10 //Give people some room to play around without killing the station
|
||||
var/gas_stimulation_min = 0.002 //Nitryl, Stimulum and Freon
|
||||
var/gas_stimulation_min = 0.002 //nitrium and Freon
|
||||
///Minimum amount of healium to make you unconscious for 4 seconds
|
||||
var/healium_para_min = 3
|
||||
///Minimum amount of healium to knock you down for good
|
||||
@@ -303,18 +303,20 @@
|
||||
|
||||
breath_gases[/datum/gas/tritium][MOLES] -= gas_breathed
|
||||
|
||||
// Nitryl
|
||||
var/nitryl_pp = breath.get_breath_partial_pressure(breath_gases[/datum/gas/nitryl][MOLES])
|
||||
if (prob(nitryl_pp))
|
||||
breather.emote("burp")
|
||||
if (prob(nitryl_pp) && nitryl_pp>10)
|
||||
breather.adjustOrganLoss(ORGAN_SLOT_LUNGS, nitryl_pp/2)
|
||||
to_chat(breather, span_notice("You feel a burning sensation in your chest"))
|
||||
gas_breathed = breath_gases[/datum/gas/nitryl][MOLES]
|
||||
if (gas_breathed > gas_stimulation_min)
|
||||
breather.reagents.add_reagent(/datum/reagent/nitryl,1)
|
||||
// Nitrium
|
||||
var/nitrium_pp = breath.get_breath_partial_pressure(breath_gases[/datum/gas/nitrium][MOLES])
|
||||
if (prob(nitrium_pp) && nitrium_pp > 15)
|
||||
breather.adjustOrganLoss(ORGAN_SLOT_LUNGS, nitrium_pp * 0.1)
|
||||
to_chat(breather, "<span class='notice'>You feel a burning sensation in your chest</span>")
|
||||
gas_breathed = breath_gases[/datum/gas/nitrium][MOLES]
|
||||
if (nitrium_pp > 5)
|
||||
var/existing = breather.reagents.get_reagent_amount(/datum/reagent/nitrium_low_metabolization)
|
||||
breather.reagents.add_reagent(/datum/reagent/nitrium_low_metabolization, max(0, 2 - existing))
|
||||
if (nitrium_pp > 10)
|
||||
var/existing = breather.reagents.get_reagent_amount(/datum/reagent/nitrium_high_metabolization)
|
||||
breather.reagents.add_reagent(/datum/reagent/nitrium_high_metabolization, max(0, 1 - existing))
|
||||
|
||||
breath_gases[/datum/gas/nitryl][MOLES]-=gas_breathed
|
||||
breath_gases[/datum/gas/nitrium][MOLES] -= gas_breathed
|
||||
|
||||
// Freon
|
||||
var/freon_pp = breath.get_breath_partial_pressure(breath_gases[/datum/gas/freon][MOLES])
|
||||
@@ -373,13 +375,6 @@
|
||||
gas_breathed = breath_gases[/datum/gas/halon][MOLES]
|
||||
breath_gases[/datum/gas/halon][MOLES]-=gas_breathed
|
||||
|
||||
// Stimulum
|
||||
gas_breathed = breath_gases[/datum/gas/stimulum][MOLES]
|
||||
if (gas_breathed > gas_stimulation_min)
|
||||
var/existing = breather.reagents.get_reagent_amount(/datum/reagent/stimulum)
|
||||
breather.reagents.add_reagent(/datum/reagent/stimulum,max(0, 1 - existing))
|
||||
breath_gases[/datum/gas/stimulum][MOLES]-=gas_breathed
|
||||
|
||||
// Hyper-Nob
|
||||
gas_breathed = breath_gases[/datum/gas/hypernoblium][MOLES]
|
||||
if (gas_breathed > gas_stimulation_min)
|
||||
|
||||
Reference in New Issue
Block a user