mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-19 10:59:39 +01:00
Adds turf fires (ported from Baystation, which ported them from Shiptest), which are now used instead of ZAS fires for fuel decals and flamethrowers. They also supplement ZAS fires in especially bad atmos fires. This makes flamethrowers and related objects more suitable for AOE denial, rather than cooking the room (including yourself). They still do the latter, but less so than a gaseous fire. To make flamethrowers actually useful against them, simple mobs now take brute damage when on fire. ### Asset Licenses The following assets that **have not** been created by myself are included in this PR: | Path | Original Author | License | | --- | --- | --- | | sound/weapons/flamethrower/flamethrower1.ogg | [rye-rice](https://github.com/rye-rice) (Shiptest) | CC-BY-SA 3.0 | | sound/weapons/flamethrower/flamethrower2.ogg | [rye-rice](https://github.com/rye-rice) (Shiptest) | CC-BY-SA 3.0 | | sound/weapons/flamethrower/flamethrower3.ogg | [rye-rice](https://github.com/rye-rice) (Shiptest) | CC-BY-SA 3.0 | | sound/weapons/flamethrower/flamethrower_empty.ogg | [rye-rice](https://github.com/rye-rice) (Shiptest) | CC-BY-SA 3.0 | | icons/effects/particles/smoke.dmi | [rye-rice](https://github.com/shiptest-ss13/Shiptest/commits?author=rye-rice) (Shiptest) | CC-BY-SA 3.0 | | icons/effects/turf_fire.dmi | CM Dev (cmss13) | CC-BY-SA 3.0 |
133 lines
3.2 KiB
Plaintext
133 lines
3.2 KiB
Plaintext
/turf/simulated/floor
|
|
name = "plating"
|
|
desc = "The naked hull."
|
|
icon = 'icons/turf/flooring/plating.dmi'
|
|
icon_state = "plating"
|
|
is_outside = OUTSIDE_AREA
|
|
|
|
explosion_resistance = 1
|
|
|
|
// Damage to flooring.
|
|
var/broken
|
|
var/burnt
|
|
var/broken_overlay
|
|
var/burned_overlay
|
|
|
|
// Flooring data.
|
|
var/flooring_override
|
|
var/initial_flooring
|
|
var/singleton/flooring/flooring
|
|
var/mineral = DEFAULT_WALL_MATERIAL
|
|
|
|
thermal_conductivity = 0.040
|
|
heat_capacity = 10000
|
|
var/lava = 0
|
|
|
|
/// If the turf should generate details. Default: TRUE
|
|
var/has_edge_icon = TRUE
|
|
|
|
/turf/simulated/floor/disassembly_hints(mob/user, distance, is_adjacent)
|
|
. += ..()
|
|
if(flooring)
|
|
var/list/can_remove_with = list()
|
|
if(flooring.flags & TURF_REMOVE_CROWBAR)
|
|
can_remove_with += "crowbars"
|
|
if(flooring.flags & TURF_IS_FRAGILE)
|
|
can_remove_with += SPAN_WARNING("crowbars")
|
|
if(flooring.flags & TURF_REMOVE_SCREWDRIVER)
|
|
can_remove_with += "screwdrivers"
|
|
if(flooring.flags & TURF_REMOVE_SHOVEL)
|
|
can_remove_with += "shovels"
|
|
if(flooring.flags & TURF_REMOVE_WRENCH)
|
|
can_remove_with += "wrenches"
|
|
if(flooring.flags & TURF_REMOVE_WELDER)
|
|
can_remove_with += "welding tools"
|
|
|
|
if(!length(can_remove_with))
|
|
can_remove_with = "nothing!"
|
|
|
|
. += SPAN_NOTICE("\The [src] can be removed with: [english_list(can_remove_with)].")
|
|
|
|
/turf/simulated/floor/is_plating()
|
|
return !flooring
|
|
|
|
/turf/simulated/floor/Initialize(mapload, var/floortype)
|
|
. = ..()
|
|
if(!floortype && initial_flooring)
|
|
floortype = initial_flooring
|
|
if(floortype)
|
|
set_flooring(GET_SINGLETON(floortype), mapload)
|
|
|
|
/turf/simulated/floor/proc/set_flooring(singleton/flooring/newflooring, mapload)
|
|
if (!mapload)
|
|
make_plating(defer_icon_update = 1)
|
|
flooring = newflooring
|
|
if (mapload)
|
|
queue_icon_update()
|
|
else
|
|
queue_icon_update(1)
|
|
levelupdate()
|
|
|
|
//This proc will set floor_type to null and the update_icon() proc will then change the icon_state of the turf
|
|
//This proc auto corrects the grass tiles' siding.
|
|
/turf/simulated/floor/proc/make_plating(var/place_product, var/defer_icon_update)
|
|
|
|
ClearOverlays()
|
|
|
|
if(islist(decals))
|
|
decals.Cut()
|
|
decals = null
|
|
|
|
name = base_name
|
|
desc = base_desc
|
|
icon = base_icon
|
|
icon_state = base_icon_state
|
|
color = base_color
|
|
|
|
if(flooring)
|
|
flooring.on_remove()
|
|
if(flooring.build_type && place_product)
|
|
new flooring.build_type(src)
|
|
flooring = null
|
|
|
|
broken = null
|
|
burnt = null
|
|
flooring_override = null
|
|
levelupdate()
|
|
|
|
// Set light to zero, so glowing turfs cease to glow if turned into plating.
|
|
set_light(0)
|
|
// Check if this still needs to have starlight - if it does, it'll be given back its starlight.
|
|
update_starlight()
|
|
|
|
if(!defer_icon_update)
|
|
update_icon(1)
|
|
|
|
/turf/simulated/floor/levelupdate()
|
|
for(var/obj/O in src)
|
|
O.hide(O.hides_under_flooring() && src.flooring)
|
|
if(flooring)
|
|
layer = TURF_LAYER
|
|
else
|
|
layer = PLATING_LAYER
|
|
|
|
/turf/simulated/floor/is_floor()
|
|
return TRUE
|
|
|
|
/turf/simulated/floor/reset_color()
|
|
if(flooring)
|
|
color = flooring.color
|
|
else
|
|
..()
|
|
|
|
/turf/simulated/floor/shuttle_ceiling
|
|
name = "hull plating"
|
|
icon = 'icons/turf/flooring/tiles.dmi'
|
|
icon_state = "reinforced_light"
|
|
|
|
/turf/simulated/IgniteTurf(power, fire_color)
|
|
if(turf_fire)
|
|
turf_fire.AddPower(power)
|
|
return
|
|
new /obj/turf_fire(src, power, fire_color)
|