Adds raptor vore mobs

Added raptor vore mobs. They're retaliate mobs with a digestion focus. They have weight gain sprites and get a little chunkier after at least partially digesting someone (or otherwise gaining nutrition).

Added the raptors and bats to the maint pred list.

Added the raptors, bats, vampires and succubi to the semirandom vore mob list.
This commit is contained in:
SatinIsle
2023-09-26 00:37:07 +01:00
parent 4e5f8182a9
commit 74748cfdf3
5 changed files with 144 additions and 1 deletions

View File

@@ -758,6 +758,11 @@ var/global/list/semirandom_mob_spawner_decisions = list()
list(/mob/living/simple_mob/vore/fennix) = 50,
list(/mob/living/simple_mob/vore/hippo) = 70,
list(/mob/living/simple_mob/vore/horse) = 100,
list(/mob/living/simple_mob/vore/raptor) = 100,
list(/mob/living/simple_mob/vore/succubus) = 100,
list(/mob/living/simple_mob/vore/vampire) = 50,
list(/mob/living/simple_mob/vore/vampire/queen) = 1,
list(/mob/living/simple_mob/vore/bat) = 50,
list(
/mob/living/simple_mob/vore/lamia,
/mob/living/simple_mob/vore/lamia/albino,

View File

@@ -53,7 +53,9 @@
"Snapdragon" =/mob/living/simple_mob/vore/pakkun/snapdragon,
"Sand pakkun" = /mob/living/simple_mob/vore/pakkun/sand,
"Fire pakkun" = /mob/living/simple_mob/vore/pakkun/fire,
"Amethyst pakkun" = /mob/living/simple_mob/vore/pakkun/purple
"Amethyst pakkun" = /mob/living/simple_mob/vore/pakkun/purple,
"Raptor" = /mob/living/simple_mob/vore/raptor,
"Giant Bat" = /mob/living/simple_mob/vore/bat
)
/obj/structure/ghost_pod/ghost_activated/maintpred/create_occupant(var/mob/M)

View File

@@ -0,0 +1,135 @@
/mob/living/simple_mob/vore/raptor
name = "raptor"
desc = "A massive raptor with piercing yellow eyes. Long sharp claws and huge pointy teeth, I wouldn't want to upset this thing."
tt_desc = "Velociraptor voroliensis"
icon = 'icons/mob/vore_raptor.dmi'
icon_dead = "raptorpurple_dead"
icon_living = "raptorpurple"
icon_state = "raptorpurple"
icon_rest = "raptorpurple"
faction = "raptor"
meat_amount = 40 //Big dog, lots of meat
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
old_x = -48
old_y = 0
vis_height = 92
friendly = list("nudges", "sniffs on", "rumbles softly at", "slobberlicks")
default_pixel_x = -48
pixel_x = -48
pixel_y = 0
response_help = "pets"
response_disarm = "shoves"
response_harm = "smacks"
movement_cooldown = -1
harm_intent_damage = 10
melee_damage_lower = 10
melee_damage_upper = 15
maxHealth = 500
attacktext = list("chomped")
see_in_dark = 8
minbodytemp = 0
ai_holder_type = /datum/ai_holder/simple_mob/retaliate
max_buckled_mobs = 1
mount_offset_y = 32
mount_offset_x = -16
can_buckle = TRUE
buckle_movable = TRUE
buckle_lying = FALSE
var/initial_icon = "raptorpurple"
var/random_skin = 1
var/list/skins = list(
"raptorpurple",
"raptorgreen",
"raptorred",
"raptorblue",
"raptorblack",
"raptorwhite"
)
/mob/living/simple_mob/vore/raptor
vore_bump_chance = 25
vore_digest_chance = 5
vore_escape_chance = 5
vore_pounce_chance = 50
vore_active = 1
vore_icons = SA_ICON_LIVING | SA_ICON_REST
vore_capacity = 2
swallowTime = 50
vore_ignores_undigestable = TRUE
vore_default_mode = DM_DIGEST
vore_pounce_maxhealth = 125
vore_bump_emote = "tries to snap up"
/mob/living/simple_mob/vore/raptor/New()
..()
if(random_skin)
icon_living = pick(skins)
initial_icon = icon_living
icon_rest = "[icon_living]"
icon_dead = "[icon_living]_dead"
update_icon()
/mob/living/simple_mob/vore/raptor/Login()
. = ..()
if(!riding_datum)
riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = -1
/mob/living/simple_mob/vore/raptor/init_vore()
. = ..()
var/obj/belly/B = vore_selected
B.name = "stomach"
B.desc = "The raptor pounces atop you, pinning you under sharp taloned feet, a heavy weight on your chest. Unable to do much more than look up at the reptilian face, looking back down at you with a curious bird-like expression, you're helpless in the moment. With little more warning, the jaws lunge open and dive down towards your head. Engulfing you in the wet maw, tongue pushing against your face, a cage of jagged teeth hold you in place. Pulling you upwards roughly, the creature begins to chomp it's way down your body, and you're steadily transferred down the rippling, tight tunnel of its gullet. The beast throws its head backwards, sending you spiralling down toward's its stomach, where you land with a wet splash. The walls of the gut immediately clamp down on you, wrinkled flesh grinding the gastric slurry of acids and enzymes into your trapped form. A cacophony of bodily functions, groans, gurgles and heart beats overwhelm your hearing. This creature's body has clearly decided you're little more than meat to it now."
B.vore_sound = "Tauric Swallow"
B.release_sound = "Pred Escape"
B.mode_flags = DM_FLAG_THICKBELLY
B.fancy_vore = 1
B.selective_preference = DM_DIGEST
B.vore_verb = "devour"
B.digest_brute = 3
B.digest_burn = 2
B.digest_oxy = 0
B.digestchance = 50
B.absorbchance = 0
B.escapechance = 5
B.escape_stun = 5
B.contamination_color = "grey"
B.contamination_flavor = "Wet"
B.emote_lists[DM_DIGEST] = list(
"The raptor growls in annoyance before clenching those wrinkled walls tight against your form, grinding away at you!",
"As the beast wanders about, you're forced to slip and slide around amidst a pool of thick digestive goop, sinking briefly into the thick, heavy walls!",
"You can barely hear the drake let out a pleased rumble as its stomach eagerly gurgles around its newfound meal!",
"As the thinning air begins to make you feel dizzy, menacing bworps and grumbles fill that dark, constantly shifting organ!",
"The constant, rhythmic kneading and massaging starts to take its toll along with the muggy heat, making you feel weaker and weaker!",
"The raptor happily wanders around while digesting its meal, almost like it is trying to show off the hanging gut you've given it. Not like it made much of a difference on his already borderline obese form anyway~")
/mob/living/simple_mob/vore/raptor/update_icon()
if(nutrition >= 450)
icon_living = "[initial_icon]_fat"
icon_state = icon_living
else if(nutrition < 450)
icon_living = "[initial_icon]"
icon_state = icon_living
. = ..()
if(vore_active)
var/voremob_awake = FALSE
if(icon_state == icon_living)
voremob_awake = TRUE
update_fullness()
if(!vore_fullness)
update_transform()
return 0
else if((stat == CONSCIOUS) && (!icon_rest || !resting || !incapacitated(INCAPACITATION_DISABLED)) && (vore_icons & SA_ICON_LIVING))
icon_state = "[icon_living]-[vore_fullness]"
else if(stat >= DEAD && (vore_icons & SA_ICON_DEAD))
icon_state = "[icon_dead]-[vore_fullness]"
else if(((stat == UNCONSCIOUS) || resting || incapacitated(INCAPACITATION_DISABLED) ) && icon_rest && (vore_icons & SA_ICON_REST))
icon_state = "[icon_rest]-[vore_fullness]"
if(vore_eyes && voremob_awake) //Update eye layer if applicable.
remove_eyes()
add_eyes()
update_transform()

BIN
icons/mob/vore_raptor.dmi Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@@ -3245,6 +3245,7 @@
#include "code\modules\mob\living\simple_mob\subtypes\vore\panther.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\peasant.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\rabbit.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\raptor.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\rat.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\redpanda.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\seagull.dm"