41fde5757f
any blob can block atmos, the core and nodes now do so blobs use two different procs for checking health and updating icons instead of one(there's probably a use for this) the split consciousness verb now requires a node under your selector, instead of checking a global list of nodes and picking the newest(why?) blobs can no longer take non-brute and burn damage types(I would make toxin do bonus damage but the crew can't apply it anyway)
38 lines
847 B
Plaintext
38 lines
847 B
Plaintext
/obj/effect/blob/node
|
|
name = "blob node"
|
|
icon = 'icons/mob/blob.dmi'
|
|
icon_state = "blank_blob"
|
|
desc = "A large, pulsating yellow mass."
|
|
health = 200
|
|
maxhealth = 200
|
|
point_return = 25
|
|
atmosblock = 1
|
|
|
|
|
|
/obj/effect/blob/node/New(loc, var/h = 100)
|
|
blob_nodes += src
|
|
SSobj.processing |= src
|
|
..(loc, h)
|
|
|
|
/obj/effect/blob/node/adjustcolors(a_color)
|
|
overlays.Cut()
|
|
color = null
|
|
var/image/I = new('icons/mob/blob.dmi', "blob")
|
|
I.color = a_color
|
|
src.overlays += I
|
|
var/image/C = new('icons/mob/blob.dmi', "blob_node_overlay")
|
|
src.overlays += C
|
|
|
|
/obj/effect/blob/node/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
|
return
|
|
|
|
/obj/effect/blob/node/Destroy()
|
|
blob_nodes -= src
|
|
SSobj.processing.Remove(src)
|
|
return ..()
|
|
|
|
/obj/effect/blob/node/Life()
|
|
pulseLoop(5)
|
|
health = min(initial(health), health + 1)
|
|
color = null
|