This commit is contained in:
Fermi
2019-05-23 05:26:38 +01:00
parent 9da13f231c
commit a480ccb9fa
10 changed files with 42 additions and 38 deletions
+1
View File
@@ -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"
+2 -2
View File
@@ -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.
@@ -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))
+2 -2
View File
@@ -840,7 +840,7 @@
E.enthrallTally += power_multiplier*1.25
if(L.canbearoused)
if(L.lewd)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='nicegreen'>[E.master] is so nice to listen to.</b></span>"), 5)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='nicegreen'><i><b>[E.enthrallGender] is so nice to listen to.</b></i></span>"), 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, "<span class='nicegreen'>I've been praised for doing a good job!</b></span>"), 5)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "<span class='nicegreen'><b><i>I've been praised for doing a good job!</b></i></span>"), 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!")]"
@@ -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.")
@@ -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 = "<span class='notice'>You really think the hypnotherapy helped you out.</span>"
//lose_text = "<span class='notice'>You forget about the hypnotherapy you had, or did you even have it?</span>"
/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("<span class='notice'><i>That object accidentally sets off your implanted trigger, sending you into a hypnotic daze!</i></span>")
to_chat(H, "<span class='notice'><i>That object accidentally sets off your implanted trigger, sending you into a hypnotic daze!</i></span>")
else
H.to_chat("<span class='notice'><i>[pick(seen)] accidentally sets off your implanted trigger, sending you into a hypnotic daze!</i></span>")
to_chat(H, "<span class='notice'><i>[pick(seen)] accidentally sets off your implanted trigger, sending you into a hypnotic daze!</i></span>")
H.apply_status_effect(/datum/status_effect/trance, 200, TRUE)
qdel(src)
@@ -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 = "<span class='notice'>You feel full of blood!</span>"
lose_text = "<span class='notice'>You feel like your blood pressure went down.</span>"
@@ -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, "<span class='warning'>The high conentration of Astrogen in your blood causes you to lapse your concentration for a moment, bringing your projection back to yourself!</b></span>")
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)
..()
@@ -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("<span class='warning'>The cells clump up into a horrifying tumour!</span>")
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
+2
View File
@@ -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"