mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-18 04:55:27 +00:00
## About The Pull Request the goldgrub is now a basic monster. the goldgrub will now look for walls to mine and look for ores to eat. if he finds any nearby humans he will escape and dig away. also if he sense a storm is coming he will dig away and only come back out when the storm is gone. the goldgrub will escape from u but u can now befriend the goldgrub. if u feed him ores he will love u and become ur pet u can ride him or make him follow u. he will also help u mine, if u leave him to mine for a bit and come back to him later u can ask him to spit out all the materials he mined and he will give them to u. also if u feed him a bluespace ore, he will lay an egg and have a baby. the goldgrub is very protective over this egg he will drag it around with him. the goldgrub baby will follow his mom or dad until he grows up to be like his mom or dad ## Why It's Good For The Game give the goldgrub more character and now he can help miners to mine if they befriend him ## Changelog 🆑 refactor: the goldgrub has been refactored please report any bugs add: the goldgrub can now be tamed and he can have babys /🆑
161 lines
5.7 KiB
Plaintext
161 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)
|