Files
GS13NG/code/modules/ruins/objects_and_mobs/ash_walker_den.dm
T
2017-06-13 13:46:58 -07:00

50 lines
1.9 KiB
Plaintext

#define ASH_WALKER_SPAWN_THRESHOLD 2
//The ash walker den consumes corpses or unconscious mobs to create ash walker eggs. For more info on those, check ghost_role_spawners.dm
/mob/living/simple_animal/hostile/spawner/ash_walker
name = "ash walker nest"
desc = "A nest built around a necropolis tendril. The eggs seem to grow unnaturally fast..."
icon = 'icons/mob/nest.dmi'
icon_state = "ash_walker_nest"
icon_living = "ash_walker_nest"
faction = list("ashwalker")
health = 200
maxHealth = 200
loot = list(/obj/effect/gibspawner, /obj/item/device/assembly/signaler/anomaly)
del_on_death = 1
var/meat_counter
var/obj/effect/light_emitter/tendril/emitted_light
/mob/living/simple_animal/hostile/spawner/ash_walker/Initialize()
. = ..()
emitted_light = new(loc)
/mob/living/simple_animal/hostile/spawner/ash_walker/Destroy()
QDEL_NULL(emitted_light)
. = ..()
/mob/living/simple_animal/hostile/spawner/ash_walker/Life()
..()
if(!stat)
consume()
spawn_mob()
/mob/living/simple_animal/hostile/spawner/ash_walker/proc/consume()
for(var/mob/living/H in view(src,1)) //Only for corpse right next to/on same tile
if(H.stat)
visible_message("<span class='warning'>Serrated tendrils eagerly pull [H] to [src], tearing the body apart as its blood seeps over the eggs.</span>")
playsound(get_turf(src),'sound/magic/Demon_consume.ogg', 100, 1)
if(ismegafauna(H))
meat_counter += 20
else
meat_counter ++
for(var/obj/item/W in H)
H.dropItemToGround(W)
H.gib()
adjustHealth(-maxHealth * 0.05)//restores 5% hp of tendril
/mob/living/simple_animal/hostile/spawner/ash_walker/spawn_mob()
if(meat_counter >= ASH_WALKER_SPAWN_THRESHOLD)
new /obj/effect/mob_spawn/human/ash_walker(get_step(src.loc, SOUTH))
visible_message("<span class='danger'>One of the eggs swells to an unnatural size and tumbles free. It's ready to hatch!</span>")
meat_counter -= ASH_WALKER_SPAWN_THRESHOLD