mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 05:57:24 +01:00
Merge pull request #5251 from Fox-McCloud/fire-system
Implements Fire System
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user