mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-25 04:57:12 +01:00
Merge pull request #5251 from Fox-McCloud/fire-system
Implements Fire System
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
|
||||
var/obj/machinery/atmospherics/unary/heat_exchanger/partner = null
|
||||
var/update_cycle
|
||||
burn_state = LAVA_PROOF
|
||||
|
||||
/obj/machinery/atmospherics/unary/heat_exchanger/update_icon()
|
||||
if(node)
|
||||
|
||||
@@ -273,3 +273,9 @@
|
||||
// Used by radios to indicate that they have sent a message via something other than subspace
|
||||
#define RADIO_CONNECTION_FAIL 0
|
||||
#define RADIO_CONNECTION_NON_SUBSPACE 1
|
||||
|
||||
//Fire stuff, for burn_state
|
||||
#define LAVA_PROOF -2
|
||||
#define FIRE_PROOF -1
|
||||
#define FLAMMABLE 0
|
||||
#define ON_FIRE 1
|
||||
@@ -0,0 +1,23 @@
|
||||
var/global/datum/controller/process/fire/fire_master
|
||||
|
||||
/datum/controller/process/fire
|
||||
var/list/burning = list()
|
||||
|
||||
/datum/controller/process/fire/setup()
|
||||
name = "fire"
|
||||
schedule_interval = 20 //every 2 seconds
|
||||
fire_master = src
|
||||
log_startup_progress("Fire process starting up.")
|
||||
|
||||
/datum/controller/process/fire/statProcess()
|
||||
..()
|
||||
stat(null, "[burning.len] burning objects")
|
||||
|
||||
/datum/controller/process/fire/doWork()
|
||||
for(var/obj/burningobj in burning)
|
||||
if(burningobj.burn_state == ON_FIRE)
|
||||
if(burningobj.burn_world_time < world.time)
|
||||
burningobj.burn()
|
||||
SCHECK
|
||||
else
|
||||
burning.Remove(burningobj)
|
||||
@@ -98,6 +98,7 @@
|
||||
var/canmove = 1
|
||||
density = 0
|
||||
anchored = 1
|
||||
burn_state = LAVA_PROOF
|
||||
|
||||
/obj/effect/dummy/spell_jaunt/Destroy()
|
||||
// Eject contents if deleted somehow
|
||||
|
||||
@@ -159,6 +159,7 @@
|
||||
density = 0
|
||||
anchored = 1
|
||||
invisibility = 60
|
||||
burn_state = LAVA_PROOF
|
||||
|
||||
/obj/effect/dummy/slaughter/relaymove(mob/user, direction)
|
||||
forceMove(get_step(src,direction))
|
||||
|
||||
@@ -766,8 +766,8 @@ var/global/list/multiverse = list()
|
||||
var/obj/item/link = null
|
||||
var/cooldown_time = 30 //3s
|
||||
var/cooldown = 0
|
||||
|
||||
|
||||
burntime = 0
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/voodoo/attackby(obj/item/I as obj, mob/user as mob, params)
|
||||
if(target && cooldown < world.time)
|
||||
|
||||
@@ -182,6 +182,7 @@
|
||||
item_state = "eshield0"
|
||||
w_class = 3
|
||||
origin_tech = "syndicate=6;combat=5"
|
||||
burn_state = FLAMMABLE //Burnable (but the casing isn't)
|
||||
var/adminlog = null
|
||||
|
||||
/obj/item/weapon/bombcore/ex_act(severity) //Little boom can chain a big boom
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
deflect_chance = 25
|
||||
damage_absorption = list("brute"=0.5,"fire"=0.7,"bullet"=0.45,"laser"=0.6,"energy"=0.7,"bomb"=0.7)
|
||||
max_temperature = 60000
|
||||
burn_state = LAVA_PROOF
|
||||
infra_luminosity = 3
|
||||
var/zoom = 0
|
||||
var/thrusters = 0
|
||||
|
||||
@@ -68,6 +68,7 @@
|
||||
initial_icon = "firefighter"
|
||||
max_temperature = 65000
|
||||
health = 250
|
||||
burn_state = LAVA_PROOF
|
||||
lights_power = 7
|
||||
damage_absorption = list("brute"=0.6,"fire"=0.5,"bullet"=0.7,"laser"=0.7,"energy"=1,"bomb"=0.4)
|
||||
max_equip = 5 // More armor, less tools
|
||||
|
||||
@@ -49,6 +49,13 @@
|
||||
M.throw_alert("buckled", /obj/screen/alert/restrained/buckled, new_master = src)
|
||||
return 1
|
||||
|
||||
/obj/buckle_mob(mob/living/M)
|
||||
. = ..()
|
||||
if(.)
|
||||
if(burn_state == ON_FIRE) //Sets the mob on fire if you buckle them to a burning atom/movableect
|
||||
M.adjust_fire_stacks(1)
|
||||
M.IgniteMob()
|
||||
|
||||
/atom/movable/proc/unbuckle_mob()
|
||||
if(buckled_mob && buckled_mob.buckled == src && buckled_mob.can_unbuckle(usr))
|
||||
. = buckled_mob
|
||||
|
||||
@@ -84,6 +84,10 @@
|
||||
layer = 3
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "cobweb1"
|
||||
burntime = 1
|
||||
|
||||
/obj/effect/decal/cleanable/cobweb/fire_act()
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/decal/cleanable/molten_item
|
||||
name = "gooey grey mass"
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
..()
|
||||
|
||||
/obj/effect/decal/cleanable/fire_act()
|
||||
reagents.chem_temp += 30
|
||||
reagents.handle_reactions()
|
||||
if(reagents)
|
||||
reagents.chem_temp += 30
|
||||
reagents.handle_reactions()
|
||||
..()
|
||||
@@ -18,6 +18,7 @@
|
||||
var/serial_number = 0
|
||||
var/obj/structure/sign/poster/resulting_poster = null //The poster that will be created is initialised and stored through contraband/poster's constructor
|
||||
var/subtype = 0
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
|
||||
/obj/item/weapon/contraband/poster/New(turf/loc, given_serial = 0)
|
||||
|
||||
@@ -192,6 +192,22 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d
|
||||
to_chat(user, "<span class='warning'>You try to move your [temp.name], but cannot!</span>")
|
||||
return 0
|
||||
|
||||
if(burn_state == ON_FIRE)
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(istype(H))
|
||||
if(H.gloves && (H.gloves.max_heat_protection_temperature > 360))
|
||||
extinguish()
|
||||
to_chat(user, "<span class='notice'>You put out the fire on [src].</span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You burn your hand on [src]!</span>")
|
||||
var/obj/item/organ/external/affecting = H.get_organ("[user.hand ? "l" : "r" ]_arm")
|
||||
if(affecting && affecting.take_damage(0, 5)) // 5 burn damage
|
||||
H.UpdateDamageIcon()
|
||||
H.updatehealth()
|
||||
return
|
||||
else
|
||||
extinguish()
|
||||
|
||||
if(istype(src.loc, /obj/item/weapon/storage))
|
||||
//If the item is in a storage item, take it out
|
||||
var/obj/item/weapon/storage/S = src.loc
|
||||
|
||||
@@ -1,81 +1,90 @@
|
||||
/obj/item/candle
|
||||
name = "red candle"
|
||||
desc = "a candle"
|
||||
desc = "In Greek myth, Prometheus stole fire from the Gods and gave it to humankind. The jewelry he kept for himself."
|
||||
icon = 'icons/obj/candle.dmi'
|
||||
icon_state = "candle1"
|
||||
item_state = "candle1"
|
||||
w_class = 1
|
||||
|
||||
light_color = "#E09D37"
|
||||
|
||||
var/wax = 200
|
||||
var/lit = 0
|
||||
proc
|
||||
light(var/flavor_text = "\red [usr] lights the [name].")
|
||||
var/infinite = 0
|
||||
var/start_lit = 0
|
||||
light_color = "#E09D37"
|
||||
|
||||
/obj/item/candle/New()
|
||||
..()
|
||||
if(start_lit)
|
||||
// No visible message
|
||||
light(show_message = 0)
|
||||
|
||||
/obj/item/candle/update_icon()
|
||||
var/i
|
||||
if(wax>150)
|
||||
i = 1
|
||||
else if(wax>80)
|
||||
i = 2
|
||||
else i = 3
|
||||
icon_state = "candle[i][lit ? "_lit" : ""]"
|
||||
|
||||
|
||||
update_icon()
|
||||
var/i
|
||||
if(wax>150)
|
||||
i = 1
|
||||
else if(wax>80)
|
||||
i = 2
|
||||
else i = 3
|
||||
icon_state = "candle[i][lit ? "_lit" : ""]"
|
||||
/obj/item/candle/attackby(obj/item/weapon/W, mob/user, params)
|
||||
..()
|
||||
if(istype(W, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(WT.isOn()) //Badasses dont get blinded by lighting their candle with a welding tool
|
||||
light("<span class='notice'>[user] casually lights [src] with [WT], what a badass.")
|
||||
else if(istype(W, /obj/item/weapon/lighter))
|
||||
var/obj/item/weapon/lighter/L = W
|
||||
if(L.lit)
|
||||
light("<span class='notice'>After some fiddling, [user] manages to light [src] with [L].</span>")
|
||||
else if(istype(W, /obj/item/weapon/match))
|
||||
var/obj/item/weapon/match/M = W
|
||||
if(M.lit)
|
||||
light("<span class='notice'>[user] lights [src] with [M]</span>")
|
||||
else if(istype(W, /obj/item/candle))
|
||||
var/obj/item/candle/C = W
|
||||
if(C.lit)
|
||||
light("<span class='notice'>[user] tilts [C] and lights [src] with it.</span>")
|
||||
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
..()
|
||||
if(istype(W, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(WT.isOn()) //Badasses dont get blinded by lighting their candle with a welding tool
|
||||
light("\red [user] casually lights the [name] with [W], what a badass.")
|
||||
else if(istype(W, /obj/item/weapon/lighter))
|
||||
var/obj/item/weapon/lighter/L = W
|
||||
if(L.lit)
|
||||
light()
|
||||
else if(istype(W, /obj/item/weapon/match))
|
||||
var/obj/item/weapon/match/M = W
|
||||
if(M.lit)
|
||||
light()
|
||||
else if(istype(W, /obj/item/candle))
|
||||
var/obj/item/candle/C = W
|
||||
if(C.lit)
|
||||
light()
|
||||
/obj/item/candle/fire_act()
|
||||
if(!lit)
|
||||
light() //honk
|
||||
|
||||
|
||||
light(var/flavor_text = "\red [usr] lights the [name].")
|
||||
if(!src.lit)
|
||||
src.lit = 1
|
||||
//src.damtype = "fire"
|
||||
for(var/mob/O in viewers(usr, null))
|
||||
O.show_message(flavor_text, 1)
|
||||
set_light(CANDLE_LUM)
|
||||
processing_objects.Add(src)
|
||||
|
||||
|
||||
process()
|
||||
if(!lit)
|
||||
return
|
||||
wax--
|
||||
if(!wax)
|
||||
new/obj/item/trash/candle(src.loc)
|
||||
if(istype(src.loc, /mob))
|
||||
var/mob/M = src.loc
|
||||
M.unEquip(src, 1) //src is being deleted anyway
|
||||
qdel(src)
|
||||
/obj/item/candle/proc/light(show_message)
|
||||
if(!lit)
|
||||
lit = 1
|
||||
if(show_message)
|
||||
usr.visible_message(show_message)
|
||||
set_light(CANDLE_LUM)
|
||||
processing_objects.Add(src)
|
||||
update_icon()
|
||||
if(istype(loc, /turf)) //start a fire if possible
|
||||
var/turf/T = loc
|
||||
T.hotspot_expose(700, 5)
|
||||
|
||||
|
||||
attack_self(mob/user as mob)
|
||||
if(lit)
|
||||
lit = 0
|
||||
update_icon()
|
||||
set_light(0)
|
||||
/obj/item/candle/process()
|
||||
if(!lit)
|
||||
return
|
||||
if(!infinite)
|
||||
wax--
|
||||
if(!wax)
|
||||
new/obj/item/trash/candle(src.loc)
|
||||
if(istype(src.loc, /mob))
|
||||
var/mob/M = src.loc
|
||||
M.unEquip(src, 1) //src is being deleted anyway
|
||||
qdel(src)
|
||||
update_icon()
|
||||
if(isturf(loc)) //start a fire if possible
|
||||
var/turf/T = loc
|
||||
T.hotspot_expose(700, 5)
|
||||
|
||||
|
||||
/obj/item/candle/attack_self(mob/user)
|
||||
if(lit)
|
||||
user.visible_message("<span class='notice'>[user] snuffs out [src].</span>")
|
||||
lit = 0
|
||||
update_icon()
|
||||
set_light(0)
|
||||
|
||||
/obj/item/candle/eternal
|
||||
desc = "A candle. This one seems to have an odd quality about the wax."
|
||||
wax = 10000
|
||||
infinite = 1
|
||||
@@ -7,6 +7,8 @@
|
||||
icon_state = "guitar"
|
||||
item_state = "guitar"
|
||||
force = 10
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
var/datum/song/handheld/song
|
||||
hitsound = 'sound/effects/guitarsmash.ogg'
|
||||
|
||||
|
||||
@@ -42,6 +42,10 @@
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/device/taperecorder/fire_act()
|
||||
mytape.ruin() //Fires destroy the tape
|
||||
return ..()
|
||||
|
||||
/obj/item/device/taperecorder/attack_hand(mob/user)
|
||||
if(loc == user)
|
||||
if(mytape)
|
||||
@@ -253,6 +257,8 @@
|
||||
var/list/timestamp = list()
|
||||
var/ruined = 0
|
||||
|
||||
/obj/item/device/tape/fire_act()
|
||||
ruin()
|
||||
|
||||
/obj/item/device/tape/attack_self(mob/user)
|
||||
if(!ruined)
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
icon_state = "violin"
|
||||
item_state = "violin"
|
||||
force = 10
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
hitsound = 'sound/weapons/smash.ogg'
|
||||
var/datum/song/handheld/song
|
||||
|
||||
@@ -18,7 +20,7 @@
|
||||
qdel(song)
|
||||
song = null
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/device/violin/initialize()
|
||||
song.tempo = song.sanitize_tempo(song.tempo) // tick_lag isn't set when the map is loaded
|
||||
..()
|
||||
|
||||
@@ -1,77 +1,14 @@
|
||||
/obj/item/flag
|
||||
icon = 'icons/obj/flag.dmi'
|
||||
w_class = 4
|
||||
var/lit = 0
|
||||
var/burntime = 30
|
||||
burntime = 20
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/flag/fire_act(null, temperature, volume)
|
||||
if(!lit)
|
||||
Ignite()
|
||||
return
|
||||
|
||||
/obj/item/flag/proc/Ignite()
|
||||
if(lit) return
|
||||
lit = 1
|
||||
update_icons()
|
||||
processing_objects.Add(src)
|
||||
|
||||
/obj/item/flag/process()
|
||||
burntime--
|
||||
if(burntime < 1)
|
||||
processing_objects.Remove(src)
|
||||
if(istype(src.loc,/turf))
|
||||
new /obj/effect/decal/cleanable/ash(src.loc)
|
||||
new /obj/item/stack/rods(src.loc)
|
||||
qdel(src)
|
||||
return
|
||||
if(istype(src.loc,/mob/living/carbon))
|
||||
var/mob/living/carbon/C = src.loc
|
||||
var/turf/location = get_turf(C)
|
||||
new /obj/effect/decal/cleanable/ash(location)
|
||||
new /obj/item/stack/rods(location)
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/flag/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
/obj/item/flag/attackby(obj/item/weapon/W, mob/user, params)
|
||||
..()
|
||||
if(istype(W, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(WT.isOn())//Badasses dont get blinded while lighting their cig with a welding tool
|
||||
light("<span class='notice'>[user] casually lights the [name] with [W], what a badass.</span>")
|
||||
|
||||
else if(istype(W, /obj/item/weapon/lighter/zippo))
|
||||
var/obj/item/weapon/lighter/zippo/Z = W
|
||||
if(Z.lit)
|
||||
light("<span class='rose'>With a single flick of their wrist, [user] smoothly lights the [name] with their [W]. Damn they're cool.</span>")
|
||||
|
||||
else if(istype(W, /obj/item/weapon/lighter))
|
||||
var/obj/item/weapon/lighter/L = W
|
||||
if(L.lit)
|
||||
light("<span class='notice'>After some fiddling, [user] manages to light the [name] with [W].</span>")
|
||||
|
||||
else if(istype(W, /obj/item/weapon/match))
|
||||
var/obj/item/weapon/match/M = W
|
||||
if(M.lit)
|
||||
light("<span class='notice'>[user] lights the [name] with their [W].</span>")
|
||||
|
||||
else if(istype(W, /obj/item/weapon/melee/energy/sword/saber))
|
||||
var/obj/item/weapon/melee/energy/sword/saber/S = W
|
||||
if(S.active)
|
||||
light("<span class='warning'>[user] swings their [W], barely missing their nose. They light the [name] in the process.</span>")
|
||||
|
||||
else if(istype(W, /obj/item/device/assembly/igniter))
|
||||
light("<span class='notice'>[user] fiddles with [W], and manages to light the [name].</span>")
|
||||
|
||||
/obj/item/flag/proc/light(var/flavor_text = "[usr] lights the [name].")
|
||||
if(!src.lit)
|
||||
src.lit = 1
|
||||
var/turf/T = get_turf(src)
|
||||
T.visible_message(flavor_text)
|
||||
update_icons()
|
||||
processing_objects.Add(src)
|
||||
if(is_hot(W) && burn_state != ON_FIRE)
|
||||
user.visible_message("<span class='notice'>[user] lights the [name] with [W].</span>")
|
||||
fire_act()
|
||||
|
||||
/obj/item/flag/proc/update_icons()
|
||||
overlays = null
|
||||
|
||||
@@ -125,11 +125,25 @@ var/global/list/datum/stack_recipe/mime_recipes = list ( \
|
||||
origin_tech = "plasmatech=2;materials=2"
|
||||
sheettype = "plasma"
|
||||
materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT)
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 5
|
||||
|
||||
/obj/item/stack/sheet/mineral/plasma/New()
|
||||
..()
|
||||
recipes = plasma_recipes
|
||||
|
||||
/obj/item/stack/sheet/mineral/plasma/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(is_hot(W) > 300)//If the temperature of the object is over 300, then ignite
|
||||
message_admins("Plasma sheets ignited by [key_name_admin(user)](<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A>) (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[user]'>FLW</A>) in ([x],[y],[z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)",0,1)
|
||||
log_game("Plasma sheets ignited by [key_name(user)] in ([x],[y],[z])")
|
||||
fire_act()
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/stack/sheet/mineral/plasma/fire_act()
|
||||
atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, amount*10)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/stack/sheet/mineral/plastic
|
||||
name = "Plastic"
|
||||
icon_state = "sheet-plastic"
|
||||
|
||||
@@ -155,6 +155,7 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \
|
||||
singular_name = "wood plank"
|
||||
icon_state = "sheet-wood"
|
||||
origin_tech = "materials=1;biotech=1"
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/stack/sheet/wood/New(var/loc, var/amount=null)
|
||||
recipes = wood_recipes
|
||||
@@ -169,6 +170,7 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \
|
||||
singular_name = "cloth roll"
|
||||
icon_state = "sheet-cloth"
|
||||
origin_tech = "materials=2"
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/*
|
||||
* Cardboard
|
||||
@@ -193,6 +195,7 @@ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \
|
||||
singular_name = "cardboard sheet"
|
||||
icon_state = "sheet-card"
|
||||
origin_tech = "materials=1"
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/stack/sheet/cardboard/New(var/loc, var/amount=null)
|
||||
recipes = cardboard_recipes
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
icon_state = "tile_grass"
|
||||
origin_tech = "biotech=1"
|
||||
turf_type = /turf/simulated/floor/grass
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/*
|
||||
* Wood
|
||||
@@ -48,6 +49,7 @@
|
||||
desc = "an easy to fit wood floor tile"
|
||||
icon_state = "tile-wood"
|
||||
turf_type = /turf/simulated/floor/wood
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/*
|
||||
* Carpets
|
||||
@@ -58,6 +60,7 @@
|
||||
desc = "A piece of carpet. It is the same size as a floor tile"
|
||||
icon_state = "tile-carpet"
|
||||
turf_type = /turf/simulated/floor/carpet
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/*
|
||||
* Plasteel
|
||||
@@ -100,6 +103,7 @@
|
||||
desc = "A piece of carpet with a convincing star pattern."
|
||||
icon_state = "tile_space"
|
||||
turf_type = /turf/simulated/floor/fakespace
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/stack/tile/fakespace/loaded
|
||||
amount = 30
|
||||
|
||||
@@ -257,31 +257,31 @@
|
||||
icon = 'icons/obj/toy.dmi'
|
||||
icon_state = "snappop"
|
||||
w_class = 1
|
||||
var/ash_type = /obj/effect/decal/cleanable/ash
|
||||
|
||||
/obj/item/toy/snappop/throw_impact(atom/hit_atom)
|
||||
..()
|
||||
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
/obj/item/toy/snappop/proc/pop_burst(var/n=3, var/c=1)
|
||||
var/datum/effect/system/spark_spread/s = new()
|
||||
s.set_up(n, c, src)
|
||||
s.start()
|
||||
new /obj/effect/decal/cleanable/ash(src.loc)
|
||||
visible_message("<span class='warning'>The [src.name] explodes!</span>","<span class='warning'>You hear a snap!</span>")
|
||||
new ash_type(loc)
|
||||
visible_message("<span class='warning'>[src] explodes!</span>",
|
||||
"<span class='italics'>You hear a snap!</span>")
|
||||
playsound(src, 'sound/effects/snap.ogg', 50, 1)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/toy/snappop/fire_act()
|
||||
pop_burst()
|
||||
|
||||
/obj/item/toy/snappop/throw_impact(atom/hit_atom)
|
||||
..()
|
||||
pop_burst()
|
||||
|
||||
/obj/item/toy/snappop/Crossed(H as mob|obj)
|
||||
if((ishuman(H))) //i guess carp and shit shouldn't set them off
|
||||
if(ishuman(H) || issilicon(H)) //i guess carp and shit shouldn't set them off
|
||||
var/mob/living/carbon/M = H
|
||||
if(M.m_intent == "run")
|
||||
to_chat(M, "<span class='warning'>You step on the snap pop!</span>")
|
||||
|
||||
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
|
||||
s.set_up(2, 0, src)
|
||||
s.start()
|
||||
new /obj/effect/decal/cleanable/ash(src.loc)
|
||||
visible_message("<span class='warning'>The [name] explodes!</span>","<span class='warning'>You hear a snap!</span>")
|
||||
playsound(src, 'sound/effects/snap.ogg', 50, 1)
|
||||
qdel(src)
|
||||
|
||||
if(issilicon(H) || M.m_intent == "run")
|
||||
to_chat(M, "<span class='danger'>You step on the snap pop!</span>")
|
||||
pop_burst(2, 0)
|
||||
|
||||
|
||||
/*
|
||||
@@ -394,6 +394,8 @@
|
||||
|
||||
|
||||
obj/item/toy/cards
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 5
|
||||
var/parentdeck = null
|
||||
var/deckstyle = "nanotrasen"
|
||||
var/card_hitsound = null
|
||||
@@ -749,6 +751,7 @@ obj/item/toy/cards/deck/syndicate
|
||||
card_throw_speed = 3
|
||||
card_throw_range = 20
|
||||
card_attack_verb = list("attacked", "sliced", "diced", "slashed", "cut")
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/*
|
||||
|| Custom card decks ||
|
||||
@@ -884,6 +887,7 @@ obj/item/toy/cards/deck/syndicate/black
|
||||
icon_state = "carpplushie"
|
||||
attack_verb = list("bitten", "eaten", "fin slapped")
|
||||
var/bitesound = 'sound/weapons/bite.ogg'
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
// Attack mob
|
||||
/obj/item/toy/carpplushie/attack(mob/M as mob, mob/user as mob)
|
||||
@@ -946,6 +950,7 @@ obj/item/toy/cards/deck/syndicate/black
|
||||
icon = 'icons/obj/toy.dmi'
|
||||
var/poof_sound = 'sound/weapons/thudswoosh.ogg'
|
||||
attack_verb = list("poofed", "bopped", "whapped","cuddled","fluffed")
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/toy/plushie/attack(mob/M as mob, mob/user as mob)
|
||||
playsound(loc, poof_sound, 20, 1) // Play the whoosh sound in local area
|
||||
@@ -1071,6 +1076,7 @@ obj/item/toy/cards/deck/syndicate/black
|
||||
item_state = "arm_blade"
|
||||
attack_verb = list("pricked", "absorbed", "gored")
|
||||
w_class = 2
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/*
|
||||
* Toy/fake flash
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
icon = 'icons/obj/trash.dmi'
|
||||
w_class = 1
|
||||
desc = "This is rubbish."
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/trash/raisins
|
||||
name = "4no raisins"
|
||||
@@ -42,6 +43,7 @@
|
||||
/obj/item/trash/plate
|
||||
name = "Plate"
|
||||
icon_state = "plate"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/trash/snack_bowl
|
||||
name = "Snack bowl"
|
||||
@@ -58,6 +60,7 @@
|
||||
/obj/item/trash/tray
|
||||
name = "Tray"
|
||||
icon_state = "tray"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/trash/candle
|
||||
name = "candle"
|
||||
@@ -73,6 +76,7 @@
|
||||
icon_state = "cola"
|
||||
var/is_glass = 0
|
||||
var/is_plastic = 0
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/trash/gum
|
||||
name = "chewed gum"
|
||||
|
||||
@@ -23,6 +23,7 @@ var/global/list/moneytypes=list(
|
||||
throw_speed = 1
|
||||
throw_range = 2
|
||||
w_class = 1
|
||||
burn_state = FLAMMABLE
|
||||
var/access = list()
|
||||
access = access_crate_cash
|
||||
var/worth = 1 // Per chip
|
||||
|
||||
@@ -59,6 +59,9 @@ LIGHTERS ARE IN LIGHTERS.DM
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/clothing/mask/cigarette/fire_act()
|
||||
light()
|
||||
|
||||
/obj/item/clothing/mask/cigarette/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
..()
|
||||
if(istype(W, /obj/item/weapon/weldingtool))
|
||||
@@ -110,7 +113,7 @@ LIGHTERS ARE IN LIGHTERS.DM
|
||||
to_chat(user, "<span class='notice'>[src] is full.</span>")
|
||||
|
||||
|
||||
/obj/item/clothing/mask/cigarette/proc/light(var/flavor_text = "[usr] lights the [name].")
|
||||
/obj/item/clothing/mask/cigarette/proc/light(flavor_text = null)
|
||||
if(!src.lit)
|
||||
src.lit = 1
|
||||
damtype = "fire"
|
||||
@@ -136,8 +139,9 @@ LIGHTERS ARE IN LIGHTERS.DM
|
||||
reagents.handle_reactions()
|
||||
icon_state = icon_on
|
||||
item_state = icon_on
|
||||
var/turf/T = get_turf(src)
|
||||
T.visible_message(flavor_text)
|
||||
if(flavor_text)
|
||||
var/turf/T = get_turf(src)
|
||||
T.visible_message(flavor_text)
|
||||
set_light(2, 0.25, "#E38F46")
|
||||
processing_objects.Add(src)
|
||||
|
||||
@@ -321,14 +325,15 @@ LIGHTERS ARE IN LIGHTERS.DM
|
||||
..()
|
||||
reagents.add_reagent("nicotine", chem_volume)
|
||||
|
||||
/obj/item/clothing/mask/cigarette/pipe/light(var/flavor_text = "[usr] lights the [name].")
|
||||
/obj/item/clothing/mask/cigarette/pipe/light(flavor_text = null)
|
||||
if(!src.lit)
|
||||
src.lit = 1
|
||||
damtype = "fire"
|
||||
icon_state = icon_on
|
||||
item_state = icon_on
|
||||
var/turf/T = get_turf(src)
|
||||
T.visible_message(flavor_text)
|
||||
if(flavor_text)
|
||||
var/turf/T = get_turf(src)
|
||||
T.visible_message(flavor_text)
|
||||
processing_objects.Add(src)
|
||||
|
||||
/obj/item/clothing/mask/cigarette/pipe/process()
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
throwforce = 6.0
|
||||
w_class = 2
|
||||
attack_verb = list("bashed", "battered", "judged", "whacked")
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/weapon/gavelhammer/suicide_act(mob/user)
|
||||
user.visible_message("<span class='warning'>[user] has sentenced \himself to death with the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
@@ -25,6 +26,7 @@
|
||||
force = 2.0
|
||||
throwforce = 2.0
|
||||
w_class = 1
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/weapon/gavelblock/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/gavelhammer))
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "gift1"
|
||||
item_state = "gift1"
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/weapon/a_gift/New()
|
||||
..()
|
||||
@@ -139,6 +140,7 @@
|
||||
flags = NOBLUDGEON
|
||||
amount = 25
|
||||
max_amount = 25
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/stack/wrapping_paper/attack_self(mob/user)
|
||||
to_chat(user, "<span class='notice'>You need to use it on a package that has already been wrapped!</span>")
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
throw_range = 20
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 5
|
||||
var/active = 0
|
||||
var/det_time = 50
|
||||
var/display_timer = 1
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
throw_range = 7
|
||||
w_class = 3
|
||||
attack_verb = list("mopped", "bashed", "bludgeoned", "whacked")
|
||||
burn_state = FLAMMABLE
|
||||
var/mopping = 0
|
||||
var/mopcount = 0
|
||||
var/mopcap = 5
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
item_state = "paintcan"
|
||||
materials = list(MAT_METAL=200)
|
||||
w_class = 3
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 5
|
||||
amount_per_transfer_from_this = 5
|
||||
possible_transfer_amounts = list(5,10,20,30,50,70)
|
||||
volume = 70
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
throw_speed = 4
|
||||
throw_range = 20
|
||||
origin_tech = "bluespace=4"
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/weapon/teleportation_scroll/apprentice
|
||||
name = "lesser scroll of teleportation"
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
icon_state = "buckler"
|
||||
item_state = "buckler"
|
||||
materials = list()
|
||||
burn_state = FLAMMABLE
|
||||
block_chance = 30
|
||||
|
||||
/obj/item/weapon/shield/energy
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
force = 5
|
||||
w_class = 4
|
||||
attack_verb = list("bashed","smacked")
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
var/delayed = 0 //used to do delays
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
w_class = 2
|
||||
armour_penetration = 100
|
||||
attack_verb = list("bludgeoned", "whacked", "disciplined")
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/weapon/twohanded/staff/broom
|
||||
name = "broom"
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
max_w_class = 3
|
||||
max_combined_w_class = 21
|
||||
storage_slots = 21
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/back.dmi'
|
||||
@@ -35,6 +37,7 @@
|
||||
icon_state = "holdingpack"
|
||||
max_w_class = 5
|
||||
max_combined_w_class = 35
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
New()
|
||||
..()
|
||||
@@ -123,12 +126,14 @@
|
||||
desc = "It's a special backpack made exclusively for Nanotrasen officers."
|
||||
icon_state = "captainpack"
|
||||
item_state = "captainpack"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/industrial
|
||||
name = "industrial backpack"
|
||||
desc = "It's a tough backpack for the daily grind of station life."
|
||||
icon_state = "engiepack"
|
||||
item_state = "engiepack"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/botany
|
||||
name = "botany backpack"
|
||||
@@ -153,6 +158,7 @@
|
||||
desc = "A specially designed backpack. It's fire resistant and smells vaguely of plasma."
|
||||
icon_state = "toxpack"
|
||||
item_state = "toxpack"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/virology
|
||||
name = "virology backpack"
|
||||
@@ -168,6 +174,7 @@
|
||||
name = "leather satchel"
|
||||
desc = "It's a very fancy satchel made with fine leather."
|
||||
icon_state = "satchel"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/satcheldeluxe
|
||||
name = "leather satchel"
|
||||
@@ -188,6 +195,7 @@
|
||||
name = "industrial satchel"
|
||||
desc = "A tough satchel with extra pockets."
|
||||
icon_state = "satchel-eng"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_med
|
||||
name = "medical satchel"
|
||||
@@ -213,6 +221,7 @@
|
||||
name = "scientist satchel"
|
||||
desc = "Useful for holding research materials."
|
||||
icon_state = "satchel-tox"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_sec
|
||||
name = "security satchel"
|
||||
@@ -228,6 +237,7 @@
|
||||
name = "captain's satchel"
|
||||
desc = "An exclusive satchel for Nanotrasen officers."
|
||||
icon_state = "satchel-cap"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_flat
|
||||
name = "smuggler's satchel"
|
||||
@@ -346,6 +356,7 @@
|
||||
desc = "A duffelbag designed to hold large quantities of condoms."
|
||||
icon_state = "duffel-captain"
|
||||
item_state = "duffel-captain"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/duffel/security
|
||||
name = "security duffelbag"
|
||||
@@ -388,6 +399,7 @@
|
||||
desc = "A duffelbag designed to hold tools."
|
||||
icon_state = "duffel-eng"
|
||||
item_state = "duffel-eng"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/storage/backpack/duffel/hydro
|
||||
name = "hydroponics duffelbag"
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
max_w_class = 3
|
||||
w_class = 1
|
||||
can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/grown","/obj/item/seeds","/obj/item/weapon/grown", "/obj/item/stack/tile/grass","/obj/item/stack/medical/ointment/aloe","/obj/item/stack/medical/bruise_pack/comfrey", "/obj/item/weapon/reagent_containers/honeycomb")
|
||||
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/weapon/storage/bag/plants/portaseeder
|
||||
name = "portable seed extractor"
|
||||
@@ -376,6 +376,7 @@
|
||||
max_w_class = 3
|
||||
w_class = 4 //Bigger than a book because physics
|
||||
can_hold = list("/obj/item/weapon/book", "/obj/item/weapon/storage/bible", "/obj/item/weapon/tome", "/obj/item/weapon/spellbook")
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/*
|
||||
* Trays - Agouri
|
||||
@@ -484,7 +485,7 @@
|
||||
max_combined_w_class = 200
|
||||
w_class = 1
|
||||
can_hold = list("/obj/item/weapon/reagent_containers/food/pill","/obj/item/weapon/reagent_containers/glass/beaker","/obj/item/weapon/reagent_containers/glass/bottle")
|
||||
|
||||
burn_state = FLAMMABLE
|
||||
/*
|
||||
* Biowaste bag (mostly for xenobiologists)
|
||||
*/
|
||||
@@ -497,4 +498,5 @@
|
||||
storage_slots = 25
|
||||
max_combined_w_class = 200
|
||||
w_class = 1
|
||||
can_hold = list("/obj/item/slime_extract","/obj/item/weapon/reagent_containers/food/snacks/monkeycube","/obj/item/weapon/reagent_containers/syringe","/obj/item/weapon/reagent_containers/glass/beaker","/obj/item/weapon/reagent_containers/glass/bottle","/obj/item/weapon/reagent_containers/blood","/obj/item/weapon/reagent_containers/hypospray/autoinjector")
|
||||
can_hold = list("/obj/item/slime_extract","/obj/item/weapon/reagent_containers/food/snacks/monkeycube","/obj/item/weapon/reagent_containers/syringe","/obj/item/weapon/reagent_containers/glass/beaker","/obj/item/weapon/reagent_containers/glass/bottle","/obj/item/weapon/reagent_containers/blood","/obj/item/weapon/reagent_containers/hypospray/autoinjector")
|
||||
burn_state = FLAMMABLE
|
||||
@@ -5,6 +5,7 @@
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
w_class = 3
|
||||
burn_state = FLAMMABLE
|
||||
var/mob/affecting = null
|
||||
var/deity_name = "Christ"
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
desc = "It's just an ordinary box."
|
||||
icon_state = "box"
|
||||
item_state = "syringe_kit"
|
||||
burn_state = FLAMMABLE
|
||||
foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
|
||||
|
||||
/obj/item/weapon/storage/box/large
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
max_w_class = 3
|
||||
max_combined_w_class = 21
|
||||
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked")
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
|
||||
/obj/item/weapon/storage/briefcase/New()
|
||||
..()
|
||||
@@ -17,6 +17,7 @@
|
||||
icon = 'icons/obj/food/food.dmi'
|
||||
icon_state = "donutbox6"
|
||||
name = "donut box"
|
||||
burn_state = FLAMMABLE
|
||||
var/icon_type = "donut"
|
||||
|
||||
/obj/item/weapon/storage/fancy/update_icon(var/itemremoved = 0)
|
||||
|
||||
@@ -323,7 +323,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/weapon/storage/proc/remove_from_storage(obj/item/W as obj, atom/new_location)
|
||||
/obj/item/weapon/storage/proc/remove_from_storage(obj/item/W as obj, atom/new_location, burn = 0)
|
||||
if(!istype(W)) return 0
|
||||
|
||||
if(istype(src, /obj/item/weapon/storage/fancy))
|
||||
@@ -357,8 +357,14 @@
|
||||
W.on_exit_storage(src)
|
||||
update_icon()
|
||||
W.mouse_opacity = initial(W.mouse_opacity)
|
||||
if(burn)
|
||||
W.fire_act()
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/storage/empty_object_contents(burn, loc)
|
||||
for(var/obj/item/Item in contents)
|
||||
remove_from_storage(Item, loc, burn)
|
||||
|
||||
//This proc is called when you want to place an item into the storage item.
|
||||
/obj/item/weapon/storage/attackby(obj/item/W as obj, mob/user as mob, params)
|
||||
..()
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
icon = 'icons/obj/wallets.dmi'
|
||||
icon_state = "wallet"
|
||||
w_class = 2
|
||||
burn_state = FLAMMABLE
|
||||
can_hold = list(
|
||||
"/obj/item/weapon/spacecash",
|
||||
"/obj/item/weapon/card",
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
icon_state = "wood_tableparts"
|
||||
flags = null
|
||||
upgradable = 0
|
||||
burn_state = FLAMMABLE
|
||||
result = /obj/structure/table/woodentable
|
||||
parts = list(
|
||||
/obj/item/stack/sheet/wood,
|
||||
|
||||
@@ -373,7 +373,8 @@
|
||||
V.visible_message("<span class='danger'>[V] was frozen shut!</span>")
|
||||
for(var/mob/living/L in T)
|
||||
L.ExtinguishMob()
|
||||
return
|
||||
for(var/obj/item/Item in T)
|
||||
Item.extinguish()
|
||||
|
||||
/datum/effect/system/freezing_smoke_spread
|
||||
|
||||
|
||||
@@ -16,7 +16,9 @@
|
||||
|
||||
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/on_blueprints = FALSE //Are we visible on the station blueprints at roundstart?
|
||||
@@ -288,4 +290,32 @@ a {
|
||||
being_shocked = 0
|
||||
|
||||
/obj/proc/CanAStarPass()
|
||||
. = !density
|
||||
. = !density
|
||||
|
||||
/obj/fire_act(global_overlay=1)
|
||||
if(!burn_state)
|
||||
burn_state = ON_FIRE
|
||||
fire_master.burning += src
|
||||
burn_world_time = world.time + burntime*rand(10,20)
|
||||
if(global_overlay)
|
||||
overlays += fire_overlay
|
||||
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."
|
||||
fire_master.burning -= src
|
||||
qdel(src)
|
||||
|
||||
/obj/proc/extinguish()
|
||||
if(burn_state == ON_FIRE)
|
||||
burn_state = FLAMMABLE
|
||||
overlays -= fire_overlay
|
||||
fire_master.burning -= src
|
||||
|
||||
/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
|
||||
@@ -15,6 +15,8 @@
|
||||
icon = 'icons/obj/artstuff.dmi'
|
||||
icon_state = "easel"
|
||||
density = 1
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 15
|
||||
var/obj/item/weapon/canvas/painting = null
|
||||
|
||||
|
||||
@@ -56,6 +58,7 @@ var/global/list/globalBlankCanvases[AMT_OF_CANVASES]
|
||||
desc = "Draw out your soul on this canvas! Only crayons can draw on it. Examine it to focus on the canvas."
|
||||
icon = 'icons/obj/artstuff.dmi'
|
||||
icon_state = "11x11"
|
||||
burn_state = FLAMMABLE
|
||||
var/whichGlobalBackup = 1 //List index
|
||||
|
||||
/obj/item/weapon/canvas/nineteenXnineteen
|
||||
|
||||
@@ -16,6 +16,7 @@ LINEN BINS
|
||||
throw_range = 2
|
||||
w_class = 1
|
||||
item_color = "white"
|
||||
burn_state = FLAMMABLE
|
||||
slot_flags = SLOT_BACK
|
||||
|
||||
|
||||
@@ -161,6 +162,8 @@ LINEN BINS
|
||||
icon = 'icons/obj/structures.dmi'
|
||||
icon_state = "linenbin-full"
|
||||
anchored = 1
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
var/amount = 20
|
||||
var/list/sheets = list()
|
||||
var/obj/item/hidden = null
|
||||
@@ -184,6 +187,16 @@ LINEN BINS
|
||||
else icon_state = "linenbin-full"
|
||||
|
||||
|
||||
/obj/structure/bedsheetbin/fire_act()
|
||||
if(!amount)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/structure/bedsheetbin/burn()
|
||||
amount = 0
|
||||
extinguish()
|
||||
update_icon()
|
||||
|
||||
/obj/structure/bedsheetbin/attackby(obj/item/I as obj, mob/user as mob, params)
|
||||
if(istype(I, /obj/item/weapon/bedsheet))
|
||||
user.drop_item()
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
icon_opened = "cardboard_open"
|
||||
icon_closed = "cardboard"
|
||||
health = 10
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
sound = 'sound/effects/rustle2.ogg'
|
||||
material_drop = /obj/item/stack/sheet/cardboard
|
||||
cutting_sound = 'sound/items/poster_ripped.ogg'
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
icon_state = "coffin"
|
||||
icon_closed = "coffin"
|
||||
icon_opened = "coffin_open"
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
|
||||
/obj/structure/closet/coffin/update_icon()
|
||||
if(!opened)
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
icon_state = "cabinet_closed"
|
||||
icon_closed = "cabinet_closed"
|
||||
icon_opened = "cabinet_open"
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
|
||||
/obj/structure/closet/cabinet/update_icon()
|
||||
if(!opened)
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
icon_opened = "cabinetdetective_open"
|
||||
icon_broken = "cabinetdetective_broken"
|
||||
icon_off = "cabinetdetective_broken"
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
|
||||
|
||||
New()
|
||||
|
||||
@@ -33,6 +33,8 @@
|
||||
icon_opened = "cabinetdetective_open"
|
||||
icon_broken = "cabinetdetective_broken"
|
||||
icon_off = "cabinetdetective_broken"
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
|
||||
/obj/structure/closet/secure_closet/personal/cabinet/update_icon()
|
||||
if(broken)
|
||||
|
||||
@@ -317,6 +317,8 @@
|
||||
icon_opened = "cabinetdetective_open"
|
||||
icon_broken = "cabinetdetective_broken"
|
||||
icon_off = "cabinetdetective_broken"
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
|
||||
New()
|
||||
..()
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
/obj/structure/flora
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 30
|
||||
|
||||
//trees
|
||||
/obj/structure/flora/tree
|
||||
name = "tree"
|
||||
@@ -230,6 +234,7 @@
|
||||
desc = "a rock"
|
||||
icon_state = "rock1"
|
||||
icon = 'icons/obj/flora/rocks.dmi'
|
||||
burn_state = FIRE_PROOF
|
||||
anchored = 1
|
||||
|
||||
/obj/structure/flora/rock/New()
|
||||
|
||||
@@ -219,6 +219,8 @@
|
||||
/obj/structure/mineral_door/wood
|
||||
mineralType = "wood"
|
||||
hardness = 1
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 30
|
||||
|
||||
Open()
|
||||
isSwitchingStates = 1
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
desc = ""
|
||||
icon = 'icons/obj/decals.dmi'
|
||||
w_class = 3 //big
|
||||
burn_state = FLAMMABLE
|
||||
var/sign_state = ""
|
||||
|
||||
/obj/item/sign/attackby(obj/item/tool as obj, mob/user as mob) //construction
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
icon_state = "bed"
|
||||
can_buckle = 1
|
||||
buckle_lying = 1
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 30
|
||||
var/movable = 0 // For mobility checks
|
||||
|
||||
/obj/structure/stool/bed/MouseDrop(atom/over_object)
|
||||
@@ -46,6 +48,7 @@
|
||||
name = "roller bed"
|
||||
icon = 'icons/obj/rollerbed.dmi'
|
||||
icon_state = "down"
|
||||
burn_state = FIRE_PROOF
|
||||
anchored = 0
|
||||
|
||||
/obj/structure/stool/bed/roller/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
desc = "You sit in this. Either by will or force."
|
||||
icon_state = "chair"
|
||||
buckle_lying = 0 //you sit in a chair, not lay
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
var/propelled = 0 // Check for fire-extinguisher-driven chairs
|
||||
|
||||
@@ -76,6 +77,8 @@
|
||||
|
||||
// Chair types
|
||||
/obj/structure/stool/bed/chair/wood
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
// TODO: Special ash subtype that looks like charred chair legs
|
||||
|
||||
/obj/structure/stool/bed/chair/wood/normal
|
||||
@@ -103,6 +106,8 @@
|
||||
desc = "It looks comfy."
|
||||
icon_state = "comfychair"
|
||||
color = rgb(255,255,255)
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 30
|
||||
var/image/armrest = null
|
||||
|
||||
/obj/structure/stool/bed/chair/comfy/New()
|
||||
|
||||
@@ -369,6 +369,8 @@
|
||||
parts = /obj/item/weapon/table_parts/wood
|
||||
health = 50
|
||||
canSmoothWith = list(/obj/structure/table/woodentable, /obj/structure/table/woodentable/poker)
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
var/canPokerize = 1
|
||||
|
||||
/obj/structure/table/woodentable/attackby(obj/item/I as obj, mob/user as mob, params)
|
||||
|
||||
@@ -249,12 +249,16 @@
|
||||
/obj/machinery/shower/proc/wash(atom/movable/O as obj|mob)
|
||||
if(!on) return
|
||||
|
||||
if(istype(O, /obj/item))
|
||||
var/obj/item/I = O
|
||||
I.extinguish()
|
||||
|
||||
O.water_act(100, convertHeat(), src)
|
||||
|
||||
if(isliving(O))
|
||||
var/mob/living/L = O
|
||||
L.ExtinguishMob()
|
||||
L.fire_stacks = -20 //Douse ourselves with water to avoid fire more easily
|
||||
L.adjust_fire_stacks(-20) //Douse ourselves with water to avoid fire more easily
|
||||
to_chat(L, "<span class='warning'>You've been drenched in water!</span>")
|
||||
if(iscarbon(O))
|
||||
var/mob/living/carbon/M = O
|
||||
|
||||
@@ -425,11 +425,6 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f
|
||||
hit(round(exposed_volume / 1000), 0)
|
||||
..()
|
||||
|
||||
/obj/structure/window/plasmabasic/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
if(exposed_temperature > T0C + 32000)
|
||||
hit(round(exposed_volume / 1000), 0)
|
||||
..()
|
||||
|
||||
/obj/structure/window/plasmabasic/BlockSuperconductivity()
|
||||
return 1
|
||||
|
||||
@@ -457,9 +452,6 @@ var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8f
|
||||
/obj/structure/window/plasmareinforced/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
return
|
||||
|
||||
/obj/structure/window/plasmareinforced/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
return
|
||||
|
||||
/obj/structure/window/plasmareinforced/BlockSuperconductivity()
|
||||
return 1 //okay this SHOULD MAKE THE TOXINS CHAMBER WORK
|
||||
|
||||
|
||||
@@ -80,17 +80,6 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3","
|
||||
src.hotspot_expose(1000,CELL_VOLUME)
|
||||
return
|
||||
|
||||
/turf/simulated/floor/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
if(!burnt && prob(5))
|
||||
burn_tile()
|
||||
|
||||
/turf/simulated/floor/adjacent_fire_act(turf/simulated/floor/adj_turf, datum/gas_mixture/adj_air, adj_temp, adj_volume)
|
||||
var/dir_to = get_dir(src, adj_turf)
|
||||
|
||||
for(var/obj/structure/window/W in src)
|
||||
if(W.dir == dir_to || W.is_fulltile()) //Same direction or diagonal (full tile)
|
||||
W.fire_act(adj_air, adj_temp, adj_volume)
|
||||
|
||||
/turf/simulated/floor/is_shielded()
|
||||
for(var/obj/structure/A in contents)
|
||||
if(A.level == 3)
|
||||
|
||||
@@ -110,13 +110,7 @@
|
||||
update_icon()
|
||||
|
||||
return
|
||||
/*
|
||||
/turf/simulated/wall/adjacent_fire_act(turf/simulated/floor/adj_turf, datum/gas_mixture/adj_air, adj_temp, adj_volume)
|
||||
if(adj_temp > max_temperature)
|
||||
take_damage(rand(10, 20) * (adj_temp / max_temperature))
|
||||
|
||||
return ..()
|
||||
*/
|
||||
/turf/simulated/wall/proc/dismantle_wall(devastated=0, explode=0)
|
||||
if(istype(src,/turf/simulated/wall/r_wall))
|
||||
if(!devastated)
|
||||
|
||||
@@ -135,9 +135,6 @@
|
||||
loopsanity--
|
||||
A.HasProximity(M, 1)
|
||||
|
||||
/turf/proc/adjacent_fire_act(turf/simulated/floor/source, temperature, volume)
|
||||
return
|
||||
|
||||
/turf/proc/levelupdate()
|
||||
for(var/obj/O in src)
|
||||
if(O.level == 1)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/obj/item/clothing
|
||||
name = "clothing"
|
||||
burn_state = FLAMMABLE
|
||||
var/list/species_restricted = null //Only these species can wear this kit.
|
||||
var/rig_restrict_helmet = 0 // Stops the user from equipping a rig helmet without attaching it to the suit first.
|
||||
var/scan_reagents = 0 //Can the wearer see reagents while it's equipped?
|
||||
@@ -82,6 +83,7 @@
|
||||
w_class = 1
|
||||
throwforce = 2
|
||||
slot_flags = SLOT_EARS
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/ears/attack_hand(mob/user as mob)
|
||||
if(!user) return
|
||||
@@ -139,6 +141,7 @@
|
||||
flags = EARBANGPROTECT
|
||||
strip_delay = 15
|
||||
put_on_delay = 25
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
//Glasses
|
||||
/obj/item/clothing/glasses
|
||||
@@ -155,6 +158,7 @@
|
||||
var/color_view = null//overrides client.color while worn
|
||||
strip_delay = 20 // but seperated to allow items to protect but not impair vision, like space helmets
|
||||
put_on_delay = 25
|
||||
burn_state = FIRE_PROOF
|
||||
species_restricted = list("exclude","Kidan")
|
||||
/*
|
||||
SEE_SELF // can see self, no matter what
|
||||
@@ -526,6 +530,7 @@ BLIND // can't see anything
|
||||
flash_protect = 2
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/space
|
||||
name = "Space suit"
|
||||
@@ -547,6 +552,7 @@ BLIND // can't see anything
|
||||
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
|
||||
strip_delay = 80
|
||||
put_on_delay = 80
|
||||
burn_state = FIRE_PROOF
|
||||
species_restricted = list("exclude","Diona","Vox","Wryn")
|
||||
|
||||
//Under clothing
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
siemens_coefficient = 0
|
||||
permeability_coefficient = 0.05
|
||||
item_color="yellow"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/gloves/color/yellow/power
|
||||
description_antag = "These are a pair of power gloves, and can be used to fire bolts of electricity while standing over powered power cables."
|
||||
@@ -45,6 +46,7 @@
|
||||
siemens_coefficient = 1 //Set to a default of 1, gets overridden in New()
|
||||
permeability_coefficient = 0.05
|
||||
item_color="yellow"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
New()
|
||||
siemens_coefficient = pick(0,0.5,0.5,0.5,0.5,0.75,1.5)
|
||||
@@ -59,6 +61,7 @@
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
burn_state = FIRE_PROOF
|
||||
var/can_be_cut = 1
|
||||
|
||||
|
||||
@@ -102,6 +105,7 @@
|
||||
desc = "These gloves will protect the wearer from electric shock."
|
||||
siemens_coefficient = 0
|
||||
permeability_coefficient = 0.05
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/gloves/color/rainbow
|
||||
name = "rainbow gloves"
|
||||
@@ -172,6 +176,7 @@
|
||||
permeability_coefficient = 0.01
|
||||
item_color="white"
|
||||
transfer_prints = TRUE
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/gloves/color/latex/nitrile
|
||||
name = "nitrile gloves"
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/gloves/botanic_leather
|
||||
desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin."
|
||||
@@ -40,6 +41,7 @@
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/gloves/batmangloves
|
||||
desc = "Used for handling all things bat related."
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
desc = "A Collectable Welding Helmet. Now with 80% less lead! Not for actual welding. Any welding done while wearing this Helmet is done so at the owner's own risk!"
|
||||
icon_state = "welding"
|
||||
item_state = "welding"
|
||||
burn_state = FIRE_PROOF
|
||||
species_fit = list("Vox", "Unathi", "Tajaran", "Vulpkanin")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/helmet.dmi',
|
||||
@@ -117,12 +118,14 @@
|
||||
desc = "Go Red! I mean Green! I mean Red! No Green!"
|
||||
icon_state = "thunderdome"
|
||||
item_state = "thunderdome"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/head/collectable/swat
|
||||
name = "collectable SWAT helmet"
|
||||
desc = "Now you can be in the Deathsquad too!"
|
||||
icon_state = "swat"
|
||||
item_state = "swat"
|
||||
burn_state = FIRE_PROOF
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/helmet.dmi'
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
armor = list(melee = 15, bullet = 5, laser = 20, energy = 10, bomb = 20, bio = 10, rad = 20)
|
||||
flags_inv = 0
|
||||
actions_types = list(/datum/action/item_action/toggle_helmet_light)
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/head/hardhat/attack_self(mob/user)
|
||||
on = !on
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT
|
||||
strip_delay = 60
|
||||
burn_state = FIRE_PROOF
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/helmet.dmi',
|
||||
|
||||
@@ -342,6 +342,7 @@
|
||||
throw_range = 5
|
||||
w_class = 2
|
||||
attack_verb = list("warned", "cautioned", "smashed")
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/head/griffin
|
||||
name = "griffon head"
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
flags_inv = (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
burn_state = FIRE_PROOF
|
||||
species_fit = list("Vox", "Unathi", "Tajaran", "Vulpkanin")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/head.dmi',
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
gas_transfer_coefficient = 0.10
|
||||
permeability_coefficient = 0.50
|
||||
actions_types = list(/datum/action/item_action/adjust)
|
||||
burn_state = FIRE_PROOF
|
||||
species_fit = list("Vox", "Vox Armalis", "Unathi", "Tajaran", "Vulpkanin")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/mask.dmi',
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
item_state = "gas_alt"
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
burn_state = FIRE_PROOF
|
||||
species_fit = list("Vox", "Unathi", "Tajaran", "Vulpkanin")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/mask.dmi',
|
||||
@@ -95,6 +96,7 @@
|
||||
icon_state = "clown"
|
||||
item_state = "clown_hat"
|
||||
flags = MASKCOVERSMOUTH | MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | AIRTIGHT | BLOCKHAIR
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/clown_hat/attack_self(mob/user)
|
||||
|
||||
@@ -130,24 +132,28 @@
|
||||
desc = "A feminine clown mask for the dabbling crossdressers or female entertainers."
|
||||
icon_state = "sexyclown"
|
||||
item_state = "sexyclown"
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/mime
|
||||
name = "mime mask"
|
||||
desc = "The traditional mime's mask. It has an eerie facial posture."
|
||||
icon_state = "mime"
|
||||
item_state = "mime"
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/monkeymask
|
||||
name = "monkey mask"
|
||||
desc = "A mask used when acting as a monkey."
|
||||
icon_state = "monkeymask"
|
||||
item_state = "monkeymask"
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/sexymime
|
||||
name = "sexy mime mask"
|
||||
desc = "A traditional female mime's mask."
|
||||
icon_state = "sexymime"
|
||||
item_state = "sexymime"
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/death_commando
|
||||
name = "Death Commando Mask"
|
||||
@@ -158,12 +164,14 @@
|
||||
name = "cyborg visor"
|
||||
desc = "Beep boop"
|
||||
icon_state = "death"
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/mask/gas/owl_mask
|
||||
name = "owl mask"
|
||||
desc = "Twoooo!"
|
||||
icon_state = "owl"
|
||||
flags = MASKCOVERSMOUTH | MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | AIRTIGHT | NODROP
|
||||
burn_state = FLAMMABLE
|
||||
actions_types = list(/datum/action/item_action/hoot)
|
||||
|
||||
/obj/item/clothing/mask/gas/owl_mask/attack_self()
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
// desc = "A face-covering mask that can be connected to an air supply. It seems to house some odd electronics."
|
||||
var/obj/item/voice_changer/changer
|
||||
origin_tech = "syndicate=4"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/mask/gas/voice/verb/Toggle_Voice_Changer()
|
||||
set category = "Object"
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
strip_delay = 70
|
||||
put_on_delay = 70
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/shoes/magboots/attack_self(mob/user)
|
||||
if(magpulse)
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
permeability_coefficient = 0.05
|
||||
flags = NOSLIP
|
||||
origin_tech = "syndicate=3"
|
||||
burn_state = FIRE_PROOF
|
||||
var/list/clothing_choices = list()
|
||||
silence_steps = 1
|
||||
|
||||
@@ -22,6 +23,7 @@
|
||||
item_state = "jackboots"
|
||||
armor = list(melee = 25, bullet = 25, laser = 25, energy = 25, bomb = 50, bio = 10, rad = 0)
|
||||
strip_delay = 70
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/shoes/combat/swat //overpowered boots for death squads
|
||||
name = "\improper SWAT shoes"
|
||||
@@ -51,6 +53,7 @@
|
||||
slowdown = SHOES_SLOWDOWN+1
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/shoes/galoshes/dry
|
||||
name = "absorbent galoshes"
|
||||
@@ -82,6 +85,7 @@
|
||||
item_color = "hosred"
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
burn_state = FIRE_PROOF
|
||||
var/footstep = 1
|
||||
silence_steps = 1
|
||||
shoe_sound = "jackboot"
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
|
||||
strip_delay = 60
|
||||
put_on_delay = 40
|
||||
burn_state = FIRE_PROOF
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/suit.dmi'
|
||||
@@ -148,6 +149,7 @@
|
||||
cold_protection = UPPER_TORSO|LOWER_TORSO|HANDS
|
||||
heat_protection = UPPER_TORSO|LOWER_TORSO|HANDS
|
||||
strip_delay = 70
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/warden/alt
|
||||
name = "warden's jacket"
|
||||
@@ -235,7 +237,7 @@
|
||||
blood_overlay_type = "armor"
|
||||
flags_size = ONESIZEFITSALL
|
||||
allowed = list(/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder)
|
||||
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
//Reactive armor
|
||||
/obj/item/clothing/suit/armor/reactive
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
flags = HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR | THICKMATERIAL
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 20)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/bio_suit
|
||||
name = "bio suit"
|
||||
@@ -25,6 +26,7 @@
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL
|
||||
strip_delay = 70
|
||||
put_on_delay = 70
|
||||
burn_state = FIRE_PROOF
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/suit.dmi'
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
item_state = "hazard"
|
||||
blood_overlay_type = "armor"
|
||||
allowed = list (/obj/item/device/flashlight, /obj/item/device/t_scanner, /obj/item/weapon/tank/emergency_oxygen)
|
||||
burn_state = FIRE_PROOF
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/suit.dmi'
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
blood_overlay_type = "armor"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO
|
||||
allowed = list (/obj/item/weapon/gun/energy/laser/bluetag)
|
||||
burn_state = FIRE_PROOF
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/suit.dmi'
|
||||
@@ -30,6 +31,7 @@
|
||||
blood_overlay_type = "armor"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO
|
||||
allowed = list (/obj/item/weapon/gun/energy/laser/redtag)
|
||||
burn_state = FIRE_PROOF
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/suit.dmi'
|
||||
@@ -136,6 +138,7 @@
|
||||
w_class = 3
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/toy)
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
|
||||
/obj/item/clothing/suit/hastur
|
||||
@@ -515,6 +518,7 @@
|
||||
desc = "A long, thick black leather coat."
|
||||
icon_state = "leathercoat"
|
||||
item_state = "leathercoat"
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/browncoat
|
||||
name = "brown leather coat"
|
||||
@@ -748,6 +752,7 @@
|
||||
ignore_suitadjust = 1
|
||||
actions_types = list()
|
||||
adjust_flavour = null
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/officercoat
|
||||
name = "Clown Officer's Coat"
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
strip_delay = 60
|
||||
put_on_delay = 60
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/fire/firefighter
|
||||
icon_state = "firesuit"
|
||||
@@ -72,6 +73,7 @@
|
||||
max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT
|
||||
strip_delay = 70
|
||||
put_on_delay = 70
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/bomb_suit
|
||||
name = "bomb suit"
|
||||
@@ -92,6 +94,7 @@
|
||||
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
|
||||
strip_delay = 70
|
||||
put_on_delay = 70
|
||||
burn_state = FIRE_PROOF
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/suit.dmi'
|
||||
@@ -119,6 +122,7 @@
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 60, rad = 100)
|
||||
strip_delay = 60
|
||||
put_on_delay = 60
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/radiation
|
||||
name = "Radiation suit"
|
||||
@@ -135,4 +139,5 @@
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 60, rad = 100)
|
||||
flags_inv = HIDEJUMPSUIT|HIDETAIL
|
||||
strip_delay = 60
|
||||
put_on_delay = 60
|
||||
put_on_delay = 60
|
||||
burn_state = FIRE_PROOF
|
||||
@@ -6,6 +6,7 @@
|
||||
permeability_coefficient = 0.01
|
||||
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20)
|
||||
unacidable = 1
|
||||
burn_state = FIRE_PROOF
|
||||
//Not given any special protective value since the magic robes are full-body protection --NEO
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
@@ -65,6 +66,7 @@
|
||||
unacidable = 1
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/red
|
||||
name = "red wizard robe"
|
||||
@@ -117,6 +119,7 @@
|
||||
permeability_coefficient = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
unacidable = 0
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/head/wizard/marisa/fake
|
||||
name = "Witch Hat"
|
||||
@@ -126,6 +129,7 @@
|
||||
permeability_coefficient = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
unacidable = 0
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/marisa/fake
|
||||
name = "Witch Robe"
|
||||
@@ -135,4 +139,5 @@
|
||||
gas_transfer_coefficient = 1
|
||||
permeability_coefficient = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
unacidable = 0
|
||||
unacidable = 0
|
||||
burn_state = FLAMMABLE
|
||||
@@ -166,6 +166,7 @@
|
||||
icon_state = "bronze"
|
||||
item_color = "bronze"
|
||||
materials = list(MAT_METAL=1000)
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/accessory/medal/conduct
|
||||
name = "distinguished conduct medal"
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
desc = "It's a plain jumpsuit. It seems to have a small dial on the wrist."
|
||||
origin_tech = "syndicate=3"
|
||||
var/list/clothing_choices = list()
|
||||
burn_state = FIRE_PROOF
|
||||
armor = list(melee = 10, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
New()
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
item_state = "bl_suit"
|
||||
item_color = "black"
|
||||
flags_size = ONESIZEFITSALL
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/under/color/blackf
|
||||
name = "feminine black jumpsuit"
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
item_color = "chief"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10)
|
||||
flags_size = ONESIZEFITSALL
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/under/rank/chief_engineer/skirt
|
||||
desc = "It's a high visibility jumpskirt given to those engineers insane enough to achieve the rank of \"Chief engineer\". It has minor radiation shielding."
|
||||
@@ -23,6 +24,7 @@
|
||||
item_state = "atmos_suit"
|
||||
item_color = "atmos"
|
||||
flags_size = ONESIZEFITSALL
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/under/rank/atmospheric_technician/skirt
|
||||
desc = "It's a jumpskirt worn by atmospheric technicians."
|
||||
@@ -40,6 +42,7 @@
|
||||
item_color = "engine"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10)
|
||||
flags_size = ONESIZEFITSALL
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
|
||||
/obj/item/clothing/under/rank/engineer/skirt
|
||||
|
||||
@@ -146,6 +146,7 @@
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
|
||||
heat_protection = UPPER_TORSO | LOWER_TORSO|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/under/acj
|
||||
name = "administrative cybernetic jumpsuit"
|
||||
@@ -163,6 +164,7 @@
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
slowdown = -10
|
||||
siemens_coefficient = 0
|
||||
burn_state = LAVA_PROOF
|
||||
|
||||
/obj/item/clothing/under/johnny
|
||||
name = "johnny~~ jumpsuit"
|
||||
@@ -334,6 +336,7 @@
|
||||
item_state = "gladiator"
|
||||
item_color = "gladiator"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
//dress
|
||||
|
||||
@@ -467,6 +470,7 @@
|
||||
item_color = "roman"
|
||||
item_state = "armor"
|
||||
strip_delay = 100
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/under/maid
|
||||
name = "maid costume"
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
consume_sound = 'sound/items/drink.ogg'
|
||||
possible_transfer_amounts = list(5,10,15,20,25,30,50)
|
||||
volume = 50
|
||||
burn_state = FIRE_PROOF
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/New()
|
||||
..()
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
lefthand_file = 'icons/goonstation/mob/inhands/items_lefthand.dmi'
|
||||
righthand_file = 'icons/goonstation/mob/inhands/items_righthand.dmi'
|
||||
materials = list(MAT_GLASS=500)
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 5
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/egg)) //breaking eggs
|
||||
@@ -25,6 +27,15 @@
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fire_act()
|
||||
if(!reagents.total_volume)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/burn()
|
||||
reagents.clear_reagents()
|
||||
extinguish()
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/on_reagent_change() // *scream
|
||||
if(reagents.reagent_list.len > 0)
|
||||
switch(reagents.get_master_reagent_id())
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
var/apply_method = "swallow"
|
||||
var/transfer_efficiency = 1.0
|
||||
var/instant_application = 0 //if we want to bypass the forcedfeed delay
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/New()
|
||||
..()
|
||||
|
||||
@@ -59,8 +59,8 @@
|
||||
|
||||
// Burns the food with a chance of starting a fire - for if you try cooking something that's already been cooked that way
|
||||
// if burns = 0 then it'll just tell you that the item is already that foodtype and it would do nothing
|
||||
// if you wanted a different side effect set burns to 1 and override burn()
|
||||
/obj/machinery/cooker/proc/burn(mob/user, obj/item/weapon/reagent_containers/props)
|
||||
// if you wanted a different side effect set burns to 1 and override burn_food()
|
||||
/obj/machinery/cooker/proc/burn_food(mob/user, obj/item/weapon/reagent_containers/props)
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/badrecipe/burnt = new(get_turf(src))
|
||||
setRegents(props, burnt)
|
||||
to_chat(user, "<span class='warning'>You smell burning coming from the [src]!</span>")
|
||||
@@ -130,7 +130,7 @@
|
||||
return
|
||||
if(istype(I, /obj/item/weapon/reagent_containers/food/snacks))
|
||||
if(checkCooked(I))
|
||||
burn(user, I)
|
||||
burn_food(user, I)
|
||||
turnoff(I)
|
||||
return
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/newfood = gettype()
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
var/datum/seed/seed
|
||||
var/potency = -1
|
||||
var/awakening = 0
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/New(newloc,planttype)
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
var/plantname
|
||||
var/potency = 1
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
/obj/item/weapon/grown/New(newloc,planttype)
|
||||
|
||||
@@ -170,8 +171,11 @@
|
||||
to_chat(M, "<font color='green'>[user] smacks you with a [name]!</font><font color='yellow'><b>FLOWER POWER</b></font>")
|
||||
to_chat(user, "<font color='green'> Your [name]'s </font><font color='yellow'><b>FLOWER POWER</b></font><font color='green'> strikes [M]</font>")
|
||||
if(istype(M, /mob/living))
|
||||
to_chat(M, "<span class='warning'>You are heated by the warmth of the of the [name]!</span>")
|
||||
M.bodytemperature += potency/2 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
to_chat(M, "<span class='danger'>You are lit on fire from the intense heat of the [name]!</span>")
|
||||
M.adjust_fire_stacks(potency / 20)
|
||||
if(M.IgniteMob())
|
||||
message_admins("[key_name_admin(user)] set [key_name_admin(M)] on fire")
|
||||
log_game("[key_name(user)] set [key_name(M)] on fire")
|
||||
|
||||
/obj/item/weapon/grown/novaflower/pickup(mob/living/carbon/human/user as mob)
|
||||
if(!user.gloves)
|
||||
|
||||
@@ -6,7 +6,7 @@ var/global/list/plant_seed_sprites = list()
|
||||
icon = 'icons/obj/seeds.dmi'
|
||||
icon_state = "blank"
|
||||
w_class = 2
|
||||
|
||||
burn_state = FLAMMABLE
|
||||
var/seed_type
|
||||
var/datum/seed/seed
|
||||
var/modified = 0
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
anchored = 1
|
||||
density = 1
|
||||
opacity = 1
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 30
|
||||
var/health = 50
|
||||
var/tmp/busy = 0
|
||||
var/list/allowed_books = list(/obj/item/weapon/book, /obj/item/weapon/spellbook, /obj/item/weapon/storage/bible, /obj/item/weapon/tome) //Things allowed in the bookcase
|
||||
@@ -167,6 +169,7 @@
|
||||
throw_range = 5
|
||||
w_class = 3 //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever)
|
||||
attack_verb = list("bashed", "whacked", "educated")
|
||||
burn_state = FLAMMABLE
|
||||
|
||||
var/dat // Actual page content
|
||||
var/due_date = 0 // Game time in 1/10th seconds
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
flags = CONDUCT
|
||||
force = 10.0
|
||||
throwforce = 0
|
||||
burn_state = FLAMMABLE
|
||||
burntime = 20
|
||||
w_class = 4
|
||||
|
||||
/obj/item/weapon/moneybag/attack_hand(user as mob)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
#define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point
|
||||
#define HEAT_DAMAGE_LEVEL_2 3 //Amount of damage applied when your body temperature passes the 400K point
|
||||
#define HEAT_DAMAGE_LEVEL_3 8 //Amount of damage applied when your body temperature passes the 1000K point
|
||||
#define HEAT_DAMAGE_LEVEL_3 10 //Amount of damage applied when your body temperature passes the 1000K point
|
||||
|
||||
#define COLD_DAMAGE_LEVEL_1 0.5 //Amount of damage applied when your body temperature just passes the 260.15k safety point
|
||||
#define COLD_DAMAGE_LEVEL_2 1.5 //Amount of damage applied when your body temperature passes the 200K point
|
||||
|
||||
@@ -551,12 +551,7 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump,
|
||||
visible_message("<span class='danger'>[src] has thrown [thrown_thing].</span>")
|
||||
newtonian_move(get_dir(target, src))
|
||||
thrown_thing.throw_at(target, thrown_thing.throw_range, thrown_thing.throw_speed, src)
|
||||
/*
|
||||
/mob/living/carbon/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
..()
|
||||
src.IgniteMob()
|
||||
bodytemperature = max(bodytemperature, BODYTEMP_HEAT_DAMAGE_LIMIT+10)
|
||||
*/
|
||||
|
||||
/mob/living/carbon/can_use_hands()
|
||||
if(handcuffed)
|
||||
return 0
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user