first-we-burn-away-the-world-that-was

This commit is contained in:
Fox McCloud
2019-09-09 14:48:29 -04:00
parent b7f0a1d11b
commit d19961378d
16 changed files with 59 additions and 58 deletions
@@ -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."
+7 -1
View File
@@ -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)
+7
View File
@@ -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)
..()
+1 -1
View File
@@ -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)
+16 -14
View File
@@ -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)
-9
View File
@@ -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
+3 -2
View File
@@ -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()