diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index fb721e9fcb..4fad011772 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -73,6 +73,7 @@
#define TRAIT_MUSICIAN "musician"
#define TRAIT_CROCRIN_IMMUNE "crocin_immune"
#define TRAIT_NYMPHO "nymphomania"
+#define TRAIT_HIGH_BLOOD "high_blood"
// common trait sources
#define TRAIT_GENERIC "generic"
diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm
index 0d7532d344..db0d79c71b 100644
--- a/code/modules/reagents/chemistry/holder.dm
+++ b/code/modules/reagents/chemistry/holder.dm
@@ -449,8 +449,8 @@ im
var/list/multiplier = INFINITY //Wat
for(var/B in cached_required_reagents) //
- multiplier = min(multiplier, round(get_reagent_amount(B) / cached_required_reagents[B]))//a simple one over the other? (Is this for multiplying end product? Useful for toxinsludge buildup)
-
+ //multiplier = min(multiplier, round(get_reagent_amount(B) / cached_required_reagents[B]))//a simple one over the other? (Is this for multiplying end product? Useful for toxinsludge buildup)
+ multiplier = min(multiplier, (get_reagent_amount(B) / cached_required_reagents[B]))//a simple one over the other? (Is this for multiplying end product? Useful for toxinsludge buildup)
//Splits reactions into two types; FermiChem is advanced reaction mechanics, Other is default reaction.
//FermiChem relies on two additional properties; pH and impurity
//Temperature plays into a larger role too.
diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
index 0c0b385958..12b382918c 100644
--- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
@@ -835,6 +835,7 @@
var/acidpwr = 10 //the amount of protection removed from the armour
taste_description = "acid"
self_consuming = TRUE
+ pH = 2.75
/datum/reagent/toxin/acid/reaction_mob(mob/living/carbon/C, method=TOUCH, reac_volume)
if(!istype(C))
diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm
index e3225291bd..302113c4fb 100644
--- a/code/modules/surgery/organs/vocal_cords.dm
+++ b/code/modules/surgery/organs/vocal_cords.dm
@@ -840,7 +840,7 @@
E.enthrallTally += power_multiplier*1.25
if(L.canbearoused)
if(L.lewd)
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[E.master] is so nice to listen to."), 5)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[E.enthrallGender] is so nice to listen to."), 5)
E.cooldown += 1
//REWARD mixable works
@@ -855,7 +855,7 @@
if(L.has_trait(TRAIT_NYMPHO))
L.adjustArousalLoss(2*power_multiplier)
else
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "I've been praised for doing a good job!"), 5)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "I've been praised for doing a good job!"), 5)
E.resistanceTally -= power_multiplier
E.enthrallTally += 1
var/descmessage = "[(L.lewd?"I feel so happy! I'm a good pet who [E.enthrallGender] loves!":"I did a good job!")]"
diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm
index 90c8dc774a..f81c8173e6 100644
--- a/modular_citadel/code/datums/status_effects/chems.dm
+++ b/modular_citadel/code/datums/status_effects/chems.dm
@@ -169,7 +169,7 @@
/mob/living/verb/toggle_lewd()
set category = "IC"
- set name = "toggle lewdchem"
+ set name = "Toggle Lewdchem"
set desc = "Allows you to toggle if you'd like lewd flavour messages."
lewd = !(lewd)
to_chat(usr, "You [(lewd?"will":"no longer")] receive lewdchem messages.")
diff --git a/modular_citadel/code/datums/traits/negative.dm b/modular_citadel/code/datums/traits/negative.dm
index 5faea82318..5a224ffa84 100644
--- a/modular_citadel/code/datums/traits/negative.dm
+++ b/modular_citadel/code/datums/traits/negative.dm
@@ -3,20 +3,21 @@
/datum/quirk/Hypno
name = "Hypnotherapy user"
desc = "You had hypnotherapy right before your shift, you're not sure it had any effects, though."
+ mob_trait = "hypnotherapy"
value = -1 //I mean, it can be a really bad trait to have, but on the other hand, some people want it?
gain_text = "You really think the hypnotherapy helped you out."
//lose_text = "You forget about the hypnotherapy you had, or did you even have it?"
/datum/quirk/Hypno/add()
//You caught me, it's not actually based off a trigger, stop spoiling the effect! Code diving ruins the magic!
- addtimer(CALLBACK(quirk_holder, datum/quirk/Hypno, quirk_holder), rand(12000, 36000))
+ addtimer(CALLBACK(quirk_holder, /datum/quirk/Hypno/proc/triggered, quirk_holder), rand(12000, 36000))
-datum/quirk/Hypno/proc/triggered(quirk_holder)//I figured I might as well make a trait of code I added.
+/datum/quirk/Hypno/proc/triggered(quirk_holder)//I figured I might as well make a trait of code I added.
var/mob/living/carbon/human/H = quirk_holder
var/list/seen = viewers(8, get_turf(H))
if(LAZYLEN(seen) == 0)
- H.to_chat("That object accidentally sets off your implanted trigger, sending you into a hypnotic daze!")
+ to_chat(H, "That object accidentally sets off your implanted trigger, sending you into a hypnotic daze!")
else
- H.to_chat("[pick(seen)] accidentally sets off your implanted trigger, sending you into a hypnotic daze!")
+ to_chat(H, "[pick(seen)] accidentally sets off your implanted trigger, sending you into a hypnotic daze!")
H.apply_status_effect(/datum/status_effect/trance, 200, TRUE)
qdel(src)
diff --git a/modular_citadel/code/datums/traits/positive.dm b/modular_citadel/code/datums/traits/positive.dm
index fc86e91b68..a48a4a82bf 100644
--- a/modular_citadel/code/datums/traits/positive.dm
+++ b/modular_citadel/code/datums/traits/positive.dm
@@ -4,6 +4,7 @@
name = "Synthetic blood"
desc = "You've got a new form of synthetic blood that increases the total blood volume inside of you!"
value = 1
+ mob_trait = TRAIT_HIGH_BLOOD
gain_text = "You feel full of blood!"
lose_text = "You feel like your blood pressure went down."
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 ea95d125a5..5ad46bd334 100644
--- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
@@ -35,7 +35,7 @@
. = ..()
if(!M)
return
- message_admins("purity of chem is [purity]")
+ message_admins("adding to human [purity]")
if(src.purity < 0)
CRASH("Purity below 0 for chem: [src.id], Please let Fermis Know!")
if (src.purity == 1 || src.DoNotSplit == TRUE)
@@ -46,7 +46,7 @@
message_admins("all convered to [src.InverseChem]")
return
else
- //var/pureVol = amount * purity
+ //var/pureVol = amount * puritys
var/impureVol = amount * (1 - purity)
message_admins("splitting [src.id] [amount] into [src.ImpureChem] [impureVol]")
M.reagents.remove_reagent(src.id, (impureVol), FALSE)
@@ -56,10 +56,9 @@
//When merging two fermichems
/datum/reagent/fermi/on_merge(data, amount, mob/living/carbon/M, purity)//basically on_mob_add but for merging
. = ..()
- message_admins("purity of chem is [purity]")
- if(istype(M, /mob/living/carbon))
+ if(!ishuman(M))
return
- message_admins("purity of chem is [purity]")
+ message_admins("merging to human [purity]")
if (purity < 0)
CRASH("Purity below 0 for chem: [src.id], Please let Fermis Know!")
if (purity == 1 || src.DoNotSplit == TRUE)
@@ -848,7 +847,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(0)//Require a minimum
+ if(1)//Require a minimum
origin = M
if (G == null)
G = new(get_turf(M.loc))
@@ -870,7 +869,7 @@ Buginess level: works as intended - except teleport makes sparks for some reason
if(prob(50))
to_chat(G, "The high conentration of Astrogen in your blood causes you to lapse your concentration for a moment, bringing your projection back to yourself!")
do_teleport(G, M.loc)
- M.reagents.remove_reagent(src.id, current_cycle, FALSE)
+ M.reagents.remove_reagent(src.id, current_cycle-1, FALSE)
..()
/datum/reagent/fermi/astral/on_mob_delete(mob/living/carbon/M)
@@ -1534,12 +1533,11 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
id = "fermiABuffer"
description = "This reagent will consume itself and move the pH of a beaker towards 3 when added to another."
addProc = TRUE
+ pH = 3
/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)
..()
@@ -1549,12 +1547,11 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
id = "fermiBBuffer"
description = "This reagent will consume itself and move the pH of a beaker towards 11 when added to another."
addProc = TRUE
+ pH = 11
/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)
..()
diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
index 680a5018d2..a55198ff56 100644
--- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
@@ -70,8 +70,8 @@
/datum/chemical_reaction/fermi/eigenstate//done
name = "Eigenstasium"
id = "eigenstate"
- results = list("eigenstate" = 1)
- required_reagents = list("bluespace" = 1, "stable_plasma" = 1, "sugar" = 1)
+ 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"
//FermiChem vars:
OptimalTempMin = 350 // Lower area of bell curve for determining heat based rate reactions
@@ -100,9 +100,9 @@
/datum/chemical_reaction/fermi/SDGF
name = "Synthetic-derived growth factor"
id = "SDGF"
- results = list("SDGF" = 3)
+ results = list("SDGF" = 0.3)
//required_reagents = list("plasma" = 1, "stable_plasma" = 1, "sugar" = 1)
- required_reagents = list("stable_plasma" = 5, "slimejelly" = 5, "synthflesh" = 10, "blood" = 10)
+ required_reagents = list("stable_plasma" = 0.5, "slimejelly" = 0.5, "synthflesh" = 1, "blood" = 1)
//FermiChem vars:
OptimalTempMin = 350 // Lower area of bell curve for determining heat based rate reactions
OptimalTempMax = 500 // Upper end for above
@@ -127,6 +127,7 @@
S.name = "Living teratoma"
S.real_name = "Living teratoma"//horrifying!!
S.rabid = 1//Make them an angery boi, grr grr
+ S.color = "#810010"
to_chat("The cells clump up into a horrifying tumour!")
my_atom.reagents.clear_reagents()
@@ -134,7 +135,7 @@
name = "Sucubus milk"
id = "BElarger"
results = list("BElarger" = 6)
- required_reagents = list("salglu_solution" = 1, "milk" = 5, "synthflesh" = 2, "silicon" = 2, "aphro" = 2)
+ required_reagents = list("salglu_solution" = 0.1, "milk" = 0.5, "synthflesh" = 0.2, "silicon" = 0.2, "aphro" = 0.2)
//FermiChem vars:
OptimalTempMin = 200
OptimalTempMax = 800
@@ -164,8 +165,8 @@
/datum/chemical_reaction/fermi/PElarger //done
name = "Incubus draft"
id = "PElarger"
- results = list("PElarger" = 3)
- required_reagents = list("plasma" = 1, "stable_plasma" = 1, "sugar" = 1)
+ results = list("PElarger" = 0.3)
+ required_reagents = list("plasma" = 0.1, "stable_plasma" = 0.1, "sugar" = 0.1)
//required_reagents = list("stable_plasma" = 5, "slimejelly" = 5, "synthflesh" = 10, "blood" = 10)
//FermiChem vars:
OptimalTempMin = 200
@@ -196,8 +197,8 @@
/datum/chemical_reaction/fermi/astral //done //BORKEN
name = "Astrogen"
id = "astral"
- results = list("astral" = 3)
- required_reagents = list("eigenstate" = 1, "plasma" = 1, "synaptizine" = 1, "aluminium" = 5)
+ results = list("astral" = 0.3)
+ required_reagents = list("eigenstate" = 0.1, "plasma" = 0.1, "synaptizine" = 0.1, "aluminium" = 0.5)
//FermiChem vars:
OptimalTempMin = 200
OptimalTempMax = 800
@@ -219,10 +220,10 @@
/datum/chemical_reaction/fermi/enthrall//done
name = "MKUltra"
id = "enthrall"
- results = list("enthrall" = 3)
- required_reagents = list("iron" = 1, "iodine" = 1)
+ results = list("enthrall" = 0.3)
+ required_reagents = list("iron" = 0.1, "iodine" = 0.1)
//required_reagents = list("cocoa" = 1, "astral" = 1, "mindbreaker" = 1, "psicodine" = 1, "happiness" = 1)
- required_catalysts = list("blood" = 1)
+ required_catalysts = list("blood" = 0.1)
//required_reagents = list("stable_plasma" = 5, "slimejelly" = 5, "synthflesh" = 10, "blood" = 10)
//FermiChem vars:
OptimalTempMin = 780
@@ -295,8 +296,8 @@
/datum/chemical_reaction/fermi/hatmium // done
name = "Hat growth serum"
id = "hatmium"
- results = list("hatmium" = 5)
- required_reagents = list("whiskey" = 1, "nutriment" = 3, "cooking_oil" = 2, "iron" = 1)
+ results = list("hatmium" = 0.5)
+ required_reagents = list("whiskey" = 0.1, "nutriment" = 0.3, "cooking_oil" = 0.2, "iron" = 0.1)
//mix_message = ""
//FermiChem vars:
OptimalTempMin = 500
@@ -327,8 +328,8 @@
/datum/chemical_reaction/fermi/furranium //low temp and medium pH - done
name = "Furranium"
id = "furranium"
- results = list("furranium" = 5)
- required_reagents = list("aphro" = 1, "moonsugar" = 1, "silver" = 2, "salglu_solution" = 1)
+ results = list("furranium" = 0.5)
+ required_reagents = list("aphro" = 0.1, "moonsugar" = 0.1, "silver" = 0.2, "salglu_solution" = 0.1)
//mix_message = ""
//FermiChem vars:
OptimalTempMin = 350
@@ -351,8 +352,8 @@
/datum/chemical_reaction/fermi/naninte_b_gone//done
name = "Naninte bain"
id = "naninte_b_gone"
- results = list("naninte_b_gone" = 5)
- required_reagents = list("synthflesh" = 5, "uranium" = 1, "iron" = 1, "salglu_solution" = 3)
+ results = list("naninte_b_gone" = 0.5)
+ required_reagents = list("synthflesh" = 0.5, "uranium" = 0.1, "iron" = 0.1, "salglu_solution" = 0.3)
mix_message = "the reaction gurgles, encapsulating the reagents in flesh."
//FermiChem vars:
OptimalTempMin = 450
diff --git a/tgstation.dme b/tgstation.dme
index e8a0ec5c10..039765acee 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -2807,7 +2807,9 @@
#include "modular_citadel\code\datums\mutations\hulk.dm"
#include "modular_citadel\code\datums\status_effects\chems.dm"
#include "modular_citadel\code\datums\status_effects\debuffs.dm"
+#include "modular_citadel\code\datums\traits\negative.dm"
#include "modular_citadel\code\datums\traits\neutral.dm"
+#include "modular_citadel\code\datums\traits\positive.dm"
#include "modular_citadel\code\datums\wires\airlock.dm"
#include "modular_citadel\code\datums\wires\autoylathe.dm"
#include "modular_citadel\code\game\area\cit_areas.dm"