More Fire Fixes (#36514)

* fire fixes

* shelter

* flow improvement
This commit is contained in:
west3436
2024-05-16 06:54:39 -04:00
committed by GitHub
parent 2ff6afea12
commit 6aa40b3a69
6 changed files with 14 additions and 16 deletions

View File

@@ -439,7 +439,7 @@ var/global/list/image/charred_overlays = list()
* * soh - Unused.
* * surfaces - Whether or not the hotspot should ignite any atoms in the turf in addition to gasses (Boolean).
*/
/turf/proc/hotspot_expose(var/exposed_temperature, var/exposed_volume, var/soh = 0, var/surfaces=0)
/turf/proc/hotspot_expose(var/exposed_temperature, var/exposed_volume = CELL_VOLUME, var/soh = 0, var/surfaces=0)
return 0
/turf/simulated/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
@@ -642,7 +642,7 @@ var/global/list/image/charred_overlays = list()
continue
//Spread the fire.
if(!(locate(/obj/effect/fire) in enemy_tile))
if(prob(round(burn_duration/5) + ZAS_fire_spread_chance+100*(firelevel/ZAS_firelevel_multiplier)) && S.Cross(null, enemy_tile, 0,0) && enemy_tile.Cross(null, S, 0,0))
if(prob(clamp(50*round(burn_duration/5) + ZAS_fire_spread_chance + 25*firelevel,0,100)) && S.Cross(null, enemy_tile, 0,0) && enemy_tile.Cross(null, S, 0,0))
new/obj/effect/fire(enemy_tile)
//seperate part of the present gas
//this is done to prevent the fire burning all gases in a single pass

View File

@@ -119,6 +119,8 @@ Class Procs:
layer = MACHINERY_LAYER
flammable = FALSE
pass_flags_self = PASSMACHINE
penetration_dampening = 5
var/stat = 0
@@ -215,6 +217,11 @@ Class Procs:
..()
/obj/machinery/Cross(atom/movable/mover, turf/target, height=1.5, air_group = 0)
if(istype(mover) && mover.checkpass(pass_flags_self))
return TRUE
return ..()
/obj/machinery/projectile_check()
return PROJREACT_OBJS

View File

@@ -11,8 +11,9 @@ would spawn and follow the beaker, even if it is carried or thrown.
icon = 'icons/effects/effects.dmi'
mouse_opacity = 0
flags = 0
density = 0
w_type = NOT_RECYCLABLE
pass_flags = PASSTABLE|PASSGRILLE|PASSMACHINE|PASSRAILING
pass_flags = PASSTABLE | PASSGRILLE | PASSMACHINE | PASSGIRDER | PASSRAILING
/obj/effect/dissolvable()
return 0
@@ -28,25 +29,14 @@ would spawn and follow the beaker, even if it is carried or thrown.
/obj/effect/water/New()
. = ..()
//var/turf/T = src.loc
//if (istype(T, /turf))
// T.firelevel = 0 //TODO: FIX
spawn(70)
qdel(src)
/obj/effect/water/Destroy()
//var/turf/T = src.loc
//if (istype(T, /turf))
// T.firelevel = 0 //TODO: FIX
..()
/obj/effect/water/Move(NewLoc, Dir = 0, step_x = 0, step_y = 0, glide_size_override = 0)
//var/turf/T = src.loc
//if (istype(T, /turf))
// T.firelevel = 0 //TODO: FIX
if (--life < 1)
//SN src = null
qdel(src)

View File

@@ -130,7 +130,7 @@
P.red_portal = null
P.sync_portals()
if (marke_sparks)
spark(loc, 5)
spark(loc, 5, surfaceburn = FALSE)
..()
/obj/effect/portal/cultify()

View File

@@ -3,6 +3,7 @@
w_class = W_CLASS_MEDIUM
icon = 'icons/obj/inflatable.dmi'
w_type = RECYK_PLASTIC
flammable = FALSE
melt_temperature = MELTPOINT_PLASTIC
starting_materials = list(MAT_PLASTIC = 1.5*CC_PER_SHEET_MISC)

View File

@@ -315,7 +315,7 @@
var/hotspot = (locate(/obj/effect/fire) in T)
if(hotspot)
var/datum/gas_mixture/G = T.return_air()
G.temperature = max(G.temperature - rand(1,5),T20C) //water extinguishers can only cool to 20C
G.temperature = max(G.temperature - (0.10 * rand(1,5)),T20C) //water extinguishers can only cool to 20C
qdel(hotspot)
/datum/reagent/water/reaction_obj(var/obj/O, var/volume)