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"