diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm
index db0d79c71b..78bfe1fc9d 100644
--- a/code/modules/reagents/chemistry/holder.dm
+++ b/code/modules/reagents/chemistry/holder.dm
@@ -920,7 +920,7 @@ im
R.data = data
R.on_new(data)
if(R.addProc == TRUE)
- R.on_new(my_atom)
+ R.on_new(src)
if(istype(D, /datum/reagent/fermi))//Is this a fermichem?
var/datum/reagent/fermi/Ferm = D //It's Fermi time!
Ferm.FermiNew(my_atom) //Seriously what is "data" ????
diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm
index 65507043bb..12e763fafd 100644
--- a/code/modules/surgery/organs/lungs.dm
+++ b/code/modules/surgery/organs/lungs.dm
@@ -1,4 +1,4 @@
-#define LUNGS_MAX_HEALTH 500
+#define LUNGS_MAX_HEALTH 450
/obj/item/organ/lungs
name = "lungs"
@@ -410,8 +410,8 @@
H.apply_damage_type(cold_level_2_damage*cold_modifier, cold_damage_type)
adjustLungLoss(cold_level_2_damage*cold_modifier)
if(breath_temperature > cold_level_2_threshold && breath_temperature < cold_level_1_threshold)
- adjustLungLoss(cold_level_1_damage*cold_modifier)
H.apply_damage_type(cold_level_1_damage*cold_modifier, cold_damage_type)
+ adjustLungLoss(cold_level_1_damage*cold_modifier)
if(breath_temperature < cold_level_1_threshold)
if(prob(20))
to_chat(H, "You feel [cold_message] in your [name]!")
diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm
index c8ba8b622c..c4ea994650 100644
--- a/modular_citadel/code/datums/status_effects/chems.dm
+++ b/modular_citadel/code/datums/status_effects/chems.dm
@@ -34,8 +34,8 @@
if((fermi_Clone && fermi_Clone.stat != DEAD) || (fermi_Clone == null))
if(owner.mind)
owner.mind.transfer_to(fermi_Clone)
- owner.visible_message("Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. curiously, you find that you memories are blank after you ingested the sythetic serum, leaving you to wonder where the other you is.")
- fermi_Clone.visible_message("Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. curiously, you find that you memories are blank after you ingested the sythetic serum, leaving you to wonder where the other you is.")
+ to_chat(owner, "Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. curiously, you find that you memories are blank after you ingested the sythetic serum, leaving you to wonder where the other you is.")
+ to_chat(fermi_Clone, "Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. curiously, you find that you memories are blank after you ingested the sythetic serum, leaving you to wonder where the other you is.")
fermi_Clone = null
owner.remove_status_effect(src)
// to_chat(owner, "[linked_extract] desperately tries to move your soul to a living body, but can't find one!")
@@ -79,7 +79,16 @@
o.dropItemToGround(W, TRUE)
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
to_chat(owner, "Your enormous breasts are way too large to fit anything over them!")
- if (B.breast_values[B.size] > B.breast_values[B.prev_size])
+ if (B.size == "huge")
+ if(prob(2))
+ to_chat(H, "Your back is feeling a little sore.")
+ var/target = o.get_bodypart(BODY_ZONE_CHEST)
+ o.apply_damage(0.1, BRUTE, target)
+ if(!B.cached_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
+ return ..()
+ 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
else if (B.breast_values[B.size] < B.breast_values[B.prev_size])
@@ -207,21 +216,19 @@
/datum/status_effect/chem/enthrall/on_apply()
var/mob/living/carbon/M = owner
var/datum/reagent/fermi/enthrall/E = locate(/datum/reagent/fermi/enthrall) in M.reagents.reagent_list
- if(!E.creatorID)
- message_admins("WARNING: FermiChem No master found in thrall, this makes me max sad.")
+ if(!E)
+ message_admins("WARNING: FermiChem: No chem found in thrall, did you bus in the chem? Someone set up the reaction incorrectly if not. Console them with a fermiplush please.")
enthrallID = E.creatorID
enthrallGender = E.creatorGender
master = get_mob_by_key(enthrallID)
- if(!E)
- message_admins("WARNING: No chem found in thrall!!!!")
if(!master)
- message_admins("WARNING: No master! found in thrall!!!!")
+ message_admins("WARNING: FermiChem: No master found in thrall, did you bus in the chem? Someone set up the reaction incorrectly if not. Console them with a fermiplush please.")
if(M.ckey == enthrallID)
owner.remove_status_effect(src)//This shouldn't happen, but just in case
redirect_component = WEAKREF(owner.AddComponent(/datum/component/redirect, list(COMSIG_LIVING_RESIST = CALLBACK(src, .proc/owner_resist)))) //Do resistance calc if resist is pressed#
//redirect_component2 = WEAKREF(owner.AddComponent(/datum/component/redirect, list(COMSIG_LIVING_SAY = CALLBACK(src, .proc/owner_say)))) //Do resistance calc if resist is pressed
//redirect_component3 = WEAKREF(owner.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_HEAR = CALLBACK(src, .proc/owner_hear)))) //Do resistance calc if resist is pressed
- //RegisterSignal(owner, COMSIG_GLOB_LIVING_SAY_SPECIAL, .proc/owner_say)
+ //RegisterSignal(owner, COMSIG_GLOB_LIVING_SAY_SPECIAL, .proc/owner_say) //to add, maybe.
RegisterSignal(owner, COMSIG_MOVABLE_HEAR, .proc/owner_hear)
//Might need to add redirect component for listening too.
var/obj/item/organ/brain/B = M.getorganslot(ORGAN_SLOT_BRAIN) //It's their brain!
@@ -506,7 +513,7 @@
redirect_component = null
UnregisterSignal(owner, COMSIG_MOVABLE_HEAR)
owner.remove_trait(TRAIT_PACIFISM, "MKUltra")
- //UnregisterSignal(owner, COMSIG_GLOB_LIVING_SAY_SPECIAL)
+ //UnregisterSignal(owner, COMSIG_GLOB_LIVING_SAY_SPECIAL) //Should still make custom commands work after freedom, need to check.
/*
/datum/status_effect/chem/enthrall/mob/say(message, bubble_type, var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null)
diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm
index 8d940897d2..820b9cde66 100644
--- a/modular_citadel/code/modules/arousal/organs/breasts.dm
+++ b/modular_citadel/code/modules/arousal/organs/breasts.dm
@@ -139,5 +139,7 @@
H.Force_update_genitals()
prev_size = size
- else if (cached_size == 16.2)
- to_chat(owner, "Your breasts [pick("swell up to", "flourish into", "expand into", "burst forth into", "grow eagerly into", "amplify into")] a hefty [uppertext(size)]cm diameter bosom.")// taking both of your hands to hold!.")
+ else if (cached_size >= 16)
+ if(size != "huge")
+ to_chat(owner, "Your breasts [pick("swell up to", "flourish into", "expand into", "burst forth into", "grow eagerly into", "amplify into")] a hefty [uppertext(size)]cm diameter bosom.")// taking both of your hands to hold!.")
+ size = "huge"
diff --git a/modular_citadel/code/modules/arousal/organs/genitals.dm b/modular_citadel/code/modules/arousal/organs/genitals.dm
index 89251950ce..e0b56e3f8d 100644
--- a/modular_citadel/code/modules/arousal/organs/genitals.dm
+++ b/modular_citadel/code/modules/arousal/organs/genitals.dm
@@ -270,7 +270,7 @@
dna.species.handle_genitals(src)
/mob/living/carbon/human/proc/Force_update_genitals(mob/living/carbon/human/H) //called in fermiChem
- dna.species.handle_genitals(src, ignoreGenitalFlags = TRUE)
+ dna.species.handle_genitals(src)
//dna.species.handle_breasts(src)
//H.update_body()
//species_traits = list(NOTRANSSTING,NOGENITALS)
@@ -316,8 +316,7 @@
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(size == "huge")
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 1997df9955..b8b5be48f5 100644
--- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
@@ -850,7 +850,7 @@ Buginess level: works as intended - except teleport makes sparks for some reason
//M.alpha = 255//Reset addiction
//antiGenetics = 255// DOesn't work for some reason?
switch(current_cycle)
- if(1)//Require a minimum
+ if(0)//Require a minimum
origin = M
if (G == null)
G = new(get_turf(M.loc))
@@ -1072,6 +1072,8 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
(thats not written yet but thats the idea.)
*/
+//TODO rewrite code so that the low purity stuff is a seperate chem for clarity.
+
/datum/reagent/fermi/enthrall
name = "MKUltra"
id = "enthrall"
@@ -1085,6 +1087,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
var/creatorGender
var/creatorName
var/mob/living/creator
+ pH = 10
/datum/reagent/fermi/enthrall/test
name = "MKUltraTest"
@@ -1305,6 +1308,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
overdose_threshold = 25
var/obj/item/clothing/head/hattip/hat
DoNotSplit = TRUE
+ pH = 4
/datum/reagent/fermi/hatmium/on_mob_add(mob/living/carbon/human/M)
@@ -1347,6 +1351,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
InverseChemVal = 0
var/obj/item/organ/tongue/nT
DoNotSplit = TRUE
+ pH = 5
/datum/reagent/fermi/furranium/on_mob_life(mob/living/carbon/M)
@@ -1404,6 +1409,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
ImpureChem = "naninte_b_goneTox" //If you make an inpure chem, it stalls growth
InverseChemVal = 0.25
InverseChem = "naninte_b_goneTox" //At really impure vols, it just becomes 100% inverse
+ pH = 9
/datum/reagent/fermi/naninte_b_gone/on_mob_life(mob/living/carbon/C)
//var/component/nanites/N = M.GetComponent(/datum/component/nanites)
@@ -1453,6 +1459,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
name = "Acid vapour"
id = "fermiAcid"
description = "Someone didn't do like an otter, and add acid to water."
+ pH = 0
/datum/reagent/fermi/fermiAcid/on_mob_life(mob/living/carbon/C, method)
var/target = C.get_bodypart(BODY_ZONE_CHEST)
@@ -1490,7 +1497,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
//data = list("Big bang" = 1, "please work" = 2)
addProc = TRUE
-/datum/reagent/fermi/fermiTest/on_new()
+/datum/reagent/fermi/fermiTest/on_new(datum/reagents/holder)
..()
if(LAZYLEN(holder.reagent_list) == 1)
return
diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
index c16cd0e4cb..4f5c986707 100644
--- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
@@ -72,7 +72,7 @@
id = "eigenstate"
results = list("eigenstate" = 0.1)
required_reagents = list("bluespace" = 0.1, "stable_plasma" = 0.1, "sugar" = 0.1)
- mix_message = "zaps brightly into existance, diffusing the energy from the localised gravity well as light"
+ mix_message = "the reaction zaps suddenly!"
//FermiChem vars:
OptimalTempMin = 350 // Lower area of bell curve for determining heat based rate reactions
OptimalTempMax = 500 // Upper end for above
@@ -229,14 +229,14 @@
OptimalTempMin = 780
OptimalTempMax = 800
ExplodeTemp = 820
- OptimalpHMin = 1
- OptimalpHMax = 2
+ OptimalpHMin = 12
+ OptimalpHMax = 13
ReactpHLim = 2
//CatalystFact = 0
CurveSharpT = 0.5
CurveSharppH = 4
ThermicConstant = 20
- HIonRelease = 0.1
+ HIonRelease = -0.1
RateUpLim = 5
FermiChem = TRUE
FermiExplode = TRUE
@@ -248,7 +248,7 @@
message_admins("On finish for enthral proc'd")
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)
+ if(!B)
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.")
diff --git a/modular_citadel/code/modules/reagents/objects/items.dm b/modular_citadel/code/modules/reagents/objects/items.dm
index 1319048bc8..d07edaa9e1 100644
--- a/modular_citadel/code/modules/reagents/objects/items.dm
+++ b/modular_citadel/code/modules/reagents/objects/items.dm
@@ -20,6 +20,8 @@
numberOfPages--
playsound(user.loc, 'sound/items/poster_ripped.ogg', 50, 1)
add_fingerprint(user)
+ if(numberOfPages == 0)
+ icon_state = "pHbookletEmpty"
return
else
to_chat(user, "[src] is empty!")
diff --git a/modular_citadel/icons/obj/FermiChem.dmi b/modular_citadel/icons/obj/FermiChem.dmi
index 37da7f6aca..b11bf83f68 100644
Binary files a/modular_citadel/icons/obj/FermiChem.dmi and b/modular_citadel/icons/obj/FermiChem.dmi differ
diff --git a/modular_citadel/icons/obj/genitals/breasts.dmi b/modular_citadel/icons/obj/genitals/breasts.dmi
index 7e4a631876..c02a230bdb 100644
Binary files a/modular_citadel/icons/obj/genitals/breasts.dmi and b/modular_citadel/icons/obj/genitals/breasts.dmi differ
diff --git a/modular_citadel/icons/obj/genitals/breasts_onmob.dmi b/modular_citadel/icons/obj/genitals/breasts_onmob.dmi
index b2496f1fc1..c5bbbe3808 100644
Binary files a/modular_citadel/icons/obj/genitals/breasts_onmob.dmi and b/modular_citadel/icons/obj/genitals/breasts_onmob.dmi differ
diff --git a/modular_citadel/icons/obj/genitals/penis.dmi b/modular_citadel/icons/obj/genitals/penis.dmi
index 9ac7d82cbd..cb9ce6535f 100644
Binary files a/modular_citadel/icons/obj/genitals/penis.dmi and b/modular_citadel/icons/obj/genitals/penis.dmi differ