diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 01ab0933..c47c6052 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -145,6 +145,7 @@ #define TRAIT_MUSICIAN "musician" #define TRAIT_CROCRIN_IMMUNE "crocin_immune" #define TRAIT_NYMPHO "nymphomania" +#define TRAIT_FLUID_LEAK "leaky_fluids" #define TRAIT_MASO "masochism" #define TRAIT_HIGH_BLOOD "high_blood" #define TRAIT_PHARMA "hepatic_pharmacokinesis" diff --git a/modular_citadel/code/datums/traits/neutral.dm b/modular_citadel/code/datums/traits/neutral.dm index 197c9b94..f064f757 100644 --- a/modular_citadel/code/datums/traits/neutral.dm +++ b/modular_citadel/code/datums/traits/neutral.dm @@ -41,3 +41,12 @@ var/active = FALSE var/power = 0 var/cachedmoveCalc = 1 + +/datum/quirk/fluid_leak + name = "Leaky breasts" + desc = "You don't stop making milk, and you have a habit of leaking everywhere when your breasts are full" + mob_trait = TRAIT_FLUID_LEAK + value = 0 + medical_record_text = "Patient poorly controls their fluids." + gain_text = "You feel like your leaking everywhere." + lose_text = "You feel like you can control your fluids." diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm index da8a142f..c9383fb1 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/modular_citadel/code/modules/arousal/organs/breasts.dm @@ -15,6 +15,7 @@ fluid_id = "milk" var/amount = 2 fluid_mult = 0.25 // Set to a lower value due to production scaling with size (I.E. D cups produce the "normal" amount) + fluid_max_volume = 5 producing = TRUE shape = "Pair" can_masturbate_with = TRUE @@ -28,7 +29,7 @@ return if(!reagents || !owner) return - reagents.maximum_volume = fluid_max_volume * cached_size * fluid_mult // fluid amount is also scaled by the size of the organ + reagents.maximum_volume = fluid_max_volume * cached_size// fluid amount is also scaled by the size of the organ if(fluid_id && producing) if(reagents.total_volume == 0) // Apparently, 0.015 gets rounded down to zero and no reagents are created if we don't start it with 0.1 in the tank. fluid_rate = 0.1 @@ -43,6 +44,9 @@ if(!sent_full_message) send_full_message() sent_full_message = TRUE + if(HAS_TRAIT(owner, TRAIT_FLUID_LEAK)) + reagents.get_master_reagent().reaction_turf(get_turf(owner), 3) + reagents.remove_reagent(fluid_id, 3) return FALSE sent_full_message = FALSE reagents.isolate_reagent(fluid_id)