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"