diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/macrobacteria.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/macrobacteria.dm new file mode 100644 index 00000000000..314175e9f3c --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/macrobacteria.dm @@ -0,0 +1,92 @@ +/datum/category_item/catalogue/fauna/abyss_lurker + name = "Alien Wildlife - Teppi" + desc = "Teppi are large omnivorous quadrupeds with long fur.\ + Unlike many horned mammals, Teppi have developed paws with four toes rather than hooves.\ + This coupled with a thick, powerful tail makes them quite capable and balanced on many\ + kinds of terrain. A recently discovered species, their origins are something of a\ + mystery, but they have been discovered in more different regions of space with no apparent\ + connection to one another. Teppi are known to reproduce and grow rather quickly, which if\ + left unchecked can lead to serious problems for local ecology.\ + Teppi are very hardy, engaging them in combat is not recommended.\ + Teppi can be a good source of protein and materials for crafts and clothing in emergency\ + situations. They are not especially picky eaters, and have a rather mild temperament.\ + A pair of well fed Teppi can rather quickly become a small horde, so it is generally\ + advised to keep an eye on their numbers." + value = CATALOGUER_REWARD_MEDIUM + + +/mob/living/simple_mob/vore/alienanimals/abyss_lurker + name = "abyss lurker" + desc = "A pale mass of heaving flesh that gropes around in the gloom. It doesn't appear to have any eyes." + icon = 'icons/mob/alienanimals_x64.dmi' + icon_state = "abyss_lurker" + icon_living = "abyss_lurker" + icon_dead = "abyss_lurker-dead" + icon_rest = "abyss_lurker" + + faction = "macrobacteria" + maxHealth = 600 + health = 600 + movement_cooldown = 3 + meat_amount = 5 + meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat + catalogue_data = list(/datum/category_item/catalogue/fauna/abyss_lurker) + + see_in_dark = 8 + + pixel_x = -16 + default_pixel_x = -16 + + + attacktext = list("flashes", "slaps", "smothers", "grapples") + attack_sound = 'sound/effects/attackblob.ogg' + + ai_holder_type = /datum/ai_holder/simple_mob/say_hostile + + mob_size = MOB_LARGE + + swallowTime = 2 SECONDS + vore_active = 1 + vore_capacity = 1 + vore_bump_chance = 50 + vore_bump_emote = "begins to absorb" + vore_ignores_undigestable = 0 + vore_default_mode = DM_SELECT + vore_icons = SA_ICON_LIVING + vore_stomach_name = "Stomach" + vore_default_item_mode = IM_DIGEST + vore_pounce_chance = 50 + vore_pounce_cooldown = 10 + vore_pounce_successrate = 75 + vore_pounce_falloff = 0 + vore_pounce_maxhealth = 100 + vore_standing_too = TRUE + +/mob/living/simple_mob/vore/alienanimals/abyss_lurker/init_vore() + ..() + var/obj/belly/B = vore_selected + B.name = "interior" + B.desc = "soft" + B.mode_flags = DM_FLAG_THICKBELLY | DM_FLAG_NUMBING + B.belly_fullscreen = "yet_another_tumby" + B.digest_brute = 2 + B.digest_burn = 2 + B.digestchance = 0 + B.absorbchance = 0 + B.escapechance = 25 + +/datum/ai_holder/simple_mob/say_hostile + hostile = FALSE + retaliate = TRUE + +/datum/ai_holder/simple_mob/say_hostile/on_hear_say(mob/living/speaker, message) + . = ..() + if(holder.client || !speaker.client) + return + if(!speaker.devourable || !speaker.allowmobvore || !speaker.can_be_drop_prey) + return + if(speaker.z != holder.z) + return + give_target(speaker, TRUE) + track_target_position() + set_stance(STANCE_FIGHT) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm index 0c67c0fc599..1880218bd38 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm @@ -651,8 +651,7 @@ semirandom_group_min = 1 semirandom_group_max = 3 mob_intent = "retaliate" - valid_mobs = list(list(/mob/living/simple_mob/vore/alienanimals/teppi = 100)) //REPLACE ME - no_spoilers = TRUE + valid_mobs = list(list(/mob/living/simple_mob/vore/alienanimals/abyss_lurker = 100)) var/mob_chance = 10 var/treasure_chance = 50 @@ -1505,7 +1504,7 @@ for(var/atom/movable/A in contents) if(A.anchored) continue - if(!isitem(A) || !isliving(A)) + if(!isitem(A) && !isliving(A)) continue if(A.loc != src) //Don't move things that aren't here continue diff --git a/icons/mob/alienanimals_x64.dmi b/icons/mob/alienanimals_x64.dmi index 03e8f63dcbd..6cf1e85ddc8 100644 Binary files a/icons/mob/alienanimals_x64.dmi and b/icons/mob/alienanimals_x64.dmi differ diff --git a/maps/redgate/stardog.dmm b/maps/redgate/stardog.dmm index b12e96b7836..215e53fea01 100644 --- a/maps/redgate/stardog.dmm +++ b/maps/redgate/stardog.dmm @@ -275,6 +275,10 @@ }, /turf/simulated/floor/lino, /area/redgate/stardog/lounge) +"BO" = ( +/obj/effect/map_effect/interval/effect_emitter/steam/less_frequent, +/turf/simulated/floor/water/digestive_enzymes, +/area/redgate/stardog/flesh_abyss/stomach) "Cv" = ( /obj/effect/dog_teleporter/exit, /turf/simulated/floor/flesh, @@ -472,6 +476,10 @@ "Wj" = ( /turf/unsimulated/floor/dark, /area/redgate/stardog/flesh_abyss) +"Wu" = ( +/obj/effect/map_effect/interval/effect_emitter/steam/less_frequent, +/turf/simulated/floor/water/digestive_enzymes, +/area/redgate/stardog/flesh_abyss/s_int) "WB" = ( /turf/simulated/floor/flesh/mover{ dir = 6 @@ -1790,7 +1798,7 @@ KL KF KF KF -KF +BO KF KF KF @@ -4206,7 +4214,7 @@ KL KF KF KF -KF +BO KF KF KF @@ -5187,7 +5195,7 @@ Ll Ll KF KF -KF +BO KF KL KL @@ -5337,7 +5345,7 @@ KL KF KF KF -KF +BO KF KL KL @@ -6331,7 +6339,7 @@ KF KF KF KF -KF +BO KF KF KF @@ -12850,7 +12858,7 @@ Zh mo sW sW -sW +Wu sW sW mo diff --git a/vorestation.dme b/vorestation.dme index f8018e9fa78..ea90fdedf11 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -3057,6 +3057,7 @@ #include "code\modules\mob\living\simple_mob\subtypes\animal\squirrel.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\catslug.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\jellyfish.dm" +#include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\macrobacteria.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\skeleton.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\space_mouse.dm" #include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\spacewhale.dm"