From 37775035cfeb5de231e42e3133a889b577222f31 Mon Sep 17 00:00:00 2001 From: Vulpias <37509487+Vulpias@users.noreply.github.com> Date: Tue, 20 Mar 2018 02:28:44 +0100 Subject: [PATCH] Adding two new Abilities for Succubus characters and the posibility of sitting on someones face (#40) * Add files via upload * Delete station_special_abilities_vr.dm * Update neutral.dm * Update station_special_abilities_vr.dm * Delete neutral.dm --- .../station/station_special_abilities_vr.dm | 135 ++++++++++++++++++ .../species/station/traits_vr/neutral.dm | 18 +++ 2 files changed, 153 insertions(+) diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm index 036cd1cc9d..c6efd563ca 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm @@ -796,3 +796,138 @@ set category = "Abilities" pass_flags ^= PASSTABLE //I dunno what this fancy ^= is but Aronai gave it to me. to_chat(src, "You [pass_flags&PASSTABLE ? "will" : "will NOT"] move over tables/railings/trays!") + +/mob/living/carbon/human/proc/succubus_bite() + set name = "Inject Prey" + set desc = "Bite prey and inject them with various toxins." + set category = "Abilities" + + if(last_special > world.time) + return + + if(!ishuman(src)) + return //If you're not a human you don't have permission to do this. + + var/mob/living/carbon/human/C = src + + var/obj/item/weapon/grab/G = src.get_active_hand() + + if(!istype(G)) + to_chat(C, "You must be grabbing a creature in your active hand to bite them.") + return + + var/mob/living/carbon/human/T = G.affecting + + if(!istype(T) || T.isSynthetic()) + to_chat(src, "\The [T] is not able to be bitten.") + return + + if(G.state != GRAB_NECK) + to_chat(C, "You must have a tighter grip to bite this creature.") + return + + var/choice = input(src, "What do you wish to inject?") as null|anything in list("Aphrodisiac", "Numbing", "Paralyzing") + + last_special = world.time + 600 + + if(!choice) + return + + src.visible_message("[src] moves their head next to [T]'s neck, seemingly looking for something!") + + if(do_after(src, 300, T)) //Thrirty seconds. + if(choice == "Aphrodisiac") + src.show_message("You sink your fangs into [T] and inject your aphrodisiac!") + src.visible_message("[src] sinks their fangs into [T]!") + T.bloodstr.add_reagent("succubi_aphrodisiac",5) + return 0 + else if(choice == "Numbing") + src.show_message("You sink your fangs into [T] and inject your poison!") + src.visible_message("[src] sinks their fangs into [T]!") + T.bloodstr.add_reagent("numbing_enzyme",5) + else if(choice == "Paralyzing") + src.show_message("You sink your fangs into [T] and inject your poison!") + src.visible_message("[src] sinks their fangs into [T]!") + T.bloodstr.add_reagent("succubi_paralize",5) + else + return //Should never happen + +/* +mob/living/carbon/proc/charmed() //TODO + charmed = 1 + + spawn(0) + for(var/i = 1,i > 0, i--) + src << "... [pick(charmed)] ..." + charmed = 0 + +*/ + +/datum/reagent/succubi_aphrodisiac + name = "Aphrodisiac" + id = "succubi_aphrodisiac" + description = "A unknown liquid, it smells sweet" + color = "#8A0829" + scannable = 0 + +/datum/reagent/succubi_aphrodisiac/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + if(prob(7)) + M.show_message("You feel funny, and fall in love with the person in front of you") + M.emote(pick("blush", "moans", "giggles", "turns visibly red")) + //M.charmed() //TODO + return +/* +/datum/reagent/succubi_numbing //Using numbing_enzyme instead. + name = "Numbing Fluid" + id = "succubi_numbing" + description = "A unknown liquid, it doesn't smell" + color = "#41029B" + scannable = 0 + +/datum/reagent/succubi_numbing/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) +*/ + +/datum/reagent/succubi_paralize + name = "Paralyzing Fluid" + id = "succubi_numbing" + description = "A unknown liquid, it doesn't smell" + color = "#41029B" + scannable = 0 + +/datum/reagent/succubi_paralize/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + if(prob(7)) + M.show_message("You lose sensation of your body.") + M.Weaken(10) + return + +/mob/living/carbon/human/proc/face_sit() + set name = "Face Sit" + set desc = "Sit on your Preys Face" + set category = "Abilities" + + if(last_special > world.time) + return + + if(!ishuman(src)) + return //If you're not a human you don't have permission to do this. + + var/mob/living/carbon/human/C = src + + var/obj/item/weapon/grab/G = src.get_active_hand() + + if(!istype(G)) + to_chat(C, "You must be grabbing a creature in your active hand to sit on them.") + return + + var/mob/living/carbon/human/T = G.affecting + + if(!istype(T) || T.isSynthetic()) + to_chat(src, "\The [T] is not able to be sit on.") + return + + if(G.state != GRAB_AGGRESSIVE) + to_chat(C, "You must have the creature pinned on the ground to sit on them ") + return + + src.visible_message("[src] moves their ass to [T]'s head, sitting down on them, making them unable to see anything else than [src]'s butt ") + return diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm index e5287dc96b..827ee53c79 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm @@ -113,3 +113,21 @@ ..(S,H) H.verbs |= /mob/living/proc/glow_toggle H.verbs |= /mob/living/proc/glow_color + +/datum/trait/face_sit + name = "Face_Sitting" + desc = "Makes you able to sit on your prey" + cost = 0 + +/datum/trait/face_sit/apply(var/datum/species/S,var/mob/living/carbon/human/H) + ..(S,H) + H.verbs |= /mob/living/carbon/human/proc/face_sit + +/datum/trait/succubus_bite + name = "Succubus Bite" + desc = "Makes you able to bite prey in your grasp and subject them to a variety of chemicals.." + cost = 0 + +/datum/trait/succubus_drain/apply(var/datum/species/S,var/mob/living/carbon/human/H) + ..(S,H) + H.verbs |= /mob/living/carbon/human/proc/succubus_bite