mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-22 03:27:46 +01:00
A Tale of Blobs and Man
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
/////////////////////////////////////////////
|
||||
/obj/effect/effect/smoke/chem
|
||||
icon = 'icons/effects/chemsmoke.dmi'
|
||||
opacity = 0
|
||||
opacity = TRUE
|
||||
time_to_live = 300
|
||||
pass_flags = PASSTABLE | PASSGRILLE | PASSGLASS //PASSGLASS is fine here, it's just so the visual effect can "flow" around glass
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
walk(src, 0) // Because we might have called walk_to, we must stop the walk loop or BYOND keeps an internal reference to us forever.
|
||||
return ..()
|
||||
|
||||
/obj/effect/effect/smoke/chem/transparent
|
||||
opacity = FALSE
|
||||
|
||||
/datum/effect/effect/system/smoke_spread/chem
|
||||
smoke_type = /obj/effect/effect/smoke/chem
|
||||
var/obj/chemholder
|
||||
@@ -35,6 +38,10 @@
|
||||
CRASH("Invalid seed datum passed! [seed] ([seed?.type])")
|
||||
..()
|
||||
|
||||
/datum/effect/effect/system/smoke_spread/chem/blob
|
||||
show_log = 0
|
||||
smoke_type = /obj/effect/effect/smoke/chem/transparent
|
||||
|
||||
/datum/effect/effect/system/smoke_spread/chem/New()
|
||||
..()
|
||||
chemholder = new/obj()
|
||||
@@ -155,7 +162,7 @@
|
||||
if(passed_smoke)
|
||||
smoke = passed_smoke
|
||||
else
|
||||
smoke = new /obj/effect/effect/smoke/chem(location)
|
||||
smoke = new smoke_type(location)
|
||||
|
||||
if(chemholder.reagents.reagent_list.len)
|
||||
chemholder.reagents.trans_to_obj(smoke, chemholder.reagents.total_volume / dist, copy = 1) //copy reagents to the smoke so mob/breathe() can handle inhaling the reagents
|
||||
@@ -165,11 +172,13 @@
|
||||
smoke.pixel_x = -32 + rand(-8, 8)
|
||||
smoke.pixel_y = -32 + rand(-8, 8)
|
||||
walk_to(smoke, T)
|
||||
smoke.set_opacity(1) //switching opacity on after the smoke has spawned, and then
|
||||
sleep(150+rand(0,20)) // turning it off before it is deleted results in cleaner
|
||||
smoke.set_opacity(0) // lighting and view range updates
|
||||
fadeOut(smoke)
|
||||
qdel(smoke)
|
||||
if(initial(smoke.opacity))
|
||||
smoke.set_opacity(1) //switching opacity on after the smoke has spawned, and then
|
||||
spawn()
|
||||
sleep(150+rand(0,20)) // turning it off before it is deleted results in cleaner
|
||||
smoke.set_opacity(0) // lighting and view range updates
|
||||
fadeOut(smoke)
|
||||
qdel(smoke)
|
||||
|
||||
/datum/effect/effect/system/smoke_spread/chem/spores/spawnSmoke(var/turf/T, var/icon/I, var/dist = 1)
|
||||
var/obj/effect/effect/smoke/chem/spores = new /obj/effect/effect/smoke/chem(location)
|
||||
|
||||
@@ -238,6 +238,15 @@ steam.start() -- spawns the effect
|
||||
if(prob(25))
|
||||
L.emote("cough")
|
||||
|
||||
/obj/effect/effect/smoke/bad/noxious
|
||||
opacity = 0
|
||||
|
||||
/obj/effect/effect/smoke/bad/noxious/affect(var/mob/living/L)
|
||||
if (!..())
|
||||
return 0
|
||||
if(L.needs_to_breathe())
|
||||
L.adjustToxLoss(1)
|
||||
|
||||
/* Not feasile until a later date
|
||||
/obj/effect/effect/smoke/bad/Crossed(atom/movable/M as mob|obj)
|
||||
..()
|
||||
@@ -369,6 +378,9 @@ steam.start() -- spawns the effect
|
||||
/datum/effect/effect/system/smoke_spread/bad
|
||||
smoke_type = /obj/effect/effect/smoke/bad
|
||||
|
||||
/datum/effect/effect/system/smoke_spread/noxious
|
||||
smoke_type = /obj/effect/effect/smoke/bad/noxious
|
||||
|
||||
/datum/effect/effect/system/smoke_spread/fire
|
||||
smoke_type = /obj/effect/effect/smoke/elemental/fire
|
||||
|
||||
|
||||
Reference in New Issue
Block a user