From 73edd8761a4088912b3f0016120278d1a07a7df4 Mon Sep 17 00:00:00 2001 From: Azarak Date: Wed, 8 Mar 2023 19:24:59 +0100 Subject: [PATCH 01/12] Fixes portal accessory behaviour --- modular_sand/code/datums/interactions/lewd_definitions.dm | 8 ++++---- modular_sand/code/game/objects/items/fleshlight.dm | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modular_sand/code/datums/interactions/lewd_definitions.dm b/modular_sand/code/datums/interactions/lewd_definitions.dm index 643dfeafb80b..a70b6a1ffb42 100644 --- a/modular_sand/code/datums/interactions/lewd_definitions.dm +++ b/modular_sand/code/datums/interactions/lewd_definitions.dm @@ -406,13 +406,13 @@ audible_message(span_lewd("[src] [pick("mimes a pleasured moan","moans in silence")].")) lastmoan = moan -/mob/living/proc/cum(mob/living/partner, target_orifice) +/mob/living/proc/cum(mob/living/partner, target_orifice, cum_inside = FALSE) var/message var/u_His = p_their() var/u_He = p_they() var/u_S = p_s() var/t_His = partner?.p_their() - var/cumin = FALSE + var/cumin = cum_inside var/partner_carbon_check = FALSE var/obj/item/organ/genital/target_gen = null var/mob/living/carbon/c_partner = null @@ -803,7 +803,7 @@ return txt /// Handles the sex, if cumming returns true. -/mob/living/proc/handle_post_sex(amount, orifice, mob/living/partner) +/mob/living/proc/handle_post_sex(amount, orifice, mob/living/partner, cum_inside = FALSE) if(stat != CONSCIOUS) return FALSE @@ -814,7 +814,7 @@ to_chat(src, "You struggle to not orgasm!") return FALSE if(lust >= get_lust_tolerance()*3) - cum(partner, orifice) + cum(partner, orifice, cum_inside) return TRUE else moan() diff --git a/modular_sand/code/game/objects/items/fleshlight.dm b/modular_sand/code/game/objects/items/fleshlight.dm index 1db9cbc50494..f2d8dbdf4da8 100644 --- a/modular_sand/code/game/objects/items/fleshlight.dm +++ b/modular_sand/code/game/objects/items/fleshlight.dm @@ -420,7 +420,7 @@ if(user_message) if(portal_target && (portal_target?.client?.prefs.toggles & VERB_CONSENT || !portal_target.ckey)) user.visible_message("[user] [user_message].") - if(M.can_penetrating_genital_cum() && M.handle_post_sex(user_lust_amt, target, portal_target)) + if(M.can_penetrating_genital_cum() && M.handle_post_sex(user_lust_amt, target, portal_target, TRUE)) switch(target) if(CUM_TARGET_PENIS) switch(portalunderwear.targetting) @@ -464,7 +464,7 @@ playlewdinteractionsound(loc, 'modular_sand/sound/interactions/champ_fingering.ogg', 50, 1, -1) to_chat(portal_target, "Someone uses the linked [name], they [target_message].") - if(portal_target.handle_post_sex(target_lust_amt, portalunderwear.targetting, M)) + if(portal_target.handle_post_sex(target_lust_amt, portalunderwear.targetting, M, TRUE)) switch(portalunderwear.targetting) if(CUM_TARGET_VAGINA) switch(target) From 11eb82b08184f854a2c09e3df9356b7f3e2b7e0c Mon Sep 17 00:00:00 2001 From: Azarak Date: Fri, 10 Mar 2023 12:21:15 +0100 Subject: [PATCH 02/12] Comments --- modular_sand/code/datums/interactions/lewd_definitions.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modular_sand/code/datums/interactions/lewd_definitions.dm b/modular_sand/code/datums/interactions/lewd_definitions.dm index a70b6a1ffb42..f8d68dfce789 100644 --- a/modular_sand/code/datums/interactions/lewd_definitions.dm +++ b/modular_sand/code/datums/interactions/lewd_definitions.dm @@ -406,13 +406,13 @@ audible_message(span_lewd("[src] [pick("mimes a pleasured moan","moans in silence")].")) lastmoan = moan -/mob/living/proc/cum(mob/living/partner, target_orifice, cum_inside = FALSE) +/mob/living/proc/cum(mob/living/partner, target_orifice, cum_inside = FALSE) //SPLURT EDIT - extra argument `cum_inside` var/message var/u_His = p_their() var/u_He = p_they() var/u_S = p_s() var/t_His = partner?.p_their() - var/cumin = cum_inside + var/cumin = cum_inside // SPLURT EDIT - defaults to argument `cum_inside` rather than FALSE var/partner_carbon_check = FALSE var/obj/item/organ/genital/target_gen = null var/mob/living/carbon/c_partner = null @@ -803,7 +803,7 @@ return txt /// Handles the sex, if cumming returns true. -/mob/living/proc/handle_post_sex(amount, orifice, mob/living/partner, cum_inside = FALSE) +/mob/living/proc/handle_post_sex(amount, orifice, mob/living/partner, cum_inside = FALSE) //SPLURT EDIT - extra argument `cum_inside` if(stat != CONSCIOUS) return FALSE @@ -814,7 +814,7 @@ to_chat(src, "You struggle to not orgasm!") return FALSE if(lust >= get_lust_tolerance()*3) - cum(partner, orifice, cum_inside) + cum(partner, orifice, cum_inside) //SPLURT EDIT - extra argument `cum_inside` return TRUE else moan() From ceea29917e710ff0cc9eb9028da506b2c5c124eb Mon Sep 17 00:00:00 2001 From: Azarak Date: Sat, 18 Mar 2023 13:07:40 +0100 Subject: [PATCH 03/12] Adds anonymity, fixes arg runtime --- code/modules/arousal/arousal.dm | 35 +++- .../datums/interactions/lewd_definitions.dm | 192 +++++++++--------- .../code/game/objects/items/fleshlight.dm | 4 +- .../code/modules/arousal/arousal.dm | 2 +- 4 files changed, 130 insertions(+), 103 deletions(-) diff --git a/code/modules/arousal/arousal.dm b/code/modules/arousal/arousal.dm index b1d8815696ba..8ed482789b3a 100644 --- a/code/modules/arousal/arousal.dm +++ b/code/modules/arousal/arousal.dm @@ -105,21 +105,38 @@ to_chat(src, span_userlove("You climax[isturf(loc) ? " onto [loc]" : ""] with your [G.name].")) do_climax(fluid_source, loc, G) -/mob/living/carbon/human/proc/mob_climax_partner(obj/item/organ/genital/G, mob/living/L, spillage = TRUE, mb_time = 30, obj/item/organ/genital/Lgen = null) //Used for climaxing with any living thing +/mob/living/carbon/human/proc/mob_climax_partner(obj/item/organ/genital/G, mob/living/L, spillage = TRUE, mb_time = 30, obj/item/organ/genital/Lgen = null, forced = FALSE, anonymous = FALSE) //Used for climaxing with any living thing var/datum/reagents/fluid_source = G.climaxable(src) if(!fluid_source) return + var/user_name + var/user_p_their + var/target_name + var/target_p_their + var/target_p_them + if(anonymous) + user_name = "Someone" + target_name = "someone" + user_p_their = "their" + target_p_their = "their" + target_p_them = "them" + else + user_name = "[src]" + target_name = "[L]" + user_p_their = p_their() + target_p_their = L.p_their() + target_p_them = L.p_them() if(mb_time) //Skip warning if this is an instant climax. - to_chat(src, span_userlove("You're about to climax [(Lgen) ? "in [L]'s [Lgen.name]" : "with [L]"]!")) - to_chat(L, span_userlove("[src] is about to climax [(Lgen) ? "in your [Lgen.name]" : "with you"]!")) + to_chat(src, span_userlove("You're about to climax [(Lgen) ? "in [target_name]'s [Lgen.name]" : "with [L]"]!")) + to_chat(L, span_userlove("[user_name] is about to climax [(Lgen) ? "in your [Lgen.name]" : "with you"]!")) if(!do_after(src, mb_time, target = src) || !in_range(src, L) || !G.climaxable(src, TRUE)) return if(spillage) - to_chat(src, span_userlove("You orgasm with [L], spilling out of [(Lgen) ? "[L.p_their()] [Lgen.name]" : "[L.p_them()]"], using your [G.name].")) - to_chat(L, span_userlove("[src] climaxes [(Lgen) ? "in your [Lgen.name]" : "with you"], overflowing and spilling, using [p_their()] [G.name]!")) + to_chat(src, span_userlove("You orgasm with [target_name], spilling out of [(Lgen) ? "[target_p_their] [Lgen.name]" : "[target_p_them]"], using your [G.name].")) + to_chat(L, span_userlove("[user_name] climaxes [(Lgen) ? "in your [Lgen.name]" : "with you"], overflowing and spilling, using [user_p_their] [G.name]!")) else //knots and other non-spilling orgasms - to_chat(src, span_userlove("You climax [(Lgen) ? "in [L]'s [Lgen.name]" : "with [L]"], your [G.name] spilling nothing.")) - to_chat(L, span_userlove("[src] climaxes [(Lgen) ? "in your [Lgen.name]" : "with you"], [p_their()] [G.name] spilling nothing!")) + to_chat(src, span_userlove("You climax [(Lgen) ? "in [target_name]'s [Lgen.name]" : "with [target_name]"], your [G.name] spilling nothing.")) + to_chat(L, span_userlove("[user_name] climaxes [(Lgen) ? "in your [Lgen.name]" : "with you"], [user_p_their] [G.name] spilling nothing!")) //SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) //Sandstorm edit do_climax(fluid_source, spillage ? loc : L, G, spillage,, Lgen) //L.receive_climax(src, Lgen, G, spillage) @@ -215,7 +232,7 @@ //Here's the main proc itself //skyrat edit - forced partner and spillage -/mob/living/carbon/human/proc/mob_climax(forced_climax=FALSE,cause = "", var/mob/living/forced_partner = null, var/forced_spillage = TRUE, var/obj/item/organ/genital/forced_receiving_genital = null) //Forced is instead of the other proc, makes you cum if you have the tools for it, ignoring restraints +/mob/living/carbon/human/proc/mob_climax(forced_climax=FALSE,cause = "", var/mob/living/forced_partner = null, var/forced_spillage = TRUE, var/obj/item/organ/genital/forced_receiving_genital = null, anonymous = FALSE) //Forced is instead of the other proc, makes you cum if you have the tools for it, ignoring restraints set waitfor = FALSE if(mb_cd_timer > world.time) if(!forced_climax) //Don't spam the message to the victim if forced to come too fast @@ -261,7 +278,7 @@ // if(partner) //Did they pass the clothing checks? //skyrat edit - mob_climax_partner(G, partner, spillage = forced_spillage, mb_time = 0, Lgen = forced_receiving_genital, forced = forced_climax) //Instant climax due to forced + mob_climax_partner(G, partner, forced_spillage, 0, forced_receiving_genital, forced_climax, anonymous) //Instant climax due to forced // continue //You've climaxed once with this organ, continue on //not exposed OR if no partner was found while exposed, climax alone diff --git a/modular_sand/code/datums/interactions/lewd_definitions.dm b/modular_sand/code/datums/interactions/lewd_definitions.dm index f8d68dfce789..d3dbccfdb71f 100644 --- a/modular_sand/code/datums/interactions/lewd_definitions.dm +++ b/modular_sand/code/datums/interactions/lewd_definitions.dm @@ -406,12 +406,12 @@ audible_message(span_lewd("[src] [pick("mimes a pleasured moan","moans in silence")].")) lastmoan = moan -/mob/living/proc/cum(mob/living/partner, target_orifice, cum_inside = FALSE) //SPLURT EDIT - extra argument `cum_inside` +/mob/living/proc/cum(mob/living/partner, target_orifice, cum_inside = FALSE, anonymous = FALSE) //SPLURT EDIT - extra argument `cum_inside` and 'anonymous' var/message var/u_His = p_their() var/u_He = p_they() var/u_S = p_s() - var/t_His = partner?.p_their() + //var/t_His = partner?.p_their() //SPLURT EDIT - unused var/cumin = cum_inside // SPLURT EDIT - defaults to argument `cum_inside` rather than FALSE var/partner_carbon_check = FALSE var/obj/item/organ/genital/target_gen = null @@ -420,6 +420,16 @@ if(iscarbon(partner)) c_partner = partner partner_carbon_check = TRUE + + // SPLURT EDIT- new variables that are used in place of [partner_t_His] and [partner] in message strings to support anonymity + var/partner_name + var/partner_t_His + if(anonymous) + partner_name = "someone" + partner_t_His = "their" + else + partner_name = "\the [partner]" + partner_t_His = partner?.p_their() if(src != partner) if(!last_genital) @@ -429,77 +439,77 @@ switch(target_orifice) if(CUM_TARGET_MOUTH) if(partner.has_mouth() && partner.mouth_is_free()) - message = "cums right in \the [partner]'s mouth." + message = "cums right in [partner_name]'s mouth." cumin = TRUE else - message = "cums on \the [partner]'s face." + message = "cums on [partner_name]'s face." if(CUM_TARGET_THROAT) if(partner.has_mouth() && partner.mouth_is_free()) - message = "shoves deep into \the [partner]'s throat and cums." + message = "shoves deep into [partner_name]'s throat and cums." cumin = TRUE else - message = "cums on \the [partner]'s face." + message = "cums on [partner_name]'s face." if(CUM_TARGET_VAGINA) if(partner.has_vagina(REQUIRE_EXPOSED)) if(partner_carbon_check) target_gen = c_partner.getorganslot(ORGAN_SLOT_VAGINA) - message = "cums in \the [partner]'s pussy." + message = "cums in [partner_name]'s pussy." cumin = TRUE else - message = "cums on \the [partner]'s belly." + message = "cums on [partner_name]'s belly." if(CUM_TARGET_ANUS) if(partner.has_anus(REQUIRE_EXPOSED)) - message = "cums in \the [partner]'s asshole." + message = "cums in [partner_name]'s asshole." cumin = TRUE else - message = "cums on \the [partner]'s backside." + message = "cums on [partner_name]'s backside." if(CUM_TARGET_HAND) if(partner.has_hand(REQUIRE_ANY)) - message = "cums in \the [partner]'s hand." + message = "cums in [partner_name]'s hand." else - message = "cums on \the [partner]." + message = "cums on [partner_name]." if(CUM_TARGET_BREASTS) if(partner.has_breasts(REQUIRE_EXPOSED)) - message = "cums onto \the [partner]'s breasts." + message = "cums onto [partner_name]'s breasts." else - message = "cums on \the [partner]'s chest and neck." + message = "cums on [partner_name]'s chest and neck." if(NUTS_TO_FACE) if(partner.has_mouth() && partner.mouth_is_free()) - message = "vigorously ruts [u_His] nutsack into \the [partner]'s mouth before shooting [u_His] thick, sticky jizz all over [t_His] eyes and hair." + message = "vigorously ruts [u_His] nutsack into [partner_name]'s mouth before shooting [u_His] thick, sticky jizz all over [partner_t_His] eyes and hair." if(THIGH_SMOTHERING) if(has_penis(REQUIRE_EXPOSED)) //it already checks for the cock before, why the hell would you do this redundant shit - message = "keeps \the [partner] locked in [u_His] thighs as [u_His] cock throbs, dumping its heavy load all over [t_His] face." + message = "keeps [partner_name] locked in [u_His] thighs as [u_His] cock throbs, dumping its heavy load all over [partner_t_His] face." else - message = "reaches [u_His] peak, locking [u_His] legs around \the [partner]'s head extra hard as [u_He] cum[u_S] straight onto the head stuck between [u_His] thighs" + message = "reaches [u_His] peak, locking [u_His] legs around [partner_name]'s head extra hard as [u_He] cum[u_S] straight onto the head stuck between [u_His] thighs" cumin = TRUE if(CUM_TARGET_FEET) if(!last_lewd_datum.require_target_num_feet) if(partner.has_feet()) - message = "cums on \the [partner]'s [partner.has_feet() == 1 ? pick("foot", "sole") : pick("feet", "soles")]." + message = "cums on [partner_name]'s [partner.has_feet() == 1 ? pick("foot", "sole") : pick("feet", "soles")]." else message = "cums on the floor!" else if(partner.has_feet()) - message = "cums on \the [partner]'s [last_lewd_datum.require_target_feet == 1 ? pick("foot", "sole") : pick("feet", "soles")]." + message = "cums on [partner_name]'s [last_lewd_datum.require_target_feet == 1 ? pick("foot", "sole") : pick("feet", "soles")]." else message = "cums on the floor!" //weird shit goes here if(CUM_TARGET_EARS) if(partner.has_ears()) - message = "cums inside \the [partner]'s ear." + message = "cums inside [partner_name]'s ear." else - message = "cums inside \the [partner]'s earsocket." + message = "cums inside [partner_name]'s earsocket." cumin = TRUE if(CUM_TARGET_EYES) if(partner.has_eyes()) - message = "cums on \the [partner]'s eyeball." + message = "cums on [partner_name]'s eyeball." else - message = "cums inside \the [partner]'s eyesocket." + message = "cums inside [partner_name]'s eyesocket." cumin = TRUE // if(CUM_TARGET_PENIS) if(partner.has_penis(REQUIRE_EXPOSED)) - message = "cums on \the [partner]." + message = "cums on [partner_name]." else message = "cums on the floor!" else @@ -511,72 +521,72 @@ switch(target_orifice) if(CUM_TARGET_MOUTH) if(partner.has_mouth() && partner.mouth_is_free()) - message = "squirts right in \the [partner]'s mouth." + message = "squirts right in [partner_name]'s mouth." cumin = TRUE else - message = "squirts on \the [partner]'s face." + message = "squirts on [partner_name]'s face." if(CUM_TARGET_THROAT) if(partner.has_mouth() && partner.mouth_is_free()) - message = "rubs [u_His] vagina against \the [partner]'s mouth and cums." + message = "rubs [u_His] vagina against [partner_name]'s mouth and cums." cumin = TRUE else - message = "squirts on \the [partner]'s face." + message = "squirts on [partner_name]'s face." if(CUM_TARGET_VAGINA) if(partner.has_vagina(REQUIRE_EXPOSED)) - message = "squirts on \the [partner]'s pussy." + message = "squirts on [partner_name]'s pussy." cumin = TRUE else - message = "squirts on \the [partner]'s belly." + message = "squirts on [partner_name]'s belly." if(CUM_TARGET_ANUS) if(partner.has_anus(REQUIRE_EXPOSED)) - message = "squirts on \the [partner]'s asshole." + message = "squirts on [partner_name]'s asshole." cumin = TRUE else - message = "squirts on \the [partner]'s backside." + message = "squirts on [partner_name]'s backside." if(CUM_TARGET_HAND) if(partner.has_hand(REQUIRE_ANY)) - message = "squirts on \the [partner]'s hand." + message = "squirts on [partner_name]'s hand." else - message = "squirts on \the [partner]." + message = "squirts on [partner_name]." if(CUM_TARGET_BREASTS) if(partner.has_breasts(REQUIRE_EXPOSED)) - message = "squirts onto \the [partner]'s breasts." + message = "squirts onto [partner_name]'s breasts." else - message = "squirts on \the [partner]'s chest and neck." + message = "squirts on [partner_name]'s chest and neck." if(NUTS_TO_FACE) if(partner.has_mouth() && partner.mouth_is_free()) - message = "vigorously ruts [u_His] clit into \the [partner]'s mouth before shooting [u_His] femcum all over [t_His] eyes and hair." + message = "vigorously ruts [u_His] clit into [partner_name]'s mouth before shooting [u_His] femcum all over [partner_t_His] eyes and hair." if(THIGH_SMOTHERING) - message = "keeps \the [partner] locked in [u_His] thighs as [u_He] orgasm[u_S], squirting over [t_His] face." + message = "keeps [partner_name] locked in [u_His] thighs as [u_He] orgasm[u_S], squirting over [partner_t_His] face." cumin = TRUE if(CUM_TARGET_FEET) if(!last_lewd_datum.require_target_num_feet) if(partner.has_feet()) - message = "squirts on \the [partner]'s [partner.has_feet() == 1 ? pick("foot", "sole") : pick("feet", "soles")]." + message = "squirts on [partner_name]'s [partner.has_feet() == 1 ? pick("foot", "sole") : pick("feet", "soles")]." else message = "squirts on the floor!" else if(partner.has_feet()) - message = "squirts on \the [partner]'s [last_lewd_datum.require_target_feet == 1 ? pick("foot", "sole") : pick("feet", "soles")]." + message = "squirts on [partner_name]'s [last_lewd_datum.require_target_feet == 1 ? pick("foot", "sole") : pick("feet", "soles")]." else message = "squirts on the floor!" //weird shit goes here if(CUM_TARGET_EARS) if(partner.has_ears()) - message = "squirts on \the [partner]'s ear." + message = "squirts on [partner_name]'s ear." else - message = "squirts on \the [partner]'s earsocket." + message = "squirts on [partner_name]'s earsocket." cumin = TRUE if(CUM_TARGET_EYES) if(partner.has_eyes()) - message = "squirts on \the [partner]'s eyeball." + message = "squirts on [partner_name]'s eyeball." else - message = "squirts on \the [partner]'s eyesocket." + message = "squirts on [partner_name]'s eyesocket." cumin = TRUE // if(CUM_TARGET_PENIS) if(partner.has_penis(REQUIRE_EXPOSED)) - message = "squirts on \the [partner]'s penis" + message = "squirts on [partner_name]'s penis" else message = "squirts on the floor!" else @@ -593,77 +603,77 @@ switch(target_orifice) if(CUM_TARGET_MOUTH) if(partner.has_mouth() && partner.mouth_is_free()) - message = "cums right in \the [partner]'s mouth." + message = "cums right in [partner_name]'s mouth." cumin = TRUE else - message = "cums on \the [partner]'s face." + message = "cums on [partner_name]'s face." if(CUM_TARGET_THROAT) if(partner.has_mouth() && partner.mouth_is_free()) - message = "shoves deep into \the [partner]'s throat and cums." + message = "shoves deep into [partner_name]'s throat and cums." cumin = TRUE else - message = "cums on \the [partner]'s face." + message = "cums on [partner_name]'s face." if(CUM_TARGET_VAGINA) if(partner.has_vagina(REQUIRE_EXPOSED)) if(partner_carbon_check) target_gen = c_partner.getorganslot(ORGAN_SLOT_VAGINA) - message = "cums in \the [partner]'s pussy." + message = "cums in [partner_name]'s pussy." cumin = TRUE else - message = "cums on \the [partner]'s belly." + message = "cums on [partner_name]'s belly." if(CUM_TARGET_ANUS) if(partner.has_anus(REQUIRE_EXPOSED)) - message = "cums in \the [partner]'s asshole." + message = "cums in [partner_name]'s asshole." cumin = TRUE else - message = "cums on \the [partner]'s backside." + message = "cums on [partner_name]'s backside." if(CUM_TARGET_HAND) if(partner.has_hand()) - message = "cums in \the [partner]'s hand." + message = "cums in [partner_name]'s hand." else - message = "cums on \the [partner]." + message = "cums on [partner_name]." if(CUM_TARGET_BREASTS) if(partner.is_topless() && partner.has_breasts()) - message = "cums onto \the [partner]'s breasts." + message = "cums onto [partner_name]'s breasts." else - message = "cums on \the [partner]'s chest and neck." + message = "cums on [partner_name]'s chest and neck." if(NUTS_TO_FACE) if(partner.has_mouth() && partner.mouth_is_free()) - message = "vigorously ruts [u_His] nutsack into \the [partner]'s mouth before shooting [u_His] thick, sticky jizz all over [t_His] eyes and hair." + message = "vigorously ruts [u_His] nutsack into [partner_name]'s mouth before shooting [u_His] thick, sticky jizz all over [partner_t_His] eyes and hair." if(THIGH_SMOTHERING) if(has_penis()) //it already checks for the cock before, why the hell would you do this redundant shit - message = "keeps \the [partner] locked in [u_His] thighs as [u_His] cock throbs, dumping its heavy load all over [t_His] face." + message = "keeps [partner_name] locked in [u_His] thighs as [u_His] cock throbs, dumping its heavy load all over [partner_t_His] face." else - message = "reaches [u_His] peak, locking [u_His] legs around \the [partner]'s head extra hard as [u_He] cum[u_S] straight onto the head stuck between [u_His] thighs" + message = "reaches [u_His] peak, locking [u_His] legs around [partner_name]'s head extra hard as [u_He] cum[u_S] straight onto the head stuck between [u_His] thighs" cumin = TRUE if(CUM_TARGET_FEET) if(!last_lewd_datum || !last_lewd_datum.require_target_num_feet) if(partner.has_feet()) - message = "cums on \the [partner]'s [partner.has_feet() == 1 ? pick("foot", "sole") : pick("feet", "soles")]." + message = "cums on [partner_name]'s [partner.has_feet() == 1 ? pick("foot", "sole") : pick("feet", "soles")]." else message = "cums on the floor!" else if(partner.has_feet()) - message = "cums on \the [partner]'s [last_lewd_datum.require_target_feet == 1 ? pick("foot", "sole") : pick("feet", "soles")]." + message = "cums on [partner_name]'s [last_lewd_datum.require_target_feet == 1 ? pick("foot", "sole") : pick("feet", "soles")]." else message = "cums on the floor!" //weird shit goes here if(CUM_TARGET_EARS) if(partner.has_ears()) - message = "cums inside \the [partner]'s ear." + message = "cums inside [partner_name]'s ear." else - message = "cums inside \the [partner]'s earsocket." + message = "cums inside [partner_name]'s earsocket." cumin = TRUE if(CUM_TARGET_EYES) if(partner.has_eyes()) - message = "cums on \the [partner]'s eyeball." + message = "cums on [partner_name]'s eyeball." else - message = "cums inside \the [partner]'s eyesocket." + message = "cums inside [partner_name]'s eyesocket." cumin = TRUE // if(CUM_TARGET_PENIS) if(partner.has_penis(REQUIRE_EXPOSED)) - message = "cums on \the [partner]." + message = "cums on [partner_name]." else message = "cums on the floor!" else @@ -675,73 +685,73 @@ switch(target_orifice) if(CUM_TARGET_MOUTH) if(partner.has_mouth() && partner.mouth_is_free()) - message = "squirts right in \the [partner]'s mouth." + message = "squirts right in [partner_name]'s mouth." cumin = TRUE else - message = "squirts on \the [partner]'s face." + message = "squirts on [partner_name]'s face." if(CUM_TARGET_THROAT) if(partner.has_mouth() && partner.mouth_is_free()) - message = "rubs [u_His] vagina against \the [partner]'s mouth and cums." + message = "rubs [u_His] vagina against [partner_name]'s mouth and cums." cumin = TRUE else - message = "squirts on \the [partner]'s face." + message = "squirts on [partner_name]'s face." if(CUM_TARGET_VAGINA) if(partner.has_vagina(REQUIRE_EXPOSED)) - message = "squirts on \the [partner]'s pussy." + message = "squirts on [partner_name]'s pussy." cumin = TRUE else - message = "squirts on \the [partner]'s belly." + message = "squirts on [partner_name]'s belly." if(CUM_TARGET_ANUS) if(partner.has_anus(REQUIRE_EXPOSED)) - message = "squirts on \the [partner]'s asshole." + message = "squirts on [partner_name]'s asshole." cumin = TRUE else - message = "squirts on \the [partner]'s backside." + message = "squirts on [partner_name]'s backside." if(CUM_TARGET_HAND) if(partner.has_hand()) - message = "squirts on \the [partner]'s hand." + message = "squirts on [partner_name]'s hand." else - message = "squirts on \the [partner]." + message = "squirts on [partner_name]." if(CUM_TARGET_BREASTS) if(partner.has_breasts(REQUIRE_EXPOSED)) - message = "squirts onto \the [partner]'s breasts." + message = "squirts onto [partner_name]'s breasts." else - message = "squirts on \the [partner]'s chest and neck." + message = "squirts on [partner_name]'s chest and neck." if(NUTS_TO_FACE) if(partner.has_mouth() && partner.mouth_is_free()) - message = "vigorously ruts [u_His] clit into \the [partner]'s mouth before shooting [u_His] femcum all over [t_His] eyes and hair." + message = "vigorously ruts [u_His] clit into [partner_name]'s mouth before shooting [u_His] femcum all over [partner_t_His] eyes and hair." if(THIGH_SMOTHERING) - message = "keeps \the [partner] locked in [u_His] thighs as [u_He] orgasm[u_S], squirting over [t_His] face." + message = "keeps [partner_name] locked in [u_His] thighs as [u_He] orgasm[u_S], squirting over [partner_t_His] face." if(CUM_TARGET_FEET) if(!last_lewd_datum || !last_lewd_datum.require_target_num_feet) if(partner.has_feet()) - message = "squirts on \the [partner]'s [partner.has_feet() == 1 ? pick("foot", "sole") : pick("feet", "soles")]." + message = "squirts on [partner_name]'s [partner.has_feet() == 1 ? pick("foot", "sole") : pick("feet", "soles")]." else message = "squirts on the floor!" else if(partner.has_feet()) - message = "squirts on \the [partner]'s [last_lewd_datum.require_target_feet == 1 ? pick("foot", "sole") : pick("feet", "soles")]." + message = "squirts on [partner_name]'s [last_lewd_datum.require_target_feet == 1 ? pick("foot", "sole") : pick("feet", "soles")]." else message = "squirts on the floor!" //weird shit goes here if(CUM_TARGET_EARS) if(partner.has_ears()) - message = "squirts on \the [partner]'s ear." + message = "squirts on [partner_name]'s ear." else - message = "squirts on \the [partner]'s earsocket." + message = "squirts on [partner_name]'s earsocket." cumin = TRUE if(CUM_TARGET_EYES) if(partner.has_eyes()) - message = "squirts on \the [partner]'s eyeball." + message = "squirts on [partner_name]'s eyeball." else - message = "squirts on \the [partner]'s eyesocket." + message = "squirts on [partner_name]'s eyesocket." cumin = TRUE // if(CUM_TARGET_PENIS) if(partner.has_penis(REQUIRE_EXPOSED)) - message = "squirts on \the [partner]'s penis" + message = "squirts on [partner_name]'s penis" else message = "squirts on the floor!" else @@ -774,7 +784,7 @@ if(!partner) H.mob_climax(TRUE, "masturbation", "none") else - H.mob_climax(TRUE, "sex", partner, !cumin, target_gen) + H.mob_climax(TRUE, "sex", partner, !cumin, target_gen, anonymous) set_lust(0) SEND_SIGNAL(src, COMSIG_MOB_CAME, target_orifice, partner) @@ -803,7 +813,7 @@ return txt /// Handles the sex, if cumming returns true. -/mob/living/proc/handle_post_sex(amount, orifice, mob/living/partner, cum_inside = FALSE) //SPLURT EDIT - extra argument `cum_inside` +/mob/living/proc/handle_post_sex(amount, orifice, mob/living/partner, cum_inside = FALSE, anonymous = FALSE) //SPLURT EDIT - extra argument `cum_inside` if(stat != CONSCIOUS) return FALSE @@ -814,7 +824,7 @@ to_chat(src, "You struggle to not orgasm!") return FALSE if(lust >= get_lust_tolerance()*3) - cum(partner, orifice, cum_inside) //SPLURT EDIT - extra argument `cum_inside` + cum(partner, orifice, cum_inside, anonymous) //SPLURT EDIT - extra argument `cum_inside` return TRUE else moan() diff --git a/modular_sand/code/game/objects/items/fleshlight.dm b/modular_sand/code/game/objects/items/fleshlight.dm index f2d8dbdf4da8..a3aaeda737d7 100644 --- a/modular_sand/code/game/objects/items/fleshlight.dm +++ b/modular_sand/code/game/objects/items/fleshlight.dm @@ -420,7 +420,7 @@ if(user_message) if(portal_target && (portal_target?.client?.prefs.toggles & VERB_CONSENT || !portal_target.ckey)) user.visible_message("[user] [user_message].") - if(M.can_penetrating_genital_cum() && M.handle_post_sex(user_lust_amt, target, portal_target, TRUE)) + if(M.can_penetrating_genital_cum() && M.handle_post_sex(user_lust_amt, target, portal_target, TRUE, TRUE)) switch(target) if(CUM_TARGET_PENIS) switch(portalunderwear.targetting) @@ -464,7 +464,7 @@ playlewdinteractionsound(loc, 'modular_sand/sound/interactions/champ_fingering.ogg', 50, 1, -1) to_chat(portal_target, "Someone uses the linked [name], they [target_message].") - if(portal_target.handle_post_sex(target_lust_amt, portalunderwear.targetting, M, TRUE)) + if(portal_target.handle_post_sex(target_lust_amt, portalunderwear.targetting, M, TRUE, TRUE)) switch(portalunderwear.targetting) if(CUM_TARGET_VAGINA) switch(target) diff --git a/modular_splurt/code/modules/arousal/arousal.dm b/modular_splurt/code/modules/arousal/arousal.dm index b5370894f004..d7dc12060edc 100644 --- a/modular_splurt/code/modules/arousal/arousal.dm +++ b/modular_splurt/code/modules/arousal/arousal.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/human/mob_climax_partner(obj/item/organ/genital/G, mob/living/L, spillage, mb_time, obj/item/organ/genital/Lgen, forced = FALSE) +/mob/living/carbon/human/mob_climax_partner(obj/item/organ/genital/G, mob/living/L, spillage = TRUE, mb_time = 30, obj/item/organ/genital/Lgen = null, forced = FALSE, anonymous = FALSE) . = ..() L.receive_climax(src, Lgen, G, spillage, forced = forced) if(iswendigo(L)) From 313e3ca99fc64e5a00caa1722277253b8d609f12 Mon Sep 17 00:00:00 2001 From: Azarak Date: Sat, 18 Mar 2023 13:19:14 +0100 Subject: [PATCH 04/12] More accurate comments --- modular_sand/code/datums/interactions/lewd_definitions.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modular_sand/code/datums/interactions/lewd_definitions.dm b/modular_sand/code/datums/interactions/lewd_definitions.dm index d3dbccfdb71f..8cada5757af9 100644 --- a/modular_sand/code/datums/interactions/lewd_definitions.dm +++ b/modular_sand/code/datums/interactions/lewd_definitions.dm @@ -813,7 +813,7 @@ return txt /// Handles the sex, if cumming returns true. -/mob/living/proc/handle_post_sex(amount, orifice, mob/living/partner, cum_inside = FALSE, anonymous = FALSE) //SPLURT EDIT - extra argument `cum_inside` +/mob/living/proc/handle_post_sex(amount, orifice, mob/living/partner, cum_inside = FALSE, anonymous = FALSE) //SPLURT EDIT - extra argument `cum_inside` and `anonymous` if(stat != CONSCIOUS) return FALSE @@ -824,7 +824,7 @@ to_chat(src, "You struggle to not orgasm!") return FALSE if(lust >= get_lust_tolerance()*3) - cum(partner, orifice, cum_inside, anonymous) //SPLURT EDIT - extra argument `cum_inside` + cum(partner, orifice, cum_inside, anonymous) //SPLURT EDIT - extra argument `cum_inside` and `anonymous` return TRUE else moan() From ad7c018b53e1302e41125813e8485ebd6b40ca49 Mon Sep 17 00:00:00 2001 From: Azarak Date: Sat, 1 Apr 2023 20:07:42 +0200 Subject: [PATCH 05/12] Fixes organ identification --- .../code/datums/interactions/lewd_definitions.dm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/modular_sand/code/datums/interactions/lewd_definitions.dm b/modular_sand/code/datums/interactions/lewd_definitions.dm index 8cada5757af9..7e42ddf990f6 100644 --- a/modular_sand/code/datums/interactions/lewd_definitions.dm +++ b/modular_sand/code/datums/interactions/lewd_definitions.dm @@ -451,8 +451,6 @@ message = "cums on [partner_name]'s face." if(CUM_TARGET_VAGINA) if(partner.has_vagina(REQUIRE_EXPOSED)) - if(partner_carbon_check) - target_gen = c_partner.getorganslot(ORGAN_SLOT_VAGINA) message = "cums in [partner_name]'s pussy." cumin = TRUE else @@ -760,6 +758,18 @@ message = pick("orgasms violently!", "twists in orgasm.") else //todo: better self cum messages message = "cums all over themselves!" + + if(partner_carbon_check && cumin) + switch(target_orifice) + if(CUM_TARGET_VAGINA) + target_gen = c_partner.getorganslot(ORGAN_SLOT_VAGINA) + if(CUM_TARGET_ANUS) + target_gen = c_partner.getorganslot(ORGAN_SLOT_ANUS) + if(CUM_TARGET_BREASTS) + target_gen = c_partner.getorganslot(ORGAN_SLOT_BREASTS) + if(CUM_TARGET_PENIS) + target_gen = c_partner.getorganslot(ORGAN_SLOT_PENIS) + if(gender == MALE) playlewdinteractionsound(loc, pick('modular_sand/sound/interactions/final_m1.ogg', 'modular_sand/sound/interactions/final_m2.ogg', From 24f04f2de7e56983ad5570bfe8dcc47bca27a1a6 Mon Sep 17 00:00:00 2001 From: Azarak Date: Fri, 21 Apr 2023 21:12:35 +0200 Subject: [PATCH 06/12] Anonymous ovi and portal orifice target fix --- code/__SPLURTCODE/DEFINES/signals.dm | 2 +- code/modules/arousal/arousal.dm | 20 ++++++++-------- .../code/game/objects/items/fleshlight.dm | 2 +- modular_sand/code/modules/arousal/arousal.dm | 2 +- .../code/datums/components/pregnancy_inert.dm | 24 ++++++++++++------- .../code/modules/arousal/arousal.dm | 4 ++-- 6 files changed, 30 insertions(+), 24 deletions(-) diff --git a/code/__SPLURTCODE/DEFINES/signals.dm b/code/__SPLURTCODE/DEFINES/signals.dm index cf09d785afd8..cc5a8638bbec 100644 --- a/code/__SPLURTCODE/DEFINES/signals.dm +++ b/code/__SPLURTCODE/DEFINES/signals.dm @@ -2,6 +2,6 @@ #define COMSIG_HEALTH_SCAN "health_scan" #define COMSIG_ORGAN_INSERTED "organ_inserted" #define COMSIG_ORGAN_REMOVED "organ_removed" -#define COMSIG_MOB_CLIMAX "mob_coomed" +#define COMSIG_MOB_CLIMAX "mob_coomed" /// datum/source, datum/reagents/senders_cum, atom/target, obj/item/organ/genital/sender, obj/item/organ/genital/receiver, spill, anonymous #define COMSIG_OBJ_WRITTEN_ON "written_on" #define COMSIG_MOB_LUST_UPDATED "mob_lust_updated" diff --git a/code/modules/arousal/arousal.dm b/code/modules/arousal/arousal.dm index 8ed482789b3a..c7a6c12f4575 100644 --- a/code/modules/arousal/arousal.dm +++ b/code/modules/arousal/arousal.dm @@ -64,18 +64,18 @@ if(!. && !silent) to_chat(H, "Your [name] is unable to produce it's own fluids, it's missing the organs for it.") -/mob/living/carbon/human/proc/do_climax(datum/reagents/R, atom/target, obj/item/organ/genital/G, spill = TRUE) - if(!G) +/mob/living/carbon/human/proc/do_climax(datum/reagents/R, atom/target, obj/item/organ/genital/sender, spill, cover = FALSE, obj/item/organ/genital/receiver, anonymous = FALSE) + if(!sender) return if(!target || !R) return var/turfing = isturf(target) var/condomning - if(istype(G, /obj/item/organ/genital/penis)) - var/obj/item/organ/genital/penis/P = G + if(istype(sender, /obj/item/organ/genital/penis)) + var/obj/item/organ/genital/penis/P = sender condomning = locate(/obj/item/genital_equipment/condom) in P.contents - G.generate_fluid(R) - log_message("Climaxed using [G] with [target]", LOG_EMOTE) + sender.generate_fluid(R) + log_message("Climaxed using [sender] with [target]", LOG_EMOTE) if(condomning) to_chat(src, "You feel the condom bubble outwards and fill up with your spunk") R.trans_to(condomclimax(), R.total_volume) @@ -83,8 +83,8 @@ if(spill && R.total_volume >= 5) R.reaction(turfing ? target : target.loc, TOUCH, 1, 0) if(!turfing) - R.trans_to(target, R.total_volume * (spill ? G.fluid_transfer_factor : 1), log = TRUE) - G.last_orgasmed = world.time + R.trans_to(target, R.total_volume * (spill ? sender.fluid_transfer_factor : 1), log = TRUE) + sender.last_orgasmed = world.time R.clear_reagents() //skyrat edit - chock i am going to beat you to death //this is not a joke i am actually going to break your @@ -138,7 +138,7 @@ to_chat(src, span_userlove("You climax [(Lgen) ? "in [target_name]'s [Lgen.name]" : "with [target_name]"], your [G.name] spilling nothing.")) to_chat(L, span_userlove("[user_name] climaxes [(Lgen) ? "in your [Lgen.name]" : "with you"], [user_p_their] [G.name] spilling nothing!")) //SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) //Sandstorm edit - do_climax(fluid_source, spillage ? loc : L, G, spillage,, Lgen) + do_climax(fluid_source, spillage ? loc : L, G, spillage, FALSE, Lgen, anonymous) //L.receive_climax(src, Lgen, G, spillage) /mob/living/carbon/human/proc/mob_fill_container(obj/item/organ/genital/G, obj/item/reagent_containers/container, mb_time = 30) //For beaker-filling, beware the bartender @@ -254,7 +254,7 @@ var/check_target var/list/worn_stuff = get_equipped_items() - if(G.is_exposed(worn_stuff)) + if(forced_receiving_genital || G.is_exposed(worn_stuff)) if(pulling) //Are we pulling someone? Priority target, we can't be making option menus for this, has to be quick if(isliving(pulling)) //Don't fuck objects check_target = pulling diff --git a/modular_sand/code/game/objects/items/fleshlight.dm b/modular_sand/code/game/objects/items/fleshlight.dm index a3aaeda737d7..0d9541995ebf 100644 --- a/modular_sand/code/game/objects/items/fleshlight.dm +++ b/modular_sand/code/game/objects/items/fleshlight.dm @@ -420,7 +420,7 @@ if(user_message) if(portal_target && (portal_target?.client?.prefs.toggles & VERB_CONSENT || !portal_target.ckey)) user.visible_message("[user] [user_message].") - if(M.can_penetrating_genital_cum() && M.handle_post_sex(user_lust_amt, target, portal_target, TRUE, TRUE)) + if(M.can_penetrating_genital_cum() && M.handle_post_sex(user_lust_amt, portalunderwear.targetting, portal_target, TRUE, TRUE)) switch(target) if(CUM_TARGET_PENIS) switch(portalunderwear.targetting) diff --git a/modular_sand/code/modules/arousal/arousal.dm b/modular_sand/code/modules/arousal/arousal.dm index f46707e884d2..e905f5b8542e 100644 --- a/modular_sand/code/modules/arousal/arousal.dm +++ b/modular_sand/code/modules/arousal/arousal.dm @@ -1,4 +1,4 @@ -/mob/living/carbon/human/do_climax(datum/reagents/R, atom/target, obj/item/organ/genital/G, spill) //Now I know how to modularize it :D +/mob/living/carbon/human/do_climax(datum/reagents/R, atom/target, obj/item/organ/genital/sender, spill, cover = FALSE, obj/item/organ/genital/receiver, anonymous = FALSE) //Now I know how to modularize it :D . = ..() set_lust(0) SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) diff --git a/modular_splurt/code/datums/components/pregnancy_inert.dm b/modular_splurt/code/datums/components/pregnancy_inert.dm index 33421cb746a4..b34c232f8c8c 100644 --- a/modular_splurt/code/datums/components/pregnancy_inert.dm +++ b/modular_splurt/code/datums/components/pregnancy_inert.dm @@ -62,9 +62,12 @@ eggs_stored += 1 eggs_stored = min(3, eggs_stored) -/datum/component/ovipositor/proc/on_climax(datum/source, datum/reagents/senders_cum, atom/target, obj/item/organ/genital/sender, obj/item/organ/genital/receiver, spill) +/datum/component/ovipositor/proc/on_climax(datum/source, datum/reagents/senders_cum, atom/target, obj/item/organ/genital/sender, obj/item/organ/genital/receiver, spill, anonymous) SIGNAL_HANDLER + if(prob(30)) + return FALSE + var/obj/item/organ/genital/stuff = parent if(stuff != sender && stuff.linked_organ != sender) return FALSE @@ -74,15 +77,12 @@ if(receiver && isliving(target)) if(CHECK_BITFIELD(receiver.genital_flags, GENITAL_CAN_STUFF)) - return lay_eg(receiver, senders_cum) - return lay_eg(get_turf(carrier), senders_cum) + return lay_eg(receiver, senders_cum, anonymous) + return lay_eg(get_turf(carrier), senders_cum, anonymous) -/datum/component/ovipositor/proc/lay_eg(atom/location, datum/reagents/senders_cum) +/datum/component/ovipositor/proc/lay_eg(atom/location, datum/reagents/senders_cum, anonymous) to_chat(carrier, span_userlove("You feel your egg sliding slowly inside!")) - if(prob(30)) - return FALSE - if(isorgan(location)) var/obj/item/organ/recv = location @@ -102,8 +102,14 @@ if(isorgan(location)) var/obj/item/organ/recv = location - carrier.visible_message(span_userlove("[carrier] laid an egg!"), \ - span_userlove("You laid an egg inside [recv.owner]'s [recv]")) + if(anonymous) + carrier.visible_message(span_userlove("[carrier] laid an egg!"), \ + span_userlove("You laid an egg inside someone's [recv]")) + to_chat(recv, span_userlove("Someone laid an egg in you!")) + else + carrier.visible_message(span_userlove("[carrier] laid an egg!"), \ + span_userlove("You laid an egg inside [recv.owner]'s [recv]")) + to_chat(recv, span_userlove("[carrier] laid an egg in you!")) else carrier.visible_message(span_notice("[carrier] laid an egg!"), \ span_nicegreen("The egg came out!")) diff --git a/modular_splurt/code/modules/arousal/arousal.dm b/modular_splurt/code/modules/arousal/arousal.dm index d7dc12060edc..be2bd947fe06 100644 --- a/modular_splurt/code/modules/arousal/arousal.dm +++ b/modular_splurt/code/modules/arousal/arousal.dm @@ -43,13 +43,13 @@ eggo.forceMove(container) eggo.AddComponent(/datum/component/pregnancy, src, partner, baby_type) -/mob/living/carbon/human/do_climax(datum/reagents/R, atom/target, obj/item/organ/genital/sender, spill, cover = FALSE, obj/item/organ/genital/receiver) +/mob/living/carbon/human/do_climax(datum/reagents/R, atom/target, obj/item/organ/genital/sender, spill, cover = FALSE, obj/item/organ/genital/receiver, anonymous = FALSE) if(!sender) return if(!target || !R) return - if(SEND_SIGNAL(src, COMSIG_MOB_CLIMAX, R, target, sender, receiver, spill)) + if(SEND_SIGNAL(src, COMSIG_MOB_CLIMAX, R, target, sender, receiver, spill, anonymous)) return var/cached_fluid From d84343d995f5882afa31d0c4c89d17846c45f93c Mon Sep 17 00:00:00 2001 From: Azarak Date: Thu, 6 Jul 2023 14:57:27 +0200 Subject: [PATCH 07/12] Updates --- code/modules/arousal/arousal.dm | 3 +- .../datums/interactions/lewd_definitions.dm | 92 +++++++++---------- .../code/game/objects/items/fleshlight.dm | 4 +- .../interactions/lewd/lewd_definitions.dm | 4 +- 4 files changed, 52 insertions(+), 51 deletions(-) diff --git a/code/modules/arousal/arousal.dm b/code/modules/arousal/arousal.dm index b21cd068752c..0b45b57c5560 100644 --- a/code/modules/arousal/arousal.dm +++ b/code/modules/arousal/arousal.dm @@ -99,7 +99,8 @@ // Nope, on the mouth doesn't count. if(!(istype(last_lewd_datum, /datum/interaction/lewd/facefuck) || istype(last_lewd_datum, /datum/interaction/lewd/throatfuck))) var/datum/reagent/consumable/semen/salty_drink = target.reagents.get_reagent(/datum/reagent/consumable/semen) - salty_drink.amount_to_drip += amount_to_transfer + if(salty_drink != null) + salty_drink.amount_to_drip += amount_to_transfer // sender.last_orgasmed = world.time R.clear_reagents() diff --git a/modular_sand/code/datums/interactions/lewd_definitions.dm b/modular_sand/code/datums/interactions/lewd_definitions.dm index a546bf04f35d..ca33ca533330 100644 --- a/modular_sand/code/datums/interactions/lewd_definitions.dm +++ b/modular_sand/code/datums/interactions/lewd_definitions.dm @@ -609,77 +609,77 @@ switch(target_orifice) if(CUM_TARGET_MOUTH) if(partner.has_mouth() && partner.mouth_is_free()) - message = "cums right in \the [partner]'s mouth." + message = "cums right in \the [partner_name]'s mouth." cumin = TRUE else - message = "cums on \the [partner]'s face." + message = "cums on \the [partner_name]'s face." if(CUM_TARGET_THROAT) if(partner.has_mouth() && partner.mouth_is_free()) - message = "shoves deep into \the [partner]'s throat and cums." + message = "shoves deep into \the [partner_name]'s throat and cums." cumin = TRUE else - message = "cums on \the [partner]'s face." + message = "cums on \the [partner_name]'s face." if(CUM_TARGET_VAGINA) if(partner.has_vagina(REQUIRE_EXPOSED)) if(partner_carbon_check) target_gen = c_partner.getorganslot(ORGAN_SLOT_VAGINA) - message = "cums in \the [partner]'s pussy." + message = "cums in \the [partner_name]'s pussy." cumin = TRUE else - message = "cums on \the [partner]'s belly." + message = "cums on \the [partner_name]'s belly." if(CUM_TARGET_ANUS) if(partner.has_anus(REQUIRE_EXPOSED)) - message = "cums in \the [partner]'s asshole." + message = "cums in \the [partner_name]'s asshole." cumin = TRUE else - message = "cums on \the [partner]'s backside." + message = "cums on \the [partner_name]'s backside." if(CUM_TARGET_HAND) if(partner.has_hand()) - message = "cums in \the [partner]'s hand." + message = "cums in \the [partner_name]'s hand." else - message = "cums on \the [partner]." + message = "cums on \the [partner_name]." if(CUM_TARGET_BREASTS) if(partner.is_topless() && partner.has_breasts()) - message = "cums onto \the [partner]'s breasts." + message = "cums onto \the [partner_name]'s breasts." else - message = "cums on \the [partner]'s chest and neck." + message = "cums on \the [partner_name]'s chest and neck." if(NUTS_TO_FACE) if(partner.has_mouth() && partner.mouth_is_free()) - message = "vigorously ruts [u_His] nutsack into \the [partner]'s mouth before shooting [u_His] thick, sticky jizz all over [t_His] eyes and hair." + message = "vigorously ruts [u_His] nutsack into \the [partner_name]'s mouth before shooting [u_His] thick, sticky jizz all over [partner_t_His] eyes and hair." if(THIGH_SMOTHERING) if(has_penis()) //it already checks for the cock before, why the hell would you do this redundant shit - message = "keeps \the [partner] locked in [u_His] thighs as [u_His] cock throbs, dumping its heavy load all over [t_His] face." + message = "keeps \the [partner_name] locked in [u_His] thighs as [u_His] cock throbs, dumping its heavy load all over [partner_t_His] face." else - message = "reaches [u_His] peak, locking [u_His] legs around \the [partner]'s head extra hard as [u_He] cum[u_S] straight onto the head stuck between [u_His] thighs" + message = "reaches [u_His] peak, locking [u_His] legs around \the [partner_name]'s head extra hard as [u_He] cum[u_S] straight onto the head stuck between [u_His] thighs" cumin = TRUE if(CUM_TARGET_FEET) if(!last_lewd_datum || !last_lewd_datum.require_target_num_feet) if(partner.has_feet()) - message = "cums on \the [partner]'s [partner.has_feet() == 1 ? pick("foot", "sole") : pick("feet", "soles")]." + message = "cums on \the [partner_name]'s [partner.has_feet() == 1 ? pick("foot", "sole") : pick("feet", "soles")]." else message = "cums on the floor!" else if(partner.has_feet()) - message = "cums on \the [partner]'s [last_lewd_datum.require_target_feet == 1 ? pick("foot", "sole") : pick("feet", "soles")]." + message = "cums on \the [partner_name]'s [last_lewd_datum.require_target_feet == 1 ? pick("foot", "sole") : pick("feet", "soles")]." else message = "cums on the floor!" //weird shit goes here if(CUM_TARGET_EARS) if(partner.has_ears()) - message = "cums inside \the [partner]'s ear." + message = "cums inside \the [partner_name]'s ear." else - message = "cums inside \the [partner]'s earsocket." + message = "cums inside \the [partner_name]'s earsocket." cumin = TRUE if(CUM_TARGET_EYES) if(partner.has_eyes()) - message = "cums on \the [partner]'s eyeball." + message = "cums on \the [partner_name]'s eyeball." else - message = "cums inside \the [partner]'s eyesocket." + message = "cums inside \the [partner_name]'s eyesocket." cumin = TRUE // if(CUM_TARGET_PENIS) if(partner.has_penis(REQUIRE_EXPOSED)) - message = "cums on \the [partner]." + message = "cums on \the [partner_name]." else message = "cums on the floor!" else @@ -691,73 +691,73 @@ switch(target_orifice) if(CUM_TARGET_MOUTH) if(partner.has_mouth() && partner.mouth_is_free()) - message = "squirts right in \the [partner]'s mouth." + message = "squirts right in \the [partner_name]'s mouth." cumin = TRUE else - message = "squirts on \the [partner]'s face." + message = "squirts on \the [partner_name]'s face." if(CUM_TARGET_THROAT) if(partner.has_mouth() && partner.mouth_is_free()) - message = "rubs [u_His] vagina against \the [partner]'s mouth and cums." + message = "rubs [u_His] vagina against \the [partner_name]'s mouth and cums." cumin = TRUE else - message = "squirts on \the [partner]'s face." + message = "squirts on \the [partner_name]'s face." if(CUM_TARGET_VAGINA) if(partner.has_vagina(REQUIRE_EXPOSED)) - message = "squirts on \the [partner]'s pussy." + message = "squirts on \the [partner_name]'s pussy." cumin = TRUE else - message = "squirts on \the [partner]'s belly." + message = "squirts on \the [partner_name]'s belly." if(CUM_TARGET_ANUS) if(partner.has_anus(REQUIRE_EXPOSED)) - message = "squirts on \the [partner]'s asshole." + message = "squirts on \the [partner_name]'s asshole." cumin = TRUE else - message = "squirts on \the [partner]'s backside." + message = "squirts on \the [partner_name]'s backside." if(CUM_TARGET_HAND) if(partner.has_hand()) - message = "squirts on \the [partner]'s hand." + message = "squirts on \the [partner_name]'s hand." else - message = "squirts on \the [partner]." + message = "squirts on \the [partner_name]." if(CUM_TARGET_BREASTS) if(partner.has_breasts(REQUIRE_EXPOSED)) - message = "squirts onto \the [partner]'s breasts." + message = "squirts onto \the [partner_name]'s breasts." else - message = "squirts on \the [partner]'s chest and neck." + message = "squirts on \the [partner_name]'s chest and neck." if(NUTS_TO_FACE) if(partner.has_mouth() && partner.mouth_is_free()) - message = "vigorously ruts [u_His] clit into \the [partner]'s mouth before shooting [u_His] femcum all over [t_His] eyes and hair." + message = "vigorously ruts [u_His] clit into \the [partner_name]'s mouth before shooting [u_His] femcum all over [partner_t_His] eyes and hair." if(THIGH_SMOTHERING) - message = "keeps \the [partner] locked in [u_His] thighs as [u_He] orgasm[u_S], squirting over [t_His] face." + message = "keeps \the [partner_name] locked in [u_His] thighs as [u_He] orgasm[u_S], squirting over [partner_t_His] face." if(CUM_TARGET_FEET) if(!last_lewd_datum || !last_lewd_datum.require_target_num_feet) if(partner.has_feet()) - message = "squirts on \the [partner]'s [partner.has_feet() == 1 ? pick("foot", "sole") : pick("feet", "soles")]." + message = "squirts on \the [partner_name]'s [partner.has_feet() == 1 ? pick("foot", "sole") : pick("feet", "soles")]." else message = "squirts on the floor!" else if(partner.has_feet()) - message = "squirts on \the [partner]'s [last_lewd_datum.require_target_feet == 1 ? pick("foot", "sole") : pick("feet", "soles")]." + message = "squirts on \the [partner_name]'s [last_lewd_datum.require_target_feet == 1 ? pick("foot", "sole") : pick("feet", "soles")]." else message = "squirts on the floor!" //weird shit goes here if(CUM_TARGET_EARS) if(partner.has_ears()) - message = "squirts on \the [partner]'s ear." + message = "squirts on \the [partner_name]'s ear." else - message = "squirts on \the [partner]'s earsocket." + message = "squirts on \the [partner_name]'s earsocket." cumin = TRUE if(CUM_TARGET_EYES) if(partner.has_eyes()) - message = "squirts on \the [partner]'s eyeball." + message = "squirts on \the [partner_name]'s eyeball." else - message = "squirts on \the [partner]'s eyesocket." + message = "squirts on \the [partner_name]'s eyesocket." cumin = TRUE // if(CUM_TARGET_PENIS) if(partner.has_penis(REQUIRE_EXPOSED)) - message = "squirts on \the [partner]'s penis" + message = "squirts on \the [partner_name]'s penis" else message = "squirts on the floor!" else @@ -767,9 +767,9 @@ else if(istype(partner, /obj/item/reagent_containers)) switch(last_genital.type) if(/obj/item/organ/genital/penis) - message = "cums into \the [partner]" + message = "cums into \the [partner_name]" if(/obj/item/organ/genital/vagina) - message = "squirts into \the [partner]" + message = "squirts into \the [partner_name]" else //todo: better self cum messages message = "cums all over themselves!" @@ -854,7 +854,7 @@ return txt /// Handles the sex, if cumming returns true. -/mob/living/proc/handle_post_sex(amount, orifice, mob/living/partner, cum_inside = FALSE, anonymous = FALSE) //SPLURT EDIT - extra argument `cum_inside` and `anonymous` +/mob/living/proc/handle_post_sex(amount, orifice, mob/living/partner, organ = null, cum_inside = FALSE, anonymous = FALSE) //SPLURT EDIT - extra argument `cum_inside` and `anonymous` if(stat != CONSCIOUS) return FALSE diff --git a/modular_sand/code/game/objects/items/fleshlight.dm b/modular_sand/code/game/objects/items/fleshlight.dm index 510d78bf1b59..29ff29298f46 100644 --- a/modular_sand/code/game/objects/items/fleshlight.dm +++ b/modular_sand/code/game/objects/items/fleshlight.dm @@ -420,7 +420,7 @@ if(user_message) if(portal_target && (portal_target?.client?.prefs.toggles & VERB_CONSENT || !portal_target.ckey)) user.visible_message("[user] [user_message].") - if(M.can_penetrating_genital_cum() && M.handle_post_sex(user_lust_amt, portalunderwear.targetting, portal_target, TRUE, TRUE)) //SPLURT edit + if(M.can_penetrating_genital_cum() && M.handle_post_sex(user_lust_amt, portalunderwear.targetting, portal_target, null, TRUE, TRUE)) //SPLURT edit switch(target) if(CUM_TARGET_PENIS) switch(portalunderwear.targetting) @@ -464,7 +464,7 @@ playlewdinteractionsound(loc, 'modular_sand/sound/interactions/champ_fingering.ogg', 50, 1, -1) to_chat(portal_target, "Someone uses the linked [name], they [target_message].") - if(portal_target.handle_post_sex(target_lust_amt, portalunderwear.targetting, M, TRUE, TRUE)) //SPLURT edit + if(portal_target.handle_post_sex(target_lust_amt, portalunderwear.targetting, M, null, TRUE, TRUE)) //SPLURT edit switch(portalunderwear.targetting) if(CUM_TARGET_VAGINA) switch(target) diff --git a/modular_splurt/code/datums/interactions/lewd/lewd_definitions.dm b/modular_splurt/code/datums/interactions/lewd/lewd_definitions.dm index e5b631e20e01..900b93062ad3 100644 --- a/modular_splurt/code/datums/interactions/lewd/lewd_definitions.dm +++ b/modular_splurt/code/datums/interactions/lewd/lewd_definitions.dm @@ -72,14 +72,14 @@ GLOBAL_LIST_INIT(anus_traits, list("[TRAIT_HYPERSENS_ANUS]" = 3, "[TRAIT_OVERSTI */ /mob/living/proc/check_orgasm(datum/source, R, target, obj/item/organ/genital/sender, receiver, spill) SIGNAL_HANDLER - + if(CHECK_BITFIELD(sender.genital_flags, GENITAL_IMPOTENT) || CHECK_BITFIELD(sender.genital_flags, GENITAL_DISAPPOINTING)) emote("sigh") to_chat(src, "[pick("Ugh, that was embarassing...", "I could've done it better...")]") return TRUE return FALSE -/mob/living/carbon/handle_post_sex(amount, orifice, mob/living/partner, organ = null) +/mob/living/carbon/handle_post_sex(amount, orifice, mob/living/partner, organ = null, cum_inside = FALSE, anonymous = FALSE) if(organ) amount = check_stimulation(amount, organ) From 26341f1e3fbb42a0740dc5e3d81964ffe1a7a601 Mon Sep 17 00:00:00 2001 From: Azarak Date: Tue, 5 Sep 2023 14:49:18 +0200 Subject: [PATCH 08/12] Fixes runtime when unlinked underwear is used --- modular_sand/code/game/objects/items/fleshlight.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modular_sand/code/game/objects/items/fleshlight.dm b/modular_sand/code/game/objects/items/fleshlight.dm index 29ff29298f46..7c4cb4697615 100644 --- a/modular_sand/code/game/objects/items/fleshlight.dm +++ b/modular_sand/code/game/objects/items/fleshlight.dm @@ -116,6 +116,8 @@ updatesleeve() /obj/item/portallight/attack(mob/living/carbon/human/M, mob/living/carbon/human/user) + if(portalunderwear == null) + return var/user_message = "" var/target_message = "" var/user_lust_amt = NONE From 78183fc85b9565aa3e0c6210403b050fa76e47bc Mon Sep 17 00:00:00 2001 From: Azarak Date: Thu, 7 Sep 2023 15:01:22 +0200 Subject: [PATCH 09/12] Remove redundancy --- modular_sand/code/datums/interactions/lewd_definitions.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/modular_sand/code/datums/interactions/lewd_definitions.dm b/modular_sand/code/datums/interactions/lewd_definitions.dm index 98f278910601..c5f146a7a760 100644 --- a/modular_sand/code/datums/interactions/lewd_definitions.dm +++ b/modular_sand/code/datums/interactions/lewd_definitions.dm @@ -460,8 +460,6 @@ message = "cums on [partner_name]'s face." if(CUM_TARGET_VAGINA) if(partner.has_vagina(REQUIRE_EXPOSED)) - if(partner_carbon_check) - target_gen = c_partner.getorganslot(ORGAN_SLOT_VAGINA) message = "cums in [partner_name]'s pussy." cumin = TRUE else @@ -625,8 +623,6 @@ message = "cums on \the [partner_name]'s face." if(CUM_TARGET_VAGINA) if(partner.has_vagina(REQUIRE_EXPOSED)) - if(partner_carbon_check) - target_gen = c_partner.getorganslot(ORGAN_SLOT_VAGINA) message = "cums in \the [partner_name]'s pussy." cumin = TRUE else From ea1622aa8614a745f75b06f48c9edd441253f34e Mon Sep 17 00:00:00 2001 From: ariaworld <143797359+ariaworld@users.noreply.github.com> Date: Mon, 27 Nov 2023 22:41:16 +0100 Subject: [PATCH 10/12] Potency climax limit bypass (#1) * Potency climax limit bypass * Fix comment spacing --- code/modules/client/preferences.dm | 4 ++-- modular_citadel/code/modules/client/preferences_savefile.dm | 2 +- modular_sand/code/datums/interactions/lewd_definitions.dm | 2 +- modular_splurt/code/datums/interactions/lewd/_lewd.dm | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 60aa3bc3b80f..239346174547 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -2870,9 +2870,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(lust_tol) lust_tolerance = clamp(lust_tol, 75, 200) if("sexual_potency") - var/sexual_pot = input(user, "Set your sexual potency. \n(10 = minimum, 25 = maximum.)", "Character Preference", sexual_potency) as num|null + var/sexual_pot = input(user, "Set your sexual potency. \n(-1 = minimum, 25 = maximum.) This determines the number of times your character can orgasm before becoming impotent, use -1 for no impotency.", "Character Preference", sexual_potency) as num|null if(sexual_pot) - sexual_potency = clamp(sexual_pot, 10, 25) + sexual_potency = clamp(sexual_pot, -1, 25) // Splurt EDIT: New minimum = -1 if("cock_color") var/new_cockcolor = input(user, "Penis color:", "Character Preference","#"+features["cock_color"]) as color|null diff --git a/modular_citadel/code/modules/client/preferences_savefile.dm b/modular_citadel/code/modules/client/preferences_savefile.dm index d4131383dfeb..afdf28b583e0 100644 --- a/modular_citadel/code/modules/client/preferences_savefile.dm +++ b/modular_citadel/code/modules/client/preferences_savefile.dm @@ -39,7 +39,7 @@ enable_personal_chat_color = sanitize_integer(enable_personal_chat_color, 0, 1, initial(enable_personal_chat_color)) personal_chat_color = sanitize_hexcolor(personal_chat_color, 6, 1, "#FFFFFF") lust_tolerance = sanitize_integer(lust_tolerance, 75, 200, initial(lust_tolerance)) - sexual_potency = sanitize_integer(sexual_potency, 10, 25, initial(sexual_potency)) + sexual_potency = sanitize_integer(sexual_potency, -1, 25, initial(sexual_potency)) S["silicon_lawset"] >> silicon_lawset diff --git a/modular_sand/code/datums/interactions/lewd_definitions.dm b/modular_sand/code/datums/interactions/lewd_definitions.dm index bb5b0903d901..d7a66de3edb7 100644 --- a/modular_sand/code/datums/interactions/lewd_definitions.dm +++ b/modular_sand/code/datums/interactions/lewd_definitions.dm @@ -805,7 +805,7 @@ multiorgasms += 1 COOLDOWN_START(src, refractory_period, (rand(300, 900) - get_sexual_potency()))//sex cooldown - if(multiorgasms < get_sexual_potency()) + if(get_sexual_potency() == -1 || (get_sexual_potency() != -1 && multiorgasms < get_sexual_potency())) //Splurt EDIT: Ignore multi-orgasms check if sexual potency is -1 if(ishuman(src)) var/mob/living/carbon/human/H = src if(!partner) diff --git a/modular_splurt/code/datums/interactions/lewd/_lewd.dm b/modular_splurt/code/datums/interactions/lewd/_lewd.dm index 3e4948ff856e..584d790ff694 100644 --- a/modular_splurt/code/datums/interactions/lewd/_lewd.dm +++ b/modular_splurt/code/datums/interactions/lewd/_lewd.dm @@ -231,13 +231,13 @@ visible_message(message = span_userlove("\The [src] [message]"), ignored_mobs = get_unconsenting()) multiorgasms += 1 - if(multiorgasms > (get_sexual_potency() * 0.34)) //AAAAA, WE DONT WANT NEGATIVES HERE, RE - refractory_period = world.time + rand(300, 900) - get_sexual_potency()//sex cooldown + if(get_sexual_potency() == -1 || multiorgasms > (get_sexual_potency() * 0.34)) //AAAAA, WE DONT WANT NEGATIVES HERE, RE + refractory_period = world.time + rand(300, 900) //sex cooldown // set_drugginess(rand(20, 30)) else refractory_period = world.time + rand(300, 900) - get_sexual_potency() // set_drugginess(rand(5, 10)) - if(multiorgasms < get_sexual_potency()) + if(get_sexual_potency() == -1 || multiorgasms < get_sexual_potency()) // Climax limit | SPLURT EDIT: -1 sexual potency = no limit if(ishuman(src)) var/mob/living/carbon/human/H = src if(!partner) From 0c2ccf6a5ec441d259b72538e919d6bb35396b14 Mon Sep 17 00:00:00 2001 From: sebdaz <148892507+sebdaz@users.noreply.github.com> Date: Sat, 9 Mar 2024 22:13:54 +0100 Subject: [PATCH 11/12] Revert "Potency climax limit bypass (#1)" This reverts commit ea1622aa8614a745f75b06f48c9edd441253f34e. --- code/modules/client/preferences.dm | 4 ++-- modular_citadel/code/modules/client/preferences_savefile.dm | 2 +- modular_sand/code/datums/interactions/lewd_definitions.dm | 2 +- modular_splurt/code/datums/interactions/lewd/_lewd.dm | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 239346174547..60aa3bc3b80f 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -2870,9 +2870,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(lust_tol) lust_tolerance = clamp(lust_tol, 75, 200) if("sexual_potency") - var/sexual_pot = input(user, "Set your sexual potency. \n(-1 = minimum, 25 = maximum.) This determines the number of times your character can orgasm before becoming impotent, use -1 for no impotency.", "Character Preference", sexual_potency) as num|null + var/sexual_pot = input(user, "Set your sexual potency. \n(10 = minimum, 25 = maximum.)", "Character Preference", sexual_potency) as num|null if(sexual_pot) - sexual_potency = clamp(sexual_pot, -1, 25) // Splurt EDIT: New minimum = -1 + sexual_potency = clamp(sexual_pot, 10, 25) if("cock_color") var/new_cockcolor = input(user, "Penis color:", "Character Preference","#"+features["cock_color"]) as color|null diff --git a/modular_citadel/code/modules/client/preferences_savefile.dm b/modular_citadel/code/modules/client/preferences_savefile.dm index afdf28b583e0..d4131383dfeb 100644 --- a/modular_citadel/code/modules/client/preferences_savefile.dm +++ b/modular_citadel/code/modules/client/preferences_savefile.dm @@ -39,7 +39,7 @@ enable_personal_chat_color = sanitize_integer(enable_personal_chat_color, 0, 1, initial(enable_personal_chat_color)) personal_chat_color = sanitize_hexcolor(personal_chat_color, 6, 1, "#FFFFFF") lust_tolerance = sanitize_integer(lust_tolerance, 75, 200, initial(lust_tolerance)) - sexual_potency = sanitize_integer(sexual_potency, -1, 25, initial(sexual_potency)) + sexual_potency = sanitize_integer(sexual_potency, 10, 25, initial(sexual_potency)) S["silicon_lawset"] >> silicon_lawset diff --git a/modular_sand/code/datums/interactions/lewd_definitions.dm b/modular_sand/code/datums/interactions/lewd_definitions.dm index d7a66de3edb7..bb5b0903d901 100644 --- a/modular_sand/code/datums/interactions/lewd_definitions.dm +++ b/modular_sand/code/datums/interactions/lewd_definitions.dm @@ -805,7 +805,7 @@ multiorgasms += 1 COOLDOWN_START(src, refractory_period, (rand(300, 900) - get_sexual_potency()))//sex cooldown - if(get_sexual_potency() == -1 || (get_sexual_potency() != -1 && multiorgasms < get_sexual_potency())) //Splurt EDIT: Ignore multi-orgasms check if sexual potency is -1 + if(multiorgasms < get_sexual_potency()) if(ishuman(src)) var/mob/living/carbon/human/H = src if(!partner) diff --git a/modular_splurt/code/datums/interactions/lewd/_lewd.dm b/modular_splurt/code/datums/interactions/lewd/_lewd.dm index 584d790ff694..3e4948ff856e 100644 --- a/modular_splurt/code/datums/interactions/lewd/_lewd.dm +++ b/modular_splurt/code/datums/interactions/lewd/_lewd.dm @@ -231,13 +231,13 @@ visible_message(message = span_userlove("\The [src] [message]"), ignored_mobs = get_unconsenting()) multiorgasms += 1 - if(get_sexual_potency() == -1 || multiorgasms > (get_sexual_potency() * 0.34)) //AAAAA, WE DONT WANT NEGATIVES HERE, RE - refractory_period = world.time + rand(300, 900) //sex cooldown + if(multiorgasms > (get_sexual_potency() * 0.34)) //AAAAA, WE DONT WANT NEGATIVES HERE, RE + refractory_period = world.time + rand(300, 900) - get_sexual_potency()//sex cooldown // set_drugginess(rand(20, 30)) else refractory_period = world.time + rand(300, 900) - get_sexual_potency() // set_drugginess(rand(5, 10)) - if(get_sexual_potency() == -1 || multiorgasms < get_sexual_potency()) // Climax limit | SPLURT EDIT: -1 sexual potency = no limit + if(multiorgasms < get_sexual_potency()) if(ishuman(src)) var/mob/living/carbon/human/H = src if(!partner) From 5d35347b4777e3730f942704171b87cd3162a6a1 Mon Sep 17 00:00:00 2001 From: Azarak Date: Sat, 9 Mar 2024 22:39:59 +0100 Subject: [PATCH 12/12] Update lewd_definitions.dm --- modular_sand/code/datums/interactions/lewd_definitions.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_sand/code/datums/interactions/lewd_definitions.dm b/modular_sand/code/datums/interactions/lewd_definitions.dm index f4614ed0227a..7803ee193473 100644 --- a/modular_sand/code/datums/interactions/lewd_definitions.dm +++ b/modular_sand/code/datums/interactions/lewd_definitions.dm @@ -304,7 +304,7 @@ var/u_His = p_their() var/u_He = p_they() var/u_S = p_s() - //var/t_His = partner?.p_their() //SPLURT EDIT - unused + var/t_His = partner?.p_their() var/cumin = cum_inside // SPLURT EDIT - defaults to argument `cum_inside` rather than FALSE var/partner_carbon_check = FALSE var/obj/item/organ/genital/target_gen = null