mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-19 18:17:52 +01:00
* Medical and RnD DMI files split * Cargo DMI split * Security DMI split * Engineering DMI split * Captain DMI split * Civilian/service DMI split This one hurt * Forgot about this one * Color DMI split * Purges everything that was delted up until this point ... with a blindfold and a shotgun * Dress and suit DMI split * Pants and shorts DMI split and merges pants and shorts files... shorts are pants, right? * Donator/fluff jumpsuit clothing organisational relocation * e oops * So this is used, repath bad * Random commit * Costumes DMI split and jumpsuits purge * Some fixes * pennywise * Centcom DMI split * SolGov DMI split * Retro DMI split * Syndicate DMI split * Misc DMI split * centcom officer * Kills off uniform.dmi completely * last fixes * lastest fixes * vox navy gold conflict * civilian barber * Tourist observers work now * Hopefully working non-human humanoid clothing * This being in suit.dmi is one of the reasons I made this PR * This shouldn't be here * Late night coding * Pun Pun regains his drip * Last fixes * security/OFFICER * Most important - clown fix * working subtypes good * Fixes chameleon jumpsuit * Proper QM pathes * Fixes jumpsuit rolling with the power of poor quality code * Cargo tech character setup fix * else instead why didn't I do this in the first place * PURP * Fixes broken character setup job clothing * CC suit fix * Psychedelic jumpsuit proper path * You must wear the jumpsuit to adjust it
94 lines
4.1 KiB
Plaintext
94 lines
4.1 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
|
|
/obj/structure/lavaland/ash_walker
|
|
name = "necropolis tendril nest"
|
|
desc = "A vile tendril of corruption. It's surrounded by a nest of rapidly growing eggs..."
|
|
icon = 'icons/mob/nest.dmi'
|
|
icon_state = "ash_walker_nest"
|
|
|
|
move_resist = INFINITY // just killing it tears a massive hole in the ground, let's not move it
|
|
anchored = TRUE
|
|
density = TRUE
|
|
|
|
resistance_flags = FIRE_PROOF | LAVA_PROOF
|
|
max_integrity = 200
|
|
|
|
var/faction = list("ashwalker")
|
|
var/meat_counter = 6
|
|
|
|
/obj/structure/lavaland/ash_walker/Initialize()
|
|
. = ..()
|
|
START_PROCESSING(SSprocessing, src)
|
|
|
|
/obj/structure/lavaland/ash_walker/Destroy()
|
|
. = ..()
|
|
STOP_PROCESSING(SSprocessing, src)
|
|
|
|
/obj/structure/lavaland/ash_walker/deconstruct(disassembled)
|
|
new /obj/item/assembly/signaler/anomaly/random(get_step(loc, pick(GLOB.alldirs)))
|
|
new /obj/effect/collapse(loc)
|
|
return ..()
|
|
|
|
/obj/structure/lavaland/ash_walker/process()
|
|
consume()
|
|
spawn_mob()
|
|
|
|
/obj/structure/lavaland/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)
|
|
for(var/obj/item/W in H)
|
|
if(!H.unEquip(W))
|
|
qdel(W)
|
|
if(ismegafauna(H))
|
|
meat_counter += 20
|
|
else
|
|
meat_counter++
|
|
H.gib()
|
|
obj_integrity = min(obj_integrity + max_integrity*0.05,max_integrity)//restores 5% hp of tendril
|
|
|
|
/obj/structure/lavaland/ash_walker/proc/spawn_mob()
|
|
if(meat_counter >= ASH_WALKER_SPAWN_THRESHOLD)
|
|
new /obj/effect/mob_spawn/human/ash_walker(get_step(loc, pick(GLOB.alldirs)))
|
|
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
|
|
|
|
/obj/effect/mob_spawn/human/ash_walker
|
|
name = "ash walker egg"
|
|
desc = "A man-sized yellow egg, spawned from some unfathomable creature. A humanoid silhouette lurks within."
|
|
mob_name = "an ash walker"
|
|
icon = 'icons/mob/lavaland/lavaland_monsters.dmi'
|
|
icon_state = "large_egg"
|
|
mob_species = /datum/species/unathi/ashwalker
|
|
outfit = /datum/outfit/ashwalker
|
|
roundstart = FALSE
|
|
death = FALSE
|
|
anchored = FALSE
|
|
move_resist = MOVE_FORCE_NORMAL
|
|
density = FALSE
|
|
death_cooldown = 300 SECONDS
|
|
important_info = "Do not leave Lavaland without admin permission. Do not attack the mining outpost without being provoked."
|
|
description = "You are an ashwalker, a native inhabitant of Lavaland. Try to survive with nothing but spears and other tribal technology. Bring dead bodies back to your tendril to create more of your kind. You are free to attack miners and other outsiders."
|
|
flavour_text = "Your tribe worships the Necropolis. The wastes are sacred ground, its monsters a blessed bounty. \
|
|
You have seen lights in the distance... they foreshadow the arrival of outsiders that seek to tear apart the Necropolis and its domain. Fresh sacrifices for your nest."
|
|
assignedrole = "Ash Walker"
|
|
|
|
/obj/effect/mob_spawn/human/ash_walker/special(mob/living/carbon/human/new_spawn)
|
|
new_spawn.rename_character(new_spawn.real_name, new_spawn.dna.species.get_random_name(new_spawn.gender))
|
|
new_spawn.mind.offstation_role = TRUE
|
|
|
|
to_chat(new_spawn, "<b>Drag the corpses of men and beasts to your nest. It will absorb them to create more of your kind. Glory to the Necropolis!</b>")
|
|
to_chat(new_spawn, "<span class='motd'>For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Ash_Walker)</span>")
|
|
|
|
/obj/effect/mob_spawn/human/ash_walker/New()
|
|
. = ..()
|
|
var/area/A = get_area(src)
|
|
if(A)
|
|
notify_ghosts("An ash walker egg is ready to hatch in \the [A.name].", source = src, action = NOTIFY_ATTACK, flashwindow = FALSE)
|
|
|
|
/datum/outfit/ashwalker
|
|
name ="Ashwalker"
|
|
head = /obj/item/clothing/head/helmet/gladiator
|
|
uniform = /obj/item/clothing/under/costume/gladiator/ash_walker
|