-
-
Notifications
You must be signed in to change notification settings - Fork 283
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
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -34,6 +34,7 @@ | |
var/lastlusttime = 0 | ||
var/lust = 0 | ||
var/multiorgasms = 1 | ||
var/hair_trigger_mul = 1 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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. | ||
|
@@ -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
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This can be made into a modular edit by just modifying the |
||
|
||
|
||
/mob/living/proc/get_lust() | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. you'll wanna change the class name to something more descriptive like |
||
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
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. uses spawn() instead of timers. |
||
|
There was a problem hiding this comment.
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