Merge pull request #755 from ArchieBeepBoop/reagentsagain

Ports reagents id removal and typepath usage
This commit is contained in:
QuoteFox
2020-12-23 17:48:37 +00:00
committed by GitHub
323 changed files with 31959 additions and 32469 deletions
@@ -28,9 +28,9 @@
/datum/species
var/arousal_gain_rate = AROUSAL_START_VALUE //Rate at which this species becomes aroused
var/arousal_lose_rate = AROUSAL_START_VALUE //Multiplier for how easily arousal can be relieved
var/list/cum_fluids = list("semen")
var/list/milk_fluids = list("milk")
var/list/femcum_fluids = list("femcum")
var/list/cum_fluids = list(/datum/reagent/consumable/semen)
var/list/milk_fluids = list(/datum/reagent/consumable/milk)
var/list/femcum_fluids = list(/datum/reagent/consumable/femcum)
//Mob procs
/mob/living/carbon/human/proc/underwear_toggle()
@@ -12,7 +12,7 @@
//var/breast_sizes = list ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "huge", "massive", "giga", "impossible", "flat")
var/breast_values = list ("a" = 1, "b" = 2, "c" = 3, "d" = 4, "e" = 5, "f" = 6, "g" = 7, "h" = 8, "i" = 9, "j" = 10, "k" = 11, "l" = 12, "m" = 13, "n" = 14, "o" = 15, "huge" = 16, "massive" = 17, "giga" = 25, "impossible" = 30, "flat" = 0) // Note: Do not forget to define new sizes.
var/statuscheck = FALSE
fluid_id = "milk"
fluid_id = /datum/reagent/consumable/milk
var/amount = 2
fluid_mult = 0.25 // Set to a lower value due to production scaling with size (I.E. D cups produce the "normal" amount)
fluid_max_volume = 10
@@ -80,7 +80,7 @@
//string = "breasts_[lowertext(shape)]_[size]-s"
if(producing && sent_full_message)
desc += " They're leaking [fluid_id]."
desc += " They're leaking [initial(fluid_id.name)]."
var/string
if(owner)
if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"])
@@ -9,7 +9,7 @@
var/can_climax = FALSE
var/fluid_transfer_factor = 0.0 //How much would a partner get in them if they climax using this?
var/size = 2 //can vary between num or text, just used in icon_state strings
var/fluid_id = null
var/datum/reagent/fluid_id = null
var/fluid_max_volume = 15
var/fluid_efficiency = 1
var/fluid_rate = 1
@@ -13,7 +13,7 @@
//fluid_mult = 0.133 // Set to a lower value due to production scaling with size (I.E. 6 inches the "normal" amount)
fluid_mult = 1.0 //Defaults to 1 no matter what you do. It just does. Just gonna adapt I guess.
fluid_max_volume = 3
fluid_id = "semen"
fluid_id = /datum/reagent/consumable/semen
producing = TRUE
can_masturbate_with = FALSE
masturbation_verb = "massage"
@@ -6,7 +6,7 @@
zone = "groin"
slot = "womb"
internal = TRUE
fluid_id = "femcum"
fluid_id = /datum/reagent/consumable/femcum
producing = TRUE
var/pregnant = FALSE //this is for pregnancy code
@@ -25,11 +25,10 @@
. += "<span class='notice'>[DisplayTimeText(nextadrenalinepop - world.time)] left before the adrenaline injector can be used again."
/obj/item/clothing/glasses/phantomthief/syndicate/proc/injectadrenaline(mob/user, combatmodestate)
if(istype(user))
if(combatmodestate && world.time >= nextadrenalinepop)
nextadrenalinepop = world.time + 5 MINUTES
user.reagents.add_reagent("syndicateadrenals", 5)
user.playsound_local(user, 'modular_citadel/sound/misc/adrenalinject.ogg', 100, 0, pressure_affected = FALSE)
if(istype(user) && combatmodestate && world.time >= nextadrenalinepop)
nextadrenalinepop = world.time + 5 MINUTES
user.reagents.add_reagent(/datum/reagent/syndicateadrenals, 5)
user.playsound_local(user, 'modular_citadel/sound/misc/adrenalinject.ogg', 100, 0, pressure_affected = FALSE)
/obj/item/clothing/glasses/phantomthief/syndicate/equipped(mob/user, slot)
. = ..()
@@ -23,4 +23,4 @@
desc = "A syringe filled with a strange viscous liquid. It might be best to leave it alone."
amount_per_transfer_from_this = 1
volume = 1
list_reagents = list("xenomicrobes" = 1)
list_reagents = list(/datum/reagent/xenomicrobes = 1)
@@ -140,10 +140,10 @@
icon_state = "banana_peel"
bitesize = 3
eatverb = "devours"
list_reagents = list("nutriment" = 3, "vitamin" = 2)
list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2)
foodtype = GROSS | MEAT | RAW
grind_results = list("blood" = 20, "liquidgibs" = 5)
juice_results = list("banana" = 0)
grind_results = list(/datum/reagent/blood = 20, /datum/reagent/liquidgibs = 5)
juice_results = list(/datum/reagent/consumable/banana = 0)
/obj/item/reagent_containers/food/snacks/deadbanana_spider/Initialize()
@@ -4,7 +4,7 @@
id = "10mminc"
build_type = PROTOLATHE
materials = list(MAT_PLASMA = 50000, MAT_METAL = 18000)
reagents_list = list("plasma" = 120, "napalm" = 240)
reagents_list = list(/datum/reagent/toxin/plasma = 120, /datum/reagent/napalm = 240)
build_path = /obj/item/ammo_box/magazine/m10mm/fire
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -25,7 +25,7 @@
id = "10mmhp"
build_type = PROTOLATHE
materials = list(MAT_METAL = 40000, MAT_GLASS = 50000)
reagents_list = list("sonic_powder" = 280)
reagents_list = list(/datum/reagent/sonic_powder = 280)
build_path = /obj/item/ammo_box/magazine/m10mm/hp
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -131,8 +131,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
/datum/reagent/fermi/enthrall
name = "MKUltra"
id = "enthrall"
description = "A forbidden deep red mixture that overwhelms a foreign body with waves of pleasure, intoxicating them into servitude. When taken by the creator, it will enhance the draw of their voice to those affected by it."
description = "A forbidden deep red mixture that increases a person's succeptability to another's words. When taken by the creator, it will enhance the draw of their voice to those affected by it."
color = "#660015" // rgb: , 0, 255
taste_description = "synthetic chocolate, a base tone of alcohol, and high notes of roses"
overdose_threshold = 100 //If this is too easy to get 100u of this, then double it please.
@@ -149,7 +148,6 @@ Creating a chem with a low purity will make you permanently fall in love with so
/datum/reagent/fermi/enthrall/test
name = "MKUltraTest"
id = "enthrallTest"
description = "A forbidden deep red mixture that makes you like Fermis a little too much. Unobtainable and due to be removed from the wiki."
data = list("creatorID" = "honkatonkbramblesnatch", "creatorGender" = "Mistress", "creatorName" = "Fermis Yakumo")
creatorID = "honkatonkbramblesnatch"//ckey
@@ -158,7 +156,6 @@ Creating a chem with a low purity will make you permanently fall in love with so
purity = 1
/datum/reagent/fermi/enthrall/test/on_new()
id = "enthrall"
..()
creator = get_mob_by_key(creatorID)
@@ -205,7 +202,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
if(purity < 0.5)//DO NOT SPLIT INTO DIFFERENT CHEM: This relies on DoNotSplit - has to be done this way.
if(volume < 0.5)//You don't get to escape that easily
FallInLove(pick(GLOB.player_list), M)
M.reagents.remove_reagent(id, volume)
M.reagents.remove_reagent(type, volume)
if (M.ckey == creatorID && creatorName == M.real_name)//If the creator drinks it, they fall in love randomly. If someone else drinks it, the creator falls in love with them.
if(M.has_status_effect(STATUS_EFFECT_INLOVE))//Can't be enthralled when enthralled, so to speak.
@@ -221,7 +218,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
if(LAZYLEN(seen))
return
M.reagents.remove_reagent(id, volume)
M.reagents.del_reagent(type)
FallInLove(M, pick(seen))
return
@@ -230,7 +227,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
if(M.has_status_effect(STATUS_EFFECT_INLOVE))
return
if((C in viewers(7, get_turf(M))) && (C.client))
M.reagents.remove_reagent(id, volume)
M.reagents.del_reagent(type)
FallInLove(C, M)
return
@@ -299,7 +296,6 @@ Creating a chem with a low purity will make you permanently fall in love with so
//Creates a gas cloud when the reaction blows up, causing everyone in it to fall in love with someone/something while it's in their system.
/datum/reagent/fermi/enthrallExplo//Created in a gas cloud when it explodes
name = "Gaseous MKUltra"
id = "enthrallExplo"
description = "A forbidden deep red gas that overwhelms a foreign body, causing the person they next lay their eyes on to become more interesting. Studies have shown that people are 66% more likely to make friends with this in the air. Produced when MKUltra explodes."
color = "#2C051A" // rgb: , 0, 255
metabolization_rate = 0.1
@@ -39,7 +39,6 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
//Clone serum #chemClone
/datum/reagent/fermi/SDGF //vars, mostly only care about keeping track if there's a player in the clone or not.
name = "synthetic-derived growth factor"
id = "SDGF"
description = "A rapidly diving mass of Embryonic stem cells. These cells are missing a nucleus and quickly replicate a hosts DNA before growing to form an almost perfect clone of the host. In some cases neural replication takes longer, though the underlying reason underneath has yet to be determined."
color = "#a502e0" // rgb: 96, 0, 255
var/playerClone = FALSE
@@ -54,9 +53,9 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
var/pollStarted = FALSE
var/location_created
var/startHunger
impure_chem = "SDGFtox"
impure_chem = /datum/reagent/impure/SDGFtox
inverse_chem_val = 0.5
inverse_chem = "SDZF"
inverse_chem = /datum/reagent/impure/SDZF
can_synth = TRUE
@@ -118,8 +117,8 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
SM.nutrition = startHunger/2
//Transfer remaining reagent to clone. I think around 30u will make a healthy clone, otherwise they'll have clone damage, blood loss, brain damage and hunger.
SM.reagents.add_reagent("SDGFheal", volume)
M.reagents.remove_reagent(id, volume)
SM.reagents.add_reagent(/datum/reagent/fermi/SDGFheal, volume)
M.reagents.remove_reagent(type, volume)
log_game("FERMICHEM: [volume]u of SDGFheal has been transferred to the clone")
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Sentient clones made")
return
@@ -137,7 +136,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
M.adjustBruteLoss(-1, 0)
M.adjustFireLoss(-1, 0)
M.heal_bodypart_damage(1,1)
M.reagents.remove_reagent(id, 1)//faster rate of loss.
M.reagents.remove_reagent(type, 1)//faster rate of loss.
else //If there's no ghosts, but they've made a large amount, then proceed to make flavourful clone, where you become fat and useless until you split.
switch(current_cycle)
if(21)
@@ -182,7 +181,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
log_game("FERMICHEM: [M] ckey: [M.key] has created a mindless clone of themselves")
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Braindead clones made")
if(87 to INFINITY)
M.reagents.remove_reagent(id, volume)//removes SGDF on completion. Has to do it this way because of how i've coded it. If some madlab gets over 1k of SDGF, they can have the clone healing.
M.reagents.remove_reagent(type, volume)//removes SGDF on completion. Has to do it this way because of how i've coded it. If some madlab gets over 1k of SDGF, they can have the clone healing.
..()
@@ -263,18 +262,17 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
SM.set_species(mutation)
//Transfer remaining reagent to clone. I think around 30u will make a healthy clone, otherwise they'll have clone damage, blood loss, brain damage and hunger.
SM.reagents.add_reagent("SDGFheal", volume)
M.reagents.remove_reagent(id, volume)
SM.reagents.add_reagent(/datum/reagent/fermi/SDGFheal, volume)
log_combat(M, M, "SDGF clone-vived", src)
M.reagents.del_reagent(type)
SM.updatehealth()
SM.emote("gasp")
log_combat(M, M, "SDGF clone-vived", src)
return
..()
//Unobtainable, used in clone spawn.
/datum/reagent/fermi/SDGFheal
name = "synthetic-derived healing factor"
id = "SDGFheal"
description = "Leftover SDGF is transferred into the resulting clone, which quickly heals up the stresses from suddenly splitting. Restores blood, nutrition, and repaires brain and clone damage quickly. Only obtainable from using excess SDGF, and only enters the cloned body."
metabolization_rate = 1
can_synth = FALSE
@@ -290,7 +288,6 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
//Unobtainable, used if SDGF is impure but not too impure
/datum/reagent/impure/SDGFtox
name = "Synthetic-derived apoptosis factor"
id = "SDGFtox"
description = "Impure synthetic-derived growth factor causes certain cells to undergo cell death, causing clone damage, and damaging blood cells."//i.e. tell me please, figure it's a good way to get pinged for bugfixes.
metabolization_rate = 1
can_synth = FALSE
@@ -303,7 +300,6 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
//Fail state of SDGF
/datum/reagent/impure/SDZF
name = "synthetic-derived zombie factor"
id = "SDZF"
description = "A horribly peverse mass of Embryonic stem cells made real by the hands of a failed chemist. Emulates normal synthetic-derived growth factor, but produces a hostile zombie at the end of it."
color = "#a502e0" // rgb: 96, 0, 255
metabolization_rate = 0.5 * REAGENTS_METABOLISM
@@ -335,7 +331,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
M.adjustToxLoss(1, 0)// the warning!
if(86)//mean clone time!
if (!M.reagents.has_reagent("pen_acid"))//Counterplay is pent.)
if (!M.reagents.has_reagent(/datum/reagent/medicine/pen_acid))//Counterplay is pent.)
message_admins("(non-infectious) SDZF: Zombie spawned at [M] [COORD(M)]!")
M.nutrition = startHunger - 500//YOU BEST BE RUNNING AWAY AFTER THIS YOU BADDIE
M.next_move_modifier = 1
@@ -349,7 +345,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
ZI.name = M.real_name
ZI.desc = "[M]'s clone, gone horribly wrong."
log_game("FERMICHEM: [M] ckey: [M.key]'s clone has become a horrifying zombie instead")
M.reagents.remove_reagent(id, 20)
M.reagents.remove_reagent(type, 20)
else//easier to deal with
to_chat(M, "<span class='notice'>The pentetic acid seems to have stopped the decay for now, clumping up the cells into a horrifying tumour!</span>")
@@ -359,11 +355,12 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
S.name = "Living teratoma"
S.real_name = "Living teratoma"//horrifying!!
S.rabid = 1//Make them an angery boi
M.reagents.remove_reagent(id, volume)
M.reagents.remove_reagent(type, volume)
to_chat(M, "<span class='warning'>A large glob of the tumour suddenly splits itself from your body. You feel grossed out and slimey...</span>")
log_game("FERMICHEM: [M] ckey: [M.key]'s clone has become a horrifying teratoma instead")
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Zombie clones made!")
if(87 to INFINITY)
M.adjustToxLoss(1, 0)
M.adjustToxLoss(2, 0)
M.reagents.remove_reagent(type, 1)
..()
@@ -15,7 +15,6 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die
/datum/reagent/fermi/astral // Gives you the ability to astral project for a moment!
name = "Astrogen"
id = "astral"
description = "An opalescent murky liquid that is said to distort your soul from your being."
color = "#A080H4" // rgb: , 0, 255
taste_description = "your mind"
@@ -74,7 +73,7 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die
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(id, current_cycle/10, FALSE)//exponent
metabolization_rate = current_cycle/10 //exponential
sleepytime+=5
if(G)//This is a mess because of how slow qdel is, so this is all to stop runtimes.
if(G.mind)
@@ -11,7 +11,6 @@
/datum/reagent/fermi/eigenstate
name = "Eigenstasium"
id = "eigenstate"
description = "A strange mixture formed from a controlled reaction of bluespace with plasma, that causes localised eigenstate fluxuations within the patient"
taste_description = "wiggly cosmic dust."
color = "#5020F4" // rgb: 50, 20, 255
@@ -69,8 +68,9 @@
/datum/reagent/fermi/eigenstate/on_mob_delete(mob/living/M) //returns back to original location
do_sparks(5,FALSE,M)
to_chat(M, "<span class='userdanger'>You feel your wavefunction collapse!</span>")
do_teleport(M, location_return, 0, asoundin = 'sound/effects/phasein.ogg') //Teleports home
do_sparks(5,FALSE,M)
if(!M.reagents.has_reagent(/datum/reagent/stabilizing_agent))
do_teleport(M, location_return, 0, asoundin = 'sound/effects/phasein.ogg') //Teleports home
do_sparks(5,FALSE,M)
qdel(Eigenstate)
..()
@@ -168,7 +168,7 @@
if(prob(20))
do_sparks(5,FALSE,M)
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "[id]_overdose")//holdover until above fix works
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "[type]_overdose")//holdover until above fix works
..()
/datum/reagent/fermi/eigenstate/reaction_turf(turf/T, reac_volume)
@@ -20,15 +20,14 @@
/datum/reagent/fermi/breast_enlarger
name = "Succubus milk"
id = "breast_enlarger"
description = "A volatile collodial mixture derived from milk that encourages mammary production via a potent estrogen mix."
color = "#E60584" // rgb: 96, 0, 255
taste_description = "a milky ice cream like flavour."
overdose_threshold = 17
metabolization_rate = 0.25
impure_chem = "BEsmaller" //If you make an inpure chem, it stalls growth
impure_chem = /datum/reagent/fermi/BEsmaller //If you make an inpure chem, it stalls growth
inverse_chem_val = 0.35
inverse_chem = "BEsmaller" //At really impure vols, it just becomes 100% inverse
inverse_chem = /datum/reagent/fermi/BEsmaller //At really impure vols, it just becomes 100% inverse
can_synth = FALSE
/datum/reagent/fermi/breast_enlarger/on_mob_add(mob/living/carbon/M)
@@ -46,7 +45,7 @@
M.Knockdown(50)
M.Stun(50)
B.throw_at(T2, 8, 1)
M.reagents.remove_reagent(id, volume)
M.reagents.del_reagent(type)
return
log_game("FERMICHEM: [M] ckey: [M.key] has ingested Sucubus milk")
var/mob/living/carbon/human/H = M
@@ -92,7 +91,7 @@
nB.cached_size = 0
nB.prev_size = 0
to_chat(M, "<span class='warning'>Your chest feels warm, tingling with newfound sensitivity.</b></span>")
M.reagents.remove_reagent(id, 5)
M.reagents.remove_reagent(type, 5)
B = nB
//If they have them, increase size. If size is comically big, limit movement and rip clothes.
B.cached_size = B.cached_size + 0.05
@@ -146,7 +145,6 @@
/datum/reagent/fermi/BEsmaller
name = "Modesty milk"
id = "BEsmaller"
description = "A volatile collodial mixture derived from milk that encourages mammary reduction via a potent estrogen mix. Produced by reacting impure Succubus milk."
color = "#E60584" // rgb: 96, 0, 255
taste_description = "a milky ice cream like flavour."
@@ -170,7 +168,6 @@
/datum/reagent/fermi/BEsmaller_hypo
name = "Rectify milk" //Rectify
id = "BEsmaller_hypo"
color = "#E60584"
taste_description = "a milky ice cream like flavour."
metabolization_rate = 0.25
@@ -212,15 +209,14 @@
//Since someone else made this in the time it took me to PR it, I merged them.
/datum/reagent/fermi/penis_enlarger // Due to popular demand...!
name = "Incubus draft"
id = "penis_enlarger"
description = "A volatile collodial mixture derived from various masculine solutions that encourages a larger gentleman's package via a potent testosterone mix, formula derived from a collaboration from Fermichem and Doctor Ronald Hyatt, who is well known for his phallus palace." //The toxic masculinity thing is a joke because I thought it would be funny to include it in the reagents, but I don't think many would find it funny? dumb
color = "#888888" // This is greyish..?
taste_description = "chinese dragon powder"
overdose_threshold = 17 //ODing makes you male and removes female genitals
metabolization_rate = 0.5
impure_chem = "PEsmaller" //If you make an inpure chem, it stalls growth
impure_chem = /datum/reagent/fermi/PEsmaller //If you make an inpure chem, it stalls growth
inverse_chem_val = 0.35
inverse_chem = "PEsmaller" //At really impure vols, it just becomes 100% inverse and shrinks instead.
inverse_chem = /datum/reagent/fermi/PEsmaller //At really impure vols, it just becomes 100% inverse and shrinks instead.
can_synth = FALSE
/datum/reagent/fermi/penis_enlarger/on_mob_add(mob/living/carbon/M)
@@ -237,7 +233,7 @@
M.Knockdown(50)
M.Stun(50)
P.throw_at(T2, 8, 1)
M.reagents.remove_reagent(id, volume)
M.reagents.del_reagent(type)
return
var/mob/living/carbon/human/H = M
H.genital_override = TRUE
@@ -274,7 +270,7 @@
to_chat(M, "<span class='warning'>Your groin feels warm, as you feel a newly forming bulge down below.</b></span>")
nP.cached_length = 1
nP.prev_length = 1
M.reagents.remove_reagent(id, 5)
M.reagents.remove_reagent(type, 5)
P = nP
if(!T)//Hyper change// Adds testicles if there are none.
@@ -351,7 +347,6 @@
/datum/reagent/fermi/PEsmaller // Due to cozmo's request...!
name = "Chastity draft"
id = "PEsmaller"
description = "A volatile collodial mixture derived from various masculine solutions that encourages a smaller gentleman's package via a potent testosterone mix. Produced by reacting impure Incubus draft."
color = "#888888" // This is greyish..?
taste_description = "chinese dragon powder"
@@ -376,7 +371,6 @@
/datum/reagent/fermi/PEsmaller_hypo
name = "Rectify draft"
id = "PEsmaller_hypo"
color = "#888888" // This is greyish..?
taste_description = "chinese dragon powder"
description = "A medicine used to treat organomegaly in a patient's penis."
@@ -3,14 +3,12 @@
/datum/reagent/fermi
name = "Fermi" //This should never exist, but it does so that it can exist in the case of errors..
id = "fermi"
taste_description = "affection and love!"
can_synth = FALSE
value = 20
//SplitChem = TRUE
impure_chem = "fermiTox"// What chemical is metabolised with an inpure reaction
impure_chem = /datum/reagent/impure/fermiTox // What chemical is metabolised with an inpure reaction
inverse_chem_val = 0.25 // If the impurity is below 0.5, replace ALL of the chem with inverse_chemupon metabolising
inverse_chem = "fermiTox"
inverse_chem = /datum/reagent/impure/fermiTox
//This should process fermichems to find out how pure they are and what effect to do.
/datum/reagent/fermi/on_mob_add(mob/living/carbon/M, amount)
@@ -34,7 +32,6 @@
/datum/reagent/fermi/hatmium //for hatterhat
name = "Hat growth serium"
id = "hatmium"
description = "A strange substance that draws in a hat from the hat dimention."
color = "#7c311a" // rgb: , 0, 255
taste_description = "like jerky, whiskey and an off aftertaste of a crypt."
@@ -80,7 +77,6 @@
/datum/reagent/fermi/furranium
name = "Furranium"
id = "furranium"
description = "OwO whats this?"
color = "#f9b9bc" // rgb: , 0, 255
taste_description = "dewicious degenyewacy"
@@ -169,14 +165,13 @@
//Writen by Trilby!! Embellsished a little by me.
/datum/reagent/fermi/nanite_b_gone
name = "Naninte bane"
id = "nanite_b_gone"
name = "Nanite bane"
description = "A stablised EMP that is highly volatile, shocking small nano machines that will kill them off at a rapid rate in a patient's system."
color = "#708f8f"
overdose_threshold = 15
impure_chem = "nanite_b_goneTox" //If you make an inpure chem, it stalls growth
impure_chem = /datum/reagent/fermi/nanite_b_goneTox //If you make an inpure chem, it stalls growth
inverse_chem_val = 0.25
inverse_chem = "nanite_b_goneTox" //At really impure vols, it just becomes 100% inverse
inverse_chem = /datum/reagent/fermi/nanite_b_goneTox //At really impure vols, it just becomes 100% inverse
taste_description = "what can only be described as licking a battery."
pH = 9
value = 90
@@ -211,7 +206,6 @@
/datum/reagent/fermi/nanite_b_goneTox
name = "Electromagnetic crystals"
id = "nanite_b_goneTox"
description = "Causes items upon the patient to sometimes short out, as well as causing a shock in the patient, if the residual charge between the crystals builds up to sufficient quantities"
metabolization_rate = 0.5
chemical_flags = REAGENT_INVISIBLE
@@ -234,7 +228,6 @@
/datum/reagent/fermi/fermiAcid
name = "Acid vapour"
id = "fermiAcid"
description = "Someone didn't do like an otter, and add acid to water."
taste_description = "acid burns, ow"
color = "#FFFFFF"
@@ -277,7 +270,6 @@
/datum/reagent/fermi/fermiTest
name = "Fermis Test Reagent"
id = "fermiTest"
description = "You should be really careful with this...! Also, how did you get this?"
chemical_flags = REAGENT_FORCEONNEW
can_synth = FALSE
@@ -287,7 +279,7 @@
if(LAZYLEN(holder.reagent_list) == 1)
return
else
holder.remove_reagent("fermiTest", volume)//Avoiding recurrsion
holder.del_reagent(type)//Avoiding recurrsion
var/location = get_turf(holder.my_atom)
if(purity < 0.34 || purity == 1)
var/datum/effect_system/foam_spread/s = new()
@@ -300,10 +292,10 @@
if(purity >= 0.67)
for (var/datum/reagent/reagent in holder.reagent_list)
if (istype(reagent, /datum/reagent/fermi))
var/datum/chemical_reaction/fermi/Ferm = GLOB.chemical_reagents_list[reagent.id]
var/datum/chemical_reaction/fermi/Ferm = GLOB.chemical_reagents_list[reagent.type]
Ferm.FermiExplode(src, holder.my_atom, holder, holder.total_volume, holder.chem_temp, holder.pH)
else
var/datum/chemical_reaction/Ferm = GLOB.chemical_reagents_list[reagent.id]
var/datum/chemical_reaction/Ferm = GLOB.chemical_reagents_list[reagent.type]
Ferm.on_reaction(holder, reagent.volume)
for(var/mob/M in viewers(8, location))
to_chat(M, "<span class='danger'>The solution reacts dramatically, with a meow!</span>")
@@ -312,7 +304,6 @@
/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 acidity when added to another."
color = "#fbc314"
pH = 0
@@ -320,7 +311,7 @@
//Consumes self on addition and shifts pH
/datum/reagent/fermi/acidic_buffer/on_new(datapH)
if(holder.has_reagent("stabilizing_agent"))
if(holder.has_reagent(/datum/reagent/stabilizing_agent))
return ..()
data = datapH
if(LAZYLEN(holder.reagent_list) == 1)
@@ -330,19 +321,18 @@
for(var/mob/M in seen)
to_chat(M, "<span class='warning'>The beaker fizzes as the pH changes!</b></span>")
playsound(get_turf(holder.my_atom), 'sound/FermiChem/bufferadd.ogg', 50, 1)
holder.remove_reagent(id, volume, ignore_pH = TRUE)
holder.remove_reagent(type, volume, ignore_pH = TRUE)
..()
/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 alkalinity when added to another."
color = "#3853a4"
pH = 14
can_synth = TRUE
/datum/reagent/fermi/basic_buffer/on_new(datapH)
if(holder.has_reagent("stabilizing_agent"))
if(holder.has_reagent(/datum/reagent/stabilizing_agent))
return ..()
data = datapH
if(LAZYLEN(holder.reagent_list) == 1)
@@ -352,15 +342,14 @@
for(var/mob/M in seen)
to_chat(M, "<span class='warning'>The beaker froths as the pH changes!</b></span>")
playsound(get_turf(holder.my_atom), 'sound/FermiChem/bufferadd.ogg', 50, 1)
holder.remove_reagent(id, volume, ignore_pH = TRUE)
holder.remove_reagent(type, volume, ignore_pH = TRUE)
..()
//Turns you into a cute catto while it's in your system.
//If you manage to gamble perfectly, makes you have cat ears after you transform back. But really, you shouldn't end up with that with how random it is.
/datum/reagent/fermi/secretcatchem //Should I hide this from code divers? A secret cit chem?
name = "secretcatchem" //an attempt at hiding it
id = "secretcatchem"
description = "An illegal and hidden chem that turns people into cats. It's said that it's so rare and unstable that having it means you've been blessed."
description = "An illegal and hidden chem that turns people into cats. It's said that it's so rare and unstable that having it means you've been blessed. If used on someone in crit, it will turn them into a cat permanently, until the cat is killed."
taste_description = "hairballs and cream"
color = "#ffc224"
var/catshift = FALSE
@@ -1,14 +1,13 @@
/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
impure_chem = "yamerol_tox"
impure_chem = /datum/reagent/impure/yamerol_tox
inverse_chem_val = 0.4
inverse_chem = "yamerol_tox"
inverse_chem = /datum/reagent/impure/yamerol_tox
can_synth = TRUE
/datum/reagent/fermi/yamerol/on_mob_life(mob/living/carbon/C)
@@ -34,7 +33,7 @@
qdel(T)
nT.Insert(C)
to_chat(C, "<span class='notice'>You feel your tongue.... unfluffify...?</span>")
holder.remove_reagent(src.id, "10")
holder.remove_reagent(type, 10)
..()
/datum/reagent/fermi/yamerol/overdose_process(mob/living/carbon/C)
@@ -50,7 +49,7 @@
T = new()
T.Insert(C)
to_chat(C, "<span class='notice'>You feel your tongue reform in your mouth.</span>")
holder.remove_reagent(src.id, "10")
holder.remove_reagent(type, 10)
else
if((oT.name == "fluffy tongue") && (purity == 1))
var/obj/item/organ/tongue/T
@@ -62,20 +61,18 @@
qdel(oT)
T.Insert(C)
to_chat(C, "<span class='notice'>You feel your tongue.... unfluffify...?</span>")
holder.remove_reagent(src.id, "10")
holder.remove_reagent(type, 10)
if(!C.getorganslot(ORGAN_SLOT_LUNGS))
var/obj/item/organ/lungs/yamerol/L = new()
L.Insert(C)
to_chat(C, "<span class='notice'>You feel the yamerol merge in your chest.</span>")
holder.remove_reagent(src.id, "10")
holder.remove_reagent(type, 10)
C.adjustOxyLoss(-3)
..()
/datum/reagent/impure/yamerol_tox
name = "Yamer oh no"
id = "yamerol_tox"
description = "A dangerous, cloying toxin that stucks to a patients respiratory system, damaging their tongue, lungs and causing suffocation."
taste_description = "a weird, syrupy flavour, yamero"
color = "#68e83a"
@@ -96,7 +93,6 @@
/datum/reagent/synthtissue
name = "Synthtissue"
id = "synthtissue"
description = "Synthetic tissue used for grafting onto damaged organs during surgery, or for treating limb damage. Has a very tight growth window between 305-320, any higher and the temperature will cause the cells to die. Additionally, growth time is considerably long, so chemists are encouraged to leave beakers with said reaction ongoing, while they tend to their other duties."
pH = 7.6
metabolization_rate = 0.05 // gives time to craft by lowing it from .1
@@ -124,7 +120,7 @@
if(data["grown_volume"] > 175) //I don't think this is even possible, but damn to I want to see if someone can (bare in mind it takes 2s to grow 0.05u)
if(volume >= 14)
if(C.regenerate_organs(only_one = TRUE))
C.reagents.remove_reagent(id, 15)
C.reagents.remove_reagent(type, 15)
to_chat(C, "<span class='notice'>You feel something reform inside of you!</span>")
data["injected_vol"] -= metabolization_rate
@@ -1,6 +1,5 @@
/datum/reagent/syndicateadrenals
name = "Syndicate Adrenaline"
id = "syndicateadrenals"
description = "Regenerates your stamina and increases your reaction time."
color = "#E62111"
overdose_threshold = 6
@@ -9,19 +9,19 @@
/datum/chemical_reaction/proc/FermiFinish(datum/reagents/holder, var/atom/my_atom, reactVol)
if(clear_conversion == REACTION_CLEAR_IMPURE | REACTION_CLEAR_INVERSE)
for(var/id in results)
var/datum/reagent/R = my_atom.reagents.has_reagent("[id]")
if(!R || R.purity == 1)
var/datum/reagent/R = my_atom.reagents.has_reagent(id)
if(R.purity == 1)
continue
var/cached_volume = R.volume
if(clear_conversion == REACTION_CLEAR_INVERSE && R.inverse_chem)
if(R.inverse_chem_val > R.purity)
my_atom.reagents.remove_reagent(R.id, cached_volume, FALSE)
my_atom.reagents.remove_reagent(R.type, cached_volume, FALSE)
my_atom.reagents.add_reagent(R.inverse_chem, cached_volume, FALSE, other_purity = 1)
else if (clear_conversion == REACTION_CLEAR_IMPURE && R.impure_chem)
var/impureVol = cached_volume * (1 - R.purity)
my_atom.reagents.remove_reagent(R.id, (impureVol), FALSE)
my_atom.reagents.remove_reagent(R.type, (impureVol), FALSE)
my_atom.reagents.add_reagent(R.impure_chem, impureVol, FALSE, other_purity = 1)
R.cached_purity = R.purity
R.purity = 1
@@ -70,13 +70,13 @@
R.my_atom = my_atom //Give the gas a fingerprint
for (var/datum/reagent/reagent in my_atom.reagents.reagent_list) //make gas for reagents, has to be done this way, otherwise it never stops Exploding
R.add_reagent(reagent.id, reagent.volume/3) //Seems fine? I think I fixed the infinite explosion bug.
R.add_reagent(reagent.type, reagent.volume/3) //Seems fine? I think I fixed the infinite explosion bug.
if (reagent.purity < 0.6)
ImpureTot = (ImpureTot + (1-reagent.purity)) / 2
if(pH < 4) //if acidic, make acid spray
R.add_reagent("fermiAcid", (volume/3))
R.add_reagent(/datum/reagent/impure/fermiTox, (volume/3))
if(R.reagent_list)
s.set_up(R, (volume/5), my_atom)
s.start()
@@ -96,9 +96,9 @@
/datum/chemical_reaction/fermi/eigenstate
name = "Eigenstasium"
id = "eigenstate"
results = list("eigenstate" = 0.1)
required_reagents = list("bluespace" = 0.1, "stable_plasma" = 0.1, "sugar" = 0.1)
id = /datum/reagent/fermi/eigenstate
results = list(/datum/reagent/fermi/eigenstate = 1)
required_reagents = list(/datum/reagent/bluespace = 1, /datum/reagent/stable_plasma = 1, /datum/reagent/consumable/caramel = 1)
mix_message = "the reaction zaps suddenly!"
//FermiChem vars:
OptimalTempMin = 350 // Lower area of bell curve for determining heat based rate reactions
@@ -130,9 +130,9 @@
//serum
/datum/chemical_reaction/fermi/SDGF
name = "Synthetic-derived growth factor"
id = "SDGF"
results = list("SDGF" = 0.3)
required_reagents = list("stable_plasma" = 0.15, "clonexadone" = 0.15, "uranium" = 0.15, "synthflesh" = 0.15)
id = /datum/reagent/fermi/SDGF
results = list(/datum/reagent/fermi/SDGF = 3)
required_reagents = list(/datum/reagent/stable_plasma = 1.5, /datum/reagent/medicine/clonexadone = 1.5, /datum/reagent/uranium = 1.5, /datum/reagent/medicine/synthflesh = 1.5)
mix_message = "the reaction gives off a blorble!"
required_temp = 1
//FermiChem vars:
@@ -167,9 +167,9 @@
/datum/chemical_reaction/fermi/breast_enlarger
name = "Sucubus milk"
id = "breast_enlarger"
results = list("breast_enlarger" = 0.8)
required_reagents = list("salglu_solution" = 0.1, "milk" = 0.1, "synthflesh" = 0.2, "silicon" = 0.3, "aphro" = 0.3)
id = /datum/reagent/fermi/breast_enlarger
results = list(/datum/reagent/fermi/breast_enlarger = 8)
required_reagents = list(/datum/reagent/medicine/salglu_solution = 1, /datum/reagent/consumable/milk = 1, /datum/reagent/medicine/synthflesh = 2, /datum/reagent/silicon = 3, /datum/reagent/drug/aphrodisiac = 3)
mix_message = "the reaction gives off a mist of milk."
//FermiChem vars:
OptimalTempMin = 200
@@ -192,8 +192,8 @@
var/datum/reagent/fermi/breast_enlarger/BE = locate(/datum/reagent/fermi/breast_enlarger) in my_atom.reagents.reagent_list
var/cached_volume = BE.volume
if(BE.purity < 0.35)
holder.remove_reagent(src.id, cached_volume)
holder.add_reagent("BEsmaller", cached_volume)
holder.remove_reagent(type, cached_volume)
holder.add_reagent(/datum/reagent/fermi/BEsmaller, cached_volume)
/datum/chemical_reaction/fermi/breast_enlarger/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH)
@@ -207,9 +207,9 @@
/datum/chemical_reaction/fermi/penis_enlarger
name = "Incubus draft"
id = "penis_enlarger"
results = list("penis_enlarger" = 0.8)
required_reagents = list("blood" = 0.5, "synthflesh" = 0.2, "carbon" = 0.2, "aphro" = 0.2, "salglu_solution" = 0.1,)
id = /datum/reagent/fermi/penis_enlarger
results = list(/datum/reagent/fermi/penis_enlarger = 8)
required_reagents = list(/datum/reagent/blood = 5, /datum/reagent/medicine/synthflesh = 2, /datum/reagent/carbon = 2, /datum/reagent/drug/aphrodisiac = 2, /datum/reagent/medicine/salglu_solution = 1)
mix_message = "the reaction gives off a spicy mist."
//FermiChem vars:
OptimalTempMin = 200
@@ -241,14 +241,14 @@
var/datum/reagent/fermi/penis_enlarger/PE = locate(/datum/reagent/fermi/penis_enlarger) in my_atom.reagents.reagent_list
var/cached_volume = PE.volume
if(PE.purity < 0.35)
holder.remove_reagent(src.id, cached_volume)
holder.add_reagent("PEsmaller", cached_volume)
holder.remove_reagent(type, cached_volume)
holder.add_reagent(/datum/reagent/fermi/PEsmaller, cached_volume)
/datum/chemical_reaction/fermi/astral
name = "Astrogen"
id = "astral"
results = list("astral" = 0.5)
required_reagents = list("eigenstate" = 0.1, "plasma" = 0.3, "synaptizine" = 0.1, "aluminium" = 0.5)
id = /datum/reagent/fermi/astral
results = list(/datum/reagent/fermi/astral = 5)
required_reagents = list(/datum/reagent/fermi/eigenstate = 1, /datum/reagent/toxin/plasma = 3, /datum/reagent/medicine/synaptizine = 1, /datum/reagent/aluminium = 5)
//FermiChem vars:
OptimalTempMin = 700
OptimalTempMax = 800
@@ -267,14 +267,12 @@
PurityMin = 0.25
/datum/chemical_reaction/fermi/enthrall/ //check this
/datum/chemical_reaction/fermi/enthrall //check this
name = "MKUltra"
id = "enthrall"
results = list("enthrall" = 0.5)
//required_reagents = list("iron" = 1, "iodine" = 1) Test vars
//required_reagents = list("cocoa" = 0.1, "astral" = 0.1, "mindbreaker" = 0.1, "psicodine" = 0.1, "happiness" = 0.1)
required_reagents = list("cocoa" = 0.1, "bluespace" = 0.1, "mindbreaker" = 0.1, "psicodine" = 0.1, "happiness" = 0.1) //TEMPORARY UNTIL HEADMINS GIVE THE OKAY FOR MK USE.
required_catalysts = list("blood" = 1)
id = /datum/reagent/fermi/enthrall
results = list(/datum/reagent/fermi/enthrall = 5)
required_reagents = list(/datum/reagent/consumable/coco = 1, /datum/reagent/bluespace = 1, /datum/reagent/toxin/mindbreaker = 1, /datum/reagent/medicine/psicodine = 1, /datum/reagent/drug/happiness = 1)
required_catalysts = list(/datum/reagent/blood = 1)
mix_message = "the reaction gives off a burgundy plume of smoke!"
//FermiChem vars:
OptimalTempMin = 780
@@ -316,7 +314,8 @@
//So slimes can play too.
/datum/chemical_reaction/fermi/enthrall/slime
required_catalysts = list("jellyblood" = 1)
id = "enthrall2"
required_catalysts = list(/datum/reagent/blood/jellyblood = 1)
/datum/chemical_reaction/fermi/enthrall/slime/FermiFinish(datum/reagents/holder, var/atom/my_atom)
var/datum/reagent/blood/jellyblood/B = locate(/datum/reagent/blood/jellyblood) in my_atom.reagents.reagent_list//The one line change.
@@ -341,16 +340,16 @@
var/turf/T = get_turf(my_atom)
var/datum/reagents/R = new/datum/reagents(1000)
var/datum/effect_system/smoke_spread/chem/s = new()
R.add_reagent("enthrallExplo", volume)
R.add_reagent(/datum/reagent/fermi/enthrallExplo, volume)
s.set_up(R, volume/2, T)
s.start()
my_atom.reagents.clear_reagents()
/datum/chemical_reaction/fermi/hatmium // done
name = "Hat growth serum"
id = "hatmium"
results = list("hatmium" = 0.5)
required_reagents = list("ethanol" = 0.1, "nutriment" = 0.3, "cooking_oil" = 0.2, "iron" = 0.1, "gold" = 0.3)
id = /datum/reagent/fermi/hatmium
results = list(/datum/reagent/fermi/hatmium = 5)
required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/cooking_oil = 2, /datum/reagent/iron = 1, /datum/reagent/gold = 3)
//mix_message = ""
//FermiChem vars:
OptimalTempMin = 500
@@ -379,9 +378,9 @@
/datum/chemical_reaction/fermi/furranium
name = "Furranium"
id = "furranium"
results = list("furranium" = 0.5)
required_reagents = list("aphro" = 0.1, "moonsugar" = 0.1, "silver" = 0.2, "salglu_solution" = 0.1)
id = /datum/reagent/fermi/furranium
results = list(/datum/reagent/fermi/furranium = 5)
required_reagents = list(/datum/reagent/drug/aphrodisiac = 1, /datum/reagent/moonsugar = 1, /datum/reagent/silver = 2, /datum/reagent/medicine/salglu_solution = 1)
mix_message = "You think you can hear a howl come from the beaker."
//FermiChem vars:
OptimalTempMin = 350
@@ -405,9 +404,9 @@
//Nano-b-gone
/datum/chemical_reaction/fermi/nanite_b_gone//done test
name = "Naninte bain"
id = "nanite_b_gone"
results = list("nanite_b_gone" = 4)
required_reagents = list("synthflesh" = 1, "uranium" = 1, "iron" = 1, "salglu_solution" = 1)
id = /datum/reagent/fermi/nanite_b_gone
results = list(/datum/reagent/fermi/nanite_b_gone = 4)
required_reagents = list(/datum/reagent/medicine/synthflesh = 1, /datum/reagent/uranium = 1, /datum/reagent/iron = 1, /datum/reagent/medicine/salglu_solution = 1)
mix_message = "the reaction gurgles, encapsulating the reagents in flesh before the emp can be set off."
required_temp = 450//To force fermireactions before EMP.
//FermiChem vars:
@@ -427,9 +426,9 @@
/datum/chemical_reaction/fermi/acidic_buffer//done test
name = "Acetic acid buffer"
id = "acidic_buffer"
results = list("acidic_buffer" = 10) //acetic acid
required_reagents = list("salglu_solution" = 1, "ethanol" = 3, "oxygen" = 3, "water" = 3)
id = /datum/reagent/fermi/acidic_buffer
results = list(/datum/reagent/fermi/acidic_buffer = 10) //acetic acid
required_reagents = list(/datum/reagent/medicine/salglu_solution = 1, /datum/reagent/consumable/ethanol = 3, /datum/reagent/oxygen = 3, /datum/reagent/water = 3)
//FermiChem vars:
OptimalTempMin = 250
OptimalTempMax = 500
@@ -454,10 +453,10 @@
/datum/chemical_reaction/fermi/basic_buffer//done test
name = "Ethyl Ethanoate buffer"
id = "basic_buffer"
results = list("basic_buffer" = 5)
required_reagents = list("lye" = 1, "ethanol" = 2, "water" = 2)
required_catalysts = list("sacid" = 1) //vagely acetic
id = /datum/reagent/fermi/basic_buffer
results = list(/datum/reagent/fermi/basic_buffer = 5)
required_reagents = list(/datum/reagent/lye = 1, /datum/reagent/consumable/ethanol = 2, /datum/reagent/water = 2)
required_catalysts = list(/datum/reagent/toxin/acid = 1) //vagely acetic
//FermiChem vars:
OptimalTempMin = 250
OptimalTempMax = 500
@@ -486,11 +485,11 @@
//ChemReactionVars:
/datum/chemical_reaction/fermi/secretcatchem //DONE
name = "secretcatchem"
id = "secretcatchem"
results = list("secretcatchem" = 0.5)
required_reagents = list("stable_plasma" = 0.1, "sugar" = 0.1, "cream" = 0.1, "clonexadone" = 0.1)//Yes this will make a plushie if you don't lucky guess. It'll eat all your reagents too.
required_catalysts = list("SDGF" = 1)
required_temp = 600
id = /datum/reagent/fermi/secretcatchem
results = list(/datum/reagent/fermi/secretcatchem = 5)
required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/consumable/caramel = 1, /datum/reagent/consumable/cream = 1, /datum/reagent/medicine/clonexadone = 1)//Yes this will make a kitty if you don't lucky guess. It'll eat all your reagents too.
required_catalysts = list(/datum/reagent/fermi/SDGF = 1)
required_temp = 500
mix_message = "the reaction gives off a meow!"
mix_sound = "modular_citadel/sound/voice/merowr.ogg"
//FermiChem vars:
@@ -520,8 +519,8 @@
HIonRelease += (rand(-25, 25)/100)
RateUpLim += (rand(1, 1000)/100)
PurityMin += (rand(-1, 1)/10)
var/additions = list("aluminium", "silver", "gold", "plasma", "silicon", "uranium", "milk")
required_reagents[pick(additions)] = rand(0.1, 0.5)//weird
var/picked = pick(/datum/reagent/aluminium, /datum/reagent/silver, /datum/reagent/gold, /datum/reagent/toxin/plasma, /datum/reagent/silicon, /datum/reagent/uranium, /datum/reagent/consumable/milk)
required_reagents[picked] = rand(1, 5)//weird
/datum/chemical_reaction/fermi/secretcatchem/FermiFinish(datum/reagents/holder, var/atom/my_atom)
SSblackbox.record_feedback("tally", "catgirlium")//log
@@ -539,9 +538,9 @@
/datum/chemical_reaction/fermi/yamerol//done test
name = "Yamerol"
id = "yamerol"
results = list("yamerol" = 1.5)
required_reagents = list("perfluorodecalin" = 0.5, "salbutamol" = 0.5, "water" = 0.5)
id = /datum/reagent/fermi/yamerol
results = list(/datum/reagent/fermi/yamerol = 3)
required_reagents = list(/datum/reagent/medicine/perfluorodecalin = 1, /datum/reagent/medicine/salbutamol = 1, /datum/reagent/water = 1)
//FermiChem vars:
OptimalTempMin = 300
OptimalTempMax = 500
@@ -1,8 +1,7 @@
//body bluids
/datum/reagent/consumable/semen
name = "Semen"
id = "semen"
description = "Sperm from some animal. Useless for anything but insemination, really."
description = "Sperm from some animal. I bet you'll drink this out of a bucket someday."
taste_description = "something salty"
taste_mult = 2 //Not very overpowering flavor
data = list("donor"=null,"viruses"=null,"donor_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null)
@@ -48,7 +47,6 @@
/datum/reagent/consumable/femcum
name = "Female Ejaculate"
id = "femcum"
description = "Vaginal lubricant found in most mammals and other animals of similar nature. Where you found this is your own business."
taste_description = "something with a tang" // wew coders who haven't eaten out a girl.
taste_mult = 2
@@ -128,7 +126,6 @@
/datum/reagent/drug/aphrodisiac
name = "Crocin"
id = "aphro"
description = "Naturally found in the crocus and gardenia flowers, this drug acts as a natural and safe aphrodisiac."
taste_description = "strawberry roofies"
taste_mult = 2 //Hide the roofies in stronger flavors
@@ -147,7 +144,6 @@
/datum/reagent/drug/aphrodisiacplus
name = "Hexacrocin"
id = "aphro+"
description = "Chemically condensed form of basic crocin. This aphrodisiac is extremely powerful and addictive in most animals.\
Addiction withdrawals can cause brain damage and shortness of breath. Overdosage can lead to brain damage and a\
permanent increase in libido (commonly referred to as 'bimbofication')."
@@ -202,7 +198,6 @@
/datum/reagent/drug/anaphrodisiac
name = "Camphor"
id = "anaphro"
description = "Naturally found in some species of evergreen trees, camphor is a waxy substance. When injested by most animals, it acts as an anaphrodisiac\
, reducing libido and calming them. Non-habit forming and not addictive."
taste_description = "dull bitterness"
@@ -217,7 +212,6 @@
/datum/reagent/drug/anaphrodisiacplus
name = "Hexacamphor"
id = "anaphro+"
description = "Chemically condensed camphor. Causes an extreme reduction in libido and a permanent one if overdosed. Non-addictive."
taste_description = "tranquil celibacy"
color = "#D9D9D9"//rgb(217, 217, 217)
@@ -241,32 +235,32 @@
//recipes
/datum/chemical_reaction/aphro
name = "crocin"
id = "aphro"
results = list("aphro" = 6)
required_reagents = list("carbon" = 2, "hydrogen" = 2, "oxygen" = 2, "water" = 1)
id = /datum/reagent/drug/aphrodisiac
results = list(/datum/reagent/drug/aphrodisiac = 6)
required_reagents = list(/datum/reagent/carbon = 2, /datum/reagent/hydrogen = 2, /datum/reagent/oxygen = 2, /datum/reagent/water = 1)
required_temp = 400
mix_message = "The mixture boils off a pink vapor..."//The water boils off, leaving the crocin
/datum/chemical_reaction/aphroplus
name = "hexacrocin"
id = "aphro+"
results = list("aphro+" = 1)
required_reagents = list("aphro" = 6, "phenol" = 1)
id = /datum/reagent/drug/aphrodisiacplus
results = list(/datum/reagent/drug/aphrodisiacplus = 1)
required_reagents = list(/datum/reagent/drug/aphrodisiac = 6, /datum/reagent/phenol = 1)
required_temp = 400
mix_message = "The mixture rapidly condenses and darkens in color..."
/datum/chemical_reaction/anaphro
name = "camphor"
id = "anaphro"
results = list("anaphro" = 6)
required_reagents = list("carbon" = 2, "hydrogen" = 2, "oxygen" = 2, "sulfur" = 1)
id = /datum/reagent/drug/anaphrodisiac
results = list(/datum/reagent/drug/anaphrodisiac = 6)
required_reagents = list(/datum/reagent/carbon = 2, /datum/reagent/hydrogen = 2, /datum/reagent/oxygen = 2, /datum/reagent/sulfur = 1)
required_temp = 400
mix_message = "The mixture boils off a yellow, smelly vapor..."//Sulfur burns off, leaving the camphor
/datum/chemical_reaction/anaphroplus
name = "pentacamphor"
id = "anaphro+"
results = list("anaphro+" = 1)
required_reagents = list("anaphro" = 5, "acetone" = 1)
id = /datum/reagent/drug/anaphrodisiacplus
results = list(/datum/reagent/drug/anaphrodisiacplus = 1)
required_reagents = list(/datum/reagent/drug/aphrodisiac = 5, /datum/reagent/acetone = 1)
required_temp = 300
mix_message = "The mixture thickens and heats up slighty..."
@@ -35,7 +35,6 @@
/*
/datum/reagent/medicine/ickypak
name = "Ickypak"
id = "ickypak"
description = "A foul-smelling green liquid, for inducing muscle contractions to expel accidentally ingested things."
reagent_state = LIQUID
color = "#0E900E"
@@ -57,6 +56,6 @@
/datum/chemical_reaction/ickypak
name = "Ickypak"
id = "ickypak"
results = list("ickypak" = 2)
required_reagents = list("chlorine" = 2 , "oil" = 1) */
id = /datum/reagent/medicine/ickypak
results = list(/datum/reagent/medicine/ickypak = 2)
required_reagents = list(/datum/reagent/chlorine = 2 , /datum/reagent/oil = 1) */
@@ -5,7 +5,6 @@
/datum/reagent/medicine/macrocillin
name = "Macrocillin"
id = "macrocillin"
description = "Glowing yellow liquid."
reagent_state = LIQUID
color = "#FFFF00" // rgb: 255, 255, 0
@@ -17,13 +16,12 @@
M.sizescale(size)
M << "<font color='green'>You grow!</font>"
break
if(M.reagents.has_reagent("macrocillin"))
M.reagents.remove_reagent("macrocillin", 20)
if(M.reagents.has_reagent(/datum/reagent/medicine/macrocillin))
M.reagents.remove_reagent(/datum/reagent/medicine/macrocillin, 20)
..()
/datum/reagent/medicine/microcillin
name = "Microcillin"
id = "microcillin"
description = "Murky purple liquid."
reagent_state = LIQUID
color = "#800080"
@@ -35,14 +33,13 @@
M.sizescale(size)
M << "<span class='alert'>You shrink!</span>"
break;
if(M.reagents.has_reagent("microcillin"))
M.reagents.remove_reagent("microcillin", 20)
if(M.reagents.has_reagent(/datum/reagent/medicine/microcillin))
M.reagents.remove_reagent(/datum/reagent/medicine/microcillin, 20)
..()
/datum/reagent/medicine/normalcillin
name = "Normalcillin"
id = "normalcillin"
description = "Translucent cyan liquid."
reagent_state = LIQUID
color = "#00FFFF"
@@ -62,14 +59,13 @@
M.sizescale(SIZESCALE_SMALL)
M << "<font color='green'>You grow!</font>"
if(M.reagents.has_reagent("normalcillin"))
M.reagents.remove_reagent("normalcillin", 20)
if(M.reagents.has_reagent(/datum/reagent/medicine/normalcillin))
M.reagents.remove_reagent(/datum/reagent/medicine/normalcillin, 20)
..()
/datum/reagent/medicine/sizeoxadone
name = "Sizeoxadone"
id = "sizeoxadone"
description = "A volatile liquid used as a precursor to size-altering chemicals. Causes dizziness if taken unprocessed."
reagent_state = LIQUID
color = "#1E90FF"
@@ -93,7 +89,6 @@
/datum/reagent/medicine/ickypak
name = "Ickypak"
id = "ickypak"
description = "A foul-smelling green liquid, for inducing muscle contractions to expel accidentally ingested things."
reagent_state = LIQUID
color = "#0E900E"