mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2026-08-23 20:56:47 +01:00
Adds anonymity, fixes arg runtime
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -406,12 +406,12 @@
|
||||
audible_message(span_lewd("<B>[src]</B> [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 = "<b>someone</b>"
|
||||
partner_t_His = "their"
|
||||
else
|
||||
partner_name = "\the <b>[partner]</b>"
|
||||
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 <b>[partner]</b>'s mouth."
|
||||
message = "cums right in [partner_name]'s mouth."
|
||||
cumin = TRUE
|
||||
else
|
||||
message = "cums on \the <b>[partner]</b>'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 <b>[partner]</b>'s throat and cums."
|
||||
message = "shoves deep into [partner_name]'s throat and cums."
|
||||
cumin = TRUE
|
||||
else
|
||||
message = "cums on \the <b>[partner]</b>'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 <b>[partner]</b>'s pussy."
|
||||
message = "cums in [partner_name]'s pussy."
|
||||
cumin = TRUE
|
||||
else
|
||||
message = "cums on \the <b>[partner]</b>'s belly."
|
||||
message = "cums on [partner_name]'s belly."
|
||||
if(CUM_TARGET_ANUS)
|
||||
if(partner.has_anus(REQUIRE_EXPOSED))
|
||||
message = "cums in \the <b>[partner]</b>'s asshole."
|
||||
message = "cums in [partner_name]'s asshole."
|
||||
cumin = TRUE
|
||||
else
|
||||
message = "cums on \the <b>[partner]</b>'s backside."
|
||||
message = "cums on [partner_name]'s backside."
|
||||
if(CUM_TARGET_HAND)
|
||||
if(partner.has_hand(REQUIRE_ANY))
|
||||
message = "cums in \the <b>[partner]</b>'s hand."
|
||||
message = "cums in [partner_name]'s hand."
|
||||
else
|
||||
message = "cums on \the <b>[partner]</b>."
|
||||
message = "cums on [partner_name]."
|
||||
if(CUM_TARGET_BREASTS)
|
||||
if(partner.has_breasts(REQUIRE_EXPOSED))
|
||||
message = "cums onto \the <b>[partner]</b>'s breasts."
|
||||
message = "cums onto [partner_name]'s breasts."
|
||||
else
|
||||
message = "cums on \the <b>[partner]</b>'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 <b>[partner]</b>'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 <b>[partner]</b> 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 <b>[partner]</b>'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 <b>[partner]</b>'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 <b>[partner]</b>'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 <b>[partner]</b>'s ear."
|
||||
message = "cums inside [partner_name]'s ear."
|
||||
else
|
||||
message = "cums inside \the <b>[partner]</b>'s earsocket."
|
||||
message = "cums inside [partner_name]'s earsocket."
|
||||
cumin = TRUE
|
||||
if(CUM_TARGET_EYES)
|
||||
if(partner.has_eyes())
|
||||
message = "cums on \the <b>[partner]</b>'s eyeball."
|
||||
message = "cums on [partner_name]'s eyeball."
|
||||
else
|
||||
message = "cums inside \the <b>[partner]</b>'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 <b>[partner]</b>."
|
||||
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 <b>[partner]</b>'s mouth."
|
||||
message = "squirts right in [partner_name]'s mouth."
|
||||
cumin = TRUE
|
||||
else
|
||||
message = "squirts on \the <b>[partner]</b>'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 <b>[partner]</b>'s mouth and cums."
|
||||
message = "rubs [u_His] vagina against [partner_name]'s mouth and cums."
|
||||
cumin = TRUE
|
||||
else
|
||||
message = "squirts on \the <b>[partner]</b>'s face."
|
||||
message = "squirts on [partner_name]'s face."
|
||||
if(CUM_TARGET_VAGINA)
|
||||
if(partner.has_vagina(REQUIRE_EXPOSED))
|
||||
message = "squirts on \the <b>[partner]</b>'s pussy."
|
||||
message = "squirts on [partner_name]'s pussy."
|
||||
cumin = TRUE
|
||||
else
|
||||
message = "squirts on \the <b>[partner]</b>'s belly."
|
||||
message = "squirts on [partner_name]'s belly."
|
||||
if(CUM_TARGET_ANUS)
|
||||
if(partner.has_anus(REQUIRE_EXPOSED))
|
||||
message = "squirts on \the <b>[partner]</b>'s asshole."
|
||||
message = "squirts on [partner_name]'s asshole."
|
||||
cumin = TRUE
|
||||
else
|
||||
message = "squirts on \the <b>[partner]</b>'s backside."
|
||||
message = "squirts on [partner_name]'s backside."
|
||||
if(CUM_TARGET_HAND)
|
||||
if(partner.has_hand(REQUIRE_ANY))
|
||||
message = "squirts on \the <b>[partner]</b>'s hand."
|
||||
message = "squirts on [partner_name]'s hand."
|
||||
else
|
||||
message = "squirts on \the <b>[partner]</b>."
|
||||
message = "squirts on [partner_name]."
|
||||
if(CUM_TARGET_BREASTS)
|
||||
if(partner.has_breasts(REQUIRE_EXPOSED))
|
||||
message = "squirts onto \the <b>[partner]</b>'s breasts."
|
||||
message = "squirts onto [partner_name]'s breasts."
|
||||
else
|
||||
message = "squirts on \the <b>[partner]</b>'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 <b>[partner]</b>'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 <b>[partner]</b> 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 <b>[partner]</b>'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 <b>[partner]</b>'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 <b>[partner]</b>'s ear."
|
||||
message = "squirts on [partner_name]'s ear."
|
||||
else
|
||||
message = "squirts on \the <b>[partner]</b>'s earsocket."
|
||||
message = "squirts on [partner_name]'s earsocket."
|
||||
cumin = TRUE
|
||||
if(CUM_TARGET_EYES)
|
||||
if(partner.has_eyes())
|
||||
message = "squirts on \the <b>[partner]</b>'s eyeball."
|
||||
message = "squirts on [partner_name]'s eyeball."
|
||||
else
|
||||
message = "squirts on \the <b>[partner]</b>'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 <b>[partner]</b>'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 <b>[partner]</b>'s mouth."
|
||||
message = "cums right in [partner_name]'s mouth."
|
||||
cumin = TRUE
|
||||
else
|
||||
message = "cums on \the <b>[partner]</b>'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 <b>[partner]</b>'s throat and cums."
|
||||
message = "shoves deep into [partner_name]'s throat and cums."
|
||||
cumin = TRUE
|
||||
else
|
||||
message = "cums on \the <b>[partner]</b>'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 <b>[partner]</b>'s pussy."
|
||||
message = "cums in [partner_name]'s pussy."
|
||||
cumin = TRUE
|
||||
else
|
||||
message = "cums on \the <b>[partner]</b>'s belly."
|
||||
message = "cums on [partner_name]'s belly."
|
||||
if(CUM_TARGET_ANUS)
|
||||
if(partner.has_anus(REQUIRE_EXPOSED))
|
||||
message = "cums in \the <b>[partner]</b>'s asshole."
|
||||
message = "cums in [partner_name]'s asshole."
|
||||
cumin = TRUE
|
||||
else
|
||||
message = "cums on \the <b>[partner]</b>'s backside."
|
||||
message = "cums on [partner_name]'s backside."
|
||||
if(CUM_TARGET_HAND)
|
||||
if(partner.has_hand())
|
||||
message = "cums in \the <b>[partner]</b>'s hand."
|
||||
message = "cums in [partner_name]'s hand."
|
||||
else
|
||||
message = "cums on \the <b>[partner]</b>."
|
||||
message = "cums on [partner_name]."
|
||||
if(CUM_TARGET_BREASTS)
|
||||
if(partner.is_topless() && partner.has_breasts())
|
||||
message = "cums onto \the <b>[partner]</b>'s breasts."
|
||||
message = "cums onto [partner_name]'s breasts."
|
||||
else
|
||||
message = "cums on \the <b>[partner]</b>'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 <b>[partner]</b>'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 <b>[partner]</b> 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 <b>[partner]</b>'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 <b>[partner]</b>'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 <b>[partner]</b>'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 <b>[partner]</b>'s ear."
|
||||
message = "cums inside [partner_name]'s ear."
|
||||
else
|
||||
message = "cums inside \the <b>[partner]</b>'s earsocket."
|
||||
message = "cums inside [partner_name]'s earsocket."
|
||||
cumin = TRUE
|
||||
if(CUM_TARGET_EYES)
|
||||
if(partner.has_eyes())
|
||||
message = "cums on \the <b>[partner]</b>'s eyeball."
|
||||
message = "cums on [partner_name]'s eyeball."
|
||||
else
|
||||
message = "cums inside \the <b>[partner]</b>'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 <b>[partner]</b>."
|
||||
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 <b>[partner]</b>'s mouth."
|
||||
message = "squirts right in [partner_name]'s mouth."
|
||||
cumin = TRUE
|
||||
else
|
||||
message = "squirts on \the <b>[partner]</b>'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 <b>[partner]</b>'s mouth and cums."
|
||||
message = "rubs [u_His] vagina against [partner_name]'s mouth and cums."
|
||||
cumin = TRUE
|
||||
else
|
||||
message = "squirts on \the <b>[partner]</b>'s face."
|
||||
message = "squirts on [partner_name]'s face."
|
||||
if(CUM_TARGET_VAGINA)
|
||||
if(partner.has_vagina(REQUIRE_EXPOSED))
|
||||
message = "squirts on \the <b>[partner]</b>'s pussy."
|
||||
message = "squirts on [partner_name]'s pussy."
|
||||
cumin = TRUE
|
||||
else
|
||||
message = "squirts on \the <b>[partner]</b>'s belly."
|
||||
message = "squirts on [partner_name]'s belly."
|
||||
if(CUM_TARGET_ANUS)
|
||||
if(partner.has_anus(REQUIRE_EXPOSED))
|
||||
message = "squirts on \the <b>[partner]</b>'s asshole."
|
||||
message = "squirts on [partner_name]'s asshole."
|
||||
cumin = TRUE
|
||||
else
|
||||
message = "squirts on \the <b>[partner]</b>'s backside."
|
||||
message = "squirts on [partner_name]'s backside."
|
||||
if(CUM_TARGET_HAND)
|
||||
if(partner.has_hand())
|
||||
message = "squirts on \the <b>[partner]</b>'s hand."
|
||||
message = "squirts on [partner_name]'s hand."
|
||||
else
|
||||
message = "squirts on \the <b>[partner]</b>."
|
||||
message = "squirts on [partner_name]."
|
||||
if(CUM_TARGET_BREASTS)
|
||||
if(partner.has_breasts(REQUIRE_EXPOSED))
|
||||
message = "squirts onto \the <b>[partner]</b>'s breasts."
|
||||
message = "squirts onto [partner_name]'s breasts."
|
||||
else
|
||||
message = "squirts on \the <b>[partner]</b>'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 <b>[partner]</b>'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 <b>[partner]</b> 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 <b>[partner]</b>'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 <b>[partner]</b>'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 <b>[partner]</b>'s ear."
|
||||
message = "squirts on [partner_name]'s ear."
|
||||
else
|
||||
message = "squirts on \the <b>[partner]</b>'s earsocket."
|
||||
message = "squirts on [partner_name]'s earsocket."
|
||||
cumin = TRUE
|
||||
if(CUM_TARGET_EYES)
|
||||
if(partner.has_eyes())
|
||||
message = "squirts on \the <b>[partner]</b>'s eyeball."
|
||||
message = "squirts on [partner_name]'s eyeball."
|
||||
else
|
||||
message = "squirts on \the <b>[partner]</b>'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 <b>[partner]</b>'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, "<b>You struggle to not orgasm!</b>")
|
||||
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()
|
||||
|
||||
@@ -420,7 +420,7 @@
|
||||
if(user_message)
|
||||
if(portal_target && (portal_target?.client?.prefs.toggles & VERB_CONSENT || !portal_target.ckey))
|
||||
user.visible_message("<span class='lewd'>[user] [user_message].</span>")
|
||||
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, "<span class='lewd'>Someone uses the linked [name], they [target_message].</span>")
|
||||
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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user