From 044403ae7ff0d0a6efb52151dfd366e6417d21d5 Mon Sep 17 00:00:00 2001 From: BongaTheProto <93835010+BongaTheProto@users.noreply.github.com> Date: Tue, 7 Jun 2022 01:42:23 -0500 Subject: [PATCH] removes all well-trained constant effects Except for the moodlet that is, but that's not as annoying. Blushing and jittering are now part of the snap effects instead of being constantly applied when a dom is near. In addition, it'll tell you only ONCE when a dom is near you, and then not do it again until you've been enough time away from a dom --- modular_splurt/code/datums/traits/good.dm | 4 ++ modular_splurt/code/datums/traits/negative.dm | 70 +++++++++++-------- 2 files changed, 43 insertions(+), 31 deletions(-) diff --git a/modular_splurt/code/datums/traits/good.dm b/modular_splurt/code/datums/traits/good.dm index cc0fe10309..d45cd0805f 100644 --- a/modular_splurt/code/datums/traits/good.dm +++ b/modular_splurt/code/datums/traits/good.dm @@ -79,15 +79,19 @@ switch(E?.key) if("snap") sub.dir = get_dir(sub, quirk_holder) + sub.emote(pick("blush", "pant")) sub.visible_message(span_notice("\The [sub] turns shyly towards \the [quirk_holder]."), "You stare into \the [quirk_holder] submissively.") if("snap2") sub.dir = get_dir(sub, quirk_holder) sub.KnockToFloor() + sub.emote(pick("blush", "pant")) sub.visible_message(span_lewd("\The [sub] submissively throws [sub.p_them()]self on the floor."), span_lewd("You throw yourself on the floor like a dog on [quirk_holder]'s command.")) if("snap3") sub.KnockToFloor() step(sub, get_dir(sub, quirk_holder)) + sub.emote(pick("blush", "pant")) + sub.do_jitter_animation(30) //You're being moved anyways sub.visible_message(span_lewd("\The [sub] crawls closer to \the [quirk_holder] in all fours, following [quirk_holder.p_their()] command"), span_lewd("You get on your fours and crawl towards \the [quirk_holder] like a good, submissive boy.")) . = TRUE diff --git a/modular_splurt/code/datums/traits/negative.dm b/modular_splurt/code/datums/traits/negative.dm index f1a3813bb6..15c20ab9c9 100644 --- a/modular_splurt/code/datums/traits/negative.dm +++ b/modular_splurt/code/datums/traits/negative.dm @@ -92,7 +92,25 @@ lose_text = "You no longer feel like being a pet..." processing_quirk = TRUE var/mood_category = "dom_trained" - var/distance_delay = 0 + var/notice_delay = 0 + var/mob/living/carbon/human/last_dom + +/datum/quirk/well_trained/add() + . = ..() + RegisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE, .proc/on_examine_holder) + +/datum/quirk/well_trained/remove() + . = ..() + UnregisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE) + +/datum/quirk/well_trained/proc/on_examine_holder(atom/source, mob/living/user, list/examine_list) + SIGNAL_HANDLER + + if(!istype(user)) + return + if(!user.has_quirk(/datum/quirk/dominant_aura)) + return + examine_list += span_lewd("You can sense submissiveness irradiating from [quirk_holder.p_them()]") /datum/quirk/well_trained/on_process() . = ..() @@ -118,6 +136,7 @@ //Return if no dom is found if(!.) + last_dom = null return //Handle the mood @@ -127,35 +146,24 @@ else SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, mood_category, /datum/mood_event/dominant/need) - //Handle chat effects - if(world.time < distance_delay) - return . - var/distance_mod = (-9/50)*closest_distance + 1 - var/distance_seconds - switch(closest_distance) - if(5) - distance_seconds = 20 - if(4) - distance_seconds = 15 - if(3) - distance_seconds = 10 - if(0 to 2) - distance_seconds = 7 + //Don't do anything if a previous dom was found + if(last_dom) + notice_delay = world.time + 15 SECONDS + return - if(prob(30 * distance_mod)) - var/list/notices = list( - "You feel someone's presence making you more submissive.", - "The thought of being commanded floods you with lust.", - "You really want to be called a good [good_x].", - "Someone's presence is making you all flustered.", - "You start getting excited and sweating." - ) - to_chat(quirk_holder, span_lewd(pick(notices))) - if(prob(20) * distance_mod) - quirk_holder.emote(pick("blush", "pant")) - if(prob(15) * distance_mod) - quirk_holder.do_jitter_animation(50*distance_mod) - quirk_holder.visible_message(span_notice("\The [quirk_holder] shakes lewdly in [quirk_holder.p_their()] place...")) + last_dom = . - if(distance_seconds > 1) - distance_delay = world.time + (distance_seconds SECONDS) + if(notice_delay > world.time) + return + + //Let them know they're near + var/list/notices = list( + "You feel someone's presence making you more submissive.", + "The thought of being commanded floods you with lust.", + "You really want to be called a good [good_x].", + "Someone's presence is making you all flustered.", + "You start getting excited and sweating." + ) + + to_chat(quirk_holder, span_lewd(pick(notices))) + notice_delay = world.time + 15 SECONDS