diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index fee7ba3cb6..fb721e9fcb 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -72,6 +72,7 @@
#define TRAIT_PHOTOGRAPHER "photographer"
#define TRAIT_MUSICIAN "musician"
#define TRAIT_CROCRIN_IMMUNE "crocin_immune"
+#define TRAIT_NYMPHO "nymphomania"
// common trait sources
#define TRAIT_GENERIC "generic"
diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm
index 30ccf16c7e..e3225291bd 100644
--- a/code/modules/surgery/organs/vocal_cords.dm
+++ b/code/modules/surgery/organs/vocal_cords.dm
@@ -575,7 +575,7 @@
cooldown = COOLDOWN_MEME
for(var/V in listeners)
var/mob/living/carbon/human/H = V
- if(H.canbearoused && H.has_dna()) // probably a redundant check but for good measure
+ if(H.canbearoused && H.has_dna() && H.has_trait(TRAIT_NYMPHO)) // probably a redundant check but for good measure
H.mob_climax(forced_climax=TRUE)
//DAB
diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm
index 3a0a11ddf5..6598904afb 100644
--- a/modular_citadel/code/datums/status_effects/chems.dm
+++ b/modular_citadel/code/datums/status_effects/chems.dm
@@ -528,7 +528,7 @@
//Speak (Forces player to talk) works
if (lowertext(customTriggers[trigger][1]) == "speak")//trigger2
var/saytext = "Your mouth moves on it's own before you can even catch it."
- if(M.has_trait(TRAIT_NYMPHO))
+ if(C.has_trait(TRAIT_NYMPHO))
saytext += " You find yourself fully believing in the validity of what you just said and don't think to question it."
to_chat(C, "[saytext]")
(C.say(customTriggers[trigger][2]))//trigger3
@@ -549,7 +549,7 @@
//wah intensifies wah-rks
else if (lowertext(customTriggers[trigger]) == "cum")//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- if (M.has_trait(TRAIT_NYMPHO))
+ if (C.has_trait(TRAIT_NYMPHO))
if (C.getArousalLoss() > 80)
C.mob_climax(forced_climax=TRUE)
else
diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
index 1782601257..30abe29074 100644
--- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
@@ -57,7 +57,7 @@
/datum/reagent/fermi/on_merge(data, amount, mob/living/carbon/M, purity)//basically on_mob_add but for merging
. = ..()
message_admins("purity of chem is [purity]")
- if(M.istype(/mob/living/carbon/M))
+ if(istype(M, /mob/living/carbon))
return
message_admins("purity of chem is [purity]")
if (purity < 0)
@@ -728,6 +728,17 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
InverseChem = "PEsmaller" //At really impure vols, it just becomes 100% inverse
//var/mob/living/carbon/human/H
+/datum/reagent/fermi/BElarger/on_mob_add(mob/living/carbon/M)
+ . = ..()
+ var/mob/living/carbon/human/H = M
+ var/obj/item/organ/genital/penis/P = H.getorganslot("penis")
+ if(!P)
+ message_admins("No penis found on init!")
+ return
+ P.prev_size = P.length
+ P.cached_length = P.length
+ message_admins("init P len: [P.length], prev: [P.prev_size], cache = [P.cached_length]")
+
/datum/reagent/fermi/PElarger/on_mob_life(mob/living/carbon/M) //Increases penis size, 5u = +1 inch.
var/mob/living/carbon/human/H = M
var/obj/item/organ/genital/penis/P = M.getorganslot("penis")
@@ -762,7 +773,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
message_admins("PE Breast status: [B]")
if(M.gender == FEMALE)
M.gender = MALE
- M.visible_message("[M] suddenly looks more masculine!", "You suddenly feel more masculine as your !")
+ M.visible_message("[M] suddenly looks more masculine!", "You suddenly feel more masculine!")
if(B)
B.cached_size = B.cached_size - 0.1