diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index f93e1d8236..65507043bb 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -159,7 +159,7 @@ else H.failed_last_breath = FALSE if(H.health >= H.crit_threshold) - H.adjustOxyLoss(breathModifier) //More damaged lungs = slower oxy rate up to a factor of half + H.adjustOxyLoss(-breathModifier) //More damaged lungs = slower oxy rate up to a factor of half gas_breathed = breath_gases[/datum/gas/oxygen][MOLES] H.clear_alert("not_enough_oxy") @@ -188,7 +188,7 @@ else H.failed_last_breath = FALSE if(H.health >= H.crit_threshold) - H.adjustOxyLoss(breathModifier) + H.adjustOxyLoss(-breathModifier) gas_breathed = breath_gases[/datum/gas/nitrogen][MOLES] H.clear_alert("nitro") @@ -225,7 +225,7 @@ else H.failed_last_breath = FALSE if(H.health >= H.crit_threshold) - H.adjustOxyLoss(breathModifier) + H.adjustOxyLoss(-breathModifier) gas_breathed = breath_gases[/datum/gas/carbon_dioxide][MOLES] H.clear_alert("not_enough_co2") @@ -255,7 +255,7 @@ else H.failed_last_breath = FALSE if(H.health >= H.crit_threshold) - H.adjustOxyLoss(breathModifier) + H.adjustOxyLoss(-breathModifier) gas_breathed = breath_gases[/datum/gas/plasma][MOLES] H.clear_alert("not_enough_tox") diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm index 7753fd9eab..90c8dc774a 100644 --- a/modular_citadel/code/datums/status_effects/chems.dm +++ b/modular_citadel/code/datums/status_effects/chems.dm @@ -68,6 +68,7 @@ /datum/status_effect/chem/BElarger/tick(mob/living/carbon/human/H)//If you try to wear clothes, you fail. Slows you down if you're comically huge var/mob/living/carbon/human/o = owner var/obj/item/organ/genital/breasts/B = o.getorganslot("breasts") + moveCalc = 1+((round(B.cached_size) - 9)/10) //Afffects how fast you move, and how often you can click. if(!B) o.remove_movespeed_modifier("megamilk") o.next_move_modifier /= moveCalc @@ -78,7 +79,6 @@ 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!") - moveCalc = (round(B.cached_size) - 9)/5 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 @@ -105,6 +105,8 @@ /datum/status_effect/chem/PElarger id = "PElarger" alert_type = null + var/bloodCalc + var/moveCalc /datum/status_effect/chem/PElarger/on_apply(mob/living/carbon/human/H)//Removes clothes, they're too small to contain you. You belong to space now. message_admins("PElarge started!") @@ -125,9 +127,11 @@ /datum/status_effect/chem/PElarger/tick(mob/living/carbon/M) var/mob/living/carbon/human/o = owner var/obj/item/organ/genital/penis/P = o.getorganslot("penis") + moveCalc = 1+((round(P.length) - 21)/10) //effects how fast you can move + bloodCalc = 1+((round(P.length) - 21)/10) //effects how much blood you need (I didn' bother adding an arousal check because I'm spending too much time on this organ already.) if(!P) o.remove_movespeed_modifier("hugedick") - o.next_move_modifier = 1 + o.blood_ratio /= bloodCalc //If someone else uses blood_ratio, turn this into a multiplier(I should make a handler huh) owner.remove_status_effect(src) message_admins("PElarge tick!") var/items = o.get_contents() @@ -138,20 +142,21 @@ to_chat(owner, "Your enormous package is way to large to fit anything over!") switch(round(P.cached_length)) if(21) - if (!(P.prev_size == P.size)) + if (P.prev_size > P.size) to_chat(o, "Your rascally willy has become a more managable size, liberating your movements.") o.remove_movespeed_modifier("hugedick") - o.next_move_modifier = 1 + o.blood_ratio /= bloodCalc if(22 to INFINITY) if (!(P.prev_size == P.size)) - to_chat(o, "Your indulgent johnson is so substantial, it's affecting your movements!") - o.add_movespeed_modifier("hugedick", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (P.length - 21.1)) - o.next_move_modifier = (round(P.length) - 21) + to_chat(o, "Your indulgent johnson is so substantial, it's taking all your blood and affecting your movements!") + o.add_movespeed_modifier("hugedick", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = moveCalc) + o.blood_ratio *= bloodCalc ..() -/datum/status_effect/chem/PElarger/on_remove(mob/living/carbon/M) +/datum/status_effect/chem/PElarger/on_remove(mob/living/carbon/human/o) owner.remove_movespeed_modifier("hugedick") - owner.next_move_modifier = 1 + o.blood_ratio /= bloodCalc + /*////////////////////////////////////////// Mind control functions diff --git a/modular_citadel/code/datums/traits/neutral.dm b/modular_citadel/code/datums/traits/neutral.dm index 264dbfef0a..fd713660c3 100644 --- a/modular_citadel/code/datums/traits/neutral.dm +++ b/modular_citadel/code/datums/traits/neutral.dm @@ -1,5 +1,6 @@ // Citadel-specific Neutral Traits +//For reviewers: If you think it's a bad idea, feel free to remove it. I won't be upset :blobcat: /datum/quirk/libido name = "Nymphomania" desc = "You're always feeling a bit in heat. Also, you get aroused faster than usual." 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 7194e15752..ea95d125a5 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -13,9 +13,9 @@ name = "Fermi" //Why did I putthis here? id = "fermi" //It's meeee taste_description = "affection and love!" - var/ImpureChem = "toxin" // What chemical is metabolised with an inpure reaction + var/ImpureChem = "fermiTox" // What chemical is metabolised with an inpure reaction var/InverseChemVal = 0.25 // If the impurity is below 0.5, replace ALL of the chem with InverseChem upon metabolising - var/InverseChem = "toxin" // What chem is metabolised when purity is below InverseChemVal, this shouldn't be made, but if it does, well, I guess I'll know about it. + var/InverseChem = "fermiTox" // What chem is metabolised when purity is below InverseChemVal, this shouldn't be made, but if it does, well, I guess I'll know about it. var/DoNotSplit = FALSE // If impurity is handled within the main chem itself ///datum/reagent/fermi/on_mob_life(mob/living/carbon/M) @@ -67,6 +67,9 @@ else if (src.InverseChemVal > purity) M.reagents.remove_reagent(src.id, amount, FALSE) M.reagents.add_reagent(src.InverseChem, amount, FALSE, other_purity = 1) + for(var/datum/reagent/fermi/R in M.reagents.reagent_list) + if(R.name == "") + R.name = src.name//Negative effects are hidden message_admins("all convered to [src.InverseChem]") return else @@ -75,6 +78,9 @@ message_admins("splitting [src] [amount] into [src.ImpureChem] [impureVol]") M.reagents.remove_reagent(src.id, impureVol, FALSE) M.reagents.add_reagent(src.ImpureChem, impureVol, FALSE, other_purity = 1) + for(var/datum/reagent/fermi/R in M.reagents.reagent_list) + if(R.name == "") + R.name = src.name//Negative effects are hidden return @@ -1510,6 +1516,49 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y to_chat(M, "The solution reacts dramatically, with a meow!") playsound(get_turf(M), 'modular_citadel/sound/voice/merowr.ogg', 50, 1, -1) holder.clear_reagents() + +/datum/reagent/fermi/fermiTox + name = ""//defined on setup + id = "fermiTox" + description = "You should be really careful with this...! Also, how did you get this?" + +/datum/reagent/fermi/fermiTox/on_mob_life(mob/living/carbon/C, method) + if(C.dna && istype(C.dna.species, /datum/species/jelly)) + C.adjustToxLoss(-1) + else + C.adjustToxLoss(1) + ..() + +/datum/reagent/fermi/fermiABuffer + name = "Acidic buffer"//defined on setup + id = "fermiABuffer" + description = "This reagent will consume itself and move the pH of a beaker towards 3 when added to another." + addProc = TRUE + +/datum/reagent/fermi/fermiABuffer/on_new() + if(LAZYLEN(holder.reagent_list) == 1) + return + if(holder.pH < 3) + return + pH = ((holder.pH * holder.total_volume)+(3 * src.volume))/(holder.total_volume + src.volume) + holder.remove_reagent(src.id, 1000) + ..() + +/datum/reagent/fermi/fermiBBuffer + name = "Basic buffer"//defined on setup + id = "fermiBBuffer" + description = "This reagent will consume itself and move the pH of a beaker towards 11 when added to another." + addProc = TRUE + +/datum/reagent/fermi/fermiBBuffer/on_new() + if(LAZYLEN(holder.reagent_list) == 1) + return + if(holder.pH > 11) + return + pH = ((holder.pH * holder.total_volume)+(11 * src.volume))/(holder.total_volume + src.volume) + holder.remove_reagent(src.id, 1000) + ..() + /* /datum/reagent/fermi/fermiTest/on_merge() ..() diff --git a/modular_citadel/code/modules/reagents/objects/fermiclothes.dm b/modular_citadel/code/modules/reagents/objects/fermiclothes.dm index 908016d371..2c0df581c4 100644 --- a/modular_citadel/code/modules/reagents/objects/fermiclothes.dm +++ b/modular_citadel/code/modules/reagents/objects/fermiclothes.dm @@ -37,6 +37,7 @@ return message if(prob(0.01)) message += "\" and tips their hat. \"Spy's sappin' my Sentry!" + message_admins("I really appreciate all the hard work you put into adminning citadel, I hope you're all having a good day and I hope this hidden and rare message admins brightens up your day.") return message message += "\" and tips their hat. \"[pick("Yeehaw!", "Boy howdy.", "Darn tootin'.", "Well don't that beat all.", "Whoooowee, would ya look at that!", "Whoooowee! Makin' bacon!", "Cream Gravy!", "Yippekeeyah-heeyapeeah-kayoh!", "Move 'em out!", "Giddy up!")]" return message