From 32043a9062ef3b36bc2bd826b7f199d54d10380f Mon Sep 17 00:00:00 2001 From: Putnam Date: Mon, 6 Jan 2020 01:14:00 -0800 Subject: [PATCH] whoops forgot permaboner --- code/__DEFINES/citadel_defines.dm | 1 + code/modules/client/preferences.dm | 5 ++++ .../chemistry/reagents/drink_reagents.dm | 5 ++-- .../chemistry/reagents/other_reagents.dm | 5 ++-- .../code/modules/arousal/genitals.dm | 16 ++++++++++--- .../code/modules/arousal/organs/breasts.dm | 3 ++- .../code/modules/arousal/organs/penis.dm | 3 ++- .../code/modules/arousal/organs/testicles.dm | 2 ++ .../code/modules/arousal/organs/vagina.dm | 3 ++- .../modules/reagents/reagents/cit_reagents.dm | 24 ++++++++++--------- 10 files changed, 46 insertions(+), 21 deletions(-) diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm index c3bf3d2891..2b19610040 100644 --- a/code/__DEFINES/citadel_defines.dm +++ b/code/__DEFINES/citadel_defines.dm @@ -111,6 +111,7 @@ #define NEVER_HYPNO (1<<8) #define NO_APHRO (1<<9) #define NO_ASS_SLAP (1<<10) +#define BIMBOFICATION (1<<11) #define TOGGLES_CITADEL (EATING_NOISES|DIGESTION_NOISES|BREAST_ENLARGEMENT|PENIS_ENLARGEMENT) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 7b7cf3413e..546268b5c7 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1007,6 +1007,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Forced Feminization: [(cit_toggles & FORCED_FEM) ? "Allowed" : "Disallowed"]
" dat += "Forced Masculinization: [(cit_toggles & FORCED_MASC) ? "Allowed" : "Disallowed"]
" dat += "Lewd Hypno: [(cit_toggles & HYPNO) ? "Allowed" : "Disallowed"]
" + dat += "Bimbofication: [(cit_toggles & BIMBOFICATION) ? "Allowed" : "Disallowed"]
" dat += "" dat +="" dat += "

Other content prefs

" @@ -1015,6 +1016,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Hypno: [(cit_toggles & NEVER_HYPNO) ? "Disallowed" : "Allowed"]
" dat += "Aphrodisiacs: [(cit_toggles & NO_APHRO) ? "Disallowed" : "Allowed"]
" dat += "Ass Slapping: [(cit_toggles & NO_ASS_SLAP) ? "Disallowed" : "Allowed"]
" + dat += "" dat += "
" @@ -2234,6 +2236,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("ass_slap") cit_toggles ^= NO_ASS_SLAP + + if("bimbo") + cit_toggles ^= BIMBOFICATION //END CITADEL EDIT diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index 2fa012ae87..ba4fe4909e 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -969,9 +969,10 @@ if(M.client?.prefs.arousable && !(M.client?.prefs.cit_toggles & NO_APHRO) && prob(5)) for(var/obj/item/organ/genital/G in M.internal_organs) if(!G.aroused_state && prob(5*G.sensitivity)) - G.aroused_state = TRUE + G.set_aroused_state(TRUE) G.update_appearance() - to_chat(M, "You feel like playing with your [G.name]!") + if(G.aroused_state) + to_chat(M, "You feel like playing with your [G.name]!") ..() diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index dc39c433eb..a39746519a 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -2284,7 +2284,8 @@ var/mob/living/carbon/human/H = M for(var/obj/item/organ/genital/G in H.internal_organs) if(!G.aroused_state && prob(2*G.sensitivity)) - G.aroused_state = TRUE + G.set_aroused_state(TRUE) G.update_appearance() - to_chat(M, "You feel like playing with your [G.name]!") + if(G.aroused_state) + to_chat(M, "You feel like playing with your [G.name]!") ..() diff --git a/modular_citadel/code/modules/arousal/genitals.dm b/modular_citadel/code/modules/arousal/genitals.dm index af9646fa51..3ea8bf8013 100644 --- a/modular_citadel/code/modules/arousal/genitals.dm +++ b/modular_citadel/code/modules/arousal/genitals.dm @@ -6,7 +6,8 @@ var/genital_flags //see citadel_defines.dm var/masturbation_verb = "masturbate" var/orgasm_verb = "cumming" //present continous - var/arousal_verb = "feel aroused" + var/arousal_verb = "You feel aroused" + var/unarousal_verb = "You no longer feel aroused" var/fluid_transfer_factor = 0 //How much would a partner get in them if they climax using this? var/size = 2 //can vary between num or text, just used in icon_state strings var/fluid_id = null @@ -38,6 +39,11 @@ Remove(owner, TRUE)//this should remove references to it, so it can be GCd correctly return ..() +/obj/item/organ/genital/proc/set_aroused_state(new_state) + if(!((HAS_TRAIT(owner,TRAIT_PERMABONER) && !new_state) || HAS_TRAIT(owner,TRAIT_NEVERBONER) && new_state)) + aroused_state = new_state + return aroused_state + /obj/item/organ/genital/proc/update(removing = FALSE) if(QDELETED(src)) return @@ -126,8 +132,12 @@ var/obj/item/organ/genital/picked_organ picked_organ = input(src, "Choose which genitalia to toggle arousal on", "Set genital arousal", null) in genital_list if(picked_organ) - picked_organ.aroused_state = !picked_organ.aroused_state - to_chat(src,"You [picked_organ.arousal_verb].") + var/original_state = picked_organ.aroused_state + picked_organ.set_aroused_state(!picked_organ.aroused_state) + if(original_state != picked_organ.aroused_state) + to_chat(src,"[picked_organ.aroused_state ? picked_organ.arousal_verb : picked_organ.unarousal_verb].") + else + to_chat(src,"You can't make that genital [picked_organ.aroused_state ? "unaroused" : "aroused"]!") picked_organ.update_appearance() return diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm index 19c3ff80a9..6b4887c094 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/modular_citadel/code/modules/arousal/organs/breasts.dm @@ -11,7 +11,8 @@ shape = "pair" genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH|GENITAL_FUID_PRODUCTION masturbation_verb = "massage" - arousal_verb = "feel very sensitive in your breasts" + arousal_verb = "Your breasts start feeling sensitive" + unarousal_verb = "Your breasts no longer feel sensitive" orgasm_verb = "leaking" fluid_transfer_factor = 0.5 var/static/list/breast_values = list("a" = 1, "b" = 2, "c" = 3, "d" = 4, "e" = 5, "f" = 6, "g" = 7, "h" = 8, "i" = 9, "j" = 10, "k" = 11, "l" = 12, "m" = 13, "n" = 14, "o" = 15, "huge" = 16, "flat" = 0) diff --git a/modular_citadel/code/modules/arousal/organs/penis.dm b/modular_citadel/code/modules/arousal/organs/penis.dm index d2d827e66d..c6d3c764ac 100644 --- a/modular_citadel/code/modules/arousal/organs/penis.dm +++ b/modular_citadel/code/modules/arousal/organs/penis.dm @@ -6,7 +6,8 @@ zone = BODY_ZONE_PRECISE_GROIN slot = ORGAN_SLOT_PENIS masturbation_verb = "stroke" - arousal_verb = "pop a boner" + arousal_verb = "You pop a boner" + unarousal_verb = "Your boner goes down" genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH linked_organ_slot = ORGAN_SLOT_TESTICLES fluid_transfer_factor = 0.5 diff --git a/modular_citadel/code/modules/arousal/organs/testicles.dm b/modular_citadel/code/modules/arousal/organs/testicles.dm index 547674a5f1..a2a9f8eb05 100644 --- a/modular_citadel/code/modules/arousal/organs/testicles.dm +++ b/modular_citadel/code/modules/arousal/organs/testicles.dm @@ -6,6 +6,8 @@ zone = BODY_ZONE_PRECISE_GROIN slot = ORGAN_SLOT_TESTICLES size = BALLS_SIZE_MIN + arousal_verb = "Your balls ache a little" + unarousal_verb = "Your balls finally stop aching, again" linked_organ_slot = ORGAN_SLOT_PENIS genital_flags = CAN_MASTURBATE_WITH|MASTURBATE_LINKED_ORGAN|GENITAL_FUID_PRODUCTION var/size_name = "average" diff --git a/modular_citadel/code/modules/arousal/organs/vagina.dm b/modular_citadel/code/modules/arousal/organs/vagina.dm index 7ecc0c155c..31d116b48e 100644 --- a/modular_citadel/code/modules/arousal/organs/vagina.dm +++ b/modular_citadel/code/modules/arousal/organs/vagina.dm @@ -8,7 +8,8 @@ size = 1 //There is only 1 size right now genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH masturbation_verb = "finger" - arousal_verb = "feel wet" + arousal_verb = "You feel wetness on your crotch." + unarousal_verb = "You no longer feel wet." fluid_transfer_factor = 0.1 //Yes, some amount is exposed to you, go get your AIDS layer_index = VAGINA_LAYER_INDEX var/cap_length = 8//D E P T H (cap = capacity) diff --git a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm index 50dee539e3..9ec1c8b010 100644 --- a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm +++ b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm @@ -110,9 +110,10 @@ var/mob/living/carbon/human/H = M for(var/obj/item/organ/genital/G in H.internal_organs) if(!G.aroused_state && prob(current_cycle*G.sensitivity)) - G.aroused_state = TRUE + G.set_aroused_state(TRUE) G.update_appearance() - to_chat(M, "You suddenly [G.arousal_verb]!") + if(G.aroused_state) + to_chat(M, "[G.arousal_verb]!") ..() /datum/reagent/drug/aphrodisiacplus @@ -145,9 +146,10 @@ var/mob/living/carbon/human/H = M for(var/obj/item/organ/genital/G in H.internal_organs) if(!G.aroused_state) - G.aroused_state = TRUE + G.set_aroused_state(TRUE) G.update_appearance() - to_chat(M, "You suddenly [G.arousal_verb]!") + if(G.aroused_state) + to_chat(M, "[G.arousal_verb]!") ..() /datum/reagent/drug/aphrodisiacplus/addiction_act_stage2(mob/living/M) @@ -166,9 +168,9 @@ /datum/reagent/drug/aphrodisiacplus/overdose_process(mob/living/M) if(M && M.client?.prefs.arousable && !(M.client?.prefs.cit_toggles & NO_APHRO) && prob(33)) - if(prob(5) && ishuman(M) && M.has_dna()) - if(prob(5)) //Less spam - to_chat(M, "Your libido is going haywire!") + if(prob(5) && ishuman(M) && M.has_dna() && (M.client?.prefs.cit_toggles & BIMBOFICATION)) + if(!HAS_TRAIT(M,TRAIT_PERMABONER)) //Less spam + to_chat(M, "Your libido is going haywire!") ADD_TRAIT(M,TRAIT_PERMABONER,"aphro") ..() @@ -189,9 +191,9 @@ var/mob/living/carbon/human/H = M for(var/obj/item/organ/genital/G in H.internal_organs) if(G.aroused_state) - G.aroused_state = FALSE + G.set_aroused_state(FALSE) G.update_appearance() - unboner = TRUE + unboner = (G.aroused_state == FALSE) if(unboner) to_chat(M, "You no longer feel aroused.") ..() @@ -213,9 +215,9 @@ var/mob/living/carbon/human/H = M for(var/obj/item/organ/genital/G in H.internal_organs) if(G.aroused_state) - G.aroused_state = FALSE + G.set_aroused_state(FALSE) G.update_appearance() - unboner = TRUE + unboner = (G.aroused_state == FALSE) if(unboner) to_chat(M, "You no longer feel aroused.") ..()