diff --git a/code/modules/arousal/organs/penis.dm b/code/modules/arousal/organs/penis.dm index 5191b586b3..46dc8bb19c 100644 --- a/code/modules/arousal/organs/penis.dm +++ b/code/modules/arousal/organs/penis.dm @@ -31,12 +31,6 @@ update() ..() -/obj/item/organ/genital/penis/get_fluid() - if(linked_organ) - return (clamp(linked_organ.fluid_rate * ((world.time - last_orgasmed) / (10 SECONDS)) * linked_organ.fluid_mult, 0, linked_organ.fluid_max_volume) / linked_organ.fluid_max_volume) - else - return (clamp(fluid_rate * ((world.time - last_orgasmed) / (10 SECONDS)) * fluid_mult, 0, fluid_max_volume) / fluid_max_volume) - /obj/item/organ/genital/penis/update_size(modified = FALSE) if(length <= 0)//I don't actually know what round() does to negative numbers, so to be safe!! if(owner) diff --git a/modular_splurt/code/datums/genitals/genitals_interface.dm b/modular_splurt/code/datums/genitals/genitals_interface.dm index b521e6a31c..44fafca6bf 100644 --- a/modular_splurt/code/datums/genitals/genitals_interface.dm +++ b/modular_splurt/code/datums/genitals/genitals_interface.dm @@ -34,7 +34,6 @@ ui = new(user, src, "GenitalConfig", "Genitals") ui.open() - /datum/genitals_menu/ui_data(mob/user) . = ..() var/mob/living/carbon/genital_holder = target || user @@ -163,11 +162,17 @@ return FALSE if(istype(genital, /obj/item/organ/genital/penis)) var/obj/item/organ/genital/penis/peepee = genital - var/new_max_size = clamp(params["max_size"], peepee.length, INFINITY) - peepee.max_length = new_max_size + if(params["max_size"]) + var/new_max_size = clamp(params["max_size"], peepee.length, INFINITY) + peepee.max_length = new_max_size + else + genital.max_size = 0 else - var/new_max_size = clamp(params["max_size"], genital.size, INFINITY) - genital.max_size = new_max_size + if(params["max_size"]) + var/new_max_size = clamp(params["max_size"], genital.size, INFINITY) + genital.max_size = new_max_size + else + genital.max_size = 0 genital.modify_size(0) if("min_size" in params) var/obj/item/organ/genital/genital = locate(params["genital"], self.internal_organs) diff --git a/modular_splurt/code/game/objects/items.dm b/modular_splurt/code/game/objects/items.dm index c320da9586..a39406bb68 100644 --- a/modular_splurt/code/game/objects/items.dm +++ b/modular_splurt/code/game/objects/items.dm @@ -55,10 +55,17 @@ return if(locate(src.type) in target_organ.contents) - to_chat(user, span_notice("\The [target]'s [target_organ] already has a rod inside!")) + if(user == target) + to_chat(user, span_notice("You already have a rod inside your [target_organ]!")) + else + to_chat(user, span_notice("\The [target]'s [target_organ] already has a rod inside!")) return - target.visible_message(span_warning("\The [user] is trying to insert a rod inside \the [target]!"),\ + if(user == target) + target.visible_message(span_warning("\The [user] is trying to insert a rod inside themselves!"),\ + span_warning("You try to insert a rod inside yourself!")) + else + target.visible_message(span_warning("\The [user] is trying to insert a rod inside \the [target]!"),\ span_warning("\The [user] is trying to insert a rod inside you!")) if(!do_mob(user, target, 4 SECONDS)) @@ -81,15 +88,18 @@ return if(locate(src.type) in target_organ.contents) - to_chat(user, span_notice("\The [target]'s [target_organ] already has a vibrator inside!")) + if(user == target) + to_chat(user, span_notice("You already have a vibrator inside your [target_organ]!")) + else + to_chat(user, span_notice("\The [target]'s [target_organ] already has a vibrator inside!")) return - if(style == "long") - target.visible_message(span_warning("\The [user] is trying to insert a vibrator inside \the [target]!"),\ - span_warning("\The [user] is trying to insert a vibrator inside you!")) + if(user == target) + target.visible_message(span_warning("\The [user] is trying to [style == "long" ? "insert" : "attach"] a vibrator [style == "long" ? "inside" : "to"] themselves!"),\ + span_warning("You try to [style == "long" ? "insert" : "attach"] a vibrator [style == "long" ? "inside" : "to"] yourself!")) else - target.visible_message(span_userlove("\The [user] is trying to attach a vibrator to \the [target]!"),\ - span_warning("\The [user] is trying to attach a vibrator to you!")) + target.visible_message(span_warning("\The [user] is trying to [style == "long" ? "insert" : "attach"] a vibrator [style == "long" ? "inside" : "to"] \the [target]!"),\ + span_warning("\The [user] is trying to [style == "long" ? "insert" : "attach"] a vibrator [style == "long" ? "inside" : "to"] you!")) if(!do_mob(user, target, 5 SECONDS)) return @@ -115,7 +125,11 @@ to_chat(user, span_warning("This genital can't be stuffed!")) return - target.visible_message(span_warning("\The [user] is trying to insert an egg inside \the [target]!"),\ + if(user == target) + target.visible_message(span_warning("\The [user] is trying to insert an egg inside themselves!"),\ + span_warning("You try to insert an egg inside yourself!")) + else + target.visible_message(span_warning("\The [user] is trying to insert an egg inside \the [target]!"),\ span_warning("\The [user] is trying to insert an egg inside you!")) if(!do_mob(user, target, 5 SECONDS)) diff --git a/modular_splurt/code/modules/arousal/organs/penis.dm b/modular_splurt/code/modules/arousal/organs/penis.dm index 78e015ea0b..acf3b95c47 100644 --- a/modular_splurt/code/modules/arousal/organs/penis.dm +++ b/modular_splurt/code/modules/arousal/organs/penis.dm @@ -4,6 +4,12 @@ fluid_max_volume += ((length - initial(length))*2.5)*(owner ? get_size(owner) : 1) fluid_rate += ((length - initial(length))/10)*(owner ? get_size(owner) : 1) +/obj/item/organ/genital/penis/get_fluid() + if(linked_organ) + return (clamp(linked_organ.fluid_rate * ((world.time - last_orgasmed) / (10 SECONDS)) * linked_organ.fluid_mult, 0, linked_organ.fluid_max_volume) / linked_organ.fluid_max_volume) + else + return ..() + /obj/item/organ/genital/penis/climax_modify_size(mob/living/partner, obj/item/organ/genital/source_gen) if(!(owner.client?.prefs.cit_toggles & PENIS_ENLARGEMENT)) return diff --git a/modular_splurt/code/modules/arousal/organs/vagina.dm b/modular_splurt/code/modules/arousal/organs/vagina.dm new file mode 100644 index 0000000000..ccb952ef09 --- /dev/null +++ b/modular_splurt/code/modules/arousal/organs/vagina.dm @@ -0,0 +1,5 @@ +/obj/item/organ/genital/vagina/get_fluid() + if(linked_organ) + return (clamp(linked_organ.fluid_rate * ((world.time - last_orgasmed) / (10 SECONDS)) * linked_organ.fluid_mult, 0, linked_organ.fluid_max_volume) / linked_organ.fluid_max_volume) + else + return ..() diff --git a/tgstation.dme b/tgstation.dme index 09d9af4b23..252affc799 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -4534,6 +4534,7 @@ #include "modular_splurt\code\modules\arousal\organs\butt.dm" #include "modular_splurt\code\modules\arousal\organs\penis.dm" #include "modular_splurt\code\modules\arousal\organs\testicles.dm" +#include "modular_splurt\code\modules\arousal\organs\vagina.dm" #include "modular_splurt\code\modules\arousal\organs\womb.dm" #include "modular_splurt\code\modules\arousal\toys\dildos.dm" #include "modular_splurt\code\modules\atmospherics\auxgm\gas_types.dm"