From 6d28ce79635cb3242cc39f487ef9d44f5f73dce6 Mon Sep 17 00:00:00 2001 From: killer653 Date: Mon, 22 Jan 2018 18:38:39 -0500 Subject: [PATCH] Adds two egg implants https://forum.vore-station.net/viewtopic.php?f=27&t=1222 https://forum.vore-station.net/viewtopic.php?f=27&t=1001 --- .../vore/fluffstuff/custom_items_vr.dm | 145 ++++++++++++++++++ config/custom_items.txt | 12 ++ icons/vore/custom_items_vr.dmi | Bin 49726 -> 49941 bytes 3 files changed, 157 insertions(+) diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm index 5021c7689ca..e0ffcdf3e80 100644 --- a/code/modules/vore/fluffstuff/custom_items_vr.dm +++ b/code/modules/vore/fluffstuff/custom_items_vr.dm @@ -907,12 +907,157 @@ rimplant.reagents.remove_any(rimplant.transfer_amount) +//Draycu: Schae Yonra +/obj/item/weapon/implant/reagent_generator/yonra + name = "egg laying implant" + desc = "This is an implant that allows the user to lay eggs." + generated_reagents = list("egg" = 2) + usable_volume = 500 + transfer_amount = 50 + empty_message = list("Your feathery lower belly feels smooth and empty. For now...", "The lack of clacking eggs in your abdomen lets you know you're free to continue your day as normal.", "The reduced pressure in your lower belly tells you there are no more eggs.", "With a soft sigh, you can feel your lower body is empty. You know it will only be a matter of time before another batch fills you up again, however.") + full_message = list("Your feathery lower belly looks swollen with irregular bumps, and feels very heavy.", "Your feathery covered lower abdomen feels really heavy, making it a bit hard to walk.", "The added weight from your collection of eggs constantly reminds you that you'll have to lay soon!", "The sounds of eggs clacking as you walk reminds you that you will have to lay soon!") + emote_descriptor = list("an egg right out of Yonra's feathery crotch!", "into Yonra's belly firmly, forcing her to lay an egg!", ", making Yonra gasp and softly moan while an egg slides out.") + var/verb_descriptor = list("squeezes", "pushes", "hugs") + var/self_verb_descriptor = list("squeeze", "push", "hug") + var/short_emote_descriptor = list("lays", "forces out", "pushes out") + self_emote_descriptor = list("lay", "force out", "push out") + random_emote = list("hisses softly with a blush on her face", "yelps in embarrassment", "grunts a little") + assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_yonra +/obj/item/weapon/implant/reagent_generator/yonra/implanted(mob/living/carbon/source) + processing_objects += src + to_chat(source, "You implant [source] with \the [src].") + source.verbs |= assigned_proc + return 1 +/obj/item/weapon/implanter/reagent_generator/yonra + implant_type = /obj/item/weapon/implant/reagent_generator/yonra +/mob/living/carbon/human/proc/use_reagent_implant_yonra() + set name = "Lay Egg" + set desc = "Force Yonra to lay an egg by squeezing into her lower body! This makes the Teshari stop whatever she is doing at the time, greatly embarassing her." + set category = "Object" + set src in view(1) + //do_reagent_implant(usr) + if(!isliving(usr) || !usr.canClick()) + return + if(usr.incapacitated() || usr.stat > CONSCIOUS) + return + + var/obj/item/weapon/implant/reagent_generator/yonra/rimplant + for(var/I in contents) + if(istype(I, /obj/item/weapon/implant/reagent_generator)) + rimplant = I + break + if (rimplant) + if(rimplant.reagents.total_volume <= rimplant.transfer_amount) + to_chat(src, "[pick(rimplant.empty_message)]") + return + + new /obj/item/weapon/reagent_containers/food/snacks/egg/teshari(get_turf(src)) + + var/index = rand(0,3) + + if (usr != src) + var/emote = rimplant.emote_descriptor[index] + var/verb_desc = rimplant.verb_descriptor[index] + var/self_verb_desc = rimplant.self_verb_descriptor[index] + usr.visible_message("[usr] [verb_desc] [emote]", + "You [self_verb_desc] [emote]") + else + visible_message("[src] [pick(rimplant.short_emote_descriptor)] an egg.", + "You [pick(rimplant.self_emote_descriptor)] an egg.") + if(prob(15)) + visible_message("[src] [pick(rimplant.random_emote)].") + + rimplant.reagents.remove_any(rimplant.transfer_amount) + +/obj/item/weapon/reagent_containers/food/snacks/egg/teshari + name = "teshari egg" + desc = "It's a large teshari egg." + icon = 'icons/vore/custom_items_vr.dmi' + icon_state = "tesh_egg" + filling_color = "#FDFFD1" + volume = 12 + +/obj/item/weapon/reagent_containers/food/snacks/egg/teshari/New() + ..() + reagents.add_reagent("egg", 10) + bitesize = 2 + +/obj/item/weapon/reagent_containers/food/snacks/egg/teshari/tesh2 + icon_state = "tesh_egg_2" + +//Konabird: Rischi +/obj/item/weapon/implant/reagent_generator/rischi + name = "egg laying implant" + desc = "This is an implant that allows the user to lay eggs." + generated_reagents = list("egg" = 2) + usable_volume = 3000 //They requested 1 egg every ~30 minutes. + transfer_amount = 3000 + + empty_message = list("Your abdomen feels normal and taught, like usual.", "The lack of eggs in your abdomen leaves your belly flat and smooth.", "The reduced pressure in your belly tells you there are no more eggs.", "With a soft sigh, you can feel your body is empty of eggs. You know it will only be a matter of time before an egg forms once again, however.") + full_message = list("Your lower abdomen feels a bit swollen", "You feel a pressure within your abdomen, and a broody mood slowly creeps over you.", "You can feel the egg inside of you shift as you move, the needy feeling to lay slowly growing stronger!", "You can feel the egg inside of you, swelling out your normally taught abdomen considerably. You'll definitely need to lay soon!") + emote_descriptor = list("Rischi, causing the small female to squeak and wriggle, an egg falling from between her legs!", "Rischi's midsection, forcing her to lay an egg!", "Rischi, the Teshari huffing and grunting as an egg is squeezed from her body!") + var/verb_descriptor = list("squeezes", "squashes", "hugs") + var/self_verb_descriptor = list("squeeze", "push", "hug") + var/short_emote_descriptor = list("lays", "forces out", "pushes out") + self_emote_descriptor = list("lay", "force out", "push out") + random_emote = list("trembles and huffs, panting from the exertion.", "sees what has happened and covers her face with both hands!", "whimpers softly, her legs shivering, knees pointed inward from the feeling.") + assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_rischi + +/obj/item/weapon/implant/reagent_generator/rischi/implanted(mob/living/carbon/source) + processing_objects += src + to_chat(source, "You implant [source] with \the [src].") + source.verbs |= assigned_proc + return 1 + +/obj/item/weapon/implanter/reagent_generator/rischi + implant_type = /obj/item/weapon/implant/reagent_generator/rischi + +/mob/living/carbon/human/proc/use_reagent_implant_rischi() + set name = "Lay Egg" + set desc = "Force Rischi to lay an egg by squeezing her! What a terribly rude thing to do!" + set category = "Object" + set src in view(1) + + //do_reagent_implant(usr) + if(!isliving(usr) || !usr.canClick()) + return + + if(usr.incapacitated() || usr.stat > CONSCIOUS) + return + + var/obj/item/weapon/implant/reagent_generator/yonra/rimplant + for(var/I in contents) + if(istype(I, /obj/item/weapon/implant/reagent_generator)) + rimplant = I + break + if (rimplant) + if(rimplant.reagents.total_volume <= rimplant.transfer_amount) + to_chat(src, "[pick(rimplant.empty_message)]") + return + + new /obj/item/weapon/reagent_containers/food/snacks/egg/teshari/tesh2(get_turf(src)) + + var/index = rand(0,3) + + if (usr != src) + var/emote = rimplant.emote_descriptor[index] + var/verb_desc = rimplant.verb_descriptor[index] + var/self_verb_desc = rimplant.self_verb_descriptor[index] + usr.visible_message("[usr] [verb_desc] [emote]", + "You [self_verb_desc] [emote]") + else + visible_message("[src] falls to her knees as the urge to lay overwhelms her, letting out a whimper as she [pick(rimplant.short_emote_descriptor)] an egg from between her legs.", + "You fall to your knees as the urge to lay overwhelms you, letting out a whimper as you [pick(rimplant.self_emote_descriptor)] an egg from between your legs.") + if(prob(15)) + visible_message("[src] [pick(rimplant.random_emote)].") + + rimplant.reagents.remove_any(rimplant.transfer_amount) /obj/item/weapon/implant/reagent_generator/pumila_apple name = "apple laying implant" diff --git a/config/custom_items.txt b/config/custom_items.txt index 33e8f1efcb1..44d329cb820 100644 --- a/config/custom_items.txt +++ b/config/custom_items.txt @@ -220,6 +220,12 @@ character_name: Schae Yonra item_path: /obj/item/weapon/melee/fluff/holochain/mass } +{ +ckey: draycu +character_name: Schae Yonra +item_path: /obj/item/weapon/implanter/reagent_generator/yonra +} + # ######## E CKEYS # Permit Expired @@ -464,6 +470,12 @@ character_name: Andy Gettemy item_path: /obj/item/device/pda_mod/fluff/kligor } +{ +ckey: konabird +character_name: Rischi +item_path: /obj/item/weapon/implanter/reagent_generator/rischi +} + # ######## L CKEYS { ckey: luminescentring diff --git a/icons/vore/custom_items_vr.dmi b/icons/vore/custom_items_vr.dmi index 5f23becbff423ceb705131853487eccb432fe2cc..901e6a364c7046c241541fceccfeee9e98c088ae 100644 GIT binary patch delta 9725 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 delta 9509 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 BPD20y