From 649a79c8f68aae17c2a1b5b795e7fc84d319a82c Mon Sep 17 00:00:00 2001
From: TheFurryFeline <38586851+TheFurryFeline@users.noreply.github.com>
Date: Tue, 30 Apr 2019 15:02:57 -0400
Subject: [PATCH] Loadout-Specific Reagent Implanters
Add basic reagent implanters for the loadout to select.
---
.../vore/fluffstuff/custom_items_vr.dm | 87 +++++++++++++++++++
1 file changed, 87 insertions(+)
diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm
index 7221feb2cf..a3d2f6b724 100644
--- a/code/modules/vore/fluffstuff/custom_items_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_items_vr.dm
@@ -615,6 +615,93 @@
taurtype = /datum/sprite_accessory/tail/taur/feline/tempest
no_message = "These saddlebags seem to be fitted for someone else, and keep slipping off!"
+//TFF 29/4/19: Add standardised reagent generators for loadout
+/obj/item/weapon/implant/reagent_generator/milk
+ name = "milk generation implant"
+ desc = "It's an implant you can use to make milk from yourself!"
+ generated_reagents = list("milk" = 2)
+ reagent_name = "milk"
+ usable_volume = 1000
+
+ empty_message = list("Your breasts are almost completely drained!")
+ full_message = list("Your teats feel heavy and swollen!")
+ emote_descriptor = list("squeezes milk", "tugs on their breasts, milking them")
+ self_emote_descriptor = list("squeeze")
+ random_emote = list("moos quietly")
+ verb_name = "Milk"
+ verb_desc = "Grab their nipples and milk them into a container! May cause blushing and groaning."
+
+/obj/item/weapon/implanter/reagent_generator/milk
+ implant_type = /obj/item/weapon/implant/reagent_generator/milk
+
+/obj/item/weapon/implant/reagent_generator/egg
+ 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 lower belly feels smooth and empty. Sorry, we're out of eggs!", "The reduced pressure in your lower belly tells you there are no more eggs.")
+ full_message = list("Your lower belly looks swollen with irregular bumps, and it feels heavy.", "Your lower abdomen feels really heavy, making it a bit hard to walk.")
+ emote_descriptor = list("an egg right out of their belly!", "into their belly firmly, forcing them to lay an egg!", "them really tight, making them lay an egg promptly!")
+ 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("moans softly with a blush on their face", "yelps in embarrassment", "grunts a little")
+ assigned_proc = /mob/living/carbon/human/proc/use_reagent_implant_egg
+
+/obj/item/weapon/implant/reagent_generator/egg/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/egg
+ implant_type = /obj/item/weapon/implant/reagent_generator/egg
+
+/mob/living/carbon/human/proc/use_reagent_implant_egg()
+ set name = "Lay Egg"
+ set desc = "Force them to lay an egg by squeezing into their lower body!"
+ 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/egg/rimplant
+ for(var/obj/item/organ/external/E in organs)
+ for(var/obj/item/weapon/implant/I in E.implants)
+ 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(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)].") // M-mlem.
+
+ rimplant.reagents.remove_any(rimplant.transfer_amount)
+
//WickedTempest: Chakat Tempest
/obj/item/weapon/implant/reagent_generator/tempest
generated_reagents = list("milk" = 2)