mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 09:54:52 +00:00
Made hotspots take generic fires into account
This commit is contained in:
BIN
auxmos.dll
BIN
auxmos.dll
Binary file not shown.
BIN
auxmos.pdb
BIN
auxmos.pdb
Binary file not shown.
@@ -66,7 +66,7 @@
|
|||||||
if(panel_open)
|
if(panel_open)
|
||||||
. += "sheater-open"
|
. += "sheater-open"
|
||||||
|
|
||||||
/obj/machinery/space_heater/process()
|
/obj/machinery/space_heater/process_atmos()
|
||||||
if(!on || !is_operational())
|
if(!on || !is_operational())
|
||||||
if (on) // If it's broken, turn it off too
|
if (on) // If it's broken, turn it off too
|
||||||
on = FALSE
|
on = FALSE
|
||||||
@@ -220,7 +220,7 @@
|
|||||||
usr.visible_message("<span class='notice'>[usr] switches [on ? "on" : "off"] \the [src].</span>", "<span class='notice'>You switch [on ? "on" : "off"] \the [src].</span>")
|
usr.visible_message("<span class='notice'>[usr] switches [on ? "on" : "off"] \the [src].</span>", "<span class='notice'>You switch [on ? "on" : "off"] \the [src].</span>")
|
||||||
update_icon()
|
update_icon()
|
||||||
if (on)
|
if (on)
|
||||||
START_PROCESSING(SSmachines, src)
|
SSair.atmos_air_machinery += src
|
||||||
. = TRUE
|
. = TRUE
|
||||||
if("mode")
|
if("mode")
|
||||||
setMode = params["mode"]
|
setMode = params["mode"]
|
||||||
|
|||||||
@@ -117,7 +117,7 @@
|
|||||||
specific_heat = 80
|
specific_heat = 80
|
||||||
name = "Pluoxium"
|
name = "Pluoxium"
|
||||||
fusion_power = 10
|
fusion_power = 10
|
||||||
oxidation_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST + 100
|
oxidation_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST * 1000 // it is VERY stable
|
||||||
oxidation_rate = 8
|
oxidation_rate = 8
|
||||||
|
|
||||||
/datum/gas/miasma
|
/datum/gas/miasma
|
||||||
|
|||||||
@@ -13,21 +13,19 @@
|
|||||||
if(!air)
|
if(!air)
|
||||||
return
|
return
|
||||||
|
|
||||||
var/oxy = air.get_moles(GAS_O2)
|
if (air.get_oxidation_power(exposed_temperature) < 0.5)
|
||||||
if (oxy < 0.5)
|
|
||||||
return
|
return
|
||||||
var/tox = air.get_moles(GAS_PLASMA)
|
var/has_fuel = air.get_moles(GAS_PLASMA) > 0.5 || air.get_moles(GAS_TRITIUM) > 0.5 || air.get_fuel_amount(exposed_temperature) > 0.5
|
||||||
var/trit = air.get_moles(GAS_TRITIUM)
|
|
||||||
if(active_hotspot)
|
if(active_hotspot)
|
||||||
if(soh)
|
if(soh)
|
||||||
if(tox > 0.5 || trit > 0.5)
|
if(has_fuel)
|
||||||
if(active_hotspot.temperature < exposed_temperature)
|
if(active_hotspot.temperature < exposed_temperature)
|
||||||
active_hotspot.temperature = exposed_temperature
|
active_hotspot.temperature = exposed_temperature
|
||||||
if(active_hotspot.volume < exposed_volume)
|
if(active_hotspot.volume < exposed_volume)
|
||||||
active_hotspot.volume = exposed_volume
|
active_hotspot.volume = exposed_volume
|
||||||
return
|
return
|
||||||
|
|
||||||
if((exposed_temperature > PLASMA_MINIMUM_BURN_TEMPERATURE) && (tox > 0.5 || trit > 0.5))
|
if((exposed_temperature > PLASMA_MINIMUM_BURN_TEMPERATURE) && has_fuel)
|
||||||
active_hotspot = new /obj/effect/hotspot(src, exposed_volume*25, exposed_temperature)
|
active_hotspot = new /obj/effect/hotspot(src, exposed_volume*25, exposed_temperature)
|
||||||
|
|
||||||
//This is the icon for fire on turfs, also helps for nurturing small fires until they are full tile
|
//This is the icon for fire on turfs, also helps for nurturing small fires until they are full tile
|
||||||
@@ -154,13 +152,7 @@
|
|||||||
if((temperature < FIRE_MINIMUM_TEMPERATURE_TO_EXIST) || (volume <= 1))
|
if((temperature < FIRE_MINIMUM_TEMPERATURE_TO_EXIST) || (volume <= 1))
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
if(!location.air || (INSUFFICIENT(GAS_PLASMA) && INSUFFICIENT(GAS_TRITIUM)) || INSUFFICIENT(GAS_O2))
|
if(!location.air || location.air.get_oxidation_power() < 0.5 || (INSUFFICIENT(GAS_PLASMA) && INSUFFICIENT(GAS_TRITIUM) && location.air.get_fuel_amount() < 0.5))
|
||||||
qdel(src)
|
|
||||||
return
|
|
||||||
|
|
||||||
//Not enough to burn
|
|
||||||
// god damn it previous coder you made the INSUFFICIENT macro for a fucking reason why didn't you use it here smh
|
|
||||||
if((INSUFFICIENT(GAS_PLASMA) && INSUFFICIENT(GAS_TRITIUM)) || INSUFFICIENT(GAS_O2))
|
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -226,6 +226,12 @@ we use a hook instead
|
|||||||
//Makes this mix have the same temperature and gas ratios as the giver, but with the same pressure, accounting for volume.
|
//Makes this mix have the same temperature and gas ratios as the giver, but with the same pressure, accounting for volume.
|
||||||
//Returns: null
|
//Returns: null
|
||||||
|
|
||||||
|
/datum/gas_mixture/proc/get_oxidation_power(temp)
|
||||||
|
//Gets how much oxidation this gas can do, optionally at a given temperature.
|
||||||
|
|
||||||
|
/datum/gas_mixture/proc/get_fuel_amount(temp)
|
||||||
|
//Gets how much fuel for fires (not counting trit/plasma!) this gas has, optionally at a given temperature.
|
||||||
|
|
||||||
/proc/equalize_all_gases_in_list(list/L)
|
/proc/equalize_all_gases_in_list(list/L)
|
||||||
//Makes every gas in the given list have the same pressure, temperature and gas proportions.
|
//Makes every gas in the given list have the same pressure, temperature and gas proportions.
|
||||||
//Returns: null
|
//Returns: null
|
||||||
|
|||||||
Reference in New Issue
Block a user