Files
Bubberstation/code/game/objects/structures/spawner.dm
SkyratBot 1258594041 [MIRROR] Goldgrub basic [MDB IGNORE] (#23255)
* Goldgrub basic

* Update riding_mob.dm

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-08-22 02:44:57 -04:00

162 lines
5.7 KiB
Plaintext

/obj/structure/spawner
name = "monster nest"
icon = 'icons/mob/simple/animal.dmi'
icon_state = "hole"
max_integrity = 100
move_resist = MOVE_FORCE_EXTREMELY_STRONG
anchored = TRUE
density = TRUE
var/max_mobs = 5
var/spawn_time = 30 SECONDS
var/mob_types = list(/mob/living/basic/carp)
var/spawn_text = "emerges from"
var/faction = list(FACTION_HOSTILE)
var/spawner_type = /datum/component/spawner
/obj/structure/spawner/Initialize(mapload)
. = ..()
AddComponent(spawner_type, mob_types, spawn_time, max_mobs, faction, spawn_text)
/obj/structure/spawner/attack_animal(mob/living/simple_animal/user, list/modifiers)
if(faction_check(faction, user.faction, FALSE) && !user.client)
return
return ..()
/obj/structure/spawner/syndicate
name = "warp beacon"
icon = 'icons/obj/device.dmi'
icon_state = "syndbeacon"
spawn_text = "warps in from"
mob_types = list(/mob/living/basic/syndicate/ranged)
faction = list(ROLE_SYNDICATE)
/obj/structure/spawner/skeleton
name = "bone pit"
desc = "A pit full of bones, and some still seem to be moving..."
icon_state = "hole"
icon = 'icons/mob/simple/lavaland/nest.dmi'
max_integrity = 150
max_mobs = 15
spawn_time = 15 SECONDS
mob_types = list(/mob/living/simple_animal/hostile/skeleton)
spawn_text = "climbs out of"
faction = list(FACTION_SKELETON)
/obj/structure/spawner/clown
name = "Laughing Larry"
desc = "A laughing, jovial figure. Something seems stuck in his throat."
icon_state = "clownbeacon"
icon = 'icons/obj/device.dmi'
max_integrity = 200
max_mobs = 15
spawn_time = 15 SECONDS
mob_types = list(
/mob/living/simple_animal/hostile/retaliate/clown,
/mob/living/simple_animal/hostile/retaliate/clown/banana,
/mob/living/simple_animal/hostile/retaliate/clown/clownhulk,
/mob/living/simple_animal/hostile/retaliate/clown/clownhulk/chlown,
/mob/living/simple_animal/hostile/retaliate/clown/clownhulk/honcmunculus,
/mob/living/simple_animal/hostile/retaliate/clown/fleshclown,
/mob/living/simple_animal/hostile/retaliate/clown/mutant/glutton,
/mob/living/simple_animal/hostile/retaliate/clown/honkling,
/mob/living/simple_animal/hostile/retaliate/clown/longface,
/mob/living/simple_animal/hostile/retaliate/clown/lube,
)
spawn_text = "climbs out of"
faction = list(FACTION_CLOWN)
/obj/structure/spawner/mining
name = "monster den"
desc = "A hole dug into the ground, harboring all kinds of monsters found within most caves or mining asteroids."
icon_state = "hole"
max_integrity = 200
max_mobs = 3
icon = 'icons/mob/simple/lavaland/nest.dmi'
spawn_text = "crawls out of"
mob_types = list(
/mob/living/basic/mining/basilisk,
/mob/living/basic/mining/goldgrub,
/mob/living/basic/mining/goliath/ancient,
/mob/living/basic/wumborian_fugu,
/mob/living/simple_animal/hostile/asteroid/hivelord,
)
faction = list(FACTION_MINING)
/obj/structure/spawner/mining/goldgrub
name = "goldgrub den"
desc = "A den housing a nest of goldgrubs, annoying but arguably much better than anything else you'll find in a nest."
mob_types = list(/mob/living/basic/mining/goldgrub)
/obj/structure/spawner/mining/goliath
name = "goliath den"
desc = "A den housing a nest of goliaths, oh god why?"
mob_types = list(/mob/living/basic/mining/goliath/ancient)
/obj/structure/spawner/mining/hivelord
name = "hivelord den"
desc = "A den housing a nest of hivelords."
mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord)
/obj/structure/spawner/mining/basilisk
name = "basilisk den"
desc = "A den housing a nest of basilisks, bring a coat."
mob_types = list(/mob/living/basic/mining/basilisk)
/obj/structure/spawner/mining/wumborian
name = "wumborian fugu den"
desc = "A den housing a nest of wumborian fugus, how do they all even fit in there?"
mob_types = list(/mob/living/basic/wumborian_fugu)
/obj/structure/spawner/nether
name = "netherworld link"
desc = null //see examine()
icon_state = "nether"
max_integrity = 50
spawn_time = 60 SECONDS
max_mobs = 15
icon = 'icons/mob/simple/lavaland/nest.dmi'
spawn_text = "crawls through"
mob_types = list(
/mob/living/basic/blankbody,
/mob/living/basic/creature,
/mob/living/basic/migo,
)
faction = list(FACTION_NETHER)
/obj/structure/spawner/nether/Initialize(mapload)
. = ..()
START_PROCESSING(SSprocessing, src)
/obj/structure/spawner/nether/examine(mob/user)
. = ..()
if(isskeleton(user) || iszombie(user))
. += "A direct link to another dimension full of creatures very happy to see you. [span_nicegreen("You can see your house from here!")]"
else
. += "A direct link to another dimension full of creatures not very happy to see you. [span_warning("Entering the link would be a very bad idea.")]"
/obj/structure/spawner/nether/attack_hand(mob/user, list/modifiers)
. = ..()
if(isskeleton(user) || iszombie(user))
to_chat(user, span_notice("You don't feel like going home yet..."))
else
user.visible_message(span_warning("[user] is violently pulled into the link!"), \
span_userdanger("Touching the portal, you are quickly pulled through into a world of unimaginable horror!"))
contents.Add(user)
/obj/structure/spawner/nether/process(seconds_per_tick)
for(var/mob/living/living_mob in contents)
if(living_mob)
playsound(src, 'sound/magic/demon_consume.ogg', 50, TRUE)
living_mob.adjustBruteLoss(60 * seconds_per_tick)
new /obj/effect/gibspawner/generic(get_turf(living_mob), living_mob)
if(living_mob.stat == DEAD)
var/mob/living/basic/blankbody/newmob = new(loc)
newmob.name = "[living_mob]"
newmob.desc = "It's [living_mob], but [living_mob.p_their()] flesh has an ashy texture, and [living_mob.p_their()] face is featureless save an eerie smile."
src.visible_message(span_warning("[living_mob] reemerges from the link!"))
qdel(living_mob)