diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/rakshasa_abilities.dm b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/rakshasa_abilities.dm new file mode 100644 index 0000000000..44b94a9209 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/rakshasa_abilities.dm @@ -0,0 +1,215 @@ +/mob/living/simple_mob/shadekin/Initialize() + var/list/ability_types = subtypesof(/obj/effect/shadekin_ability) + if(name == "Rakshasa") + ability_types += subtypesof(/obj/effect/rakshasa_ability) + shadekin_abilities = list() + for(var/type in ability_types) + shadekin_abilities += new type(src) + + update_icon() + + return ..() + + +/obj/effect/rakshasa_ability + name = "" + desc = "" + icon = 'icons/mob/screen_spells.dmi' + var/ability_name = "FIX ME" + var/cost = 50 + var/mob/living/simple_mob/shadekin/my_kin + var/shift_mode = NOT_WHILE_SHIFTED + var/ab_sound + +/obj/effect/rakshasa_ability/New(var/new_kin) + ..() + my_kin = new_kin + loc = null + +/obj/effect/rakshasa_ability/Destroy() + my_kin = null + return ..() + +/obj/effect/rakshasa_ability/proc/atom_button_text() + var/shift_denial + + if(shift_mode == NOT_WHILE_SHIFTED && (my_kin.ability_flags & AB_PHASE_SHIFTED)) + shift_denial = "Physical Only" + else if(shift_mode == ONLY_WHILE_SHIFTED && !(my_kin.ability_flags & AB_PHASE_SHIFTED)) + shift_denial = "Shifted Only" + + if(shift_denial) + name = shift_denial + else + name = my_kin.energy >= cost ? "Activate" : "No Energy" + return src + +/obj/effect/rakshasa_ability/Click(var/location, var/control, var/params) + if(my_kin.stat) return + + var/list/clickprops = params2list(params) + var/opts = clickprops["shift"] + + if(opts) + to_chat(my_kin,"[name] (Cost: [cost]%) - [desc]") + else + do_ability(my_kin) + +/obj/effect/rakshasa_ability/proc/do_ability() + if(my_kin.stat) + to_chat(my_kin,"Can't use that ability in your state!") + return FALSE + if(shift_mode == NOT_WHILE_SHIFTED && (my_kin.ability_flags & AB_PHASE_SHIFTED)) + to_chat(my_kin,"Can't use that ability while phase shifted!") + return FALSE + else if(shift_mode == ONLY_WHILE_SHIFTED && !(my_kin.ability_flags & AB_PHASE_SHIFTED)) + to_chat(my_kin,"Can only use that ability while phase shifted!") + return FALSE + else if(my_kin.energy < cost) + to_chat(my_kin,"Not enough energy for that ability!") + return FALSE + + my_kin.energy -= cost + if(ab_sound) + playsound(src,ab_sound,75,1) + + return TRUE + + + + +/obj/effect/rakshasa_ability/phase_shift2 + ability_name = "Goo Shift" + desc = "Shift yourself with goopy effects." + icon_state = "tech_passwall" + cost = 100 + shift_mode = SHIFTED_OR_NOT + ab_sound = 'sound/effects/stealthoff.ogg' +/obj/effect/rakshasa_ability/phase_shift2/do_ability() + if(!..()) + return + new /obj/effect/decal/cleanable/blood/oil(loc, src) + playsound(src, 'sound/rakshasa/Corrosion1.ogg', 100, 1) + my_kin.phase_shift() + if(my_kin.ability_flags & AB_PHASE_SHIFTED) + cost = 0 //Shifting back is free (but harmful in light) + new /obj/effect/decal/cleanable/blood/oil(my_kin.loc) + var/goo_sounds = list ( + 'sound/rakshasa/Decay1.ogg', + 'sound/rakshasa/Decay2.ogg', + 'sound/rakshasa/Decay3.ogg' + ) + var/sound = pick(goo_sounds) + playsound(my_kin.loc, sound, 100, 1) + else + cost = initial(cost) + new /obj/effect/decal/cleanable/blood/oil(my_kin.loc) + playsound(my_kin.loc, 'sound/rakshasa/Emerge0.ogg', 100, 1) +///////////////////////////////////////////////////////////////// +/obj/effect/rakshasa_ability/phase_shift3 + ability_name = "Goo Shift No Emerge" + desc = "Shift yourself with goopy effects." + icon_state = "tech_passwall" + cost = 100 + shift_mode = SHIFTED_OR_NOT + ab_sound = 'sound/effects/stealthoff.ogg' +/obj/effect/rakshasa_ability/phase_shift3/do_ability() + if(!..()) + return + new /obj/effect/decal/cleanable/blood/oil(loc, src) + playsound(src, 'sound/rakshasa/Corrosion1.ogg', 100, 1) + my_kin.phase_shift() + if(my_kin.ability_flags & AB_PHASE_SHIFTED) + cost = 0 //Shifting back is free (but harmful in light) + new /obj/effect/decal/cleanable/blood/oil(my_kin.loc) + var/goo_sounds = list ( + 'sound/rakshasa/Decay1.ogg', + 'sound/rakshasa/Decay2.ogg', + 'sound/rakshasa/Decay3.ogg' + ) + var/sound = pick(goo_sounds) + playsound(my_kin.loc, sound, 100, 1) + else + cost = initial(cost) + new /obj/effect/decal/cleanable/blood/oil(my_kin.loc) + var/goo_sounds = list ( + 'sound/rakshasa/Decay1.ogg', + 'sound/rakshasa/Decay2.ogg', + 'sound/rakshasa/Decay3.ogg' + ) + var/sound = pick(goo_sounds) + playsound(my_kin.loc, sound, 100, 1) +///////////////////////////////////////////////////////////////// +/obj/effect/rakshasa_ability/drip_oil + ability_name = "Goo Drip" + desc = "Drip some goo." + icon_state = "" + cost = 0 + shift_mode = SHIFTED_OR_NOT + ab_sound = 'sound/effects/stealthoff.ogg' +/obj/effect/rakshasa_ability/drip_oil/do_ability() + if(!..()) + return + new /obj/effect/decal/cleanable/blood/oil(my_kin.loc) + var/goo_sounds = list ( + 'sound/rakshasa/Decay1.ogg', + 'sound/rakshasa/Decay2.ogg', + 'sound/rakshasa/Decay3.ogg' + ) + var/sound = pick(goo_sounds) + playsound(my_kin.loc, sound, 100, 1) +///////////////////////////////////////////////////////////////// +/obj/effect/rakshasa_ability/laugh + ability_name = "Laugh" + desc = "Laugh." + icon_state = "" + cost = 0 + shift_mode = SHIFTED_OR_NOT + ab_sound = 'sound/effects/stealthoff.ogg' +/obj/effect/rakshasa_ability/laugh/do_ability() + if(!..()) + return + playsound(my_kin.loc, 'sound/rakshasa/Laugh.ogg', 100, 1) +///////////////////////////////////////////////////////////////// +/obj/effect/rakshasa_ability/no + ability_name = "Say No" + desc = "Say no!" + icon_state = "" + cost = 0 + shift_mode = SHIFTED_OR_NOT + ab_sound = 'sound/effects/stealthoff.ogg' +/obj/effect/rakshasa_ability/no/do_ability() + if(!..()) + return + playsound(my_kin.loc, 'sound/rakshasa/No.ogg', 100, 1) +///////////////////////////////////////////////////////////////// +/obj/effect/rakshasa_ability/emergesound + ability_name = "Heavy Breathing" + desc = "Do the emrge sound without actually emerging." + icon_state = "" + cost = 0 + shift_mode = SHIFTED_OR_NOT + ab_sound = 'sound/effects/stealthoff.ogg' +/obj/effect/rakshasa_ability/emergesound/do_ability() + if(!..()) + return + playsound(my_kin.loc, 'sound/rakshasa/Emerge0.ogg', 100, 1) +///////////////////////////////////////////////////////////////// +/obj/effect/rakshasa_ability/trap + ability_name = "Lay Trap" + desc = "Lay a trap that will notify you when someone steps in it." + icon_state = "" + cost = 0 + shift_mode = SHIFTED_OR_NOT + ab_sound = 'sound/effects/stealthoff.ogg' +/obj/effect/rakshasa_ability/trap/do_ability() + if(!..()) + return + var/goo_sounds = list ( + 'sound/rakshasa/Corrosion1.ogg', + 'sound/rakshasa/Corrosion2.ogg', + 'sound/rakshasa/Corrosion3.ogg' + ) + var/sound = pick(goo_sounds) + playsound(my_kin.loc, sound, 100, 1) + new /obj/structure/gootrap (my_kin.loc) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/rakshasa_trap.dm b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/rakshasa_trap.dm new file mode 100644 index 0000000000..2d44ca6279 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/rakshasa_trap.dm @@ -0,0 +1,76 @@ +/obj/structure/gootrap + name = "goo" + throw_speed = 2 + throw_range = 1 + gender = PLURAL + icon = 'icons/effects/blood.dmi' + var/base_icon = 'icons/effects/blood.dmi' + icon_state = "mfloor1" + var/basecolor="#030303" + desc = "" + throwforce = 0 + w_class = ITEMSIZE_NORMAL + matter = list(DEFAULT_WALL_MATERIAL = 18750) + var/deployed = 1 + anchored = 1 + +/obj/structure/gootrap/proc/can_use(mob/user) + return (user.IsAdvancedToolUser() && !issilicon(user) && !user.stat && !user.restrained()) + +/obj/structure/gootrap/update_icon() + ..() + color = basecolor + +/obj/structure/gootrap/New() + ..() + update_icon() + return + +/obj/structure/gootrap/attack_hand(mob/user as mob) + if(has_buckled_mobs() && can_use(user)) + var/victim = english_list(buckled_mobs) + user.visible_message( + "[user] begins freeing [victim] from \the [src].", + "You carefully begin to free [victim] from \the [src].", + ) + if(do_after(user, 5)) + user.visible_message("[victim] has been freed from \the [src] by [user].") + for(var/A in buckled_mobs) + unbuckle_mob(A) + anchored = 0 + else + ..() + +/obj/structure/gootrap/proc/attack_mob(mob/living/L) + //trap the victim in place + set_dir(L.dir) + can_buckle = 1 + buckle_mob(L) + var/goo_sounds = list ( + 'sound/rakshasa/Decay1.ogg', + 'sound/rakshasa/Decay2.ogg', + 'sound/rakshasa/Decay3.ogg' + ) + var/sound = pick(goo_sounds) + playsound(src, sound, 100, 1) + L << "You hear a gooey schlorp as \the [src] ensnares your leg, trapping you in place!" + deployed = 0 + can_buckle = initial(can_buckle) + + +/obj/structure/gootrap/Crossed(AM as mob|obj) + if(deployed && isliving(AM)) + var/mob/living/L = AM + if(L.m_intent == "run") + L.visible_message( + "[L] steps on \the [src].", + "You step on \the [src]!", + "You hear a gooey schlorp as the goo ensnares your leg!" + ) + attack_mob(L) + if(!has_buckled_mobs()) + anchored = 0 + deployed = 0 + message_admins("[key_name(usr)] has stepped in the goo trap.") + ..() + diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/types_ch.dm b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/types_ch.dm new file mode 100644 index 0000000000..88dcc580c6 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/types_ch.dm @@ -0,0 +1,157 @@ +/////////////////////////////////////////////////////////////////CHOMPEDIT Custom shadekin mini tutorial +//Proto shadekin; AKA; Basic how to make your own shadekin; -Shark + +//Step 1; sprites; +//File for body = icons/mob/vore_shadekin.dmi +//File for tail = icons/mob/vore_shadekin64.dmi +//Sprites can be either made inside of DM or you can use a Program of your choice and save the files as PNG and then import them +//If you need help learning how to use DMs interface to import/export sprites and make states you can always ask in the discord. + +//Step 2; Code +//Now this depends on what type of eye colour you want +//For a red we use +///mob/living/simple_animal/shadekin/red +//then we simply add our shadekins name at the end (unless its used already) +/mob/living/simple_mob/shadekin/red/proto + name ="Proto" + //This here will be our shadekins name + + desc = "An invisible entity not meant for use." + //here goes a lil tidbit people can see when examining the shadekin. Multiple lines works just as on the vore part + + icon_state = "proto" + //this will most likely also be your shadekins name, it corresponds to the name you gave the tail and body state in the DMIs + //so if you named the body state "proto" and "proto-1" then icon_state should be called "proto" + + vore_stomach_flavor = "You stared into the void,\ + the void decided you look tasty,\ + now you are in the void, pretty wet" + //This is what people see when they drop into your gut! the backslashes at the end of the sentence indicate the next text will be on its own line! + + + player_msg = "Proto is you, Proto shouldn't exist" + //This message pops up when you are put into your shadekin + //I recommend you use it as a way to remind yourself of how you want to act generally as your shadekin. + +//Step 3; PR +// Assuming you already have a Fork of chompstation, make sure you got your files in order +// and then simply make a new pull request to our github. + +//Now once you pushed the new DMIs with your added sprites to our github. +//And you finished writing this code section for your shadekin and pushed that too. You are done. +//If this is your first time I recommend getting someone to look over your work. + +/////////////////////////////////////////////////////////////////CHOMP TUTORIAL END + + + +//"Hunger." - Rakshasa +/mob/living/simple_mob/shadekin/red/rakshasa + name ="Rakshasa" + desc = "A scary, black shadekin? Thier body oozes like goop." + icon_state = "rakshasa" + vore_stomach_flavor = "You're floating in a warm, viscous goop, too dark to see. \ + Your efforts to find light have failed. Darkness consumes you. \ + Rakshasa's gelatenous body squeezes over your form, leaving no inch unmolested. \ + The hot goop you float in makes it hard to breathe; all consuming of space and light. \ + Your body feels hot, growing weaker, more tired. Draining. Darkness coming. \ + You struggle to stay awake while floating helplessly in the goo." + player_msg = "You are Rakshasa. You are not to directly harm crew, only consume. You never speak a language." + energy_adminbuse = TRUE + maxHealth = 999999999999 + health = 999999999999 + eye_state = "BLUE EYES" + eye_icon_state = "e_rakshasa" + +/mob/living/simple_mob/shadekin/blue/luna + name = "Luna" + desc = "She appears to be a fuzzy critter of some sort. Her eyes shimmer a dark blue, glancing around curiously." + icon_state = "luna" + eye_desc = "blue eyes" + vore_stomach_flavor = "Dark blue flesh fills your vision as you slip past the Shadekin's tongue and into the darkness \ + of her gullet. The flesh around you seems squishy and pliable and malleable to say the least, warmth rolling up \ + your body as the humid air rises across the deeper you slide into the darkness of her stomach. As you splash \ + inside, you curl up comfortably inside the walls that churn and squeeze around you, any fidgeting quickly \ + subdued by the strength of the walls, and any movement of your predator seems to coax a light sway from \ + your current prison. The slime inside stuck fairly well, though harmless - your aches and pains slowly soothing \ + up and fading away." + player_msg = "You are a shadekin that goes by the name of Luna. Curious, you have tasked yourself and yourself alone \ + with studying this foreign world. Learn their language. Learn their culture. Adapt. Everything is wonderful and new, \ + and your mind is set on retaining knowledge of these odd planescape." + +//"All your chickens are belong to me!" - Zylas +/mob/living/simple_mob/shadekin/purple/zylas + name ="Zylas" + desc = "He's a chubby looking creature, black and grey fur accompanied by purple eyes and a large hoody." + icon_state = "zylashoody" + eye_desc = "purple eyes" + vore_stomach_flavor = "You are trapped in a cramped tight space. The color purple seems to dominate your vision. \ + His walls rolled over your form as you lay trapped in his depths. There wasnt a drop of fluid in sight inside that \ + stomach. Instead, you could feel your energy slowly draining away over time, like... he was leeching off you." + player_msg = "You are Zylas. You enjoy scaring the local population and eating every chicken you find." + +//"Two scarves. No more, No Less." -Muninn +/mob/living/simple_mob/shadekin/blue/muninn + name ="Muninn" + desc = "A gray furred shadekin, a little on the hefty side. Rocks two scarves, one on the neck, one on the tail. \ + He seems eager to take in the various sights and sounds of the station" + icon_state = "muninn" + eye_desc = "blue eyes" + vore_stomach_flavor = "You're stuck in a warm, tight stomach. \ + A blue glow, as soft as the walls surrounding you, illuminates the cramped chamber. \ + Muninn's walls gently squeeze over your form, like a tight, yet comfortable hug. \ + The gut itself was relatively dry, only slightly damp. \ + As Muninn ambles along, you'd gently sway within. It's quite the nice place to stay for a while." + player_msg = "You are Muninn. Today you feel... Curious." + +//"Here's a little lesson in the trickeries" -Muninn +/mob/living/simple_mob/shadekin/purple/muninn + name ="Muninn" + desc = "A gray furred shadekin, a little on the hefty side. Rocks two scarves, one on the neck, one on the tail.\ + He seems a little mischevious... better keep an eye on him." + icon_state = "muninn" + eye_desc = "purple eyes" + vore_stomach_flavor = "You're stuck in a warm, tight stomach. \ + A purple glow, as soft as the walls surrounding you, illuminates the cramped chamber. \ + Muninn's walls gently squeeze over your form, like a tight hug. \ + The gut itself was relatively dry, only slightly damp. \ + It didn't seem that Muninn was digesting you. More like... sapping your energy and making you feel tired. \ + A nap in this comfortable chamber wouldn't be the worst thing, would it?" + player_msg = "You are Muninn. Today you feel... Mischevious." + +//Whealty's shadekin anno! +/mob/living/simple_mob/shadekin/purple/anno + name ="Anno" + desc = "A white furred shadekin with a chubby form. His ears seem to be close to even in length and his snout seems longer than the usual.\ + He seems energetic and playful." + icon_state = "anno" + eye_desc = "purple eyes" + vore_stomach_flavor = "You're stuck in a warm, tight stomach. \ + A purple glow, as soft as the walls surrounding you, illuminates the cramped chamber. \ + Anno's stomach walls squeeze and hug over your form somewhat tightly. \ + The gut itself was wetish and slightly slick. \ + The gut seemed somewhat inviting with the warmth and softness, yet there was an ominous feeling to it with all the noises it made.\ + You'll probably be safe in here. Probably." + player_msg = "You are Anno, you are energetic and playful" + +/mob/living/simple_mob/shadekin/blue/roti + name ="Roti" + desc = "Roti is a shadekin with blue eyes, is chubby since he has eaten others before hand. He enjoys chocolate, the taste of it, the smell of it, he just wants anything sweet and chocolately to be in his belly. So be careful around him this is also a way to summon him by laying around chocolate and calling him out." + icon_state = "roti" + eye_desc = "blue eyes" + vore_stomach_flavor = "You stare into Roti's maw as he moves it towards your head, putting it in and tasting your sweet delicious chocolately flavor. \ + Wet saliva covers your head as he pushes you inward, gulping down your head and shoulders into his pulsating throat. It pulses and eases you downward towards your destination \ + cramming your torso into his maw and taking wet SCHLURP, GLUK, to get it down and up to your waist. Roti continues to taste you all over wanting that succulent flavor \ + to himself. Another loud wet swallow and down goes your waist into his hungry maw, lifting up the legs high into the sky while allowing gravity and his gulps \ + to send you packing away into his chubby gut that now expands to fit you inside of the wet chamber. At least you were safe for now that is." + player_msg = "You are Roti, a curious shadekin that wishes to learn from the station and eventually speak with them." + +//kcin2001's soft shadekin +/mob/living/simple_mob/shadekin/green/soft + name = "Softpatch" + desc = "A green eyed brown shadekin, looks fluffy and a bit chubby around the middle underneath his well worn cloak \ + He seems curious but ready to flee" + icon_state = "soft" + eye_desc = "soft green eyes" +// vore_stomach_flavor = "" + player_msg = "You are Softpatch, you like things that are soft and are curious about the beings in realspace" diff --git a/icons/mob/vore_shadekin.dmi b/icons/mob/vore_shadekin.dmi index 4f9b5aadf7..de760a8c1d 100644 Binary files a/icons/mob/vore_shadekin.dmi and b/icons/mob/vore_shadekin.dmi differ diff --git a/icons/mob/vore_shadekin64.dmi b/icons/mob/vore_shadekin64.dmi index b8a87694eb..b6b0339266 100644 Binary files a/icons/mob/vore_shadekin64.dmi and b/icons/mob/vore_shadekin64.dmi differ diff --git a/sound/rakshasa/Corrosion1.ogg b/sound/rakshasa/Corrosion1.ogg new file mode 100644 index 0000000000..912e535639 Binary files /dev/null and b/sound/rakshasa/Corrosion1.ogg differ diff --git a/sound/rakshasa/Corrosion2.ogg b/sound/rakshasa/Corrosion2.ogg new file mode 100644 index 0000000000..dfd24cc9d8 Binary files /dev/null and b/sound/rakshasa/Corrosion2.ogg differ diff --git a/sound/rakshasa/Corrosion3.ogg b/sound/rakshasa/Corrosion3.ogg new file mode 100644 index 0000000000..cef4bf5c2d Binary files /dev/null and b/sound/rakshasa/Corrosion3.ogg differ diff --git a/sound/rakshasa/Decay1.ogg b/sound/rakshasa/Decay1.ogg new file mode 100644 index 0000000000..e65a838e48 Binary files /dev/null and b/sound/rakshasa/Decay1.ogg differ diff --git a/sound/rakshasa/Decay2.ogg b/sound/rakshasa/Decay2.ogg new file mode 100644 index 0000000000..b1e0a10e2f Binary files /dev/null and b/sound/rakshasa/Decay2.ogg differ diff --git a/sound/rakshasa/Decay3.ogg b/sound/rakshasa/Decay3.ogg new file mode 100644 index 0000000000..cfe8b52925 Binary files /dev/null and b/sound/rakshasa/Decay3.ogg differ diff --git a/sound/rakshasa/Emerge0.ogg b/sound/rakshasa/Emerge0.ogg new file mode 100644 index 0000000000..bf665de908 Binary files /dev/null and b/sound/rakshasa/Emerge0.ogg differ diff --git a/sound/rakshasa/Laugh.ogg b/sound/rakshasa/Laugh.ogg new file mode 100644 index 0000000000..13b6bc8e5d Binary files /dev/null and b/sound/rakshasa/Laugh.ogg differ diff --git a/sound/rakshasa/No.ogg b/sound/rakshasa/No.ogg new file mode 100644 index 0000000000..1b835e46bc Binary files /dev/null and b/sound/rakshasa/No.ogg differ diff --git a/sound/scp/firstpersonsnap.ogg b/sound/scp/firstpersonsnap.ogg new file mode 100644 index 0000000000..fbfdfea448 Binary files /dev/null and b/sound/scp/firstpersonsnap.ogg differ diff --git a/sound/scp/firstpersonsnap2.ogg b/sound/scp/firstpersonsnap2.ogg new file mode 100644 index 0000000000..c84cc80fc0 Binary files /dev/null and b/sound/scp/firstpersonsnap2.ogg differ diff --git a/sound/scp/firstpersonsnap3.ogg b/sound/scp/firstpersonsnap3.ogg new file mode 100644 index 0000000000..9f991aaf58 Binary files /dev/null and b/sound/scp/firstpersonsnap3.ogg differ diff --git a/sound/scp/scare1.ogg b/sound/scp/scare1.ogg new file mode 100644 index 0000000000..e73141a19e Binary files /dev/null and b/sound/scp/scare1.ogg differ diff --git a/sound/scp/scare2.ogg b/sound/scp/scare2.ogg new file mode 100644 index 0000000000..daa58c8e92 Binary files /dev/null and b/sound/scp/scare2.ogg differ diff --git a/sound/scp/scare3.ogg b/sound/scp/scare3.ogg new file mode 100644 index 0000000000..3d92c2fb68 Binary files /dev/null and b/sound/scp/scare3.ogg differ diff --git a/sound/scp/scare4.ogg b/sound/scp/scare4.ogg new file mode 100644 index 0000000000..79e36e1857 Binary files /dev/null and b/sound/scp/scare4.ogg differ diff --git a/vorestation.dme b/vorestation.dme index 3dd7612658..fe30f7ba86 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2762,8 +2762,11 @@ #include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\_defines.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\ability_objects.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\ability_procs.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\rakshasa_abilities.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\rakshasa_trap.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\shadekin.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\types.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\types_ch.dm" #include "code\modules\mob\living\voice\voice.dm" #include "code\modules\mob\living\voice\voice_vr.dm" #include "code\modules\mob\new_player\login.dm"