diff --git a/code/__DEFINES/atmospherics/atmos_mapping_helpers.dm b/code/__DEFINES/atmospherics/atmos_mapping_helpers.dm index 5f3c14e9220..75ad188d8de 100644 --- a/code/__DEFINES/atmospherics/atmos_mapping_helpers.dm +++ b/code/__DEFINES/atmospherics/atmos_mapping_helpers.dm @@ -26,10 +26,9 @@ #define ATMOS_TANK_H2 "hydrogen=100000;TEMP=293.15" #define ATMOS_TANK_HYPERNOBLIUM "nob=100000;TEMP=293.15" #define ATMOS_TANK_MIASMA "miasma=100000;TEMP=293.15" -#define ATMOS_TANK_NO2 "no2=100000;TEMP=293.15" +#define ATMOS_TANK_NITRIUM "nitrium=100000;TEMP=293.15" #define ATMOS_TANK_PLUOXIUM "pluox=100000;TEMP=293.15" #define ATMOS_TANK_PROTO_NITRATE "proto_nitrate=100000;TEMP=293.15" -#define ATMOS_TANK_STIMULUM "stim=100000;TEMP=293.15" #define ATMOS_TANK_TRITIUM "tritium=100000;TEMP=293.15" #define ATMOS_TANK_H2O "water_vapor=100000;TEMP=293.15" #define ATMOS_TANK_ZAUKER "zauker=100000;TEMP=293.15" @@ -102,9 +101,9 @@ #define ATMOS_GAS_MONITOR_OUTPUT_MIASMA "miasma_out" #define ATMOS_GAS_MONITOR_SENSOR_MIASMA "miasma_sensor" -#define ATMOS_GAS_MONITOR_INPUT_NO2 "no2_in" -#define ATMOS_GAS_MONITOR_OUTPUT_NO2 "no2_out" -#define ATMOS_GAS_MONITOR_SENSOR_NO2 "no2_sensor" +#define ATMOS_GAS_MONITOR_INPUT_NITRIUM "nitrium_in" +#define ATMOS_GAS_MONITOR_OUTPUT_NITRIUM "nitrium_out" +#define ATMOS_GAS_MONITOR_SENSOR_NITRIUM "nitrium_sensor" #define ATMOS_GAS_MONITOR_INPUT_PLUOXIUM "pluoxium_in" #define ATMOS_GAS_MONITOR_OUTPUT_PLUOXIUM "pluoxium_out" @@ -114,10 +113,6 @@ #define ATMOS_GAS_MONITOR_OUTPUT_PROTO_NITRATE "proto-nitrate_out" #define ATMOS_GAS_MONITOR_SENSOR_PROTO_NITRATE "proto-nitrate_sensor" -#define ATMOS_GAS_MONITOR_INPUT_STIMULUM "stimulum_in" -#define ATMOS_GAS_MONITOR_OUTPUT_STIMULUM "stimulum_out" -#define ATMOS_GAS_MONITOR_SENSOR_STIMULUM "stimulum_sensor" - #define ATMOS_GAS_MONITOR_INPUT_TRITIUM "tritium_in" #define ATMOS_GAS_MONITOR_OUTPUT_TRITIUM "tritium_out" #define ATMOS_GAS_MONITOR_SENSOR_TRITIUM "tritium_sensor" diff --git a/code/__DEFINES/reactions.dm b/code/__DEFINES/reactions.dm index b1bb4ef5f86..5f067667c80 100644 --- a/code/__DEFINES/reactions.dm +++ b/code/__DEFINES/reactions.dm @@ -19,8 +19,8 @@ #define N2O_DECOMPOSITION_MIN_ENERGY 1400 #define N2O_DECOMPOSITION_ENERGY_RELEASED 200000 -#define NITRYL_DECOMPOSITION_ENERGY 30000 -#define NITRYL_FORMATION_ENERGY 100000 +#define NITRIUM_DECOMPOSITION_ENERGY 30000 +#define NITRIUM_FORMATION_ENERGY 100000 #define NITROUS_FORMATION_ENERGY 10000 //tritium reaction #define TRITIUM_BURN_OXY_FACTOR 100 @@ -39,11 +39,6 @@ #define METAL_HYDROGEN_MINIMUM_PRESSURE 1e7 #define METAL_HYDROGEN_FORMATION_ENERGY 20000000 #define SUPER_SATURATION_THRESHOLD 96 -#define STIMULUM_HEAT_SCALE 100000 -#define STIMULUM_FIRST_RISE 0.65 -#define STIMULUM_FIRST_DROP 0.065 -#define STIMULUM_SECOND_RISE 0.0009 -#define STIMULUM_ABSOLUTE_DROP 0.00000335 #define REACTION_OPPRESSION_THRESHOLD 5 #define NOBLIUM_FORMATION_ENERGY 2e7 #define STIM_BALL_GAS_AMOUNT 5 @@ -52,7 +47,6 @@ #define BZ_RESEARCH_SCALE 4 #define BZ_RESEARCH_MAX_AMOUNT 400 #define METAL_HYDROGEN_RESEARCH_MAX_AMOUNT 3000 -#define STIMULUM_RESEARCH_AMOUNT 50 #define PLUOXIUM_TEMP_CAP 200 diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm index b8628194002..7ab28b03a50 100644 --- a/code/game/machinery/computer/atmos_control.dm +++ b/code/game/machinery/computer/atmos_control.dm @@ -58,18 +58,15 @@ /obj/machinery/air_sensor/atmos/miasma_tank name = "miasma tank gas sensor" id_tag = ATMOS_GAS_MONITOR_SENSOR_MIASMA -/obj/machinery/air_sensor/atmos/nitryl_tank - name = "nitryl tank gas sensor" - id_tag = ATMOS_GAS_MONITOR_SENSOR_NO2 +/obj/machinery/air_sensor/atmos/nitrium_tank + name = "nitrium tank gas sensor" + id_tag = ATMOS_GAS_MONITOR_SENSOR_NITRIUM /obj/machinery/air_sensor/atmos/pluoxium_tank name = "pluoxium tank gas sensor" id_tag = ATMOS_GAS_MONITOR_SENSOR_PLUOXIUM /obj/machinery/air_sensor/atmos/proto_nitrate_tank name = "proto-nitrate tank gas sensor" id_tag = ATMOS_GAS_MONITOR_SENSOR_PROTO_NITRATE -/obj/machinery/air_sensor/atmos/stimulum_tank - name = "stimulum tank gas sensor" - id_tag = ATMOS_GAS_MONITOR_SENSOR_STIMULUM /obj/machinery/air_sensor/atmos/tritium_tank name = "tritium tank gas sensor" id_tag = ATMOS_GAS_MONITOR_SENSOR_TRITIUM @@ -158,10 +155,9 @@ GLOBAL_LIST_EMPTY(atmos_air_controllers) ATMOS_GAS_MONITOR_SENSOR_H2 = "Hydrogen Tank", ATMOS_GAS_MONITOR_SENSOR_HYPERNOBLIUM = "Hypernoblium Tank", ATMOS_GAS_MONITOR_SENSOR_MIASMA = "Miasma Tank", - ATMOS_GAS_MONITOR_SENSOR_NO2 = "Nitryl Tank", + ATMOS_GAS_MONITOR_SENSOR_NITRIUM = "Nitrium Tank", ATMOS_GAS_MONITOR_SENSOR_PLUOXIUM = "Pluoxium Tank", ATMOS_GAS_MONITOR_SENSOR_PROTO_NITRATE = "Proto-Nitrate Tank", - ATMOS_GAS_MONITOR_SENSOR_STIMULUM = "Stimulum Tank", ATMOS_GAS_MONITOR_SENSOR_TRITIUM = "Tritium Tank", ATMOS_GAS_MONITOR_SENSOR_H2O = "Water Vapor Tank", ATMOS_GAS_MONITOR_SENSOR_ZAUKER = "Zauker Tank", @@ -345,12 +341,12 @@ GLOBAL_LIST_EMPTY(atmos_air_controllers) sensors = list(ATMOS_GAS_MONITOR_SENSOR_MIASMA = "Miasma Tank") circuit = /obj/item/circuitboard/computer/atmos_control/tank/miasma_tank -/obj/machinery/computer/atmos_control/tank/nitryl_tank - name = "Nitryl Supply Control" - input_tag = ATMOS_GAS_MONITOR_INPUT_NO2 - output_tag = ATMOS_GAS_MONITOR_OUTPUT_NO2 - sensors = list(ATMOS_GAS_MONITOR_SENSOR_NO2 = "Nitryl Tank") - circuit = /obj/item/circuitboard/computer/atmos_control/tank/nitryl_tank +/obj/machinery/computer/atmos_control/tank/nitrium_tank + name = "Nitrium Supply Control" + input_tag = ATMOS_GAS_MONITOR_INPUT_NITRIUM + output_tag = ATMOS_GAS_MONITOR_OUTPUT_NITRIUM + sensors = list(ATMOS_GAS_MONITOR_SENSOR_NITRIUM = "Nitrium Tank") + circuit = /obj/item/circuitboard/computer/atmos_control/tank/nitrium_tank /obj/machinery/computer/atmos_control/tank/pluoxium_tank name = "Pluoxium Supply Control" @@ -366,13 +362,6 @@ GLOBAL_LIST_EMPTY(atmos_air_controllers) sensors = list(ATMOS_GAS_MONITOR_SENSOR_PROTO_NITRATE = "Proto-Nitrate Tank") circuit = /obj/item/circuitboard/computer/atmos_control/tank/proto_nitrate_tank -/obj/machinery/computer/atmos_control/tank/stimulum_tank - name = "Stimulum Supply Control" - input_tag = ATMOS_GAS_MONITOR_INPUT_STIMULUM - output_tag = ATMOS_GAS_MONITOR_OUTPUT_STIMULUM - sensors = list(ATMOS_GAS_MONITOR_SENSOR_STIMULUM = "Stimulum Tank") - circuit = /obj/item/circuitboard/computer/atmos_control/tank/stimulum_tank - /obj/machinery/computer/atmos_control/tank/tritium_tank name = "Tritium Supply Control" input_tag = ATMOS_GAS_MONITOR_INPUT_TRITIUM diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm index f7fe1424ca5..87131360df6 100644 --- a/code/game/objects/items/circuitboards/computer_circuitboards.dm +++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm @@ -104,9 +104,9 @@ name = "Miasma Supply Control (Computer Board)" build_path = /obj/machinery/computer/atmos_control/tank/miasma_tank -/obj/item/circuitboard/computer/atmos_control/tank/nitryl_tank - name = "Nitryl Supply Control (Computer Board)" - build_path = /obj/machinery/computer/atmos_control/tank/nitryl_tank +/obj/item/circuitboard/computer/atmos_control/tank/nitrium_tank + name = "Nitrium Supply Control (Computer Board)" + build_path = /obj/machinery/computer/atmos_control/tank/nitrium_tank /obj/item/circuitboard/computer/atmos_control/tank/pluoxium_tank name = "Pluoxium Supply Control (Computer Board)" @@ -116,10 +116,6 @@ name = "Proto-Nitrate Supply Control (Computer Board)" build_path = /obj/machinery/computer/atmos_control/tank/proto_nitrate_tank -/obj/item/circuitboard/computer/atmos_control/tank/stimulum_tank - name = "Stimulum Supply Control (Computer Board)" - build_path = /obj/machinery/computer/atmos_control/tank/stimulum_tank - /obj/item/circuitboard/computer/atmos_control/tank/tritium_tank name = "Tritium Supply Control (Computer Board)" build_path = /obj/machinery/computer/atmos_control/tank/tritium_tank diff --git a/code/game/objects/items/nitrium_crystals.dm b/code/game/objects/items/nitrium_crystals.dm new file mode 100644 index 00000000000..b81a96bca18 --- /dev/null +++ b/code/game/objects/items/nitrium_crystals.dm @@ -0,0 +1,18 @@ +/obj/item/nitrium_crystal + desc = "A weird brown crystal, it smokes when broken" + name = "nitrium crystal" + icon = 'icons/obj/atmos.dmi' + icon_state = "nitrium_crystal" + var/cloud_size = 1 + +/obj/item/nitrium_crystal/attack_self(mob/user) + . = ..() + var/datum/effect_system/smoke_spread/chem/smoke = new + var/turf/location = get_turf(src) + create_reagents(5) + reagents.add_reagent(/datum/reagent/nitrium_low_metabolization, 3) + reagents.add_reagent(/datum/reagent/nitrium_high_metabolization, 2) + smoke.attach(location) + smoke.set_up(reagents, cloud_size, location, silent = TRUE) + smoke.start() + qdel(src) diff --git a/code/game/turfs/open/floor/reinf_floor.dm b/code/game/turfs/open/floor/reinf_floor.dm index 6c3670e42ee..3b201bf6d65 100644 --- a/code/game/turfs/open/floor/reinf_floor.dm +++ b/code/game/turfs/open/floor/reinf_floor.dm @@ -149,10 +149,9 @@ name = "\improper Miasma floor" initial_gas_mix = ATMOS_TANK_MIASMA -/turf/open/floor/engine/no2 - article = "an" - name = "\improper NO2 floor" - initial_gas_mix = ATMOS_TANK_NO2 +/turf/open/floor/engine/nitrium + name = "\improper nitrium floor" + initial_gas_mix = ATMOS_TANK_NITRIUM /turf/open/floor/engine/pluoxium name = "\improper Pluoxium floor" @@ -162,10 +161,6 @@ name = "\improper Proto-Nitrate floor" initial_gas_mix = ATMOS_TANK_PROTO_NITRATE -/turf/open/floor/engine/stimulum - name = "\improper Stimulum floor" - initial_gas_mix = ATMOS_TANK_STIMULUM - /turf/open/floor/engine/tritium name = "\improper Tritium floor" initial_gas_mix = ATMOS_TANK_TRITIUM diff --git a/code/modules/atmospherics/gasmixtures/gas_types.dm b/code/modules/atmospherics/gasmixtures/gas_types.dm index 875fe2caef6..de2c8482f1a 100644 --- a/code/modules/atmospherics/gasmixtures/gas_types.dm +++ b/code/modules/atmospherics/gasmixtures/gas_types.dm @@ -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 diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm index b3f10328785..e63315fa5cd 100644 --- a/code/modules/atmospherics/gasmixtures/reactions.dm +++ b/code/modules/atmospherics/gasmixtures/reactions.dm @@ -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) diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index 2931d0a9593..971995b352c 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -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, diff --git a/code/modules/atmospherics/machinery/components/fusion/hfr_fuel_datums.dm b/code/modules/atmospherics/machinery/components/fusion/hfr_fuel_datums.dm index 33eb2ab5838..c7a9545a7d2 100644 --- a/code/modules/atmospherics/machinery/components/fusion/hfr_fuel_datums.dm +++ b/code/modules/atmospherics/machinery/components/fusion/hfr_fuel_datums.dm @@ -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 diff --git a/code/modules/atmospherics/machinery/components/fusion/hfr_main_processes.dm b/code/modules/atmospherics/machinery/components/fusion/hfr_main_processes.dm index 04de52b589e..6c7551e0c35 100644 --- a/code/modules/atmospherics/machinery/components/fusion/hfr_main_processes.dm +++ b/code/modules/atmospherics/machinery/components/fusion/hfr_main_processes.dm @@ -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 diff --git a/code/modules/atmospherics/machinery/components/gas_recipe_machines/atmos_machines_recipes.dm b/code/modules/atmospherics/machinery/components/gas_recipe_machines/atmos_machines_recipes.dm index 1397b71c554..ac187433fed 100644 --- a/code/modules/atmospherics/machinery/components/gas_recipe_machines/atmos_machines_recipes.dm +++ b/code/modules/atmospherics/machinery/components/gas_recipe_machines/atmos_machines_recipes.dm @@ -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) diff --git a/code/modules/atmospherics/machinery/components/tank.dm b/code/modules/atmospherics/machinery/components/tank.dm index 91a824ddadb..0f99a977625 100644 --- a/code/modules/atmospherics/machinery/components/tank.dm +++ b/code/modules/atmospherics/machinery/components/tank.dm @@ -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 diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm index edf452bd651..6f7af747d85 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm @@ -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) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm index bb33d8ade6a..068de9ac27d 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/outlet_injector.dm @@ -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 diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm index 05b7511f94d..9dc856a3ff2 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm @@ -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 diff --git a/code/modules/atmospherics/machinery/other/miner.dm b/code/modules/atmospherics/machinery/other/miner.dm index 74c72c16c17..457352b6ab8 100644 --- a/code/modules/atmospherics/machinery/other/miner.dm +++ b/code/modules/atmospherics/machinery/other/miner.dm @@ -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" diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index 450b2983e7c..08ce9444607 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -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." diff --git a/code/modules/atmospherics/machinery/portable/scrubber.dm b/code/modules/atmospherics/machinery/portable/scrubber.dm index 41282bb26ed..629a8e20290 100644 --- a/code/modules/atmospherics/machinery/portable/scrubber.dm +++ b/code/modules/atmospherics/machinery/portable/scrubber.dm @@ -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, diff --git a/code/modules/cargo/bounties/engineering.dm b/code/modules/cargo/bounties/engineering.dm index da3c8650618..748b63163cb 100644 --- a/code/modules/cargo/bounties/engineering.dm +++ b/code/modules/cargo/bounties/engineering.dm @@ -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" diff --git a/code/modules/cargo/exports/large_objects.dm b/code/modules/cargo/exports/large_objects.dm index f70e18d6f4d..422082a060f 100644 --- a/code/modules/cargo/exports/large_objects.dm +++ b/code/modules/cargo/exports/large_objects.dm @@ -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, diff --git a/code/modules/clothing/masks/gas_filter.dm b/code/modules/clothing/masks/gas_filter.dm index 70232b61914..09dafd7e415 100644 --- a/code/modules/clothing/masks/gas_filter.dm +++ b/code/modules/clothing/masks/gas_filter.dm @@ -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 diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index d1ec5282f7b..f5adc77221f 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -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]) diff --git a/code/modules/movespeed/modifiers/reagent.dm b/code/modules/movespeed/modifiers/reagent.dm index ac2f3cdd4c9..1d4898e662b 100644 --- a/code/modules/movespeed/modifiers/reagent.dm +++ b/code/modules/movespeed/modifiers/reagent.dm @@ -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 diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 5f4149113d2..3d6d9b1a086 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -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 diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index 4533b4b4ce1..049bd168ea5 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -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, "You feel a burning sensation in your chest") + 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) diff --git a/icons/effects/atmospherics.dmi b/icons/effects/atmospherics.dmi index e2f451ca068..838fe5e3f6d 100644 Binary files a/icons/effects/atmospherics.dmi and b/icons/effects/atmospherics.dmi differ diff --git a/icons/obj/atmos.dmi b/icons/obj/atmos.dmi index ec462c41729..8859441898c 100644 Binary files a/icons/obj/atmos.dmi and b/icons/obj/atmos.dmi differ diff --git a/tgstation.dme b/tgstation.dme index b151de9ea9a..62f80c0b60a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1303,6 +1303,7 @@ #include "code\game\objects\items\maintenance_loot.dm" #include "code\game\objects\items\manuals.dm" #include "code\game\objects\items\mop.dm" +#include "code\game\objects\items\nitrium_crystals.dm" #include "code\game\objects\items\paint.dm" #include "code\game\objects\items\paiwire.dm" #include "code\game\objects\items\pet_carrier.dm" diff --git a/tgui/packages/tgui/constants.js b/tgui/packages/tgui/constants.js index a295d539374..495c04d8a0e 100644 --- a/tgui/packages/tgui/constants.js +++ b/tgui/packages/tgui/constants.js @@ -183,8 +183,8 @@ const GASES = [ }, { 'id': 'no2', - 'name': 'Nitryl', - 'label': 'NO₂', + 'name': 'Nitrium', + 'label': 'Nitrium', 'color': 'brown', }, { @@ -199,12 +199,6 @@ const GASES = [ 'label': 'BZ', 'color': 'mediumpurple', }, - { - 'id': 'stim', - 'name': 'Stimulum', - 'label': 'Stimulum', - 'color': 'darkviolet', - }, { 'id': 'pluox', 'name': 'Pluoxium',