diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
index eaabcf5980..97fa07b5be 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
@@ -1037,6 +1037,11 @@
regenerate_icons()
//Nests
+/obj/effect/light_emitter/tendril
+ set_luminosity = 4
+ set_cap = 2.5
+ light_color = LIGHT_COLOR_LAVA
+
/mob/living/simple_animal/hostile/spawner/lavaland
name = "necropolis tendril"
desc = "A vile tendril of corruption, originating deep underground. Terrible monsters are pouring out of it."
@@ -1046,7 +1051,6 @@
icon_dead = "tendril"
faction = list("mining")
weather_immunities = list("lava","ash")
- luminosity = 1
health = 250
maxHealth = 250
max_mobs = 3
@@ -1059,9 +1063,17 @@
loot = list(/obj/effect/collapse, /obj/structure/closet/crate/necropolis/tendril)
del_on_death = 1
var/gps = null
+ var/obj/effect/light_emitter/tendril/emitted_light
+
+/mob/living/simple_animal/hostile/spawner/lavaland/goliath
+ mob_type = /mob/living/simple_animal/hostile/asteroid/goliath/beast
+
+/mob/living/simple_animal/hostile/spawner/lavaland/legion
+ mob_type = /mob/living/simple_animal/hostile/asteroid/hivelord/legion
/mob/living/simple_animal/hostile/spawner/lavaland/Initialize()
- ..()
+ . = ..()
+ emitted_light = new(loc)
for(var/F in RANGE_TURFS(1, src))
if(ismineralturf(F))
var/turf/closed/mineral/M = F
@@ -1069,7 +1081,8 @@
gps = new /obj/item/device/gps/internal(src)
/mob/living/simple_animal/hostile/spawner/lavaland/Destroy()
- qdel(gps)
+ QDEL_NULL(emitted_light)
+ QDEL_NULL(gps)
. = ..()
#define MEDAL_PREFIX "Tendril"
@@ -1096,29 +1109,31 @@
/obj/effect/collapse
name = "collapsing necropolis tendril"
desc = "Get clear!"
- luminosity = 1
- layer = ABOVE_OPEN_TURF_LAYER
+ layer = BELOW_OBJ_LAYER
icon = 'icons/mob/nest.dmi'
icon_state = "tendril"
anchored = TRUE
+ density = TRUE
+ var/obj/effect/light_emitter/tendril/emitted_light
-/obj/effect/collapse/New()
- ..()
+/obj/effect/collapse/Initialize()
+ . = ..()
+ emitted_light = new(loc)
visible_message("The tendril writhes in fury as the earth around it begins to crack and break apart! Get back!")
visible_message("Something falls free of the tendril!")
- playsound(get_turf(src),'sound/effects/tendril_destroyed.ogg', 200, 0, 50, 1, 1)
- spawn(50)
- for(var/mob/M in range(7,src))
- shake_camera(M, 15, 1)
- playsound(get_turf(src),'sound/effects/explosionfar.ogg', 200, 1)
- visible_message("The tendril falls inward, the ground around it widening into a yawning chasm!")
- for(var/turf/T in range(2,src))
- if(!T.density)
- T.TerraformTurf(/turf/open/chasm/straight_down/lava_land_surface)
- qdel(src)
+ playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, 0, 50, 1, 1)
+ addtimer(CALLBACK(src, .proc/collapse), 50)
-/mob/living/simple_animal/hostile/spawner/lavaland/goliath
- mob_type = /mob/living/simple_animal/hostile/asteroid/goliath/beast
+/obj/effect/collapse/Destroy()
+ QDEL_NULL(emitted_light)
+ return ..()
-/mob/living/simple_animal/hostile/spawner/lavaland/legion
- mob_type = /mob/living/simple_animal/hostile/asteroid/hivelord/legion
+/obj/effect/collapse/proc/collapse()
+ for(var/mob/M in range(7,src))
+ shake_camera(M, 15, 1)
+ playsound(get_turf(src),'sound/effects/explosionfar.ogg', 200, 1)
+ visible_message("The tendril falls inward, the ground around it widening into a yawning chasm!")
+ for(var/turf/T in range(2,src))
+ if(!T.density)
+ T.TerraformTurf(/turf/open/chasm/straight_down/lava_land_surface)
+ qdel(src)