diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm
index f81c8173e6..c8ba8b622c 100644
--- a/modular_citadel/code/datums/status_effects/chems.dm
+++ b/modular_citadel/code/datums/status_effects/chems.dm
@@ -85,7 +85,7 @@
else if (B.breast_values[B.size] < B.breast_values[B.prev_size])
o.add_movespeed_modifier("megamilk", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = moveCalc)
o.next_move_modifier /= moveCalc
- if(round(B.cached_size) < 16)
+ if((B.size) < 16)
switch(round(B.cached_size))
if(9)
if (!(B.breast_sizes[B.prev_size] == B.size))
diff --git a/modular_citadel/code/modules/arousal/organs/genitals.dm b/modular_citadel/code/modules/arousal/organs/genitals.dm
index e3e35d4d23..89251950ce 100644
--- a/modular_citadel/code/modules/arousal/organs/genitals.dm
+++ b/modular_citadel/code/modules/arousal/organs/genitals.dm
@@ -315,6 +315,11 @@
S = GLOB.vagina_shapes_list[G.shape]
if(/obj/item/organ/genital/breasts)
S = GLOB.breasts_shapes_list[G.shape]
+ aroused_state = 0//Breasts don't have aroused_states, there's literally no difference in the spite.
+ if ((G.cached_size > 5) && (layertext == "BEHIND"))
+ size = "e" //I don't understand the BEHIND sprite honestly, so this is a way to just use the largest.
+
+
if(!S || S.icon_state == "none")
continue
diff --git a/modular_citadel/code/modules/arousal/organs/penis.dm b/modular_citadel/code/modules/arousal/organs/penis.dm
index bd7331337d..7da4b0c3db 100644
--- a/modular_citadel/code/modules/arousal/organs/penis.dm
+++ b/modular_citadel/code/modules/arousal/organs/penis.dm
@@ -19,7 +19,7 @@
var/list/dickflags = list()
var/list/knotted_types = list("knotted", "barbed, knotted")
var/statuscheck = FALSE
- var/prev_size = 6
+ var/prev_size = 6 //really should be renamed to prev_length
/obj/item/organ/genital/penis/Initialize()
. = ..()
@@ -61,7 +61,7 @@
//message_admins("Attempting to apply.")
o.apply_status_effect(/datum/status_effect/chem/PElarger)
statuscheck = TRUE
- //message_admins("Pinas size: [size], [cached_length], [o]")
+ //message_admins("Pinas size: [length], [cached_length], [o]")
//message_admins("2. size vs prev_size")
if (round(length) > round(prev_size))
to_chat(o, "Your [pick("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger")] [pick("swells up to", "flourishes into", "expands into", "bursts forth into", "grows eagerly into", "amplifys into")] a [uppertext(length)] inch penis.")
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 5ad46bd334..1997df9955 100644
--- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
@@ -142,10 +142,11 @@
if(0)
location_return = get_turf(M) //sets up return point
to_chat(M, "You feel your wavefunction split!")
- do_sparks(5,FALSE,M)
- do_teleport(M, location_created, 0, asoundin = 'sound/effects/phasein.ogg')
- //M.forceMove(location_created) //Teleports to creation location
- do_sparks(5,FALSE,M)
+ if(purity > 0.75) //Teleports you home if it's pure enough
+ do_sparks(5,FALSE,M)
+ do_teleport(M, location_created, 0, asoundin = 'sound/effects/phasein.ogg')
+ //M.forceMove(location_created) //Teleports to creation location
+ do_sparks(5,FALSE,M)
if(prob(20))
do_sparks(5,FALSE,M)
//message_admins("eigenstate state: [current_cycle]")
@@ -219,7 +220,7 @@
C.emote("spin")
M.emote("spin")
M.emote("me",1,"flashes into reality suddenly, gasping as they gaze around in a bewildered and highly confused fashion!",TRUE)
- C.emote("me",1,"[pick("says", "cries", "mewls", "giggles", "shouts", "screams", "gasps", "moans", "whispers", "announces")], \"[pick("Bugger me, whats all this then?", "Hot damn, where is this?", "sacre bleu! O� suis-je?!", "Yee haw!", "WHAT IS HAPPENING?!", "Picnic!", "Das ist nicht deutschland. Das ist nicht akzeptabel!!!", "Ciekawe co na obiad?", "You fool! You took too much eigenstasium! You've doomed us all!", "Watashi no nihon'noanime no yona monodesu!", "What...what's with these teleports? It's like one of my Japanese animes...!", "Ik stond op het punt om mehki op tafel te zetten, en nu, waar ben ik?", "This must be the will of Stein's gate.", "Detta �r sista g�ngen jag dricker beepsky smash.", "Now neither of us will be virgins!")]\"")
+ C.emote("me",1,"[pick("says", "cries", "mewls", "giggles", "shouts", "screams", "gasps", "moans", "whispers", "announces")], \"[pick("Bugger me, whats all this then?", "Hot damn, where is this?", "sacre bleu! O� suis-je?!", "Yee haw!", "WHAT IS HAPPENING?!", "Picnic!", "Das ist nicht deutschland. Das ist nicht akzeptabel!!!", "Ciekawe co na obiad?", "You fool! You took too much eigenstasium! You've doomed us all!", "What...what's with these teleports? It's like one of my Japanese animes...!", "Ik stond op het punt om mehki op tafel te zetten, en nu, waar ben ik?", "This must be the will of Stein's gate.", "Fermichem was a mistake", "This is one hell of a strong beepsky smash.", "Now neither of us will be virgins!")]\"")
message_admins("Fermi T Clone: [fermi_Tclone] teleport attempt")
if(2)
var/mob/living/carbon/C = fermi_Tclone
@@ -627,6 +628,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
/datum/reagent/fermi/BElarger/on_mob_add(mob/living/carbon/M)
. = ..()
var/mob/living/carbon/human/H = M
+ H.genital_override = TRUE
var/obj/item/organ/genital/breasts/B = H.getorganslot("breasts")
if(!B)
message_admins("No breasts found on init!")
@@ -736,6 +738,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
/datum/reagent/fermi/BElarger/on_mob_add(mob/living/carbon/M)
. = ..()
var/mob/living/carbon/human/H = M
+ H.genital_override = TRUE
var/obj/item/organ/genital/penis/P = H.getorganslot("penis")
if(!P)
message_admins("No penis found on init!")
@@ -754,8 +757,8 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
if(nP)
nP.length = 0.2
to_chat(M, "Your groin feels warm, as you feel a newly forming bulge down below.")//OwO
- nP.cached_length = 0.1
- nP.prev_size = 0.1
+ nP.cached_length = 0.2
+ nP.prev_size = 0.2
M.reagents.remove_reagent(src.id, 5)
P = nP
diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
index a55198ff56..c16cd0e4cb 100644
--- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
@@ -90,9 +90,9 @@
FermiExplode = FALSE //If the chemical explodes in a special way
-/datum/chemical_reaction/fermi/eigenstate/FermiCreate(datum/reagents/holder)
+/datum/chemical_reaction/fermi/eigenstate/FermiFinish(datum/reagents/holder, var/atom/my_atom)//Strange how this doesn't work but the other does.
var/location = get_turf(holder.my_atom)
- var/datum/reagent/fermi/eigenstate/E = locate(/datum/reagent/fermi/eigenstate) in holder.reagent_list
+ var/datum/reagent/fermi/eigenstate/E = locate(/datum/reagent/fermi/eigenstate) in my_atom.reagents.reagent_list
E.location_created = location
//add on_new() handling of vars
@@ -249,7 +249,7 @@
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in my_atom.reagents.reagent_list
var/datum/reagent/fermi/enthrall/E = locate(/datum/reagent/fermi/enthrall) in my_atom.reagents.reagent_list
if(!B.data)
- var/list/seen = viewers(5, get_turf(holder.my_atom))
+ var/list/seen = viewers(5, get_turf(my_atom))
for(var/mob/M in seen)
to_chat(M, "The reaction splutters and fails to react.")
E.purity = 0