From af3df23c4984fdc017c1f3071b7b4bd75084de9d Mon Sep 17 00:00:00 2001 From: WoolyAypa Date: Fri, 17 Jun 2022 02:46:28 -0300 Subject: [PATCH 1/6] dumb4cum that is --- code/__SPLURTCODE/DEFINES/zeros/traits.dm | 2 + code/game/objects/items/devices/PDA/PDA.dm | 6 ++- .../objects/items/implants/implantcase.dm | 3 ++ code/game/objects/items/implants/implanter.dm | 3 ++ code/game/objects/items/signs.dm | 3 ++ .../crates_lockers/closets/bodybag.dm | 3 ++ code/game/objects/structures/morgue.dm | 3 ++ code/modules/events/holiday/vday.dm | 3 ++ code/modules/food_and_drinks/pizzabox.dm | 3 ++ code/modules/games/cas.dm | 3 ++ code/modules/library/lib_codex_gigas.dm | 3 ++ code/modules/library/lib_items.dm | 3 ++ code/modules/mob/mob_helpers.dm | 3 ++ code/modules/newscaster/newspaper.dm | 3 ++ code/modules/paperwork/contract.dm | 3 ++ code/modules/paperwork/folders.dm | 3 ++ code/modules/photography/photos/photo.dm | 3 ++ .../chemistry/reagents/other_reagents.dm | 7 ++++ .../reagents/reagent_containers/blood_pack.dm | 3 ++ code/modules/recycling/sortingmachinery.dm | 5 ++- .../code/datums/mood_events/needs_events.dm | 9 +++++ modular_splurt/code/datums/traits/neutral.dm | 39 +++++++++++++++++++ modular_splurt/code/modules/mob/mob.dm | 5 +++ 23 files changed, 119 insertions(+), 2 deletions(-) diff --git a/code/__SPLURTCODE/DEFINES/zeros/traits.dm b/code/__SPLURTCODE/DEFINES/zeros/traits.dm index e6e13f9963..497b6e1c42 100644 --- a/code/__SPLURTCODE/DEFINES/zeros/traits.dm +++ b/code/__SPLURTCODE/DEFINES/zeros/traits.dm @@ -7,3 +7,5 @@ #define TRAIT_IN_HEAT "in_heat" #define TRAIT_HEAT_DETECT "heat_detect" #define TRAIT_ILLITERATE "illiterate" + +#define TRAIT_DUMB4CUM "dumb4cum" \ No newline at end of file diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 7fb1dd0065..aa14d9f13c 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -779,6 +779,10 @@ GLOBAL_LIST_EMPTY(PDAs) return t /obj/item/pda/proc/send_message(mob/living/user, list/obj/item/pda/targets, everyone) + if(user.is_dumb4cum()) + to_chat(user, "You can't focus on anything but cum right now!") + return + var/message = msg_input(user) if(!message || !targets.len) return @@ -861,7 +865,7 @@ GLOBAL_LIST_EMPTY(PDAs) else L = get(src, /mob/living/silicon) - if(L && L.stat != UNCONSCIOUS) + if(L && L.stat != UNCONSCIOUS && !L.is_dumb4cum()) var/hrefstart var/hrefend if (isAI(L)) diff --git a/code/game/objects/items/implants/implantcase.dm b/code/game/objects/items/implants/implantcase.dm index 8573324b56..de4b63fc87 100644 --- a/code/game/objects/items/implants/implantcase.dm +++ b/code/game/objects/items/implants/implantcase.dm @@ -24,6 +24,9 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on the side of [src]!") return + if(user.is_dumb4cum()) + to_chat(user, "You can't think of anything but cum right now.") + return var/t = stripped_input(user, "What would you like the label to be?", name, null) if(user.get_active_held_item() != W) return diff --git a/code/game/objects/items/implants/implanter.dm b/code/game/objects/items/implants/implanter.dm index 578d8595dd..e7f3f8e7d1 100644 --- a/code/game/objects/items/implants/implanter.dm +++ b/code/game/objects/items/implants/implanter.dm @@ -45,6 +45,9 @@ if(!user.is_literate()) to_chat(user, "You prod at [src] with [W]!") return + if(user.is_dumb4cum()) + to_chat(user, "You can't think of anything but cum right now.") + return var/t = stripped_input(user, "What would you like the label to be?", name, null) if(user.get_active_held_item() != W) return diff --git a/code/game/objects/items/signs.dm b/code/game/objects/items/signs.dm index 67bc28b2ea..4e3f6e09a2 100644 --- a/code/game/objects/items/signs.dm +++ b/code/game/objects/items/signs.dm @@ -21,6 +21,9 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on [src]!") return + if(user.is_dumb4cum()) + to_chat(user, "You can't think of anything but cum right now.") + return var/txt = stripped_input(user, "What would you like to write on the sign?", "Sign Label", null , 30) if(txt && user.canUseTopic(src, BE_CLOSE)) label = txt diff --git a/code/game/objects/structures/crates_lockers/closets/bodybag.dm b/code/game/objects/structures/crates_lockers/closets/bodybag.dm index 09441a577e..fbb1259262 100644 --- a/code/game/objects/structures/crates_lockers/closets/bodybag.dm +++ b/code/game/objects/structures/crates_lockers/closets/bodybag.dm @@ -20,6 +20,9 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on [src]!") return + if(user.is_dumb4cum()) + to_chat(user, "You can't think of anything but cum right now.") + return var/t = stripped_input(user, "What would you like the label to be?", name, null, 53) if(user.get_active_held_item() != I) return diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 69206f0d08..2e66a2a96a 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -85,6 +85,9 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an if(!user.is_literate()) to_chat(user, "You scribble illegibly on the side of [src]!") return + if(user.is_dumb4cum()) + to_chat(user, "You can't think of anything but cum right now.") + return var/t = stripped_input(user, "What would you like the label to be?", text("[]", name), null) if (user.get_active_held_item() != P) return diff --git a/code/modules/events/holiday/vday.dm b/code/modules/events/holiday/vday.dm index df00f873b5..e2da89681c 100644 --- a/code/modules/events/holiday/vday.dm +++ b/code/modules/events/holiday/vday.dm @@ -55,6 +55,9 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on [src]!") return + if(user.is_dumb4cum()) + to_chat(user, "You can't think of anything but cum right now.") + return var/recipient = stripped_input(user, "Who is receiving this valentine?", "To:", null , 20) var/sender = stripped_input(user, "Who is sending this valentine?", "From:", null , 20) if(!user.canUseTopic(src, BE_CLOSE)) diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index 9d0e38cdec..a2ad4020e3 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -195,6 +195,9 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on [src]!") return + if(user.is_dumb4cum()) + to_chat(user, "You can't think of anything but cum right now.") + return var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src box.boxtag += stripped_input(user, "Write on [box]'s tag:", box, "", 30) if(!user.canUseTopic(src, BE_CLOSE)) diff --git a/code/modules/games/cas.dm b/code/modules/games/cas.dm index 77db8dbe3f..899b3307a4 100644 --- a/code/modules/games/cas.dm +++ b/code/modules/games/cas.dm @@ -147,6 +147,9 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on [src]!") return + if(user.is_dumb4cum()) + to_chat(user, "You can't think of anything but cum right now.") + return if(!blank) to_chat(user, "You cannot write on that card.") return diff --git a/code/modules/library/lib_codex_gigas.dm b/code/modules/library/lib_codex_gigas.dm index 26fa5b6f3d..d6482259f2 100644 --- a/code/modules/library/lib_codex_gigas.dm +++ b/code/modules/library/lib_codex_gigas.dm @@ -27,6 +27,9 @@ if(!user.is_literate()) to_chat(user, "You skim through the book but can't comprehend any of it.") return + if(user.is_dumb4cum()) + to_chat(user, "You can't think of anything but cum right now.") + return if(inUse) to_chat(user, "Someone else is reading it.") if(ishuman(user)) diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index d558c2994f..eb670aa15d 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -113,6 +113,9 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on the side of [src]!") return + if(user.is_dumb4cum()) + to_chat(user, "You can't think of anything but cum right now.") + return var/newname = stripped_input(user, "What would you like to title this bookshelf?") if(!user.canUseTopic(src, BE_CLOSE)) return diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index f59ed15c88..e366e4e673 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -591,6 +591,9 @@ It's fairly easy to fix if dealing with single letters but not so much with comp if(!is_literate()) to_chat(src, "You try to read [O], but can't comprehend any of it.") return + if(is_dumb4cum()) + to_chat(src, "You try reading [O] but only warm seed comes to your mind.") + return return TRUE /mob/proc/checkloadappearance() diff --git a/code/modules/newscaster/newspaper.dm b/code/modules/newscaster/newspaper.dm index 0afb36a7e7..db92d5f647 100644 --- a/code/modules/newscaster/newspaper.dm +++ b/code/modules/newscaster/newspaper.dm @@ -158,6 +158,9 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on [src]!") return + if(user.is_dumb4cum()) + to_chat(user, "You can't think of anything but cum right now.") + return if(scribble_page == curr_page) to_chat(user, "There's already a scribble in this page... You wouldn't want to make things too cluttered, would you?") else diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index f46d4bf029..cf164e7338 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -190,6 +190,9 @@ if(!user.IsAdvancedToolUser() || !user.is_literate()) to_chat(user, "You don't know how to read or write.") return 0 + if(user.is_dumb4cum()) + to_chat(user, "You can't think of anything but cum right now.") + return if(user.mind != target) to_chat(user, "Your signature simply slides off the sheet, it seems this contract is not meant for you to sign.") return 0 diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index d69da4d797..67b647595f 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -46,6 +46,9 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on the cover of [src]!") return + if(user.is_dumb4cum()) + to_chat(user, "You can't think of anything but cum right now.") + return var/inputvalue = stripped_input(user, "What would you like to label the folder?", "Folder Labelling", "", MAX_NAME_LEN) diff --git a/code/modules/photography/photos/photo.dm b/code/modules/photography/photos/photo.dm index c363c549de..2531566901 100644 --- a/code/modules/photography/photos/photo.dm +++ b/code/modules/photography/photos/photo.dm @@ -57,6 +57,9 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on [src]!") return + if(user.is_dumb4cum()) + to_chat(user, "You can't think of anything but cum right now.") + return var/txt = stripped_input(user, "What would you like to write on the back?", "Photo Writing", "", 128) if(txt && user.canUseTopic(src, BE_CLOSE)) scribble = txt diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 87bb204afe..54d0872288 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -2510,6 +2510,13 @@ nutriment_factor = 0.5 * REAGENTS_METABOLISM var/decal_path = /obj/effect/decal/cleanable/semen +/datum/reagent/consumable/semen/on_mob_add(mob/living/carbon/M) + var/datum/quirk/dumb4cum/d4c + for(var/datum/quirk/Q in M.roundstart_quirks) + if(Q.type == /datum/quirk/dumb4cum) + d4c = Q + d4c.uncrave() + /datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume) ..() if(!istype(T)) diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index 87349058a4..d3f6b609f7 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -89,6 +89,9 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on the label of [src]!") return + if(user.is_dumb4cum()) + to_chat(user, "You can't think of anything but cum right now.") + return var/t = stripped_input(user, "What would you like to label the blood pack?", name, null, 53) if(!user.canUseTopic(src, BE_CLOSE)) return diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 008e093b74..75ab481c39 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -36,6 +36,9 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on the side of [src]!") return + if(user.is_dumb4cum()) + to_chat(user, "You can't think of anything but cum right now.") + return var/str = stripped_input(user, "Label text?", "Set label", "", MAX_NAME_LEN) if(!user.canUseTopic(src, BE_CLOSE)) return @@ -119,7 +122,7 @@ playsound(loc, 'sound/machines/twobeep.ogg', 100, 1) else if(istype(W, /obj/item/pen)) - if(!user.is_literate()) + if(!user.is_literate() || user.is_dumb4cum()) to_chat(user, "You scribble illegibly on the side of [src]!") return var/str = stripped_input(user, "Label text?", "Set label", "", MAX_NAME_LEN) diff --git a/modular_splurt/code/datums/mood_events/needs_events.dm b/modular_splurt/code/datums/mood_events/needs_events.dm index da5a575ebb..fd15e074b8 100644 --- a/modular_splurt/code/datums/mood_events/needs_events.dm +++ b/modular_splurt/code/datums/mood_events/needs_events.dm @@ -5,3 +5,12 @@ return description = span_nicegreen("MORE FOOD!!! MORE FOOD!!! MORE FOOD!!!") mood_change = 8 + +/datum/mood_event/cum_craving + description = "I... NEED... CUM...\n" + mood_change = -20 + +/datum/mood_event/cum_stuffed + description = "It feels so good inside me!\n" + mood_change = 8 + timeout = 5 MINUTES \ No newline at end of file diff --git a/modular_splurt/code/datums/traits/neutral.dm b/modular_splurt/code/datums/traits/neutral.dm index 827432936b..a238fc8bcf 100644 --- a/modular_splurt/code/datums/traits/neutral.dm +++ b/modular_splurt/code/datums/traits/neutral.dm @@ -292,3 +292,42 @@ . = ..() var/obj/item/implant/genital_fluid/put_in = new put_in.implant(quirk_holder, null, TRUE, TRUE) + +/datum/quirk/dumb4cum + name = "Dumb For Cum" + desc = "You just like cum, it's heat, it's smell, it's... Taste." + value = 0 + gain_text = "You suddenly start craving some seed inside of you." + lose_text = "It didn't even taste that good, really!" + medical_record_text = "Patient seems to drool for seminal fluid." + var/craving_after = 15 MINUTES + var/timer + +/datum/quirk/dumb4cum/on_spawn() + . = ..() + timer = addtimer(CALLBACK(src, .proc/crave), craving_after, TIMER_STOPPABLE) + +/datum/quirk/dumb4cum/proc/crave() + var/list/hungry_phrases = list( + "Your stomach rumbles a bit and cum comes to your mind.",\ + "Urgh, you really should get some cum...",\ + "Some jizz wouldn't sit bad right now!",\ + "You're starting to long for more cum." + ) + to_chat(quirk_holder, "[pick(hungry_phrases)]") + + if(quirk_holder.stat == CONSCIOUS) + quirk_holder.emote("sigh") + ADD_TRAIT(quirk_holder, TRAIT_PACIFISM, type) + ADD_TRAIT(quirk_holder, TRAIT_DUMB4CUM, type) + SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "cum_craving", /datum/mood_event/cum_craving) + +/datum/quirk/dumb4cum/proc/uncrave() + REMOVE_TRAIT(quirk_holder, TRAIT_PACIFISM, type) + REMOVE_TRAIT(quirk_holder, TRAIT_DUMB4CUM, type) + SEND_SIGNAL(quirk_holder, COMSIG_CLEAR_MOOD_EVENT, "cum_craving") + SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "cum_stuffed", /datum/mood_event/cum_stuffed) + + deltimer(timer) + timer = null + timer = addtimer(CALLBACK(src, .proc/crave), craving_after, TIMER_STOPPABLE) \ No newline at end of file diff --git a/modular_splurt/code/modules/mob/mob.dm b/modular_splurt/code/modules/mob/mob.dm index c9a70933d3..406aaa8387 100644 --- a/modular_splurt/code/modules/mob/mob.dm +++ b/modular_splurt/code/modules/mob/mob.dm @@ -41,3 +41,8 @@ if (.) return to_chat(A, "[src] seems to be checking you out.") + +/mob/proc/is_dumb4cum() + if(HAS_TRAIT(src, TRAIT_DUMB4CUM)) + return TRUE + return FALSE \ No newline at end of file From 9c94cad91028e8a128ee74ee77edc0dec54995f4 Mon Sep 17 00:00:00 2001 From: WoolyAypa Date: Fri, 17 Jun 2022 14:03:48 -0300 Subject: [PATCH 2/6] modularization and removed the is_dumb4cum proc --- code/__SPLURTCODE/DEFINES/zeros/traits.dm | 2 +- code/game/objects/items/devices/PDA/PDA.dm | 4 ++-- code/game/objects/items/implants/implantcase.dm | 2 +- code/game/objects/items/implants/implanter.dm | 2 +- code/game/objects/items/signs.dm | 2 +- .../objects/structures/crates_lockers/closets/bodybag.dm | 2 +- code/game/objects/structures/morgue.dm | 2 +- code/modules/events/holiday/vday.dm | 2 +- code/modules/food_and_drinks/pizzabox.dm | 2 +- code/modules/games/cas.dm | 2 +- code/modules/library/lib_codex_gigas.dm | 2 +- code/modules/library/lib_items.dm | 2 +- code/modules/mob/mob_helpers.dm | 2 +- code/modules/newscaster/newspaper.dm | 2 +- code/modules/paperwork/contract.dm | 2 +- code/modules/paperwork/folders.dm | 2 +- code/modules/photography/photos/photo.dm | 2 +- code/modules/reagents/chemistry/reagents/other_reagents.dm | 7 ------- code/modules/reagents/reagent_containers/blood_pack.dm | 2 +- code/modules/recycling/sortingmachinery.dm | 7 +++++-- modular_splurt/code/datums/mood_events/needs_events.dm | 2 +- modular_splurt/code/datums/traits/neutral.dm | 2 +- modular_splurt/code/modules/mob/mob.dm | 5 ----- .../modules/reagents/chemistry/reagents/other_reagents.dm | 7 +++++++ 24 files changed, 33 insertions(+), 35 deletions(-) create mode 100644 modular_splurt/code/modules/reagents/chemistry/reagents/other_reagents.dm diff --git a/code/__SPLURTCODE/DEFINES/zeros/traits.dm b/code/__SPLURTCODE/DEFINES/zeros/traits.dm index 497b6e1c42..b1d1b3ef64 100644 --- a/code/__SPLURTCODE/DEFINES/zeros/traits.dm +++ b/code/__SPLURTCODE/DEFINES/zeros/traits.dm @@ -8,4 +8,4 @@ #define TRAIT_HEAT_DETECT "heat_detect" #define TRAIT_ILLITERATE "illiterate" -#define TRAIT_DUMB4CUM "dumb4cum" \ No newline at end of file +#define TRAIT_DUMB4CUM "dumb4cum" diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index aa14d9f13c..116e213416 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -779,7 +779,7 @@ GLOBAL_LIST_EMPTY(PDAs) return t /obj/item/pda/proc/send_message(mob/living/user, list/obj/item/pda/targets, everyone) - if(user.is_dumb4cum()) + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) to_chat(user, "You can't focus on anything but cum right now!") return @@ -865,7 +865,7 @@ GLOBAL_LIST_EMPTY(PDAs) else L = get(src, /mob/living/silicon) - if(L && L.stat != UNCONSCIOUS && !L.is_dumb4cum()) + if(L && L.stat != UNCONSCIOUS && !HAS_TRAIT(L, TRAIT_DUMB4CUM)) var/hrefstart var/hrefend if (isAI(L)) diff --git a/code/game/objects/items/implants/implantcase.dm b/code/game/objects/items/implants/implantcase.dm index de4b63fc87..a97874b1c0 100644 --- a/code/game/objects/items/implants/implantcase.dm +++ b/code/game/objects/items/implants/implantcase.dm @@ -24,7 +24,7 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on the side of [src]!") return - if(user.is_dumb4cum()) + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) to_chat(user, "You can't think of anything but cum right now.") return var/t = stripped_input(user, "What would you like the label to be?", name, null) diff --git a/code/game/objects/items/implants/implanter.dm b/code/game/objects/items/implants/implanter.dm index e7f3f8e7d1..c921942541 100644 --- a/code/game/objects/items/implants/implanter.dm +++ b/code/game/objects/items/implants/implanter.dm @@ -45,7 +45,7 @@ if(!user.is_literate()) to_chat(user, "You prod at [src] with [W]!") return - if(user.is_dumb4cum()) + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) to_chat(user, "You can't think of anything but cum right now.") return var/t = stripped_input(user, "What would you like the label to be?", name, null) diff --git a/code/game/objects/items/signs.dm b/code/game/objects/items/signs.dm index 4e3f6e09a2..e83c88db8f 100644 --- a/code/game/objects/items/signs.dm +++ b/code/game/objects/items/signs.dm @@ -21,7 +21,7 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on [src]!") return - if(user.is_dumb4cum()) + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) to_chat(user, "You can't think of anything but cum right now.") return var/txt = stripped_input(user, "What would you like to write on the sign?", "Sign Label", null , 30) diff --git a/code/game/objects/structures/crates_lockers/closets/bodybag.dm b/code/game/objects/structures/crates_lockers/closets/bodybag.dm index fbb1259262..706c2f65fe 100644 --- a/code/game/objects/structures/crates_lockers/closets/bodybag.dm +++ b/code/game/objects/structures/crates_lockers/closets/bodybag.dm @@ -20,7 +20,7 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on [src]!") return - if(user.is_dumb4cum()) + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) to_chat(user, "You can't think of anything but cum right now.") return var/t = stripped_input(user, "What would you like the label to be?", name, null, 53) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 2e66a2a96a..59d60f2812 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -85,7 +85,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an if(!user.is_literate()) to_chat(user, "You scribble illegibly on the side of [src]!") return - if(user.is_dumb4cum()) + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) to_chat(user, "You can't think of anything but cum right now.") return var/t = stripped_input(user, "What would you like the label to be?", text("[]", name), null) diff --git a/code/modules/events/holiday/vday.dm b/code/modules/events/holiday/vday.dm index e2da89681c..16ae047729 100644 --- a/code/modules/events/holiday/vday.dm +++ b/code/modules/events/holiday/vday.dm @@ -55,7 +55,7 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on [src]!") return - if(user.is_dumb4cum()) + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) to_chat(user, "You can't think of anything but cum right now.") return var/recipient = stripped_input(user, "Who is receiving this valentine?", "To:", null , 20) diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index a2ad4020e3..0a4fde4171 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -195,7 +195,7 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on [src]!") return - if(user.is_dumb4cum()) + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) to_chat(user, "You can't think of anything but cum right now.") return var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src diff --git a/code/modules/games/cas.dm b/code/modules/games/cas.dm index 899b3307a4..59766fad1d 100644 --- a/code/modules/games/cas.dm +++ b/code/modules/games/cas.dm @@ -147,7 +147,7 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on [src]!") return - if(user.is_dumb4cum()) + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) to_chat(user, "You can't think of anything but cum right now.") return if(!blank) diff --git a/code/modules/library/lib_codex_gigas.dm b/code/modules/library/lib_codex_gigas.dm index d6482259f2..7eabdb9d3a 100644 --- a/code/modules/library/lib_codex_gigas.dm +++ b/code/modules/library/lib_codex_gigas.dm @@ -27,7 +27,7 @@ if(!user.is_literate()) to_chat(user, "You skim through the book but can't comprehend any of it.") return - if(user.is_dumb4cum()) + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) to_chat(user, "You can't think of anything but cum right now.") return if(inUse) diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index eb670aa15d..ca5e3b78c2 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -113,7 +113,7 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on the side of [src]!") return - if(user.is_dumb4cum()) + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) to_chat(user, "You can't think of anything but cum right now.") return var/newname = stripped_input(user, "What would you like to title this bookshelf?") diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index e366e4e673..3a036c2bb8 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -591,7 +591,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp if(!is_literate()) to_chat(src, "You try to read [O], but can't comprehend any of it.") return - if(is_dumb4cum()) + if(HAS_TRAIT(src, TRAIT_DUMB4CUM)) to_chat(src, "You try reading [O] but only warm seed comes to your mind.") return return TRUE diff --git a/code/modules/newscaster/newspaper.dm b/code/modules/newscaster/newspaper.dm index db92d5f647..57fa8ae913 100644 --- a/code/modules/newscaster/newspaper.dm +++ b/code/modules/newscaster/newspaper.dm @@ -158,7 +158,7 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on [src]!") return - if(user.is_dumb4cum()) + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) to_chat(user, "You can't think of anything but cum right now.") return if(scribble_page == curr_page) diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index cf164e7338..fef3bbdade 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -190,7 +190,7 @@ if(!user.IsAdvancedToolUser() || !user.is_literate()) to_chat(user, "You don't know how to read or write.") return 0 - if(user.is_dumb4cum()) + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) to_chat(user, "You can't think of anything but cum right now.") return if(user.mind != target) diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index 67b647595f..707ff06a8f 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -46,7 +46,7 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on the cover of [src]!") return - if(user.is_dumb4cum()) + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) to_chat(user, "You can't think of anything but cum right now.") return diff --git a/code/modules/photography/photos/photo.dm b/code/modules/photography/photos/photo.dm index 2531566901..4f39ccb048 100644 --- a/code/modules/photography/photos/photo.dm +++ b/code/modules/photography/photos/photo.dm @@ -57,7 +57,7 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on [src]!") return - if(user.is_dumb4cum()) + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) to_chat(user, "You can't think of anything but cum right now.") return var/txt = stripped_input(user, "What would you like to write on the back?", "Photo Writing", "", 128) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 54d0872288..87bb204afe 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -2510,13 +2510,6 @@ nutriment_factor = 0.5 * REAGENTS_METABOLISM var/decal_path = /obj/effect/decal/cleanable/semen -/datum/reagent/consumable/semen/on_mob_add(mob/living/carbon/M) - var/datum/quirk/dumb4cum/d4c - for(var/datum/quirk/Q in M.roundstart_quirks) - if(Q.type == /datum/quirk/dumb4cum) - d4c = Q - d4c.uncrave() - /datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume) ..() if(!istype(T)) diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index d3f6b609f7..6548727746 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -89,7 +89,7 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on the label of [src]!") return - if(user.is_dumb4cum()) + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) to_chat(user, "You can't think of anything but cum right now.") return var/t = stripped_input(user, "What would you like to label the blood pack?", name, null, 53) diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 75ab481c39..572fb392df 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -36,7 +36,7 @@ if(!user.is_literate()) to_chat(user, "You scribble illegibly on the side of [src]!") return - if(user.is_dumb4cum()) + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) to_chat(user, "You can't think of anything but cum right now.") return var/str = stripped_input(user, "Label text?", "Set label", "", MAX_NAME_LEN) @@ -122,9 +122,12 @@ playsound(loc, 'sound/machines/twobeep.ogg', 100, 1) else if(istype(W, /obj/item/pen)) - if(!user.is_literate() || user.is_dumb4cum()) + if(!user.is_literate()) to_chat(user, "You scribble illegibly on the side of [src]!") return + if(HAS_TRAIT(user, TRAIT_DUMB4CUM)) + to_chat(user, "You can't think of anything but cum right now.") + return var/str = stripped_input(user, "Label text?", "Set label", "", MAX_NAME_LEN) if(!user.canUseTopic(src, BE_CLOSE)) return diff --git a/modular_splurt/code/datums/mood_events/needs_events.dm b/modular_splurt/code/datums/mood_events/needs_events.dm index fd15e074b8..3cce41244d 100644 --- a/modular_splurt/code/datums/mood_events/needs_events.dm +++ b/modular_splurt/code/datums/mood_events/needs_events.dm @@ -13,4 +13,4 @@ /datum/mood_event/cum_stuffed description = "It feels so good inside me!\n" mood_change = 8 - timeout = 5 MINUTES \ No newline at end of file + timeout = 5 MINUTES diff --git a/modular_splurt/code/datums/traits/neutral.dm b/modular_splurt/code/datums/traits/neutral.dm index a238fc8bcf..780d3a3388 100644 --- a/modular_splurt/code/datums/traits/neutral.dm +++ b/modular_splurt/code/datums/traits/neutral.dm @@ -330,4 +330,4 @@ deltimer(timer) timer = null - timer = addtimer(CALLBACK(src, .proc/crave), craving_after, TIMER_STOPPABLE) \ No newline at end of file + timer = addtimer(CALLBACK(src, .proc/crave), craving_after, TIMER_STOPPABLE) diff --git a/modular_splurt/code/modules/mob/mob.dm b/modular_splurt/code/modules/mob/mob.dm index 406aaa8387..c9a70933d3 100644 --- a/modular_splurt/code/modules/mob/mob.dm +++ b/modular_splurt/code/modules/mob/mob.dm @@ -41,8 +41,3 @@ if (.) return to_chat(A, "[src] seems to be checking you out.") - -/mob/proc/is_dumb4cum() - if(HAS_TRAIT(src, TRAIT_DUMB4CUM)) - return TRUE - return FALSE \ No newline at end of file diff --git a/modular_splurt/code/modules/reagents/chemistry/reagents/other_reagents.dm b/modular_splurt/code/modules/reagents/chemistry/reagents/other_reagents.dm new file mode 100644 index 0000000000..bbf0ab8172 --- /dev/null +++ b/modular_splurt/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -0,0 +1,7 @@ +/datum/reagent/consumable/semen/on_mob_add(mob/living/carbon/M) + . = ..() + var/datum/quirk/dumb4cum/d4c + for(var/datum/quirk/Q in M.roundstart_quirks) + if(Q.type == /datum/quirk/dumb4cum) + d4c = Q + d4c.uncrave() \ No newline at end of file From 438bc50757e293284611b799c8601c5499620dfc Mon Sep 17 00:00:00 2001 From: WoolyAypa Date: Fri, 17 Jun 2022 14:14:15 -0300 Subject: [PATCH 3/6] what even is a trailing newline? --- .../code/modules/reagents/chemistry/reagents/other_reagents.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_splurt/code/modules/reagents/chemistry/reagents/other_reagents.dm b/modular_splurt/code/modules/reagents/chemistry/reagents/other_reagents.dm index bbf0ab8172..ed82baba1b 100644 --- a/modular_splurt/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/modular_splurt/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -4,4 +4,4 @@ for(var/datum/quirk/Q in M.roundstart_quirks) if(Q.type == /datum/quirk/dumb4cum) d4c = Q - d4c.uncrave() \ No newline at end of file + d4c.uncrave() From da19c4410ef0675570189cbb7d8370beed74e9bf Mon Sep 17 00:00:00 2001 From: WoolyAypa Date: Fri, 17 Jun 2022 22:26:09 -0300 Subject: [PATCH 4/6] it's in --- tgstation.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/tgstation.dme b/tgstation.dme index a5fbd270e3..1924d7437d 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -4581,6 +4581,7 @@ #include "modular_splurt\code\modules\reagents\chemistry\reagents\drug_reagents.dm" #include "modular_splurt\code\modules\reagents\chemistry\reagents\enlargement.dm" #include "modular_splurt\code\modules\reagents\chemistry\reagents\food_reagents.dm" +#include "modular_splurt\code\modules\reagents\chemistry\reagents\other_reagents.dm" #include "modular_splurt\code\modules\reagents\chemistry\recipes\drugs.dm" #include "modular_splurt\code\modules\reagents\chemistry\recipes\lewd.dm" #include "modular_splurt\code\modules\reagents\reagent_containers\bottle.dm" From 06e83eafc7d7896d729e98120d9499bd335374f5 Mon Sep 17 00:00:00 2001 From: WoolyAypa Date: Sat, 18 Jun 2022 17:26:52 -0300 Subject: [PATCH 5/6] cummy points --- modular_splurt/code/datums/traits/neutral.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_splurt/code/datums/traits/neutral.dm b/modular_splurt/code/datums/traits/neutral.dm index 780d3a3388..90df1075f0 100644 --- a/modular_splurt/code/datums/traits/neutral.dm +++ b/modular_splurt/code/datums/traits/neutral.dm @@ -296,7 +296,7 @@ /datum/quirk/dumb4cum name = "Dumb For Cum" desc = "You just like cum, it's heat, it's smell, it's... Taste." - value = 0 + value = -3 gain_text = "You suddenly start craving some seed inside of you." lose_text = "It didn't even taste that good, really!" medical_record_text = "Patient seems to drool for seminal fluid." From 4c0974d4721013aebcca6103c450d6fe5899d27b Mon Sep 17 00:00:00 2001 From: WoolyAypa Date: Sat, 18 Jun 2022 17:30:13 -0300 Subject: [PATCH 6/6] now it's properly negative --- modular_splurt/code/datums/traits/negative.dm | 39 +++++++++++++++++++ modular_splurt/code/datums/traits/neutral.dm | 39 ------------------- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/modular_splurt/code/datums/traits/negative.dm b/modular_splurt/code/datums/traits/negative.dm index 45dafa4261..0953aaadd4 100644 --- a/modular_splurt/code/datums/traits/negative.dm +++ b/modular_splurt/code/datums/traits/negative.dm @@ -167,3 +167,42 @@ to_chat(quirk_holder, span_lewd(pick(notices))) notice_delay = world.time + 15 SECONDS + +/datum/quirk/dumb4cum + name = "Dumb For Cum" + desc = "You just like cum, it's heat, it's smell, it's... Taste." + value = -3 + gain_text = "You suddenly start craving some seed inside of you." + lose_text = "It didn't even taste that good, really!" + medical_record_text = "Patient seems to drool for seminal fluid." + var/craving_after = 15 MINUTES + var/timer + +/datum/quirk/dumb4cum/on_spawn() + . = ..() + timer = addtimer(CALLBACK(src, .proc/crave), craving_after, TIMER_STOPPABLE) + +/datum/quirk/dumb4cum/proc/crave() + var/list/hungry_phrases = list( + "Your stomach rumbles a bit and cum comes to your mind.",\ + "Urgh, you really should get some cum...",\ + "Some jizz wouldn't sit bad right now!",\ + "You're starting to long for more cum." + ) + to_chat(quirk_holder, "[pick(hungry_phrases)]") + + if(quirk_holder.stat == CONSCIOUS) + quirk_holder.emote("sigh") + ADD_TRAIT(quirk_holder, TRAIT_PACIFISM, type) + ADD_TRAIT(quirk_holder, TRAIT_DUMB4CUM, type) + SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "cum_craving", /datum/mood_event/cum_craving) + +/datum/quirk/dumb4cum/proc/uncrave() + REMOVE_TRAIT(quirk_holder, TRAIT_PACIFISM, type) + REMOVE_TRAIT(quirk_holder, TRAIT_DUMB4CUM, type) + SEND_SIGNAL(quirk_holder, COMSIG_CLEAR_MOOD_EVENT, "cum_craving") + SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "cum_stuffed", /datum/mood_event/cum_stuffed) + + deltimer(timer) + timer = null + timer = addtimer(CALLBACK(src, .proc/crave), craving_after, TIMER_STOPPABLE) diff --git a/modular_splurt/code/datums/traits/neutral.dm b/modular_splurt/code/datums/traits/neutral.dm index 90df1075f0..827432936b 100644 --- a/modular_splurt/code/datums/traits/neutral.dm +++ b/modular_splurt/code/datums/traits/neutral.dm @@ -292,42 +292,3 @@ . = ..() var/obj/item/implant/genital_fluid/put_in = new put_in.implant(quirk_holder, null, TRUE, TRUE) - -/datum/quirk/dumb4cum - name = "Dumb For Cum" - desc = "You just like cum, it's heat, it's smell, it's... Taste." - value = -3 - gain_text = "You suddenly start craving some seed inside of you." - lose_text = "It didn't even taste that good, really!" - medical_record_text = "Patient seems to drool for seminal fluid." - var/craving_after = 15 MINUTES - var/timer - -/datum/quirk/dumb4cum/on_spawn() - . = ..() - timer = addtimer(CALLBACK(src, .proc/crave), craving_after, TIMER_STOPPABLE) - -/datum/quirk/dumb4cum/proc/crave() - var/list/hungry_phrases = list( - "Your stomach rumbles a bit and cum comes to your mind.",\ - "Urgh, you really should get some cum...",\ - "Some jizz wouldn't sit bad right now!",\ - "You're starting to long for more cum." - ) - to_chat(quirk_holder, "[pick(hungry_phrases)]") - - if(quirk_holder.stat == CONSCIOUS) - quirk_holder.emote("sigh") - ADD_TRAIT(quirk_holder, TRAIT_PACIFISM, type) - ADD_TRAIT(quirk_holder, TRAIT_DUMB4CUM, type) - SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "cum_craving", /datum/mood_event/cum_craving) - -/datum/quirk/dumb4cum/proc/uncrave() - REMOVE_TRAIT(quirk_holder, TRAIT_PACIFISM, type) - REMOVE_TRAIT(quirk_holder, TRAIT_DUMB4CUM, type) - SEND_SIGNAL(quirk_holder, COMSIG_CLEAR_MOOD_EVENT, "cum_craving") - SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "cum_stuffed", /datum/mood_event/cum_stuffed) - - deltimer(timer) - timer = null - timer = addtimer(CALLBACK(src, .proc/crave), craving_after, TIMER_STOPPABLE)