atmos: fix everlasting fires

Fires were checking against a non-reduced air sample for existance, so
the reduced sample wasn't working in zburn when it failed the check.
Also fixed volatilefuel not being scaled in the phoron reagent.

Signed-off-by: Mloc-Argent <colmohici@gmail.com>

Conflicts:
	code/ZAS/Fire.dm
	code/modules/reagents/Chemistry-Reagents.dm
This commit is contained in:
Mloc-Argent
2014-06-22 10:54:19 -04:00
committed by ZomgPonies
parent 55df84eb35
commit 8a5079d006
3 changed files with 24 additions and 32 deletions
+6 -14
View File
@@ -84,7 +84,7 @@ turf/simulated/hotspot_expose(exposed_temperature, exposed_volume, soh)
air_contents.trace_gases.Remove(fuel)
//check if there is something to combust
if(!air_contents.check_recombustability(liquid))
if(!air_contents.check_combustability(liquid))
//del src
RemoveFire()
@@ -116,7 +116,7 @@ turf/simulated/hotspot_expose(exposed_temperature, exposed_volume, soh)
var/datum/gas_mixture/acs = enemy_tile.return_air()
var/obj/effect/decal/cleanable/liquid_fuel/liq = locate() in enemy_tile
if(!acs) continue
if(!acs.check_recombustability(liq)) continue
if(!acs.check_combustability(liq)) continue
//If extinguisher mist passed over the turf it's trying to spread to, don't spread and
//reduce firelevel.
if(enemy_tile.fire_protection > world.time-30)
@@ -134,16 +134,8 @@ turf/simulated/hotspot_expose(exposed_temperature, exposed_volume, soh)
///////////////////////////////// FLOW HAS BEEN CREATED /// DONT DELETE THE FIRE UNTIL IT IS MERGED BACK OR YOU WILL DELETE AIR ///////////////////////////////////////////////
if(flow)
if(flow.check_recombustability(liquid))
//Ensure flow temperature is higher than minimum fire temperatures.
//this creates some energy ex nihilo but is necessary to get a fire started
//lets just pretend this energy comes from the ignition source and dont mention this again
//flow.temperature = max(PLASMA_MINIMUM_BURN_TEMPERATURE+0.1,flow.temperature)
//burn baby burn!
flow.zburn(liquid,1)
//burn baby burn!
flow.zburn(liquid,1)
//merge the air back
S.assume_air(flow)
@@ -275,9 +267,9 @@ datum/gas_mixture/proc/check_combustability(obj/effect/decal/cleanable/liquid_fu
if(oxygen && (toxins || fuel || liquid))
if(liquid)
return 1
if (toxins >= 0.1)
if(QUANTIZE(toxins * vsc.fire_consuption_rate) >= 0.1)
return 1
if(fuel && fuel.moles >= 0.1)
if(fuel && QUANTIZE(fuel.moles * vsc.fire_consuption_rate) >= 0.1)
return 1
return 0
+11 -11
View File
@@ -1473,19 +1473,19 @@ datum
if (egg.grown)
egg.Hatch()*/
if((!O) || (!volume)) return 0
// var/turf/the_turf = get_turf(O)
// var/datum/gas_mixture/napalm = new
// var/datum/gas/volatile_fuel/fuel = new
// fuel.moles = 5
// napalm.trace_gases += fuel
// the_turf.assume_air(napalm)
var/turf/the_turf = get_turf(O)
var/datum/gas_mixture/napalm = new
var/datum/gas/volatile_fuel/fuel = new
fuel.moles = volume
napalm.trace_gases += fuel
the_turf.assume_air(napalm)
reaction_turf(var/turf/T, var/volume)
src = null
// var/datum/gas_mixture/napalm = new
// var/datum/gas/volatile_fuel/fuel = new
// fuel.moles = 5
// napalm.trace_gases += fuel
// T.assume_air(napalm)
var/datum/gas_mixture/napalm = new
var/datum/gas/volatile_fuel/fuel = new
fuel.moles = volume
napalm.trace_gases += fuel
T.assume_air(napalm)
return
reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with plasma is stronger than fuel!
if(!istype(M, /mob/living))
+7 -7
View File
@@ -421,15 +421,15 @@ datum
var/turf/location = get_turf(holder.my_atom.loc)
for(var/turf/simulated/floor/target_tile in range(0,location))
// var/datum/gas_mixture/napalm = new
// var/datum/gas/volatile_fuel/fuel = new
// fuel.moles = created_volume
// napalm.trace_gases += fuel
var/datum/gas_mixture/napalm = new
var/datum/gas/volatile_fuel/fuel = new
fuel.moles = created_volume
napalm.trace_gases += fuel
// napalm.temperature = 400+T0C
// napalm.update_values()
napalm.temperature = 400+T0C
napalm.update_values()
// target_tile.assume_air(napalm)
target_tile.assume_air(napalm)
spawn (0) target_tile.hotspot_expose(700, 400)
holder.del_reagent("napalm")
return