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