mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-29 23:17:02 +01:00
first-we-burn-away-the-world-that-was
This commit is contained in:
@@ -85,10 +85,6 @@
|
||||
icon_state = "cobweb1"
|
||||
burntime = 1
|
||||
|
||||
/obj/effect/decal/cleanable/cobweb/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
|
||||
..()
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/decal/cleanable/molten_object
|
||||
name = "gooey grey mass"
|
||||
desc = "It looks like a melted... something."
|
||||
|
||||
@@ -48,4 +48,10 @@
|
||||
if(reagents)
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
R.on_ex_act()
|
||||
..()
|
||||
..()
|
||||
|
||||
/obj/effect/decal/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
|
||||
if(reagents)
|
||||
reagents.temperature_reagents(exposed_temperature)
|
||||
if(!(resistance_flags & FIRE_PROOF)) //non fire proof decal or being burned by lava
|
||||
qdel(src)
|
||||
@@ -211,6 +211,13 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
msg += "*--------*"
|
||||
to_chat(user, msg)
|
||||
|
||||
/obj/item/burn()
|
||||
if(!QDELETED(src))
|
||||
var/turf/T = get_turf(src)
|
||||
var/obj/effect/decal/cleanable/ash/A = new(T)
|
||||
A.desc += "\nLooks like this used to be \an [name] some time ago."
|
||||
..()
|
||||
|
||||
/obj/item/afterattack(atom/target, mob/user, proximity, params)
|
||||
SEND_SIGNAL(src, COMSIG_ITEM_AFTERATTACK, target, user, proximity, params)
|
||||
..()
|
||||
|
||||
@@ -52,9 +52,9 @@
|
||||
|
||||
|
||||
/obj/item/candle/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
|
||||
..()
|
||||
if(!lit)
|
||||
light() //honk
|
||||
return ..()
|
||||
|
||||
/obj/item/candle/proc/light(show_message)
|
||||
if(!lit)
|
||||
|
||||
@@ -317,7 +317,7 @@
|
||||
return 1
|
||||
|
||||
//Call this proc to handle the removal of an item from the storage item. The item will be moved to the atom sent as new_target
|
||||
/obj/item/storage/proc/remove_from_storage(obj/item/W as obj, atom/new_location, burn = 0)
|
||||
/obj/item/storage/proc/remove_from_storage(obj/item/W as obj, atom/new_location)
|
||||
if(!istype(W)) return 0
|
||||
|
||||
if(istype(src, /obj/item/storage/fancy))
|
||||
@@ -351,17 +351,19 @@
|
||||
W.on_exit_storage(src)
|
||||
update_icon()
|
||||
W.mouse_opacity = initial(W.mouse_opacity)
|
||||
if(burn)
|
||||
W.fire_act()
|
||||
return 1
|
||||
|
||||
/obj/item/storage/Exited(atom/A, loc)
|
||||
remove_from_storage(A, loc) //worry not, comrade; this only gets called once
|
||||
..()
|
||||
|
||||
/obj/item/storage/empty_object_contents(burn, loc)
|
||||
for(var/obj/item/Item in contents)
|
||||
remove_from_storage(Item, loc, burn)
|
||||
/obj/item/storage/deconstruct(disassembled = TRUE)
|
||||
var/drop_loc = loc
|
||||
if(ismob(loc))
|
||||
drop_loc = get_turf(src)
|
||||
for(var/obj/item/I in contents)
|
||||
remove_from_storage(I, drop_loc)
|
||||
qdel(src)
|
||||
|
||||
//This proc is called when you want to place an item into the storage item.
|
||||
/obj/item/storage/attackby(obj/item/I, mob/user, params)
|
||||
|
||||
@@ -161,26 +161,28 @@
|
||||
//// FIRE
|
||||
|
||||
/obj/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
|
||||
if(isturf(loc))
|
||||
var/turf/T = loc
|
||||
if(T.intact && level == 1) //fire can't damage things hidden below the floor.
|
||||
return
|
||||
..()
|
||||
if(!burn_state)
|
||||
burn_state = ON_FIRE
|
||||
if(exposed_temperature && !(resistance_flags & FIRE_PROOF))
|
||||
take_damage(Clamp(0.02 * exposed_temperature, 0, 20), BURN, "fire", 0)
|
||||
if(!(resistance_flags & ON_FIRE) && (resistance_flags & FLAMMABLE) && !(resistance_flags & FIRE_PROOF))
|
||||
resistance_flags |= ON_FIRE
|
||||
SSfires.processing[src] = src
|
||||
burn_world_time = world.time + burntime*rand(10,20)
|
||||
if(global_overlay)
|
||||
overlays += fire_overlay
|
||||
return TRUE
|
||||
add_overlay(fire_overlay, TRUE)
|
||||
return 1
|
||||
|
||||
/obj/proc/burn()
|
||||
empty_object_contents(1, loc)
|
||||
var/obj/effect/decal/cleanable/ash/A = new(loc)
|
||||
A.desc = "Looks like this used to be a [name] some time ago."
|
||||
SSfires.processing -= src
|
||||
qdel(src)
|
||||
if(resistance_flags & ON_FIRE)
|
||||
SSfires.processing -= src
|
||||
deconstruct(FALSE)
|
||||
|
||||
/obj/proc/extinguish()
|
||||
if(burn_state == ON_FIRE)
|
||||
burn_state = FLAMMABLE
|
||||
overlays -= fire_overlay
|
||||
if(resistance_flags & ON_FIRE)
|
||||
resistance_flags &= ~ON_FIRE
|
||||
cut_overlay(fire_overlay, TRUE)
|
||||
SSfires.processing -= src
|
||||
|
||||
/obj/proc/tesla_act(power)
|
||||
|
||||
@@ -21,9 +21,6 @@
|
||||
|
||||
var/Mtoollink = 0 // variable to decide if an object should show the multitool menu linking menu, not all objects use it
|
||||
|
||||
var/burn_state = FIRE_PROOF // LAVA_PROOF | FIRE_PROOF | FLAMMABLE | ON_FIRE
|
||||
var/burntime = 10 //How long it takes to burn to ashes, in seconds
|
||||
var/burn_world_time //What world time the object will burn up completely
|
||||
var/being_shocked = 0
|
||||
var/speed_process = FALSE
|
||||
|
||||
@@ -284,12 +281,6 @@ a {
|
||||
/obj/proc/CanAStarPass()
|
||||
. = !density
|
||||
|
||||
/obj/proc/empty_object_contents(burn = 0, new_loc = loc)
|
||||
for(var/obj/item/Item in contents) //Empty out the contents
|
||||
Item.forceMove(new_loc)
|
||||
if(burn)
|
||||
Item.fire_act() //Set them on fire, too
|
||||
|
||||
/obj/proc/on_mob_move(dir, mob/user)
|
||||
return
|
||||
|
||||
|
||||
@@ -262,8 +262,9 @@ LINEN BINS
|
||||
|
||||
|
||||
/obj/structure/bedsheetbin/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
|
||||
if(!amount)
|
||||
return
|
||||
if(amount)
|
||||
amount = 0
|
||||
update_icon()
|
||||
..()
|
||||
|
||||
/obj/structure/bedsheetbin/burn()
|
||||
|
||||
Reference in New Issue
Block a user