mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
Shit catches on fire now
This commit is contained in:
@@ -9,8 +9,26 @@ Fill rest with super hot gas from separated canisters, they should be about 125C
|
|||||||
Attach to transfer valve and open. BOOM.
|
Attach to transfer valve and open. BOOM.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
/atom
|
||||||
|
var/autoignition_temperature = 0 // In Kelvin. 0 = Not flammable
|
||||||
|
var/on_fire=0
|
||||||
|
var/fire_dmi = 'icons/effects/fire.dmi'
|
||||||
|
var/fire_sprite = "fire"
|
||||||
|
var/ashtype = /obj/effect/decal/cleanable/ash
|
||||||
|
|
||||||
|
/atom/proc/ignite(var/temperature)
|
||||||
|
on_fire=1
|
||||||
|
visible_message("\The [src] bursts into flame!")
|
||||||
|
overlays += image(fire_dmi,fire_sprite)
|
||||||
|
spawn(rand(3,10) SECONDS)
|
||||||
|
if(!on_fire)
|
||||||
|
return
|
||||||
|
new ashtype(src.loc)
|
||||||
|
qdel(src)
|
||||||
|
|
||||||
/atom/proc/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
/atom/proc/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||||
|
if(autoignition_temperature && !on_fire && exposed_temperature > autoignition_temperature)
|
||||||
|
ignite(exposed_temperature)
|
||||||
|
|
||||||
turf/proc/hotspot_expose(exposed_temperature, exposed_volume, soh = 0)
|
turf/proc/hotspot_expose(exposed_temperature, exposed_volume, soh = 0)
|
||||||
|
|
||||||
|
|||||||
@@ -225,13 +225,10 @@
|
|||||||
icon = 'icons/obj/doors/Doorplasma.dmi'
|
icon = 'icons/obj/doors/Doorplasma.dmi'
|
||||||
mineral = "plasma"
|
mineral = "plasma"
|
||||||
|
|
||||||
/obj/machinery/door/airlock/plasma/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
autoignition_temperature = 300
|
||||||
if(exposed_temperature > 300)
|
|
||||||
PlasmaBurn(exposed_temperature)
|
|
||||||
|
|
||||||
/obj/machinery/door/airlock/plasma/proc/ignite(exposed_temperature)
|
/obj/machinery/door/airlock/plasma/ignite(temperature)
|
||||||
if(exposed_temperature > 300)
|
PlasmaBurn(temperature)
|
||||||
PlasmaBurn(exposed_temperature)
|
|
||||||
|
|
||||||
/obj/machinery/door/airlock/plasma/proc/PlasmaBurn(temperature)
|
/obj/machinery/door/airlock/plasma/proc/PlasmaBurn(temperature)
|
||||||
for(var/turf/simulated/floor/target_tile in range(2,loc))
|
for(var/turf/simulated/floor/target_tile in range(2,loc))
|
||||||
|
|||||||
@@ -122,11 +122,11 @@
|
|||||||
|
|
||||||
/obj/machinery/sparker/attack_ai()
|
/obj/machinery/sparker/attack_ai()
|
||||||
if (src.anchored)
|
if (src.anchored)
|
||||||
return src.ignite()
|
return src.spark()
|
||||||
else
|
else
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/machinery/sparker/proc/ignite()
|
/obj/machinery/sparker/proc/spark()
|
||||||
if (!(powered()))
|
if (!(powered()))
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -149,7 +149,7 @@
|
|||||||
if(stat & (BROKEN|NOPOWER))
|
if(stat & (BROKEN|NOPOWER))
|
||||||
..(severity)
|
..(severity)
|
||||||
return
|
return
|
||||||
ignite()
|
spark()
|
||||||
..(severity)
|
..(severity)
|
||||||
|
|
||||||
/obj/machinery/ignition_switch/attack_ai(mob/user as mob)
|
/obj/machinery/ignition_switch/attack_ai(mob/user as mob)
|
||||||
@@ -177,7 +177,7 @@
|
|||||||
for(var/obj/machinery/sparker/M in world)
|
for(var/obj/machinery/sparker/M in world)
|
||||||
if (M.id_tag == src.id_tag)
|
if (M.id_tag == src.id_tag)
|
||||||
spawn( 0 )
|
spawn( 0 )
|
||||||
M.ignite()
|
M.spark()
|
||||||
|
|
||||||
for(var/obj/machinery/igniter/M in world)
|
for(var/obj/machinery/igniter/M in world)
|
||||||
if(M.id_tag == src.id_tag)
|
if(M.id_tag == src.id_tag)
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
var/mob/affecting = null
|
var/mob/affecting = null
|
||||||
var/deity_name = "Christ"
|
var/deity_name = "Christ"
|
||||||
|
|
||||||
|
autoignition_temperature = 522 // Kelvin
|
||||||
|
|
||||||
suicide_act(mob/user)
|
suicide_act(mob/user)
|
||||||
viewers(user) << "\red <b>[user] is farting lightly on the [src.name]! It looks like \he's trying to commit suicide!</b>"
|
viewers(user) << "\red <b>[user] is farting lightly on the [src.name]! It looks like \he's trying to commit suicide!</b>"
|
||||||
return (user.death(1))
|
return (user.death(1))
|
||||||
@@ -19,6 +21,8 @@
|
|||||||
desc = "To be applied to the head repeatedly."
|
desc = "To be applied to the head repeatedly."
|
||||||
icon_state ="bible"
|
icon_state ="bible"
|
||||||
|
|
||||||
|
autoignition_temperature = 0 // Not actually paper
|
||||||
|
|
||||||
/obj/item/weapon/storage/bible/booze/New()
|
/obj/item/weapon/storage/bible/booze/New()
|
||||||
. = ..()
|
. = ..()
|
||||||
new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
|
new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
|
||||||
|
|||||||
@@ -26,6 +26,8 @@
|
|||||||
item_state = "syringe_kit"
|
item_state = "syringe_kit"
|
||||||
foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
|
foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
|
||||||
|
|
||||||
|
autoignition_temperature = 522 // Kelvin
|
||||||
|
|
||||||
/obj/item/weapon/storage/box/large
|
/obj/item/weapon/storage/box/large
|
||||||
name = "large box"
|
name = "large box"
|
||||||
desc = "You could build a fort with this."
|
desc = "You could build a fort with this."
|
||||||
@@ -37,7 +39,9 @@
|
|||||||
storage_slots = 21
|
storage_slots = 21
|
||||||
max_combined_w_class = 42 // 21*2
|
max_combined_w_class = 42 // 21*2
|
||||||
|
|
||||||
/obj/item/weapon/storage/box/surveillance/
|
autoignition_temperature = 530 // Kelvin
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/box/surveillance
|
||||||
name = "\improper DromedaryCo packet"
|
name = "\improper DromedaryCo packet"
|
||||||
desc = "A packet of six imported DromedaryCo cancer sticks. A label on the packaging reads, \"Wouldn't a slow death make a change?\""
|
desc = "A packet of six imported DromedaryCo cancer sticks. A label on the packaging reads, \"Wouldn't a slow death make a change?\""
|
||||||
icon = 'icons/obj/cigarettes.dmi'
|
icon = 'icons/obj/cigarettes.dmi'
|
||||||
@@ -52,7 +56,7 @@
|
|||||||
for(var/i = 1 to 5)
|
for(var/i = 1 to 5)
|
||||||
new /obj/item/device/camera_bug(src)
|
new /obj/item/device/camera_bug(src)
|
||||||
|
|
||||||
/obj/item/weapon/storage/box/survival/
|
/obj/item/weapon/storage/box/survival
|
||||||
New()
|
New()
|
||||||
..()
|
..()
|
||||||
contents = list()
|
contents = list()
|
||||||
|
|||||||
@@ -118,7 +118,7 @@
|
|||||||
if(exposed_temperature > 300)
|
if(exposed_temperature > 300)
|
||||||
PlasmaBurn(exposed_temperature)
|
PlasmaBurn(exposed_temperature)
|
||||||
|
|
||||||
/turf/simulated/wall/mineral/plasma/proc/ignite(exposed_temperature)
|
/turf/simulated/wall/mineral/plasma/ignite(exposed_temperature)
|
||||||
if(exposed_temperature > 300)
|
if(exposed_temperature > 300)
|
||||||
PlasmaBurn(exposed_temperature)
|
PlasmaBurn(exposed_temperature)
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
if(!src)
|
if(!src)
|
||||||
return
|
return
|
||||||
if(status)
|
if(status)
|
||||||
bombtank.ignite() //if its not a dud, boom (or not boom if you made shitty mix) the ignite proc is below, in this file
|
bombtank.detonate() //if its not a dud, boom (or not boom if you made shitty mix) the ignite proc is below, in this file
|
||||||
else
|
else
|
||||||
bombtank.release()
|
bombtank.release()
|
||||||
|
|
||||||
@@ -107,7 +107,7 @@
|
|||||||
R.update_icon()
|
R.update_icon()
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/item/weapon/tank/proc/ignite() //This happens when a bomb is told to explode
|
/obj/item/weapon/tank/proc/detonate() //This happens when a bomb is told to explode
|
||||||
var/fuel_moles = air_contents.toxins + air_contents.oxygen/6
|
var/fuel_moles = air_contents.toxins + air_contents.oxygen/6
|
||||||
var/strength = 1
|
var/strength = 1
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,8 @@
|
|||||||
opacity = 1
|
opacity = 1
|
||||||
var/health = 50
|
var/health = 50
|
||||||
|
|
||||||
|
autoignition_temperature = AUTOIGNITION_WOOD
|
||||||
|
|
||||||
/obj/structure/bookcase/initialize()
|
/obj/structure/bookcase/initialize()
|
||||||
for(var/obj/item/I in loc)
|
for(var/obj/item/I in loc)
|
||||||
if(istype(I, /obj/item/weapon/book))
|
if(istype(I, /obj/item/weapon/book))
|
||||||
@@ -149,6 +151,9 @@
|
|||||||
w_class = 3 //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever)
|
w_class = 3 //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever)
|
||||||
flags = FPRINT | TABLEPASS
|
flags = FPRINT | TABLEPASS
|
||||||
attack_verb = list("bashed", "whacked", "educated")
|
attack_verb = list("bashed", "whacked", "educated")
|
||||||
|
|
||||||
|
autoignition_temperature = AUTOIGNITION_PAPER
|
||||||
|
|
||||||
var/dat // Actual page content
|
var/dat // Actual page content
|
||||||
var/due_date = 0 // Game time in 1/10th seconds
|
var/due_date = 0 // Game time in 1/10th seconds
|
||||||
var/author // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
|
var/author // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
var/tod = null // Time of death
|
var/tod = null // Time of death
|
||||||
var/update_slimes = 1
|
var/update_slimes = 1
|
||||||
|
|
||||||
var/on_fire = 0 //The "Are we on fire?" var
|
on_fire = 0 //The "Are we on fire?" var
|
||||||
var/fire_stacks = 0 //Tracks how many stacks of fire we have on, max is usually 20
|
var/fire_stacks = 0 //Tracks how many stacks of fire we have on, max is usually 20
|
||||||
|
|
||||||
var/specialsauce = 0 //Has this person consumed enough special sauce? IF so they're a ticking time bomb of death.
|
var/specialsauce = 0 //Has this person consumed enough special sauce? IF so they're a ticking time bomb of death.
|
||||||
|
|||||||
@@ -6,6 +6,8 @@
|
|||||||
w_class = 2
|
w_class = 2
|
||||||
pressure_resistance = 2
|
pressure_resistance = 2
|
||||||
|
|
||||||
|
autoignition_temperature = 522 // Kelvin
|
||||||
|
|
||||||
/obj/item/weapon/folder/blue
|
/obj/item/weapon/folder/blue
|
||||||
desc = "A blue folder."
|
desc = "A blue folder."
|
||||||
icon_state = "folder_blue"
|
icon_state = "folder_blue"
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
slot_flags = SLOT_HEAD
|
slot_flags = SLOT_HEAD
|
||||||
body_parts_covered = HEAD
|
body_parts_covered = HEAD
|
||||||
attack_verb = list("slapped")
|
attack_verb = list("slapped")
|
||||||
|
autoignition_temperature = AUTOIGNITION_PAPER
|
||||||
|
|
||||||
var/info //What's actually written on the paper.
|
var/info //What's actually written on the paper.
|
||||||
var/info_links //A different version of the paper which includes html links at fields and EOF
|
var/info_links //A different version of the paper which includes html links at fields and EOF
|
||||||
|
|||||||
@@ -11,6 +11,19 @@
|
|||||||
var/amount = 30 //How much paper is in the bin.
|
var/amount = 30 //How much paper is in the bin.
|
||||||
var/list/papers = new/list() //List of papers put in the bin for reference.
|
var/list/papers = new/list() //List of papers put in the bin for reference.
|
||||||
|
|
||||||
|
autoignition_temperature = 519.15 // Kelvin
|
||||||
|
|
||||||
|
/obj/item/weapon/paper_bin/ignite(var/temperature)
|
||||||
|
on_fire=1
|
||||||
|
visible_message("\The [src]'s paper bursts into flame!")
|
||||||
|
overlays += fire_sprite
|
||||||
|
spawn(rand(3,10) SECONDS)
|
||||||
|
if(!on_fire)
|
||||||
|
return
|
||||||
|
new ashtype(src.loc)
|
||||||
|
papers=0
|
||||||
|
amount=0
|
||||||
|
update_icon()
|
||||||
|
|
||||||
/obj/item/weapon/paper_bin/MouseDrop(mob/user as mob)
|
/obj/item/weapon/paper_bin/MouseDrop(mob/user as mob)
|
||||||
if((user == usr && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr))))))
|
if((user == usr && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr))))))
|
||||||
|
|||||||
@@ -31,6 +31,8 @@
|
|||||||
var/scribble //Scribble on the back.
|
var/scribble //Scribble on the back.
|
||||||
var/blueprints = 0 //Does it include the blueprints?
|
var/blueprints = 0 //Does it include the blueprints?
|
||||||
|
|
||||||
|
autoignition_temperature = 530 // Kelvin
|
||||||
|
|
||||||
|
|
||||||
/obj/item/weapon/photo/attack_self(mob/user)
|
/obj/item/weapon/photo/attack_self(mob/user)
|
||||||
examine()
|
examine()
|
||||||
|
|||||||
@@ -867,4 +867,7 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse
|
|||||||
// multitool_topic() shit
|
// multitool_topic() shit
|
||||||
#define MT_ERROR -1
|
#define MT_ERROR -1
|
||||||
#define MT_UPDATE 1
|
#define MT_UPDATE 1
|
||||||
#define MT_REINIT 2
|
#define MT_REINIT 2
|
||||||
|
|
||||||
|
#define AUTOIGNITION_WOOD 573.15
|
||||||
|
#define AUTOIGNITION_PAPER 519.15
|
||||||
Reference in New Issue
Block a user