From 946fbff999bbf40b92431b1d80e8ba4593f3c0ce Mon Sep 17 00:00:00 2001 From: Fermi Date: Tue, 2 Jul 2019 22:15:32 +0100 Subject: [PATCH] +Yamerol, tweaked PE, tweaked CM3000, tweaked medpH. --- .../food_and_drinks/food/snacks_vend.dm | 2 +- .../mob/living/carbon/human/species.dm | 4 +- code/modules/mob/living/living.dm | 3 +- code/modules/reagents/chemistry/holder.dm | 12 +-- .../chemistry/machinery/chem_master.dm | 5 ++ .../chemistry/reagents/medicine_reagents.dm | 12 +-- .../code/datums/status_effects/chems.dm | 2 +- .../reagents/chemistry/reagents/MKUltra.dm | 2 +- .../chemistry/reagents/fermi_reagents.dm | 8 +- .../reagents/chemistry/reagents/healing.dm | 88 +++++++++++++++++++ .../reagents/chemistry/recipes/fermi.dm | 30 +++++-- tgstation.dme | 1 + 12 files changed, 142 insertions(+), 27 deletions(-) create mode 100644 modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm diff --git a/code/modules/food_and_drinks/food/snacks_vend.dm b/code/modules/food_and_drinks/food/snacks_vend.dm index 317a434040..8f661b868e 100644 --- a/code/modules/food_and_drinks/food/snacks_vend.dm +++ b/code/modules/food_and_drinks/food/snacks_vend.dm @@ -7,7 +7,7 @@ desc = "Nougat love it or hate it." icon_state = "candy" trash = /obj/item/trash/candy - list_reagents = list("nutriment" = 1, "sugar" = 3) + list_reagents = list("nutriment" = 1, "sugar" = 3, "cocoa" = 3) junkiness = 25 filling_color = "#D2691E" tastes = list("candy" = 1) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 16f190e3c0..a99b115e4c 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -295,8 +295,8 @@ GLOBAL_LIST_EMPTY(roundstart_races) A.cure(FALSE) SEND_SIGNAL(C, COMSIG_SPECIES_GAIN, src, old_species) - - C.lewd = C.client.prefs.lewdchem + if(C.client) + C.lewd = C.client.prefs.lewdchem //CITADEL EDIT if(NOAROUSAL in species_traits) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 5d708ebc18..786b2f9584 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -281,7 +281,7 @@ var/datum/disease/D = thing if(D.spread_flags & DISEASE_SPREAD_CONTACT_SKIN) ContactContractDisease(D) - + if(iscarbon(L)) var/mob/living/carbon/C = L if(HAS_TRAIT(src, TRAIT_STRONG_GRABBER)) @@ -329,6 +329,7 @@ to_chat(src, "You have given up life and succumbed to death.") death() + /mob/living/incapacitated(ignore_restraints, ignore_grab) if(stat || IsUnconscious() || IsStun() || IsKnockdown() || recoveringstam || (!ignore_restraints && restrained(ignore_grab))) // CIT CHANGE - adds recoveringstam check here return TRUE diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 809d0cee65..6a30a6eef5 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -544,7 +544,7 @@ for(var/B in cached_required_reagents) // multiplier = min(multiplier, round((get_reagent_amount(B) / cached_required_reagents[B]), 0.001)) if (multiplier == 0) - fermiEnd(multiplier) + fermiEnd() return for(var/P in cached_results) targetVol = cached_results[P]*multiplier @@ -557,16 +557,16 @@ if (reactedVol < targetVol) reactedVol = fermiReact(fermiReactID, chem_temp, pH, reactedVol, targetVol, cached_required_reagents, cached_results, multiplier) else//Volume is used up - fermiEnd(multiplier) + fermiEnd() return else//pH is out of range - fermiEnd(multiplier) + fermiEnd() return else//Temperature is too low, or reaction has stopped. - fermiEnd(multiplier) + fermiEnd() return -/datum/reagents/proc/fermiEnd(multiplier) +/datum/reagents/proc/fermiEnd() var/datum/chemical_reaction/fermi/C = fermiReactID STOP_PROCESSING(SSprocessing, src) fermiIsReacting = FALSE @@ -576,7 +576,7 @@ if(istype(my_atom, /obj/item/reagent_containers)) var/obj/item/reagent_containers/RC = my_atom RC.pH_check() - C.FermiFinish(src, my_atom, multiplier) + C.FermiFinish(src, my_atom) handle_reactions() update_total() //Reaction sounds and words diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index aeed5ffc37..0666cfd104 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -182,11 +182,13 @@ var/id = params["id"] var/amount = text2num(params["amount"]) if (amount > 0) + end_fermi_reaction() beaker.reagents.trans_id_to(src, id, amount) . = TRUE else if (amount == -1) // -1 means custom amount useramount = input("Enter the Amount you want to transfer:", name, useramount) as num|null if (useramount > 0) + end_fermi_reaction() beaker.reagents.trans_id_to(src, id, useramount) . = TRUE @@ -358,6 +360,9 @@ +/obj/machinery/chem_master/proc/end_fermi_reaction()//Ends any reactions upon moving. + if(beaker.reagents.fermiIsReacting == 1) + beaker.reagents.fermiEnd() /obj/machinery/chem_master/proc/isgoodnumber(num) if(isnum(num)) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 068680858b..6017e5107c 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -172,7 +172,7 @@ description = "A mixture of cryoxadone and slime jelly, that apparently inverses the requirement for its activation." color = "#f7832a" taste_description = "spicy jelly" - pH = 14 + pH = 12 /datum/reagent/medicine/pyroxadone/on_mob_life(mob/living/carbon/M) if(M.bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT) @@ -527,7 +527,7 @@ description = "Reduces massive amounts of radiation and toxin damage while purging other chemicals from the body. Slimepeople friendly!" color = "#91D865" healtoxinlover = TRUE - pH = 14//invert + pH = 12//invert /datum/reagent/medicine/sal_acid name = "Salicyclic Acid" @@ -537,7 +537,7 @@ color = "#D2D2D2" metabolization_rate = 0.5 * REAGENTS_METABOLISM overdose_threshold = 25 - pH = 1 + pH = 2.1 /datum/reagent/medicine/sal_acid/on_mob_life(mob/living/carbon/M) @@ -652,7 +652,7 @@ reagent_state = LIQUID color = "#64FFE6" metabolization_rate = 0.5 * REAGENTS_METABOLISM - pH = 13 + pH = 11.5 /datum/reagent/medicine/diphenhydramine/on_mob_life(mob/living/carbon/M) if(prob(10)) @@ -771,7 +771,7 @@ color = "#000000" metabolization_rate = 0.25 * REAGENTS_METABOLISM overdose_threshold = 35 - pH = 14 + pH = 12 /datum/reagent/medicine/atropine/on_mob_life(mob/living/carbon/M) if(M.health < 0) @@ -1145,7 +1145,7 @@ color = "#91D865" overdose_threshold = 30 taste_description = "jelly" - pH = 13 + pH = 11.8 /datum/reagent/medicine/neo_jelly/on_mob_life(mob/living/carbon/M) M.adjustBruteLoss(-1.5*REM, 0) diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm index af41d218f9..fd993a00fd 100644 --- a/modular_citadel/code/datums/status_effects/chems.dm +++ b/modular_citadel/code/datums/status_effects/chems.dm @@ -134,7 +134,7 @@ var/mob/living/carbon/human/o = owner var/obj/item/organ/genital/penis/P = o.getorganslot("penis") moveCalc = 1+((round(P.length) - 21)/3) //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.) + bloodCalc = 1+((round(P.length) - 21)/15) //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(DICK_MOVEMENT_SPEED) o.ResetBloodVol() diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm index 94fdee15b4..5cda4d4b24 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm @@ -325,7 +325,7 @@ Creating a chem with a low purity will make you permanently fall in love with so if(!love) return M.apply_status_effect(STATUS_EFFECT_INLOVE, love) - to_chat(M, "[(M.lewd?"":"")][(M.lewd?"You develop a sudden crush on [love], your heart beginning to race as you look upon them with new eyes.":"You suddenly feel like making friends with [love].")] You are determined to make friends with them and feel drawn towards them.") + to_chat(M, "[(M.lewd?"":"")][(M.lewd?"You develop a sudden crush on [love], your heart beginning to race as you look upon them with new eyes.":"You suddenly feel like making friends with [love].")] You feel strangely drawn towards them.") log_game("FERMICHEM: [M] ckey: [M.key] has temporarily bonded with [love] ckey: [love.key]") SSblackbox.record_feedback("tally", "fermi_chem", 1, "Times people have bonded") else 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 929e0605e3..9a3ae25b25 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -340,10 +340,10 @@ /datum/reagent/fermi/acidic_buffer name = "Acidic buffer" id = "acidic_buffer" - description = "This reagent will consume itself and move the pH of a beaker towards 3 when added to another." + description = "This reagent will consume itself and move the pH of a beaker towards acidity when added to another." taste_description = "an acidy sort of taste, blech." color = "#fbc314" - pH = 3 + pH = 0 //Consumes self on addition and shifts pH /datum/reagent/fermi/acidic_buffer/on_new(datapH) @@ -361,10 +361,10 @@ /datum/reagent/fermi/basic_buffer name = "Basic buffer" id = "basic_buffer" - description = "This reagent will consume itself and move the pH of a beaker towards 11 when added to another." + description = "This reagent will consume itself and move the pH of a beaker towards alkalinity when added to another." taste_description = "an soapy sort of taste, blech." color = "#3853a4" - pH = 11 + pH = 14 /datum/reagent/fermi/basic_buffer/on_new(datapH) data = datapH diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm new file mode 100644 index 0000000000..8fac5103fb --- /dev/null +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm @@ -0,0 +1,88 @@ +/datum/reagent/fermi/yamerol + name = "Yamerol" + id = "yamerol" + description = "For when you've trouble speaking or breathing, just yell YAMEROL! A chem that helps soothe any congestion problems and at high concentrations restores damaged lungs and tongues!" + taste_description = "a weird, syrupy flavour, yamero" + color = "#68e83a" + pH = 8.6 + overdose_threshold = 35 + ImpureChem = "yamerol_tox" //If you make an inpure chem, it stalls growth + InverseChemVal = 0.3 + InverseChem = "yamerol_tox" //At really impure vols, it just becomes 100% inverse + +/datum/reagent/fermi/yamerol/on_mob_life(mob/living/carbon/C) + var/obj/item/organ/tongue/T = C.getorganslot(ORGAN_SLOT_TONGUE) + var/obj/item/organ/lungs/L = C.getorganslot(ORGAN_SLOT_LUNGS) + message_admins("Yamero!") + if(T) + T.adjustTongueLoss(C, -2) + message_admins("Yamero tongue!") + if(L) + message_admins("Yamero lungs!") + L.adjustLungLoss(-5, C) + C.adjustOxyLoss(-2) + else + message_admins("Yamero no lungs!") + C.adjustOxyLoss(-10) + ..() + +/datum/reagent/fermi/yamerol/overdose_process(mob/living/carbon/C) + var/obj/item/organ/tongue/oT = C.getorganslot(ORGAN_SLOT_TONGUE) + + if(current_cycle > 10) + if(!C.getorganslot(ORGAN_SLOT_TONGUE)) + var/obj/item/organ/tongue/T + + if(C.dna && C.dna.species && C.dna.species.mutanttongue) + T = new C.dna.species.mutanttongue() + else + T = new() + T.Insert(C) + to_chat(M, "You feel your tongue reform in your mouth.") + holder.remove_reagent(src.id, "10") + else + if((oT.name == "fluffy tongue") && (purity == 1)) + var/obj/item/organ/tongue/T + + if(C.dna && C.dna.species && C.dna.species.mutanttongue) + T = new C.dna.species.mutanttongue() + else + T = new() + oT.Remove(C) + qdel(oT) + T.Insert(C) + to_chat(M, "You feel your tongue.... unfluffify...?") + holder.remove_reagent(src.id, "10") + + if(!C.getorganslot(ORGAN_SLOT_LUNGS)) + var/obj/item/organ/lungs/L = new() + L.Insert(C) + to_chat(M, "You feel your lungs reform in your chest.") + holder.remove_reagent(src.id, "10") + + + ..() + +/datum/reagent/fermi/yamerol_tox + name = "Yamerol" + id = "yamerol_tox" + description = "For when you've trouble speaking or breathing, just yell YAMEROL! A chem that helps soothe any congestion problems and at high concentrations restores damaged lungs and tongues!" + taste_description = "a weird, syrupy flavour, yamero" + color = "#68e83a" + pH = 8.6 + +/datum/reagent/fermi/yamerol_tox/on_mob_life(mob/living/carbon/C) + var/obj/item/organ/tongue/T = C.getorganslot(ORGAN_SLOT_TONGUE) + var/obj/item/organ/lungs/L = C.getorganslot(ORGAN_SLOT_LUNGS) + message_admins("Yameroe!") + if(T) + message_admins("Yamero tongue!") + T.adjustTongueLoss(C, 2) + if(L) + message_admins("Yameroe lungs!") + L.adjustLungLoss(5, C) + C.adjustOxyLoss(2) + else + message_admins("Yameroe no lungs!") + C.adjustOxyLoss(10) + ..() diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 372ef001c4..7dca90d707 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -6,7 +6,7 @@ return //Called when reaction STOP_PROCESSING -/datum/chemical_reaction/fermi/proc/FermiFinish(datum/reagents/holder, multipler) +/datum/chemical_reaction/fermi/proc/FermiFinish(datum/reagents/holder) return //Called when temperature is above a certain threshold, or if purity is too low. @@ -418,19 +418,19 @@ if(!locate(/datum/reagent/fermi/acidic_buffer) in my_atom.reagents.reagent_list) return var/datum/reagent/fermi/acidic_buffer/Fa = locate(/datum/reagent/fermi/acidic_buffer) in my_atom.reagents.reagent_list - Fa.data = 3 + Fa.data = 0 /datum/chemical_reaction/fermi/basic_buffer//done test name = "Ethyl Ethanoate buffer" id = "basic_buffer" results = list("basic_buffer" = 1.5) - required_reagents = list("acidic_buffer" = 0.5, "ethanol" = 0.5, "salglu_solution" = 0.1, "water" = 0.5) + required_reagents = list("acidic_buffer" = 0.5, "ethanol" = 0.5, , "water" = 0.5) required_catalysts = list("sacid" = 1) //vagely acetic //FermiChem vars: OptimalTempMin = 250 OptimalTempMax = 500 ExplodeTemp = 9999 //check to see overflow doesn't happen! - OptimalpHMin = 8 + OptimalpHMin = 6 OptimalpHMax = 12 ReactpHLim = 0 //CatalystFact = 0 //To do 1 @@ -446,7 +446,7 @@ if(!locate(/datum/reagent/fermi/basic_buffer) in my_atom.reagents.reagent_list) return var/datum/reagent/fermi/basic_buffer/Fb = locate(/datum/reagent/fermi/basic_buffer) in my_atom.reagents.reagent_list - Fb.data = 11 + Fb.data = 14 //secretcatchemcode, shh!! Of couse I hide it amongst cats. Though, I moved it with your requests. //I'm not trying to be sneaky, I'm trying to keep it a secret! @@ -504,3 +504,23 @@ catto.desc = "A cute chem cat, created by a lot of compicated and confusing chemistry!" catto.color = "#770000" my_atom.reagents.remove_any(10) + +/datum/chemical_reaction/fermi/yamerol//done test + name = "Yamerol" + id = "yamerol" + results = list("yamerol" = 1.5) + required_reagents = list("perfluorodecalin" = 0.5, "furranium" = 0.5, "water" = 0.5) + //FermiChem vars: + OptimalTempMin = 300 + OptimalTempMax = 500 + ExplodeTemp = 800 //check to see overflow doesn't happen! + OptimalpHMin = 6.8 + OptimalpHMax = 7.2 + ReactpHLim = 4 + //CatalystFact = 0 //To do 1 + CurveSharpT = 5 + CurveSharppH = 0.5 + ThermicConstant = -15 + HIonRelease = 0.1 + RateUpLim = 2 + FermiChem = TRUE diff --git a/tgstation.dme b/tgstation.dme index 91f0f94ce3..301894f102 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -3034,6 +3034,7 @@ #include "modular_citadel\code\modules\reagents\chemistry\reagents\eigentstasium.dm" #include "modular_citadel\code\modules\reagents\chemistry\reagents\enlargement.dm" #include "modular_citadel\code\modules\reagents\chemistry\reagents\fermi_reagents.dm" +#include "modular_citadel\code\modules\reagents\chemistry\reagents\healing.dm" #include "modular_citadel\code\modules\reagents\chemistry\reagents\MKUltra.dm" #include "modular_citadel\code\modules\reagents\chemistry\reagents\other_reagents.dm" #include "modular_citadel\code\modules\reagents\chemistry\reagents\SDGF.dm"