From 2a9182dfdff1eb39d0706d3cb67d713b534606ee Mon Sep 17 00:00:00 2001 From: SandPoot Date: Fri, 9 Aug 2024 20:13:26 -0300 Subject: [PATCH] push --- code/__SANDCODE/DEFINES/misc.dm | 2 +- .../datums/interactions/lewd_definitions.dm | 40 +++++++++++-------- modular_sand/code/modules/mob/emote.dm | 17 +++++--- 3 files changed, 35 insertions(+), 24 deletions(-) diff --git a/code/__SANDCODE/DEFINES/misc.dm b/code/__SANDCODE/DEFINES/misc.dm index 66c894e898..4672f0416c 100644 --- a/code/__SANDCODE/DEFINES/misc.dm +++ b/code/__SANDCODE/DEFINES/misc.dm @@ -1,4 +1,4 @@ /// Adds an utf-8 header...? only ever used on circuitry so when wiremod arrives... #define UTF8HEADER "" /// A shorthand for ternary operators to simulate a null-coalescing operator. Returns the first argument if its defined, otherwise, second. -#define NULL_COALESCE(var, default) ((var) ? (var) : (default)) +#define NULL_COALESCE(var, default) (isnull(var) ? (default) : (var)) diff --git a/modular_sand/code/datums/interactions/lewd_definitions.dm b/modular_sand/code/datums/interactions/lewd_definitions.dm index 7ce9bb6b7e..4d3fdb6cbd 100644 --- a/modular_sand/code/datums/interactions/lewd_definitions.dm +++ b/modular_sand/code/datums/interactions/lewd_definitions.dm @@ -260,27 +260,33 @@ return TRUE /mob/living/proc/moan() - if(is_muzzled()) - visible_message(span_lewd("[src] [pick("mimes a pleasured moan","moans in silence")].")) + if(is_muzzled() || (mind?.miming)) + var/message_to_display = pick("mime%S% a pleasured moan","moan%S% in silence") + visible_message(span_lewd("\The [src] [replacetext(message_to_display, "%S%", "s")]."), + span_lewd("You [replacetext(message_to_display, "%S%", "")].")) + return + var/message_to_display = pick("moan%S%", "moan%S% in pleasure") + visible_message(span_lewd("\The [src] [replacetext(message_to_display, "%S%", "s")]."), + span_lewd("You [replacetext(message_to_display, "%S%", "")]."), + span_lewd("You hear some moaning."), + ignored_mobs = get_unconsenting(), omni = TRUE) + + // Get reference of the list we're using based on gender. + var/list/moans + if (gender == FEMALE) + moans = GLOB.lewd_moans_female else - visible_message(message = span_lewd("\The [src] [pick("moans", "moans in pleasure")]."), ignored_mobs = get_unconsenting(), omni = TRUE) + moans = GLOB.lewd_moans_male - // Get reference of the list we're using based on gender. - var/list/moans - if (gender == FEMALE) - moans = GLOB.lewd_moans_female - else - moans = GLOB.lewd_moans_male + // Pick a sound from the list. + var/sound = pick(moans) - // Pick a sound from the list. - var/sound = pick(moans) + // If the sound is repeated, get a new from a list without it. + if (lastmoan == sound) + sound = pick(LAZYCOPY(moans) - lastmoan) - // If the sound is repeated, get a new from a list without it. - if (lastmoan == sound) - sound = pick(LAZYCOPY(moans) - lastmoan) - - playlewdinteractionsound(loc, sound, 80, 0, 0) - lastmoan = sound + playlewdinteractionsound(loc, sound, 80, 0, 0) + lastmoan = sound /mob/living/proc/cum(mob/living/partner, target_orifice) if(HAS_TRAIT(src, TRAIT_NEVERBONER)) diff --git a/modular_sand/code/modules/mob/emote.dm b/modular_sand/code/modules/mob/emote.dm index 6587784796..ee87ea1c62 100644 --- a/modular_sand/code/modules/mob/emote.dm +++ b/modular_sand/code/modules/mob/emote.dm @@ -51,10 +51,15 @@ user.nextsoundemote = world.time + 7 playsound(user, 'modular_citadel/sound/voice/peep.ogg', 50, 1, -1) -/datum/emote/living/carbon/moan/run_emote(mob/living/user, params) - if(!(. = ..())) - return - if(user.nextsoundemote >= world.time) - return - user.nextsoundemote = world.time + 7 +/datum/emote/living/carbon/moan + emote_type = EMOTE_OMNI + stat_allowed = CONSCIOUS + +/datum/emote/living/carbon/moan/run_emote(mob/living/user, params, type_override, intentional) + . = TRUE + if(!can_run_emote(user, TRUE, intentional)) + return FALSE + if(!COOLDOWN_FINISHED(user, nextsoundemote)) + return FALSE + COOLDOWN_START(user, nextsoundemote, 7) user.moan()