Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

i am therefore i must coom (new quirk) #804

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,7 @@
#define TRAIT_NEVERBONER "never_aroused"
#define TRAIT_NYMPHO "nymphomaniac"
#define TRAIT_MASO "masochism"
#define TRAIT_HAIR_TRIGGER "hair_trigger"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be in our modular traits defines file

#define TRAIT_HIGH_BLOOD "high_blood"
#define TRAIT_PARA "paraplegic"
#define TRAIT_EMPATH "empath"
Expand Down
1 change: 1 addition & 0 deletions code/_globalvars/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_PHOTOGRAPHER" = TRAIT_PHOTOGRAPHER,
"TRAIT_MUSICIAN" = TRAIT_MUSICIAN,
"TRAIT_MASO" = TRAIT_MASO,
"TRAIT_HAIR_TRIGGER" = TRAIT_HAIR_TRIGGER,
"TRAIT_HIGH_BLOOD" = TRAIT_HIGH_BLOOD,
"TRAIT_EMPATH" = TRAIT_EMPATH,
"TRAIT_FRIENDLY" = TRAIT_FRIENDLY,
Expand Down
6 changes: 4 additions & 2 deletions modular_sand/code/datums/interactions/lewd_definitions.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
var/lastlusttime = 0
var/lust = 0
var/multiorgasms = 1
var/hair_trigger_mul = 1

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rather than adding a variable to the mob you should probably just check if the mob has the trait when the add_lust proc is called and multiply the added lust if so

COOLDOWN_DECLARE(refractory_period)
COOLDOWN_DECLARE(last_interaction_time)
var/datum/interaction/lewd/last_lewd_datum //Recording our last lewd datum allows us to do stuff like custom cum messages.
Expand Down Expand Up @@ -65,10 +66,11 @@

/mob/living/proc/add_lust(add)
var/cur = get_lust() //GetLust handles per-time lust loss
if((cur + add) < 0) //in case we retract lust
if((cur + add) < 0) //in case we retract lust, doesn't have to account for hair trigger, since we aren't multiplying with a negative
lust = 0
else
lust = cur + add
lust = cur + add * hair_trigger_mul

Comment on lines +69 to +73

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be made into a modular edit by just modifying the add variable by the multiplier before it calls . = ..()



/mob/living/proc/get_lust()
Expand Down
52 changes: 52 additions & 0 deletions modular_splurt/code/datums/traits/neutral.dm
Original file line number Diff line number Diff line change
Expand Up @@ -820,3 +820,55 @@
var/obj/item/clothing/mask/gas/cosmetic/gasmask = new(get_turf(quirk_holder)) // Uses a custom gas mask
H.equip_to_slot(gasmask, ITEM_SLOT_MASK)
H.regenerate_icons()

/datum/quirk/prem

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you'll wanna change the class name to something more descriptive like hair_trigger

name = "Hair Trigger"
desc = "Your libido is hyperactive to the point where the slightest of sexual stimuli can set you off. Much to your misfortune (or fortune), there is plenty of that around here!"
value = 0
mob_trait = TRAIT_HAIR_TRIGGER
gain_text = "<span class='notice'>You could cum at any given moment.</span>"
lose_text = "<span class='notice'>Your hypersensitivity to arousal fades.</span>"
var/sexword_delay = 0

/datum/quirk/prem/add()
. = ..()
RegisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE, .proc/quirk_examine_prem)
RegisterSignal(quirk_holder, COMSIG_MOVABLE_HEAR, .proc/hear_teasing)
var/mob/living/carbon/human/H = quirk_holder
H.hair_trigger_mul = 5 // the multiplier for how much lust should be added. by default this is a three and therefore quintuplicates the lust you get from interactions

/datum/quirk/prem/remove()
UnregisterSignal(quirk_holder, COMSIG_PARENT_EXAMINE)
UnregisterSignal(quirk_holder, COMSIG_MOVABLE_HEAR)
var/mob/living/carbon/human/H = quirk_holder
if(!H)
return
H.hair_trigger_mul = 1 // this should always be one, if it isn't, arousal related stuff might break

/datum/quirk/prem/proc/quirk_examine_prem(atom/examine_target, mob/living/carbon/human/examiner, list/examine_list)
SIGNAL_HANDLER

var/mob/living/carbon/human/H = examine_target
if(!istype(examiner) || H.get_lust() < 10) // if the target is horny, people WILL notice it
return
examine_list += span_lewd("[H.p_they(TRUE)] [H.p_are()] fidgeting with arousal.")

/datum/quirk/prem/proc/hear_teasing(datum/source, list/hearing_args)
SIGNAL_HANDLER

var/mob/living/carbon/human/H = quirk_holder
var/static/regex/sexywords = regex("sex|fuck|hump|dick|cock|penis|pussy|clit|cum|jizz|orgasm|spurt")
var/list/nnngh = list(
"Hearing that really got you going...",
"Calm down... it's just words...",
"That sounds exciting...",
"It's hard to keep your composure with that kinda talk!",
)
if (H == hearing_args[HEARING_SPEAKER])
return
if (findtext(lowertext(hearing_args[HEARING_RAW_MESSAGE]), sexywords) && sexword_delay < world.time)
H.handle_post_sex(5, null, null)
sexword_delay = world.time + 10 SECONDS
spawn(2) // this is just for aesthetics so the notification is placed after the message in chatbox, if it causes issues feel free to remove :dawgdoin:
to_chat(H, span_lewd(pick(nnngh)))
Comment on lines +848 to +873

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In my opinion, in order to make the quirk actually a trigger with words rather than just kinda adding extra lust all the time, you should make it so that the multiplier also only takes effect for a certain time after hearing the triggering word

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nah, I personally wanted it to be a "really sensitive to arousal" thing sorta like nympho was with the extra function of being turned on by getting teased

putting the whole sensitivity behind a "trigger word activator" defeats the purpose, for me at least

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hair trigger is just sorta phrasing for cumming really easily, having trigger words is more like a secondary function that coincides with the name of the quirk

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

uses spawn() instead of timers.