Merge branch 'master' of https://github.com/SandPoot/Citadel-Station-13 into balloon-alert-port
This commit is contained in:
@@ -825,7 +825,7 @@
|
||||
pH = REAGENT_NORMAL_PH
|
||||
return 0
|
||||
|
||||
/datum/reagents/proc/reaction(atom/A, method = TOUCH, volume_modifier = 1, show_message = 1)
|
||||
/datum/reagents/proc/reaction(atom/A, method = TOUCH, volume_modifier = 1, show_message = 1, from_gas = 0)
|
||||
var/react_type
|
||||
if(isliving(A))
|
||||
react_type = "LIVING"
|
||||
@@ -849,7 +849,7 @@
|
||||
touch_protection = L.get_permeability_protection()
|
||||
R.reaction_mob(A, method, R.volume * volume_modifier, show_message, touch_protection)
|
||||
if("TURF")
|
||||
R.reaction_turf(A, R.volume * volume_modifier, show_message)
|
||||
R.reaction_turf(A, R.volume * volume_modifier, show_message, from_gas)
|
||||
if("OBJ")
|
||||
R.reaction_obj(A, R.volume * volume_modifier, show_message)
|
||||
|
||||
@@ -859,17 +859,16 @@
|
||||
return FALSE
|
||||
|
||||
//Returns the average specific heat for all reagents currently in this holder.
|
||||
/datum/reagents/proc/specific_heat()
|
||||
/datum/reagents/proc/heat_capacity()
|
||||
. = 0
|
||||
var/cached_amount = total_volume //cache amount
|
||||
var/list/cached_reagents = reagent_list //cache reagents
|
||||
for(var/I in cached_reagents)
|
||||
var/datum/reagent/R = I
|
||||
. += R.specific_heat * (R.volume / cached_amount)
|
||||
. += R.specific_heat * R.volume
|
||||
|
||||
/datum/reagents/proc/adjust_thermal_energy(J, min_temp = 2.7, max_temp = 1000)
|
||||
var/S = specific_heat()
|
||||
chem_temp = clamp(chem_temp + (J / (S * total_volume)), min_temp, max_temp)
|
||||
var/S = heat_capacity()
|
||||
chem_temp = clamp(chem_temp + (J / S), min_temp, max_temp)
|
||||
if(istype(my_atom, /obj/item/reagent_containers))
|
||||
var/obj/item/reagent_containers/RC = my_atom
|
||||
RC.temp_check()
|
||||
|
||||
@@ -390,11 +390,11 @@
|
||||
var/datum/reagent/R = GLOB.chemical_reagents_list[reagent]
|
||||
if(R)
|
||||
var/state = "Unknown"
|
||||
if(initial(R.reagent_state) == 1)
|
||||
if(initial(R.reagent_state) == SOLID)
|
||||
state = "Solid"
|
||||
else if(initial(R.reagent_state) == 2)
|
||||
else if(initial(R.reagent_state) == LIQUID)
|
||||
state = "Liquid"
|
||||
else if(initial(R.reagent_state) == 3)
|
||||
else if(initial(R.reagent_state) == GAS)
|
||||
state = "Gas"
|
||||
var/const/P = 3 //The number of seconds between life ticks
|
||||
var/T = initial(R.metabolization_rate) * (60 / P)
|
||||
|
||||
@@ -53,6 +53,10 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
|
||||
var/chemical_flags = REAGENT_ORGANIC_PROCESS // See fermi/readme.dm REAGENT_DEAD_PROCESS, REAGENT_DONOTSPLIT, REAGENT_ONLYINVERSE, REAGENT_ONMOBMERGE, REAGENT_INVISIBLE, REAGENT_FORCEONNEW, REAGENT_SNEAKYNAME, REAGENT_ORGANIC_PROCESS, REAGENT_ROBOTIC_PROCESS
|
||||
var/value = REAGENT_VALUE_NONE //How much does it sell for in cargo?
|
||||
var/datum/material/material //are we made of material?
|
||||
var/gas = null //do we have an associated gas? (expects a string, not a datum typepath!)
|
||||
var/boiling_point = null // point at which this gas boils; if null, will never boil (and thus not become a gas)
|
||||
var/condensation_amount = 1
|
||||
var/molarity = 5 // How many units per mole of this reagent. Technically this is INVERSE molarity, but hey.
|
||||
|
||||
/datum/reagent/New()
|
||||
. = ..()
|
||||
@@ -77,10 +81,23 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
|
||||
return 1
|
||||
|
||||
/datum/reagent/proc/reaction_obj(obj/O, volume)
|
||||
return
|
||||
if(O && volume && boiling_point)
|
||||
var/temp = holder ? holder.chem_temp : T20C
|
||||
if(temp > boiling_point)
|
||||
O.atmos_spawn_air("[get_gas()]=[volume/molarity];TEMP=[temp]")
|
||||
|
||||
/datum/reagent/proc/reaction_turf(turf/T, volume)
|
||||
return
|
||||
/datum/reagent/proc/reaction_turf(turf/T, volume, show_message, from_gas)
|
||||
if(!from_gas && boiling_point)
|
||||
var/temp = holder?.chem_temp
|
||||
if(!temp)
|
||||
if(isopenturf(T))
|
||||
var/turf/open/O = T
|
||||
var/datum/gas_mixture/air = O.return_air()
|
||||
temp = air.return_temperature()
|
||||
else
|
||||
temp = T20C
|
||||
if(temp > boiling_point)
|
||||
T.atmos_spawn_air("[get_gas()]=[volume/molarity];TEMP=[temp]")
|
||||
|
||||
/datum/reagent/proc/on_mob_life(mob/living/carbon/M)
|
||||
current_cycle++
|
||||
@@ -235,6 +252,44 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
|
||||
|
||||
return rs.Join(" | ")
|
||||
|
||||
/datum/reagent/proc/define_gas()
|
||||
if(reagent_state == SOLID)
|
||||
return null // doesn't make that much sense
|
||||
var/list/cached_reactions = GLOB.chemical_reactions_list
|
||||
for(var/reaction in cached_reactions[src.type])
|
||||
var/datum/chemical_reaction/C = reaction
|
||||
if(!istype(C))
|
||||
continue
|
||||
if(C.required_reagents.len < 2) // no reagents that react on their own
|
||||
return null
|
||||
var/datum/gas/G = new
|
||||
G.id = "[src.type]"
|
||||
G.name = name
|
||||
G.specific_heat = specific_heat / 10
|
||||
G.color = color
|
||||
G.breath_reagent = src.type
|
||||
G.group = GAS_GROUP_CHEMICALS
|
||||
return G
|
||||
|
||||
/datum/reagent/proc/create_gas()
|
||||
var/datum/gas/G = define_gas()
|
||||
if(istype(G)) // if this reagent should never be a gas, define_gas may return null
|
||||
GLOB.gas_data.add_gas(G)
|
||||
var/datum/gas_reaction/condensation/condensation_reaction = new(src) // did you know? you can totally just add new reactions at runtime. it's allowed
|
||||
SSair.add_reaction(condensation_reaction)
|
||||
return G
|
||||
|
||||
|
||||
/datum/reagent/proc/get_gas()
|
||||
if(gas)
|
||||
return gas
|
||||
else
|
||||
var/datum/auxgm/cached_gas_data = GLOB.gas_data
|
||||
. = "[src.type]"
|
||||
if(!(. in cached_gas_data.ids))
|
||||
create_gas()
|
||||
|
||||
|
||||
//For easy bloodsucker disgusting and blood removal
|
||||
/datum/reagent/proc/disgust_bloodsucker(mob/living/carbon/C, disgust, blood_change, blood_puke = TRUE, force)
|
||||
if(AmBloodsucker(C))
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
taste_description = "alcohol"
|
||||
var/boozepwr = 65 //Higher numbers equal higher hardness, higher hardness equals more intense alcohol poisoning
|
||||
pH = 7.33
|
||||
boiling_point = 351.38
|
||||
value = REAGENT_VALUE_VERY_COMMON //don't bother tweaking all drinks values, way too many can easily be done roundstart or with an upgraded dispenser.
|
||||
|
||||
/*
|
||||
@@ -85,6 +86,31 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
// +10% success propability on each step, useful while operating in less-than-perfect conditions
|
||||
return ..()
|
||||
|
||||
/datum/reagent/consumable/ethanol/define_gas() // So that all alcohols have the same gas, i.e. "ethanol"
|
||||
var/datum/gas/G = new
|
||||
G.id = GAS_ETHANOL
|
||||
G.name = "Ethanol"
|
||||
G.enthalpy = -234800
|
||||
G.specific_heat = 38
|
||||
G.fire_products = list(GAS_CO2 = 1, GAS_H2O = 1.5)
|
||||
G.fire_burn_rate = 1 / 3
|
||||
G.fire_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST
|
||||
G.color = "#404030"
|
||||
G.breath_reagent = /datum/reagent/consumable/ethanol
|
||||
G.group = GAS_GROUP_CHEMICALS
|
||||
return G
|
||||
|
||||
/datum/reagent/consumable/ethanol/get_gas()
|
||||
var/datum/auxgm/cached_gas_data = GLOB.gas_data
|
||||
. = GAS_ETHANOL
|
||||
if(!(. in cached_gas_data.ids))
|
||||
var/datum/gas/G = define_gas()
|
||||
if(istype(G))
|
||||
cached_gas_data.add_gas(G)
|
||||
else // this codepath should probably not happen at all, since we never use get_gas() on anything with no boiling point
|
||||
return null
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/beer
|
||||
name = "Beer"
|
||||
description = "An alcoholic beverage brewed since ancient times on Old Earth. Still popular today."
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
/datum/reagent/medicine/leporazine
|
||||
name = "Leporazine"
|
||||
description = "Leporazine will effectively regulate a patient's body temperature, ensuring it never leaves safe levels."
|
||||
chemical_flags = REAGENT_ALL_PROCESS
|
||||
pH = 8.4
|
||||
color = "#82b8aa"
|
||||
value = REAGENT_VALUE_COMMON
|
||||
@@ -693,7 +692,6 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#00FFFF"
|
||||
metabolization_rate = 0.25 * REAGENTS_METABOLISM
|
||||
chemical_flags = REAGENT_ALL_PROCESS
|
||||
pH = 2
|
||||
|
||||
/datum/reagent/medicine/salbutamol/on_mob_life(mob/living/carbon/M)
|
||||
@@ -710,7 +708,6 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#FF6464"
|
||||
metabolization_rate = 0.25 * REAGENTS_METABOLISM
|
||||
chemical_flags = REAGENT_ALL_PROCESS
|
||||
pH = 11
|
||||
|
||||
/datum/reagent/medicine/perfluorodecalin/on_mob_life(mob/living/carbon/human/M)
|
||||
@@ -920,7 +917,6 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#000000"
|
||||
metabolization_rate = 0.25 * REAGENTS_METABOLISM
|
||||
chemical_flags = REAGENT_ALL_PROCESS
|
||||
overdose_threshold = 35
|
||||
pH = 12
|
||||
value = REAGENT_VALUE_UNCOMMON
|
||||
@@ -951,7 +947,6 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#D2FFFA"
|
||||
metabolization_rate = 0.25 * REAGENTS_METABOLISM
|
||||
chemical_flags = REAGENT_ALL_PROCESS
|
||||
overdose_threshold = 30
|
||||
pH = 10.2
|
||||
|
||||
@@ -1052,6 +1047,7 @@
|
||||
name = "Mannitol"
|
||||
description = "Efficiently restores brain damage."
|
||||
color = "#DCDCFF"
|
||||
taste_description = "sweetness"
|
||||
pH = 10.4
|
||||
chemical_flags = REAGENT_ALL_PROCESS
|
||||
|
||||
@@ -1203,7 +1199,6 @@
|
||||
description = "Restores oxygen loss. Overdose causes it instead."
|
||||
reagent_state = LIQUID
|
||||
color = "#13d2f0"
|
||||
chemical_flags = REAGENT_ALL_PROCESS
|
||||
overdose_threshold = 30
|
||||
pH = 9.7
|
||||
|
||||
@@ -1267,7 +1262,6 @@
|
||||
reagent_state = LIQUID
|
||||
pH = 8.5
|
||||
color = "#5dc1f0"
|
||||
chemical_flags = REAGENT_ALL_PROCESS
|
||||
|
||||
/datum/reagent/medicine/inaprovaline/on_mob_life(mob/living/carbon/M)
|
||||
if(M.losebreath >= 5)
|
||||
|
||||
@@ -909,20 +909,11 @@
|
||||
description = "A colorless, odorless gas. Grows on trees but is still pretty valuable."
|
||||
reagent_state = GAS
|
||||
color = "#808080" // rgb: 128, 128, 128
|
||||
gas = GAS_O2
|
||||
boiling_point = 90.188
|
||||
taste_mult = 0 // oderless and tasteless
|
||||
pH = 9.2//It's acutally a huge range and very dependant on the chemistry but pH is basically a made up var in it's implementation anyways
|
||||
|
||||
/datum/reagent/oxygen/reaction_obj(obj/O, reac_volume)
|
||||
if((!O) || (!reac_volume))
|
||||
return 0
|
||||
var/temp = holder ? holder.chem_temp : T20C
|
||||
O.atmos_spawn_air("o2=[reac_volume/2];TEMP=[temp]")
|
||||
|
||||
/datum/reagent/oxygen/reaction_turf(turf/open/T, reac_volume)
|
||||
if(istype(T))
|
||||
var/temp = holder ? holder.chem_temp : T20C
|
||||
T.atmos_spawn_air("o2=[reac_volume/2];TEMP=[temp]")
|
||||
return
|
||||
molarity = 2
|
||||
|
||||
/datum/reagent/copper
|
||||
name = "Copper"
|
||||
@@ -943,26 +934,18 @@
|
||||
name = "Nitrogen"
|
||||
description = "A colorless, odorless, tasteless gas. A simple asphyxiant that can silently displace vital oxygen."
|
||||
reagent_state = GAS
|
||||
gas = GAS_N2
|
||||
boiling_point = 77.355
|
||||
color = "#808080" // rgb: 128, 128, 128
|
||||
taste_mult = 0
|
||||
|
||||
|
||||
/datum/reagent/nitrogen/reaction_obj(obj/O, reac_volume)
|
||||
if((!O) || (!reac_volume))
|
||||
return 0
|
||||
var/temp = holder ? holder.chem_temp : T20C
|
||||
O.atmos_spawn_air("n2=[reac_volume/2];TEMP=[temp]")
|
||||
|
||||
/datum/reagent/nitrogen/reaction_turf(turf/open/T, reac_volume)
|
||||
if(istype(T))
|
||||
var/temp = holder ? holder.chem_temp : T20C
|
||||
T.atmos_spawn_air("n2=[reac_volume/2];TEMP=[temp]")
|
||||
return
|
||||
molarity = 2
|
||||
|
||||
/datum/reagent/hydrogen
|
||||
name = "Hydrogen"
|
||||
description = "A colorless, odorless, nonmetallic, tasteless, highly combustible diatomic gas."
|
||||
reagent_state = GAS
|
||||
gas = GAS_HYDROGEN
|
||||
boiling_point = 20.271
|
||||
color = "#808080" // rgb: 128, 128, 128
|
||||
taste_mult = 0
|
||||
pH = 0.1//Now I'm stuck in a trap of my own design. Maybe I should make -ve pHes? (not 0 so I don't get div/0 errors)
|
||||
@@ -1015,9 +998,10 @@
|
||||
name = "Chlorine"
|
||||
description = "A pale yellow gas that's well known as an oxidizer. While it forms many harmless molecules in its elemental form it is far from harmless."
|
||||
reagent_state = GAS
|
||||
color = "#808080" // rgb: 128, 128, 128
|
||||
color = "#c0c0a0" // rgb: 192, 192, 160
|
||||
taste_description = "chlorine"
|
||||
pH = 7.4
|
||||
boiling_point = 239.11
|
||||
|
||||
// You're an idiot for thinking that one of the most corrosive and deadly gasses would be beneficial
|
||||
/datum/reagent/chlorine/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
|
||||
@@ -1291,7 +1275,15 @@
|
||||
glass_name = "glass of welder fuel"
|
||||
glass_desc = "Unless you're an industrial tool, this is probably not safe for consumption."
|
||||
pH = 4
|
||||
boiling_point = 400
|
||||
|
||||
/datum/reagent/fuel/define_gas()
|
||||
var/datum/gas/G = ..()
|
||||
G.enthalpy = 227400
|
||||
G.fire_burn_rate = 2 / 5
|
||||
G.fire_products = list(GAS_CO2 = 2, GAS_H2O = 1)
|
||||
G.fire_temperature = T0C+300
|
||||
return G
|
||||
|
||||
/datum/reagent/fuel/reaction_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with welding fuel to make them easy to ignite!
|
||||
if(method == TOUCH || method == VAPOR)
|
||||
@@ -1309,6 +1301,7 @@
|
||||
description = "A compound used to clean things. Now with 50% more sodium hypochlorite!"
|
||||
color = "#A5F0EE" // rgb: 165, 240, 238
|
||||
taste_description = "sourness"
|
||||
boiling_point = T0C+50
|
||||
pH = 5.5
|
||||
|
||||
/datum/reagent/space_cleaner/reaction_obj(obj/O, reac_volume)
|
||||
@@ -1321,6 +1314,7 @@
|
||||
O.clean_blood()
|
||||
|
||||
/datum/reagent/space_cleaner/reaction_turf(turf/T, reac_volume)
|
||||
..()
|
||||
if(reac_volume >= 1)
|
||||
T.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
|
||||
SEND_SIGNAL(T, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
@@ -1488,6 +1482,7 @@
|
||||
name = "Ammonia"
|
||||
description = "A caustic substance commonly used in fertilizer or household cleaners."
|
||||
reagent_state = GAS
|
||||
gas = GAS_AMMONIA
|
||||
color = "#404030" // rgb: 64, 64, 48
|
||||
taste_description = "mordant"
|
||||
pH = 11.6
|
||||
@@ -1506,8 +1501,17 @@
|
||||
description = "A secondary amine, mildly corrosive."
|
||||
color = "#604030" // rgb: 96, 64, 48
|
||||
taste_description = "iron"
|
||||
boiling_point = 328
|
||||
pH = 12
|
||||
|
||||
/datum/reagent/diethylamine/define_gas()
|
||||
var/datum/gas/G = ..()
|
||||
G.fire_burn_rate = 1 / 6
|
||||
G.fire_products = list(GAS_H2O = 4, GAS_AMMONIA = 1, GAS_CO2 = 4)
|
||||
G.enthalpy = -131000
|
||||
G.fire_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST
|
||||
return G
|
||||
|
||||
// This is more bad ass, and pests get hurt by the corrosive nature of it, not the plant. The new trade off is it culls stability.
|
||||
/datum/reagent/diethylamine/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
|
||||
. = ..()
|
||||
@@ -1524,40 +1528,23 @@
|
||||
description = "A gas commonly produced by burning carbon fuels. You're constantly producing this in your lungs."
|
||||
color = "#B0B0B0" // rgb : 192, 192, 192
|
||||
taste_description = "something unknowable"
|
||||
boiling_point = 195.68 // technically sublimation, not boiling, but same deal
|
||||
molarity = 5
|
||||
gas = GAS_CO2
|
||||
pH = 6
|
||||
|
||||
/datum/reagent/carbondioxide/reaction_obj(obj/O, reac_volume)
|
||||
if((!O) || (!reac_volume))
|
||||
return 0
|
||||
var/temp = holder ? holder.chem_temp : T20C
|
||||
O.atmos_spawn_air("co2=[reac_volume/5];TEMP=[temp]")
|
||||
|
||||
/datum/reagent/carbondioxide/reaction_turf(turf/open/T, reac_volume)
|
||||
if(istype(T))
|
||||
var/temp = holder ? holder.chem_temp : T20C
|
||||
T.atmos_spawn_air("co2=[reac_volume/5];TEMP=[temp]")
|
||||
return
|
||||
|
||||
/datum/reagent/nitrous_oxide
|
||||
name = "Nitrous Oxide"
|
||||
description = "A potent oxidizer used as fuel in rockets and as an anaesthetic during surgery."
|
||||
reagent_state = LIQUID
|
||||
metabolization_rate = 1.5 * REAGENTS_METABOLISM
|
||||
color = "#808080"
|
||||
boiling_point = 184.67
|
||||
molarity = 5
|
||||
gas = GAS_NITROUS
|
||||
taste_description = "sweetness"
|
||||
pH = 5.8
|
||||
|
||||
/datum/reagent/nitrous_oxide/reaction_obj(obj/O, reac_volume)
|
||||
if((!O) || (!reac_volume))
|
||||
return 0
|
||||
var/temp = holder ? holder.chem_temp : T20C
|
||||
O.atmos_spawn_air("n2o=[reac_volume/5];TEMP=[temp]")
|
||||
|
||||
/datum/reagent/nitrous_oxide/reaction_turf(turf/open/T, reac_volume)
|
||||
if(istype(T))
|
||||
var/temp = holder ? holder.chem_temp : T20C
|
||||
T.atmos_spawn_air("n2o=[reac_volume/5];TEMP=[temp]")
|
||||
|
||||
/datum/reagent/nitrous_oxide/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
|
||||
if(method == VAPOR)
|
||||
M.drowsyness += max(round(reac_volume, 1), 2)
|
||||
@@ -1576,9 +1563,11 @@
|
||||
name = "Stimulum"
|
||||
description = "An unstable experimental gas that greatly increases the energy of those that inhale it"
|
||||
reagent_state = GAS
|
||||
gas = GAS_STIMULUM
|
||||
metabolization_rate = 1.5 * REAGENTS_METABOLISM
|
||||
chemical_flags = REAGENT_ALL_PROCESS
|
||||
color = "E1A116"
|
||||
boiling_point = 150
|
||||
taste_description = "sourness"
|
||||
value = REAGENT_VALUE_EXCEPTIONAL
|
||||
|
||||
@@ -1602,9 +1591,11 @@
|
||||
name = "Nitryl"
|
||||
description = "A highly reactive gas that makes you feel faster"
|
||||
reagent_state = GAS
|
||||
gas = GAS_NITRYL
|
||||
metabolization_rate = REAGENTS_METABOLISM
|
||||
color = "90560B"
|
||||
color = "#90560B"
|
||||
taste_description = "burning"
|
||||
boiling_point = 294.3
|
||||
pH = 2
|
||||
value = REAGENT_VALUE_VERY_RARE
|
||||
|
||||
@@ -1811,6 +1802,8 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#b37740"
|
||||
taste_description = "chemicals"
|
||||
gas = GAS_BROMINE
|
||||
boiling_point = 332
|
||||
pH = 7.8
|
||||
|
||||
/datum/reagent/phenol
|
||||
@@ -2482,6 +2475,7 @@
|
||||
var/decal_path = /obj/effect/decal/cleanable/semen
|
||||
|
||||
/datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume)
|
||||
..()
|
||||
if(!istype(T))
|
||||
return
|
||||
if(reac_volume < 10)
|
||||
|
||||
@@ -47,6 +47,10 @@
|
||||
metabolization_rate = 4
|
||||
chemical_flags = REAGENT_ALL_PROCESS
|
||||
taste_description = "burning"
|
||||
/* no gaseous CLF3 until i can think of a good way to get it to burn that doesn't destroy matter in mysterious ways
|
||||
boiling_point = 289.4
|
||||
*/
|
||||
condensation_amount = 2
|
||||
value = REAGENT_VALUE_COMMON
|
||||
|
||||
/datum/reagent/clf3/on_mob_life(mob/living/carbon/M)
|
||||
@@ -84,6 +88,12 @@
|
||||
if(!locate(/obj/effect/hotspot) in M.loc)
|
||||
new /obj/effect/hotspot(M.loc)
|
||||
|
||||
/datum/reagent/clf3/define_gas()
|
||||
var/datum/gas/G = ..()
|
||||
G.enthalpy = -163200
|
||||
G.oxidation_temperature = T0C - 50
|
||||
return G
|
||||
|
||||
/datum/reagent/sorium
|
||||
name = "Sorium"
|
||||
description = "Sends everything flying from the detonation point."
|
||||
@@ -152,8 +162,17 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#FA00AF"
|
||||
taste_description = "burning"
|
||||
boiling_point = T20C-10
|
||||
value = REAGENT_VALUE_UNCOMMON
|
||||
|
||||
/datum/reagent/phlogiston/define_gas()
|
||||
var/datum/gas/G = ..()
|
||||
G.enthalpy = FIRE_PLASMA_ENERGY_RELEASED / 100
|
||||
G.fire_products = list(GAS_O2 = 0.25, GAS_METHANE = 0.75) // meanwhile this is just magic
|
||||
G.fire_burn_rate = 1
|
||||
G.fire_temperature = T20C+1
|
||||
return G
|
||||
|
||||
/datum/reagent/phlogiston/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
|
||||
M.adjust_fire_stacks(1)
|
||||
var/burndmg = max(0.3*M.fire_stacks, 0.3)
|
||||
@@ -288,6 +307,9 @@
|
||||
taste_description = "the inside of a fire extinguisher"
|
||||
value = REAGENT_VALUE_UNCOMMON
|
||||
|
||||
/datum/reagent/firefighting_foam/define_gas()
|
||||
return null
|
||||
|
||||
/datum/reagent/firefighting_foam/reaction_turf(turf/open/T, reac_volume)
|
||||
if (!istype(T))
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user