This commit is contained in:
Putnam
2020-01-10 17:57:03 -08:00
438 changed files with 5922 additions and 6464 deletions
+30 -112
View File
@@ -1,18 +1,11 @@
//Generates a markdown txt file for use with the wiki
/proc/find_reagent(input)
. = FALSE
if(GLOB.chemical_reagents_list[input]) //prefer IDs!
var/datum/reagent/R = GLOB.chemical_reagents_list[input]
return R
else
for(var/X in GLOB.chemical_reagents_list)
var/datum/reagent/R = GLOB.chemical_reagents_list[X]
if(input == replacetext(lowertext(R.name), " ", ""))
return R
if(input == replacetext(lowertext(R.id), " ", ""))
return R
//prefer types!
. = GLOB.chemical_reagents_list[text2path(input)]
if(.)
return
. = GLOB.name2reagent[ckey(input)]
@@ -24,7 +17,7 @@
var/prefix = "|Name | Reagents | Reaction vars | Description | Chem properties |\n|---|---|---|-----------|---|\n"
var/input_reagent = replacetext(lowertext(input("Input the name/id of a reagent to get it's description on it's own, or leave blank to parse every chem.", "Input") as text), " ", "") //95% of the time, the reagent id is a lowercase/no spaces version of the name
var/input_reagent = replacetext(lowertext(input("Input the name/type of a reagent to get it's description on it's own, or leave blank to parse every chem.", "Input") as text), " ", "") //95% of the time, the reagent type is a lowercase, no spaces / underscored version of the name
if(input_reagent)
var/input_reagent2 = find_reagent(input_reagent)
if(!input_reagent2)
@@ -68,98 +61,23 @@
var/impure = ""
//Chem_dispencer
var/list/dispensable_reagents = list(
"hydrogen",
"lithium",
"carbon",
"nitrogen",
"oxygen",
"fluorine",
"sodium",
"aluminium",
"silicon",
"phosphorus",
"sulfur",
"chlorine",
"potassium",
"iron",
"copper",
"mercury",
"radium",
"water",
"ethanol",
"sugar",
"sacid",
"welding_fuel",
"silver",
"iodine",
"bromine",
"stable_plasma"
)
var/list/components = list(
"oil",
"ammonia",
"ash",
"acetone",
"phenol",
"diethylamine",
"saltpetre",
"sodiumchloride",
"lye"
)
var/obj/machinery/chem_dispenser/C
var/list/dispensable_reagents = initial(C.dispensable_reagents)
var/list/components = initial(C.upgrade_reagents) + initial(C.upgrade_reagents2) + initial(C.upgrade_reagents3)
var/list/grind = list(
"bluespace",
"gold",
"plasma",
"uranium"
/datum/reagent/bluespace,
/datum/reagent/gold,
/datum/reagent/toxin/plasma,
/datum/reagent/uranium
)
//Bartender
var/dispence_drinks = list(
"water",
"ice",
"coffee",
"cream",
"tea",
"icetea",
"cola",
"spacemountainwind",
"dr_gibb",
"space_up",
"tonic",
"sodawater",
"lemon_lime",
"pwr_game",
"shamblers",
"sugar",
"orangejuice",
"grenadine",
"limejuice",
"tomatojuice",
"lemonjuice",
"menthol"
)
var/dispence_alco = list(
"beer",
"kahlua",
"whiskey",
"wine",
"vodka",
"gin",
"rum",
"tequila",
"vermouth",
"cognac",
"ale",
"absinthe",
"hcider",
"creme_de_menthe",
"creme_de_cacao",
"triple_sec",
"sake",
"applejack"
)
var/obj/machinery/chem_dispenser/drinks/D
var/dispence_drinks = initial(D.dispensable_reagents)
var/obj/machinery/chem_dispenser/drinks/beer/B
var/dispence_alco = initial(B.dispensable_reagents)
var/breakout = FALSE
for(var/i = 1, i <= 2, i+=1)
@@ -169,31 +87,31 @@
continue
for(var/Y in dispensable_reagents) //Why do you have to do this
if(R.id == Y)
if(R.type == Y)
basic += generate_chemwiki_line(R, X, processCR)
breakout = TRUE
continue
for(var/Y in components)
if(R.id == Y)
if(R.type == Y)
upgraded += generate_chemwiki_line(R, X, processCR)
breakout = TRUE
continue
for(var/Y in dispence_drinks)
if(R.id == Y)
if(R.type == Y)
drinks += generate_chemwiki_line(R, X, processCR)
breakout = TRUE
continue
for(var/Y in dispence_alco)
if(R.id == Y)
if(R.type == Y)
alco += generate_chemwiki_line(R, X, processCR)
breakout = TRUE
continue
for(var/Y in grind)
if(R.id == Y)
if(R.type == Y)
grinded += generate_chemwiki_line(R, X, processCR)
breakout = TRUE
continue
@@ -273,7 +191,7 @@
/proc/generate_chemwiki_line(datum/reagent/R, X, processCR)
//name | Reagent pH | reagents | reaction temp | explosion temp | pH range | Kinetics | description | OD level | Addiction level | Metabolism rate | impure chem | inverse chem
var/datum/chemical_reaction/CR = get_chemical_reaction(R.id)
var/datum/chemical_reaction/CR = get_chemical_reaction(R.type)
if((!CR && processCR) || (CR && !processCR)) // Do reactions first.
return ""
@@ -284,11 +202,11 @@
outstring += "<ul>"
for(var/R2 in CR.required_reagents)
R3 = GLOB.chemical_reagents_list[R2]//What a convoluted mess
outstring += "<li><a href=\"#[R3.name]\">[R3.name]</a>: [CR.required_reagents[R3.id]]u</li>"
outstring += "<li><a href=\"#[R3.name]\">[R3.name]</a>: [CR.required_reagents[R3.type]]u</li>"
if(CR.required_catalysts)
for(var/R2 in CR.required_catalysts)
R3 = GLOB.chemical_reagents_list[R2]
outstring += "<li>Catalyst: <a href=\"#[R3.name]\">[R3.name]</a>: [CR.required_catalysts[R3.id]]u</li>"
outstring += "<li>Catalyst: <a href=\"#[R3.name]\">[R3.name]</a>: [CR.required_catalysts[R3.type]]u</li>"
outstring += "</ul> | "
else
outstring += "N/A | "
@@ -332,11 +250,11 @@
//Description, OD, Addict, Meta
outstring += "[R.description] | <ul><li>Metabolism rate: [R.metabolization_rate/2]u/s</li> [(R.overdose_threshold?"<li>Overdose: [R.overdose_threshold]u</li>":"")] [(R.addiction_threshold?"<li>Addiction: [R.addiction_threshold]u</li>":"")] "
if(R.impure_chem && R.impure_chem != "fermiTox")
if(R.impure_chem && R.impure_chem != /datum/reagent/impure/fermiTox)
R3 = GLOB.chemical_reagents_list[R.impure_chem]
outstring += "<li>Impure chem:<a href=\"#[R3.name]\">[R3.name]</a></li>"
if(R.inverse_chem && R.impure_chem != "fermiTox")
if(R.inverse_chem && R.impure_chem != /datum/reagent/impure/fermiTox)
R3 = GLOB.chemical_reagents_list[R.inverse_chem]
outstring += "<li>Inverse chem:<a href=\"#[R3.name]\">[R3.name]</a></li> [(R3.inverse_chem_val?"<li>Inverse purity: [R3.inverse_chem_val]</li>":"")] "
@@ -361,11 +279,11 @@
var/datum/reagent/R3
for(var/R2 in CR.required_reagents)
R3 = GLOB.chemical_reagents_list[R2]
outstring += "<li><a href=\"#[R3.name]\">[R3.name]</a>: [CR.required_reagents[R3.id]]u</li>"
outstring += "<li><a href=\"#[R3.name]\">[R3.name]</a>: [CR.required_reagents[R3.type]]u</li>"
if(CR.required_catalysts)
for(var/R2 in CR.required_catalysts)
R3 = GLOB.chemical_reagents_list[R2]
outstring += "<li>Catalyst: <a href=\"#[R3.name]\">[R3.name]</a>: [CR.required_catalysts[R3.id]]u</li>"
outstring += "<li>Catalyst: <a href=\"#[R3.name]\">[R3.name]</a>: [CR.required_catalysts[R3.type]]u</li>"
outstring += "</ul> | <ul>"
//Reaction vars
+53 -53
View File
@@ -11,13 +11,13 @@
for(var/path in paths)
var/datum/reagent/D = new path()
GLOB.chemical_reagents_list[D.id] = D
GLOB.chemical_reagents_list[path] = D
/proc/build_chemical_reactions_list()
//Chemical Reactions - Initialises all /datum/chemical_reaction into a list
// It is filtered into multiple lists within a list.
// For example:
// chemical_reaction_list["plasma"] is a list of all reactions relating to plasma
// chemical_reaction_list[/datum/reagent/toxin/plasma] is a list of all reactions relating to plasma
if(GLOB.chemical_reactions_list)
return
@@ -32,14 +32,11 @@
var/datum/chemical_reaction/D = new path()
var/list/reaction_ids = list()
if(!D.id)
continue
if(D.required_reagents && D.required_reagents.len)
for(var/reaction in D.required_reagents)
reaction_ids += reaction
// Create filters based on each reagent id in the required reagents list
// Create filters based on each reagent type in the required reagents list
for(var/id in reaction_ids)
if(!GLOB.chemical_reactions_list[id])
GLOB.chemical_reactions_list[id] = list()
@@ -63,7 +60,7 @@
var/targetVol = 0 //the target volume, i.e. the total amount that can be created during a fermichem reaction.
var/reactedVol = 0 //how much of the reagent is reacted during a fermireaction
var/fermiIsReacting = FALSE //that prevents multiple reactions from occurring (i.e. add_reagent calls to process_reactions(), this stops any extra reactions.)
var/fermiReactID //ID of the chem being made during a fermireaction, kept here so it's cache isn't lost between loops/procs.
var/fermiReactID //instance of the chem reaction used during a fermireaction, kept here so it's cache isn't lost between loops/procs.
/datum/reagents/New(maximum=100, new_flags)
maximum_volume = maximum
@@ -96,7 +93,7 @@
var/list/data = list()
for(var/r in reagent_list) //no reagents will be left behind
var/datum/reagent/R = r
data += "[R.id] ([round(R.volume, CHEMICAL_QUANTISATION_LEVEL)]u)"
data += "[R.type] ([round(R.volume, CHEMICAL_QUANTISATION_LEVEL)]u)"
//Using IDs because SOME chemicals (I'm looking at you, chlorhydrate-beer) have the same names as other chemicals.
return english_list(data)
@@ -117,7 +114,7 @@
current_list_element = 1
var/datum/reagent/R = cached_reagents[current_list_element]
remove_reagent(R.id, 1)
remove_reagent(R.type, 1)
current_list_element++
total_transfered++
@@ -132,7 +129,7 @@
var/part = amount / total_volume
for(var/reagent in cached_reagents)
var/datum/reagent/R = reagent
remove_reagent(R.id, R.volume * part, ignore_pH = TRUE)
remove_reagent(R.type, R.volume * part, ignore_pH = TRUE)
pH = REAGENT_NORMAL_PH
update_total()
handle_reactions()
@@ -152,15 +149,15 @@
/datum/reagents/proc/get_master_reagent_id()
var/list/cached_reagents = reagent_list
var/id
var/max_type
var/max_volume = 0
for(var/reagent in cached_reagents)
var/datum/reagent/R = reagent
if(R.volume > max_volume)
max_volume = R.volume
id = R.id
max_type = R.type
return id
return max_type
/datum/reagents/proc/get_master_reagent()
var/list/cached_reagents = reagent_list
@@ -198,9 +195,9 @@
trans_data = copy_data(T)
R.add_reagent(T.id, transfer_amount * multiplier, trans_data, chem_temp, T.purity, pH, no_react = TRUE, ignore_pH = TRUE) //we only handle reaction after every reagent has been transfered.
R.add_reagent(T.type, transfer_amount * multiplier, trans_data, chem_temp, T.purity, pH, no_react = TRUE, ignore_pH = TRUE) //we only handle reaction after every reagent has been transfered.
remove_reagent(T.id, transfer_amount, ignore_pH = TRUE)
remove_reagent(T.type, transfer_amount, ignore_pH = TRUE)
update_total()
R.update_total()
@@ -232,7 +229,7 @@
var/copy_amount = T.volume * part
if(preserve_data)
trans_data = T.data
R.add_reagent(T.id, copy_amount * multiplier, trans_data)
R.add_reagent(T.type, copy_amount * multiplier, trans_data)
src.update_total()
R.update_total()
@@ -256,12 +253,12 @@
var/trans_data = null
for (var/CR in cached_reagents)
var/datum/reagent/current_reagent = CR
if(current_reagent.id == reagent)
if(current_reagent.type == reagent)
if(preserve_data)
trans_data = current_reagent.data
R.add_reagent(current_reagent.id, amount, trans_data, chem_temp, current_reagent.purity, pH, no_react = TRUE)
R.add_reagent(current_reagent.type, amount, trans_data, chem_temp, current_reagent.purity, pH, no_react = TRUE)
remove_reagent(current_reagent.id, amount, 1)
remove_reagent(current_reagent.type, amount, 1)
break
src.update_total()
@@ -313,18 +310,21 @@
var/datum/reagent/R = addiction
if(C && R)
R.addiction_stage++
if(1 <= R.addiction_stage && R.addiction_stage <= R.addiction_stage1_end)
need_mob_update += R.addiction_act_stage1(C)
else if(R.addiction_stage1_end <= R.addiction_stage && R.addiction_stage <= R.addiction_stage2_end)
need_mob_update += R.addiction_act_stage2(C)
else if(R.addiction_stage2_end <= R.addiction_stage && R.addiction_stage <= R.addiction_stage3_end)
need_mob_update += R.addiction_act_stage3(C)
else if(R.addiction_stage3_end <= R.addiction_stage && R.addiction_stage <= R.addiction_stage4_end)
need_mob_update += R.addiction_act_stage4(C)
else if(R.addiction_stage4_end <= R.addiction_stage)
to_chat(C, "<span class='notice'>You feel like you've gotten over your need for [R.name].</span>")
SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.id]_addiction")
cached_addictions.Remove(R)
switch(R.addiction_stage)
if(1 to R.addiction_stage1_end)
need_mob_update += R.addiction_act_stage1(C)
if(R.addiction_stage1_end to R.addiction_stage2_end)
need_mob_update += R.addiction_act_stage2(C)
if(R.addiction_stage2_end to R.addiction_stage3_end)
need_mob_update += R.addiction_act_stage3(C)
if(R.addiction_stage3_end to R.addiction_stage4_end)
need_mob_update += R.addiction_act_stage4(C)
if(R.addiction_stage4_end to INFINITY)
to_chat(C, "<span class='notice'>You feel like you've gotten over your need for [R.name].</span>")
SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_addiction")
cached_addictions.Remove(R)
else
SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_overdose")
addiction_tick++
if(C && need_mob_update) //some of the metabolized reagents had effects on the mob that requires some updates.
C.updatehealth()
@@ -381,7 +381,7 @@
reaction_occurred = 0
for(var/reagent in cached_reagents)
var/datum/reagent/R = reagent
for(var/reaction in cached_reactions[R.id]) // Was a big list but now it should be smaller since we filtered it with our reagent id
for(var/reaction in cached_reactions[R.type]) // Was a big list but now it should be smaller since we filtered it with our reagent type
if(!reaction)
continue
@@ -630,7 +630,7 @@
deltapH = 1
//This should never proc:
else
WARNING("[my_atom] attempted to determine FermiChem pH for '[C.id]' which broke for some reason! ([usr])")
WARNING("[my_atom] attempted to determine FermiChem pH for '[C.type]' which broke for some reason! ([usr])")
//Calculate DeltaT (Deviation of T from optimal)
if (cached_temp < C.OptimalTempMax && cached_temp >= C.OptimalTempMin)
@@ -679,7 +679,7 @@
//Above should reduce yeild based on holder purity.
//Purity Check
for(var/datum/reagent/R in my_atom.reagents.reagent_list)
if(P == R.id)
if(P == R.type)
if (R.purity < C.PurityMin)//If purity is below the min, blow it up.
fermiIsReacting = FALSE
SSblackbox.record_feedback("tally", "fermi_chem", 1, ("[P] explosion"))
@@ -724,7 +724,7 @@
return cachedPurity/i
/datum/reagents/proc/uncache_purity(id)
var/datum/reagent/R = has_reagent("[id]")
var/datum/reagent/R = has_reagent(id)
if(!R)
return
if(R.cached_purity == 1)
@@ -735,15 +735,15 @@
var/list/cached_reagents = reagent_list
for(var/_reagent in cached_reagents)
var/datum/reagent/R = _reagent
if(R.id != reagent)
del_reagent(R.id)
if(R.type != reagent)
del_reagent(R.type)
update_total()
/datum/reagents/proc/del_reagent(reagent)
var/list/cached_reagents = reagent_list
for(var/_reagent in cached_reagents)
var/datum/reagent/R = _reagent
if(R.id == reagent)
if(R.type == reagent)
if(my_atom && isliving(my_atom))
var/mob/living/M = my_atom
if(R.metabolizing)
@@ -763,9 +763,9 @@
for(var/reagent in cached_reagents)
var/datum/reagent/R = reagent
if(R.volume <= 0)//For clarity
del_reagent(R.id)
del_reagent(R.type)
if((R.volume < 0.01) && !fermiIsReacting)
del_reagent(R.id)
del_reagent(R.type)
else
total_volume += R.volume
if(!reagent_list || !total_volume)
@@ -776,7 +776,7 @@
var/list/cached_reagents = reagent_list
for(var/reagent in cached_reagents)
var/datum/reagent/R = reagent
del_reagent(R.id)
del_reagent(R.type)
pH = REAGENT_NORMAL_PH
return 0
@@ -842,13 +842,13 @@
WARNING("[my_atom] attempted to add a reagent called '[reagent]' which doesn't exist. ([usr])")
return FALSE
if (D.id == "water" && !no_react && !istype(my_atom, /obj/item/reagent_containers/food)) //Do like an otter, add acid to water, but also don't blow up botany.
if (D.type == /datum/reagent/water && !no_react && !istype(my_atom, /obj/item/reagent_containers/food)) //Do like an otter, add acid to water, but also don't blow up botany.
if (pH < 2)
SSblackbox.record_feedback("tally", "fermi_chem", 1, "water-acid explosions")
var/datum/effect_system/smoke_spread/chem/s = new
var/turf/T = get_turf(my_atom)
var/datum/reagents/R = new/datum/reagents(3000)
R.add_reagent("fermiAcid", amount)
R.add_reagent(/datum/reagent/fermi/fermiAcid, amount)
for (var/datum/reagent/reagentgas in reagent_list)
R.add_reagent(reagentgas, amount/5)
remove_reagent(reagentgas, amount/5)
@@ -895,7 +895,7 @@
//add the reagent to the existing if it exists
for(var/A in cached_reagents)
var/datum/reagent/R = A
if (R.id == reagent) //IF MERGING
if (R.type == reagent) //IF MERGING
//Add amount and equalize purity
R.volume += round(amount, CHEMICAL_QUANTISATION_LEVEL)
R.purity = ((R.purity * R.volume) + (other_purity * amount)) /((R.volume + amount)) //This should add the purity to the product
@@ -937,7 +937,7 @@
return TRUE
/datum/reagents/proc/add_reagent_list(list/list_reagents, list/data=null) // Like add_reagent but you can enter a list. Format it like this: list("toxin" = 10, "beer" = 15)
/datum/reagents/proc/add_reagent_list(list/list_reagents, list/data=null) // Like add_reagent but you can enter a list. Format it like this: list(/datum/reagent/toxin = 10, /datum/reagent/consumable/ethanol/beer = 15)
for(var/r_id in list_reagents)
var/amt = list_reagents[r_id]
add_reagent(r_id, amt, data)
@@ -959,7 +959,7 @@
for(var/A in cached_reagents)
var/datum/reagent/R = A
if (R.id == reagent)
if (R.type == reagent)
if((total_volume - amount) <= 0)//Because this can result in 0, I don't want it to crash.
pH = REAGENT_NORMAL_PH
//In practice this is really confusing and players feel like it randomly melts their beakers, but I'm not sure how else to handle it. We'll see how it goes and I can remove this if it confuses people.
@@ -986,7 +986,7 @@
var/list/cached_reagents = reagent_list
for(var/_reagent in cached_reagents)
var/datum/reagent/R = _reagent
if (R.id == reagent)
if (R.type == reagent)
if(!amount)
return R
else
@@ -1001,7 +1001,7 @@
var/list/cached_reagents = reagent_list
for(var/_reagent in cached_reagents)
var/datum/reagent/R = _reagent
if (R.id == reagent)
if (R.type == reagent)
return round(R.volume, CHEMICAL_QUANTISATION_LEVEL)
return 0
@@ -1034,7 +1034,7 @@
// We found a match, proceed to remove the reagent. Keep looping, we might find other reagents of the same type.
if(matches)
// Have our other proc handle removement
has_removed_reagent = remove_reagent(R.id, amount, safety)
has_removed_reagent = remove_reagent(R.type, amount, safety)
return has_removed_reagent
@@ -1043,14 +1043,14 @@
var/list/cached_reagents = reagent_list
for(var/reagent in cached_reagents)
var/datum/reagent/R = reagent
if(R.id == reagent_id)
if(R.type == reagent_id)
return R.data
/datum/reagents/proc/set_data(reagent_id, new_data)
var/list/cached_reagents = reagent_list
for(var/reagent in cached_reagents)
var/datum/reagent/R = reagent
if(R.id == reagent_id)
if(R.type == reagent_id)
R.data = new_data
/datum/reagents/proc/copy_data(datum/reagent/current_reagent)
@@ -1143,12 +1143,12 @@
reagents = new/datum/reagents(max_vol, flags)
reagents.my_atom = src
/proc/get_random_reagent_id() // Returns a random reagent ID minus blacklisted reagents
/proc/get_random_reagent_id() // Returns a random reagent type minus blacklisted reagents
var/static/list/random_reagents = list()
if(!random_reagents.len)
for(var/thing in subtypesof(/datum/reagent))
var/datum/reagent/R = thing
if(initial(R.can_synth))
random_reagents += initial(R.id)
random_reagents += R
var/picked_reagent = pick(random_reagents)
return picked_reagent
@@ -1,3 +1,16 @@
/proc/translate_legacy_chem_id(id)
switch (id)
if ("sacid")
return "sulphuricacid"
if ("facid")
return "fluorosulfuricacid"
if ("co2")
return "carbondioxide"
if ("mine_salve")
return "minerssalve"
else
return ckey(id)
/obj/machinery/chem_dispenser
name = "chem dispenser"
desc = "Creates and dispenses chemicals."
@@ -21,65 +34,66 @@
var/macrotier = 1
var/obj/item/reagent_containers/beaker = null
var/list/dispensable_reagents = list(
"hydrogen",
"lithium",
"carbon",
"nitrogen",
"oxygen",
"fluorine",
"sodium",
"aluminium",
"silicon",
"phosphorus",
"sulfur",
"chlorine",
"potassium",
"iron",
"copper",
"mercury",
"radium",
"water",
"ethanol",
"sugar",
"sacid",
"welding_fuel",
"silver",
"iodine",
"bromine",
"stable_plasma"
/datum/reagent/hydrogen,
/datum/reagent/lithium,
/datum/reagent/carbon,
/datum/reagent/nitrogen,
/datum/reagent/oxygen,
/datum/reagent/fluorine,
/datum/reagent/sodium,
/datum/reagent/aluminium,
/datum/reagent/silicon,
/datum/reagent/phosphorus,
/datum/reagent/sulfur,
/datum/reagent/chlorine,
/datum/reagent/potassium,
/datum/reagent/iron,
/datum/reagent/copper,
/datum/reagent/mercury,
/datum/reagent/radium,
/datum/reagent/water,
/datum/reagent/consumable/ethanol,
/datum/reagent/consumable/sugar,
/datum/reagent/toxin/acid,
/datum/reagent/fuel,
/datum/reagent/silver,
/datum/reagent/iodine,
/datum/reagent/bromine,
/datum/reagent/stable_plasma
)
//these become available once upgraded.
var/list/upgrade_reagents = list(
"oil",
"ammonia",
"ash"
/datum/reagent/oil,
/datum/reagent/ammonia,
/datum/reagent/ash
)
var/list/upgrade_reagents2 = list(
"acetone",
"phenol",
"diethylamine"
/datum/reagent/acetone,
/datum/reagent/phenol,
/datum/reagent/diethylamine
)
var/list/upgrade_reagents3 = list(
"mine_salve",
"toxin"
/datum/reagent/medicine/mine_salve,
/datum/reagent/toxin
)
var/list/emagged_reagents = list(
"space_drugs",
"plasma",
"frostoil",
"carpotoxin",
"histamine",
"morphine"
/datum/reagent/drug/space_drugs,
/datum/reagent/toxin/plasma,
/datum/reagent/consumable/frostoil,
/datum/reagent/toxin/carpotoxin,
/datum/reagent/toxin/histamine,
/datum/reagent/medicine/morphine
)
var/list/saved_recipes = list()
/obj/machinery/chem_dispenser/Initialize()
. = ..()
dispensable_reagents = sortList(dispensable_reagents)
for(var/list/L in list(dispensable_reagents, emagged_reagents, upgrade_reagents, upgrade_reagents2, upgrade_reagents3))
L = sortList(L, /proc/cmp_reagents_asc)
update_icon()
/obj/machinery/chem_dispenser/Destroy()
@@ -213,7 +227,7 @@
var/chemname = temp.name
if(is_hallucinating && prob(5))
chemname = "[pick_list_replacements("hallucination.json", "chemicals")]"
chemicals.Add(list(list("title" = chemname, "id" = temp.id)))
chemicals.Add(list(list("title" = chemname, "id" = ckey(temp.name))))
for(var/recipe in saved_recipes)
recipes.Add(list(recipe))
data["chemicals"] = chemicals
@@ -235,7 +249,7 @@
if("dispense")
if(!is_operational() || QDELETED(cell))
return
var/reagent = params["reagent"]
var/reagent = GLOB.name2reagent[params["reagent"]]
if(beaker && dispensable_reagents.Find(reagent))
var/datum/reagents/R = beaker.reagents
var/free = R.maximum_volume - R.total_volume
@@ -267,7 +281,7 @@
var/res = get_macro_resolution()
for(var/key in chemicals_to_dispense) // i suppose you could edit the list locally before passing it
var/list/keysplit = splittext(key," ")
var/r_id = keysplit[1]
var/r_id = GLOB.name2reagent[translate_legacy_chem_id(keysplit[1])]
if(beaker && dispensable_reagents.Find(r_id)) // but since we verify we have the reagent, it'll be fine
var/datum/reagents/R = beaker.reagents
var/free = R.maximum_volume - R.total_volume
@@ -299,7 +313,8 @@
var/resmismatch = FALSE
for(var/reagents in first_process)
var/list/reagent = splittext(reagents, "=")
if(dispensable_reagents.Find(reagent[1]))
var/reagent_id = GLOB.name2reagent[translate_legacy_chem_id(reagent[1])]
if(dispensable_reagents.Find(reagent_id))
if (!resmismatch && !check_macro_part(reagents, res))
resmismatch = TRUE
continue
@@ -475,45 +490,45 @@
nopower_state = null
pass_flags = PASSTABLE
dispensable_reagents = list(
"water",
"ice",
"coffee",
"cream",
"tea",
"icetea",
"cola",
"spacemountainwind",
"dr_gibb",
"space_up",
"tonic",
"sodawater",
"lemon_lime",
"pwr_game",
"shamblers",
"sugar",
"orangejuice",
"grenadine",
"limejuice",
"tomatojuice",
"lemonjuice",
"menthol"
/datum/reagent/water,
/datum/reagent/consumable/ice,
/datum/reagent/consumable/coffee,
/datum/reagent/consumable/cream,
/datum/reagent/consumable/tea,
/datum/reagent/consumable/icetea,
/datum/reagent/consumable/space_cola,
/datum/reagent/consumable/spacemountainwind,
/datum/reagent/consumable/dr_gibb,
/datum/reagent/consumable/space_up,
/datum/reagent/consumable/tonic,
/datum/reagent/consumable/sodawater,
/datum/reagent/consumable/lemon_lime,
/datum/reagent/consumable/pwr_game,
/datum/reagent/consumable/shamblers,
/datum/reagent/consumable/sugar,
/datum/reagent/consumable/orangejuice,
/datum/reagent/consumable/grenadine,
/datum/reagent/consumable/limejuice,
/datum/reagent/consumable/tomatojuice,
/datum/reagent/consumable/lemonjuice,
/datum/reagent/consumable/menthol
)
upgrade_reagents = list(
"mushroomhallucinogen",
"nothing",
"cryoxadone"
/datum/reagent/drug/mushroomhallucinogen,
/datum/reagent/consumable/nothing,
/datum/reagent/medicine/cryoxadone
)
upgrade_reagents2 = list(
"banana",
"berryjuice"
/datum/reagent/consumable/banana,
/datum/reagent/consumable/berryjuice
)
upgrade_reagents3 = null
emagged_reagents = list(
"thirteenloko",
"changelingsting",
"whiskeycola",
"mindbreaker",
"tirizene"
/datum/reagent/consumable/ethanol/thirteenloko,
/datum/reagent/consumable/ethanol/changelingsting,
/datum/reagent/consumable/ethanol/whiskey_cola,
/datum/reagent/toxin/mindbreaker,
/datum/reagent/toxin/staminatoxin
)
@@ -542,39 +557,39 @@
icon_state = "booze_dispenser"
circuit = /obj/item/circuitboard/machine/chem_dispenser/drinks/beer
dispensable_reagents = list(
"beer",
"kahlua",
"whiskey",
"wine",
"vodka",
"gin",
"rum",
"tequila",
"vermouth",
"cognac",
"ale",
"absinthe",
"hcider",
"creme_de_menthe",
"creme_de_cacao",
"triple_sec",
"sake",
"applejack"
/datum/reagent/consumable/ethanol/beer,
/datum/reagent/consumable/ethanol/kahlua,
/datum/reagent/consumable/ethanol/whiskey,
/datum/reagent/consumable/ethanol/wine,
/datum/reagent/consumable/ethanol/vodka,
/datum/reagent/consumable/ethanol/gin,
/datum/reagent/consumable/ethanol/rum,
/datum/reagent/consumable/ethanol/tequila,
/datum/reagent/consumable/ethanol/vermouth,
/datum/reagent/consumable/ethanol/cognac,
/datum/reagent/consumable/ethanol/ale,
/datum/reagent/consumable/ethanol/absinthe,
/datum/reagent/consumable/ethanol/hcider,
/datum/reagent/consumable/ethanol/creme_de_menthe,
/datum/reagent/consumable/ethanol/creme_de_cacao,
/datum/reagent/consumable/ethanol/triple_sec,
/datum/reagent/consumable/ethanol/sake,
/datum/reagent/consumable/ethanol/applejack
)
upgrade_reagents = list(
"ethanol",
"fernet"
/datum/reagent/consumable/ethanol,
/datum/reagent/consumable/ethanol/fernet
)
upgrade_reagents2 = null
upgrade_reagents3 = null
emagged_reagents = list(
"iron",
"alexander",
"clownstears",
"minttoxin",
"atomicbomb",
"aphro",
"aphro+"
/datum/reagent/iron,
/datum/reagent/consumable/ethanol/alexander,
/datum/reagent/consumable/clownstears,
/datum/reagent/toxin/minttoxin,
/datum/reagent/consumable/ethanol/atomicbomb,
/datum/reagent/drug/aphrodisiac,
/datum/reagent/drug/aphrodisiacplus
)
/obj/machinery/chem_dispenser/drinks/beer/fullupgrade //fully ugpraded stock parts, emagged
@@ -598,9 +613,9 @@
/obj/machinery/chem_dispenser/mutagen
name = "mutagen dispenser"
desc = "Creates and dispenses mutagen."
dispensable_reagents = list("mutagen")
dispensable_reagents = list(/datum/reagent/toxin/mutagen)
upgrade_reagents = null
emagged_reagents = list("plasma")
emagged_reagents = list(/datum/reagent/toxin/plasma)
/obj/machinery/chem_dispenser/mutagensaltpeter
@@ -609,19 +624,19 @@
flags_1 = NODECONSTRUCT_1
dispensable_reagents = list(
"mutagen",
"saltpetre",
"eznutriment",
"left4zednutriment",
"robustharvestnutriment",
"water",
"plantbgone",
"weedkiller",
"pestkiller",
"cryoxadone",
"ammonia",
"ash",
"diethylamine")
/datum/reagent/toxin/mutagen,
/datum/reagent/saltpetre,
/datum/reagent/plantnutriment/eznutriment,
/datum/reagent/plantnutriment/left4zednutriment,
/datum/reagent/plantnutriment/robustharvestnutriment,
/datum/reagent/water,
/datum/reagent/toxin/plantbgone,
/datum/reagent/toxin/plantbgone/weedkiller,
/datum/reagent/toxin/pestkiller,
/datum/reagent/medicine/cryoxadone,
/datum/reagent/ammonia,
/datum/reagent/ash,
/datum/reagent/diethylamine)
//same as above.
upgrade_reagents = null
upgrade_reagents2 = null
@@ -667,46 +682,46 @@
working_state = null
nopower_state = null
dispensable_reagents = list(
"hydrogen",
"lithium",
"carbon",
"nitrogen",
"oxygen",
"fluorine",
"sodium",
"aluminium",
"silicon",
"phosphorus",
"sulfur",
"chlorine",
"potassium",
"iron",
"copper",
"mercury",
"radium",
"water",
"ethanol",
"sugar",
"sacid",
"welding_fuel",
"silver",
"iodine",
"bromine",
"stable_plasma",
"oil",
"ammonia",
"ash",
"acetone",
"phenol",
"diethylamine",
"mine_salve",
"toxin",
"space_drugs",
"plasma",
"frostoil",
"uranium",
"histamine",
"morphine"
/datum/reagent/hydrogen,
/datum/reagent/lithium,
/datum/reagent/carbon,
/datum/reagent/nitrogen,
/datum/reagent/oxygen,
/datum/reagent/fluorine,
/datum/reagent/sodium,
/datum/reagent/aluminium,
/datum/reagent/silicon,
/datum/reagent/phosphorus,
/datum/reagent/sulfur,
/datum/reagent/chlorine,
/datum/reagent/potassium,
/datum/reagent/iron,
/datum/reagent/copper,
/datum/reagent/mercury,
/datum/reagent/radium,
/datum/reagent/water,
/datum/reagent/consumable/ethanol,
/datum/reagent/consumable/sugar,
/datum/reagent/toxin/acid,
/datum/reagent/fuel,
/datum/reagent/silver,
/datum/reagent/iodine,
/datum/reagent/bromine,
/datum/reagent/stable_plasma,
/datum/reagent/oil,
/datum/reagent/ammonia,
/datum/reagent/ash,
/datum/reagent/acetone,
/datum/reagent/phenol,
/datum/reagent/diethylamine,
/datum/reagent/medicine/mine_salve,
/datum/reagent/toxin,
/datum/reagent/drug/space_drugs,
/datum/reagent/toxin/plasma,
/datum/reagent/consumable/frostoil,
/datum/reagent/uranium,
/datum/reagent/toxin/histamine,
/datum/reagent/medicine/morphine
)
/obj/machinery/chem_dispenser/abductor/Initialize()
@@ -719,4 +734,4 @@
component_parts += new /obj/item/stock_parts/manipulator/femto(null)
component_parts += new /obj/item/stack/sheet/glass(null)
component_parts += new /obj/item/stock_parts/cell/bluespace(null)
RefreshParts()
RefreshParts()
@@ -186,13 +186,13 @@
var/beakerContents[0]
if(beaker)
for(var/datum/reagent/R in beaker.reagents.reagent_list)
beakerContents.Add(list(list("name" = R.name, "id" = R.id, "volume" = R.volume))) // list in a list because Byond merges the first list...
beakerContents.Add(list(list("name" = R.name, "id" = ckey(R.name), "volume" = R.volume))) // list in a list because Byond merges the first list...
data["beakerContents"] = beakerContents
var/bufferContents[0]
if(reagents.total_volume)
for(var/datum/reagent/N in reagents.reagent_list)
bufferContents.Add(list(list("name" = N.name, "id" = N.id, "volume" = N.volume))) // ^
bufferContents.Add(list(list("name" = N.name, "id" = ckey(N.name), "volume" = N.volume))) // ^
data["bufferContents"] = bufferContents
//Calculated at init time as it never changes
@@ -214,34 +214,34 @@
if("transferToBuffer")
if(beaker)
var/id = params["id"]
var/reagent = GLOB.name2reagent[params["id"]]
var/amount = text2num(params["amount"])
if (amount > 0)
end_fermi_reaction()
beaker.reagents.trans_id_to(src, id, amount)
beaker.reagents.trans_id_to(src, reagent, amount)
. = TRUE
else if (amount == -1) // -1 means custom amount
useramount = input("Enter the Amount you want to transfer:", name, useramount) as num|null
if (useramount > 0)
end_fermi_reaction()
beaker.reagents.trans_id_to(src, id, useramount)
beaker.reagents.trans_id_to(src, reagent, useramount)
. = TRUE
if("transferFromBuffer")
var/id = params["id"]
var/reagent = GLOB.name2reagent[params["id"]]
var/amount = text2num(params["amount"])
if (amount > 0)
if(mode)
reagents.trans_id_to(beaker, id, amount)
reagents.trans_id_to(beaker, reagent, amount)
. = TRUE
else
reagents.remove_reagent(id, amount)
reagents.remove_reagent(reagent, amount)
. = TRUE
else if (amount == -1) // -1 means custom amount
useramount = input("Enter the Amount you want to transfer:", name, useramount) as num|null
if (useramount > 0)
end_fermi_reaction()
reagents.trans_id_to(beaker, id, useramount)
reagents.trans_id_to(beaker, reagent, useramount)
. = TRUE
if("toggleMode")
@@ -423,7 +423,7 @@
//END CITADEL ADDITIONS
if("analyzeBeak")
var/datum/reagent/R = GLOB.chemical_reagents_list[params["id"]]
var/datum/reagent/R = GLOB.name2reagent[params["id"]]
if(R)
var/state = "Unknown"
if(initial(R.reagent_state) == 1)
@@ -434,11 +434,11 @@
state = "Gas"
var/const/P = 3 //The number of seconds between life ticks
var/T = initial(R.metabolization_rate) * (60 / P)
var/datum/chemical_reaction/Rcr = get_chemical_reaction(R.id)
var/datum/chemical_reaction/Rcr = get_chemical_reaction(R.type)
if(Rcr && Rcr.FermiChem)
fermianalyze = TRUE
var/pHpeakCache = (Rcr.OptimalpHMin + Rcr.OptimalpHMax)/2
var/datum/reagent/targetReagent = beaker.reagents.has_reagent("[R.id]")
var/datum/reagent/targetReagent = beaker.reagents.has_reagent(R.type)
if(!targetReagent)
CRASH("Tried to find a reagent that doesn't exist in the chem_master!")
@@ -450,7 +450,7 @@
return
if("analyzeBuff")
var/datum/reagent/R = GLOB.chemical_reagents_list[params["id"]]
var/datum/reagent/R = GLOB.name2reagent[params["id"]]
if(R)
var/state = "Unknown"
if(initial(R.reagent_state) == 1)
@@ -463,9 +463,9 @@
var/T = initial(R.metabolization_rate) * (60 / P)
if(istype(R, /datum/reagent/fermi))
fermianalyze = TRUE
var/datum/chemical_reaction/Rcr = get_chemical_reaction(R.id)
var/datum/chemical_reaction/Rcr = get_chemical_reaction(R.type)
var/pHpeakCache = (Rcr.OptimalpHMin + Rcr.OptimalpHMax)/2
var/datum/reagent/targetReagent = reagents.has_reagent("[R.id]")
var/datum/reagent/targetReagent = reagents.has_reagent(R.type)
if(!targetReagent)
CRASH("Tried to find a reagent that doesn't exist in the chem_master!")
@@ -8,8 +8,8 @@
flags_1 = NODECONSTRUCT_1
use_power = NO_POWER_USE
var/static/list/shortcuts = list(
"meth" = "methamphetamine",
"tricord" = "tricordrazine"
"meth" = /datum/reagent/drug/methamphetamine,
"tricord" = /datum/reagent/medicine/tricordrazine
)
/obj/machinery/chem_dispenser/chem_synthesizer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \
@@ -31,13 +31,13 @@
beaker = null
. = TRUE
if("input")
var/input_reagent = replacetext(lowertext(input("Enter the name of any liquid", "Input") as text), " ", "") //95% of the time, the reagent id is a lowercase/no spaces version of the name
var/input_reagent = replacetext(lowertext(input("Enter the name of any reagent", "Input") as text), " ", "") //95% of the time, the reagent types is a lowercase, no spaces / underscored version of the name
if(shortcuts[input_reagent])
input_reagent = shortcuts[input_reagent]
else
input_reagent = find_reagent(input_reagent)
if(!input_reagent || !GLOB.chemical_reagents_list[input_reagent])
say("OUT OF RANGE")
if(!input_reagent)
say("REAGENT NOT FOUND")
return
else
if(!beaker)
@@ -144,9 +144,9 @@
var/datum/reagent/blood/B = locate() in beaker.reagents.reagent_list
if(B)
data["has_blood"] = TRUE
data["blood"] = list()
data["blood"]["dna"] = B.data["blood_DNA"] || "none"
data["blood"]["type"] = B.data["blood_type"] || "none"
data[/datum/reagent/blood] = list()
data[/datum/reagent/blood]["dna"] = B.data["blood_DNA"] || "none"
data[/datum/reagent/blood]["type"] = B.data["blood_type"] || "none"
data["viruses"] = get_viruses_data(B)
data["resistances"] = get_resistance_data(B)
if(SYMPTOM_DETAILS)
@@ -192,7 +192,7 @@
var/obj/item/reagent_containers/glass/bottle/B = new(drop_location())
B.name = "[A.name] culture bottle"
B.desc = "A small bottle. Contains [A.agent] culture in synthblood medium."
B.reagents.add_reagent("blood", 20, data)
B.reagents.add_reagent(/datum/reagent/blood, 20, data)
wait = TRUE
update_icon()
var/turf/source_turf = get_turf(src)
@@ -204,7 +204,7 @@
var/datum/disease/D = SSdisease.archive_diseases[id]
var/obj/item/reagent_containers/glass/bottle/B = new(drop_location())
B.name = "[D.name] vaccine bottle"
B.reagents.add_reagent("vaccine", 15, list(id))
B.reagents.add_reagent(/datum/reagent/vaccine, 15, list(id))
wait = TRUE
update_icon()
addtimer(CALLBACK(src, .proc/reset_replicator_cooldown), 200)
@@ -299,18 +299,18 @@
/obj/machinery/reagentgrinder/proc/mix_complete()
if(beaker?.reagents.total_volume)
//Recipe to make Butter
var/butter_amt = FLOOR(beaker.reagents.get_reagent_amount("milk") / MILK_TO_BUTTER_COEFF, 1)
beaker.reagents.remove_reagent("milk", MILK_TO_BUTTER_COEFF * butter_amt)
var/butter_amt = FLOOR(beaker.reagents.get_reagent_amount(/datum/reagent/consumable/milk) / MILK_TO_BUTTER_COEFF, 1)
beaker.reagents.remove_reagent(/datum/reagent/consumable/milk, MILK_TO_BUTTER_COEFF * butter_amt)
for(var/i in 1 to butter_amt)
new /obj/item/reagent_containers/food/snacks/butter(drop_location())
//Recipe to make Mayonnaise
if (beaker.reagents.has_reagent("eggyolk"))
var/amount = beaker.reagents.get_reagent_amount("eggyolk")
beaker.reagents.remove_reagent("eggyolk", amount)
beaker.reagents.add_reagent("mayonnaise", amount)
if (beaker.reagents.has_reagent(/datum/reagent/consumable/eggyolk))
var/amount = beaker.reagents.get_reagent_amount(/datum/reagent/consumable/eggyolk)
beaker.reagents.remove_reagent(/datum/reagent/consumable/eggyolk, amount)
beaker.reagents.add_reagent(/datum/reagent/consumable/mayonnaise, amount)
//Moonsugar for skooma
if(beaker.reagents.has_reagent("sugar") && beaker.reagents.has_reagent("moonshine"))
var/amount = min(beaker.reagents.get_reagent_amount("sugar"), beaker.reagents.get_reagent_amount("moonshine"))
beaker.reagents.remove_reagent("sugar", amount)
beaker.reagents.remove_reagent("moonshine", amount)
beaker.reagents.add_reagent("moonsugar", amount*2)
if(beaker.reagents.has_reagent(/datum/reagent/consumable/sugar) && beaker.reagents.has_reagent(/datum/reagent/consumable/ethanol/moonshine))
var/amount = min(beaker.reagents.get_reagent_amount(/datum/reagent/consumable/sugar), beaker.reagents.get_reagent_amount(/datum/reagent/consumable/ethanol/moonshine))
beaker.reagents.remove_reagent(/datum/reagent/consumable/sugar, amount)
beaker.reagents.remove_reagent(/datum/reagent/consumable/ethanol/moonshine, amount)
beaker.reagents.add_reagent(/datum/reagent/moonsugar, amount*2)
+29 -21
View File
@@ -1,12 +1,20 @@
#define REM REAGENTS_EFFECT_MULTIPLIER
GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
/proc/build_name2reagent()
. = list()
for (var/t in subtypesof(/datum/reagent))
var/datum/reagent/R = t
if (length(initial(R.name)))
.[ckey(initial(R.name))] = t
//Various reagents
//Toxin & acid reagents
//Hydroponics stuff
/datum/reagent
var/name = "Reagent"
var/id = "reagent"
var/description = ""
var/specific_heat = SPECIFIC_HEAT_DEFAULT //J/(K*mol)
var/taste_description = "metaphorical salt"
@@ -58,7 +66,7 @@
var/modifier = CLAMP((1 - touch_protection), 0, 1)
var/amount = round(reac_volume*modifier, 0.1)
if(amount >= 0.5)
M.reagents.add_reagent(id, amount)
M.reagents.add_reagent(type, amount)
return 1
/datum/reagent/proc/reaction_obj(obj/O, volume)
@@ -70,7 +78,7 @@
/datum/reagent/proc/on_mob_life(mob/living/carbon/M)
current_cycle++
if(holder)
holder.remove_reagent(src.id, metabolization_rate * M.metabolism_efficiency) //By default it slowly disappears.
holder.remove_reagent(type, metabolization_rate * M.metabolism_efficiency) //By default it slowly disappears.
return
//called when a mob processes chems when dead.
@@ -79,7 +87,7 @@
return
current_cycle++
if(holder)
holder.remove_reagent(src.id, metabolization_rate * M.metabolism_efficiency) //By default it slowly disappears.
holder.remove_reagent(type, metabolization_rate * M.metabolism_efficiency) //By default it slowly disappears.
return
// Called when this reagent is first added to a mob
@@ -88,19 +96,19 @@
return
var/mob/living/carbon/M = L
if (purity == 1)
log_game("CHEM: [L] ckey: [L.key] has ingested [volume]u of [id]")
log_game("CHEM: [L] ckey: [L.key] has ingested [volume]u of [type]")
return
if(cached_purity == 1)
cached_purity = purity
else if(purity < 0)
CRASH("Purity below 0 for chem: [id], Please let Fermis Know!")
CRASH("Purity below 0 for chem: [type], Please let Fermis Know!")
if(chemical_flags & REAGENT_DONOTSPLIT)
return
if ((inverse_chem_val > purity) && (inverse_chem))//Turns all of a added reagent into the inverse chem
M.reagents.remove_reagent(id, amount, FALSE)
M.reagents.remove_reagent(type, amount, FALSE)
M.reagents.add_reagent(inverse_chem, amount, FALSE, other_purity = 1-cached_purity)
var/datum/reagent/R = M.reagents.has_reagent("[inverse_chem]")
var/datum/reagent/R = M.reagents.has_reagent(inverse_chem)
if(R.chemical_flags & REAGENT_SNEAKYNAME)
R.name = name//Negative effects are hidden
if(R.chemical_flags & REAGENT_INVISIBLE)
@@ -110,9 +118,9 @@
else if (impure_chem)
var/impureVol = amount * (1 - purity) //turns impure ratio into impure chem
if(!(chemical_flags & REAGENT_SPLITRETAINVOL))
M.reagents.remove_reagent(id, (impureVol), FALSE)
M.reagents.remove_reagent(type, (impureVol), FALSE)
M.reagents.add_reagent(impure_chem, impureVol, FALSE, other_purity = 1-cached_purity)
log_game("FERMICHEM: [M] ckey: [M.key] has ingested [volume - impureVol]u of [id]")
log_game("FERMICHEM: [M] ckey: [M.key] has ingested [volume - impureVol]u of [type]")
log_game("FERMICHEM: [M] ckey: [M.key] has ingested [volume]u of [impure_chem]")
return
@@ -140,18 +148,18 @@
if(!iscarbon(M))
return
if (purity == 1)
log_game("FERMICHEM: [M] ckey: [M.key] has ingested [volume]u of [id]")
log_game("FERMICHEM: [M] ckey: [M.key] has ingested [volume]u of [type]")
return
cached_purity = purity //purity SHOULD be precalculated from the add_reagent, update cache.
if (purity < 0)
CRASH("Purity below 0 for chem: [id], Please let Fermis Know!")
CRASH("Purity below 0 for chem: [type], Please let Fermis Know!")
if(chemical_flags & REAGENT_DONOTSPLIT)
return
if ((inverse_chem_val > purity) && (inverse_chem)) //INVERT
M.reagents.remove_reagent(id, amount, FALSE)
M.reagents.remove_reagent(type, amount, FALSE)
M.reagents.add_reagent(inverse_chem, amount, FALSE, other_purity = 1-cached_purity)
var/datum/reagent/R = M.reagents.has_reagent("[inverse_chem]")
var/datum/reagent/R = M.reagents.has_reagent(inverse_chem)
if(R.chemical_flags & REAGENT_SNEAKYNAME)
R.name = name//Negative effects are hidden
if(R.chemical_flags & REAGENT_INVISIBLE)
@@ -161,9 +169,9 @@
else if (impure_chem) //SPLIT
var/impureVol = amount * (1 - purity)
if(!(chemical_flags & REAGENT_SPLITRETAINVOL))
M.reagents.remove_reagent(id, impureVol, FALSE)
M.reagents.remove_reagent(type, impureVol, FALSE)
M.reagents.add_reagent(impure_chem, impureVol, FALSE, other_purity = 1-cached_purity)
log_game("FERMICHEM: [M] ckey: [M.key] has merged [volume - impureVol]u of [id]")
log_game("FERMICHEM: [M] ckey: [M.key] has merged [volume - impureVol]u of [type]")
log_game("FERMICHEM: [M] ckey: [M.key] has merged [volume]u of [impure_chem]")
return
@@ -180,29 +188,29 @@
/datum/reagent/proc/overdose_start(mob/living/M)
to_chat(M, "<span class='userdanger'>You feel like you took too much of [name]!</span>")
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/overdose, name)
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/overdose, name)
return
/datum/reagent/proc/addiction_act_stage1(mob/living/M)
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/withdrawal_light, name)
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/withdrawal_light, name)
if(prob(30))
to_chat(M, "<span class='notice'>You feel like having some [name] right about now.</span>")
return
/datum/reagent/proc/addiction_act_stage2(mob/living/M)
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/withdrawal_medium, name)
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/withdrawal_medium, name)
if(prob(30))
to_chat(M, "<span class='notice'>You feel like you need [name]. You just can't get enough.</span>")
return
/datum/reagent/proc/addiction_act_stage3(mob/living/M)
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/withdrawal_severe, name)
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/withdrawal_severe, name)
if(prob(30))
to_chat(M, "<span class='danger'>You have an intense craving for [name].</span>")
return
/datum/reagent/proc/addiction_act_stage4(mob/living/M)
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/withdrawal_critical, name)
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/withdrawal_critical, name)
if(prob(30))
to_chat(M, "<span class='boldannounce'>You're not feeling good at all! You really need some [name].</span>")
return
@@ -8,7 +8,6 @@
/datum/reagent/consumable/ethanol
name = "Ethanol"
id = "ethanol"
description = "A well-known alcohol with a variety of applications."
color = "#404030" // rgb: 64, 64, 48
nutriment_factor = 0
@@ -81,7 +80,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/beer
name = "Beer"
id = "beer"
description = "An alcoholic beverage brewed since ancient times on Old Earth. Still popular today."
color = "#664300" // rgb: 102, 67, 0
nutriment_factor = 1 * REAGENTS_METABOLISM
@@ -94,7 +92,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/beer/light
name = "Light Beer"
id = "light_beer"
description = "An alcoholic beverage brewed since ancient times on Old Earth. This variety has reduced calorie and alcohol content."
boozepwr = 5 //Space Europeans hate it
taste_description = "dish water"
@@ -105,7 +102,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/beer/green
name = "Green Beer"
id = "greenbeer"
description = "An alcoholic beverage brewed since ancient times on Old Earth. This variety is dyed a festive green."
color = "#A8E61D"
taste_description = "green piss water"
@@ -125,7 +121,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/kahlua
name = "Kahlua"
id = "kahlua"
description = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936!"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 45
@@ -148,7 +143,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/whiskey
name = "Whiskey"
id = "whiskey"
description = "A superb and well-aged single-malt whiskey. Damn."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 75
@@ -162,7 +156,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/thirteenloko
name = "Thirteen Loko"
id = "thirteenloko"
description = "A potent mixture of caffeine and alcohol."
color = "#102000" // rgb: 16, 32, 0
nutriment_factor = 1 * REAGENTS_METABOLISM
@@ -227,7 +220,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/vodka
name = "Vodka"
id = "vodka"
description = "Number one drink AND fueling choice for Russians worldwide."
color = "#0064C8" // rgb: 0, 100, 200
boozepwr = 65
@@ -245,7 +237,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/bilk
name = "Bilk"
id = "bilk"
description = "This appears to be beer mixed with milk. Disgusting."
color = "#895C4C" // rgb: 137, 92, 76
nutriment_factor = 2 * REAGENTS_METABOLISM
@@ -264,7 +255,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/threemileisland
name = "Three Mile Island Iced Tea"
id = "threemileisland"
description = "Made for a woman, strong enough for a man."
color = "#666340" // rgb: 102, 99, 64
boozepwr = 10
@@ -282,7 +272,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/gin
name = "Gin"
id = "gin"
description = "It's gin. In space. I say, good sir."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 45
@@ -295,7 +284,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/rum
name = "Rum"
id = "rum"
description = "Yohoho and all that."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 60
@@ -309,7 +297,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/tequila
name = "Tequila"
id = "tequila"
description = "A strong and mildly flavoured, Mexican produced spirit. Feeling thirsty, hombre?"
color = "#FFFF91" // rgb: 255, 255, 145
boozepwr = 70
@@ -323,7 +310,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/vermouth
name = "Vermouth"
id = "vermouth"
description = "You suddenly feel a craving for a martini..."
color = "#91FF91" // rgb: 145, 255, 145
boozepwr = 45
@@ -337,7 +323,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/wine
name = "Wine"
id = "wine"
description = "A premium alcoholic beverage made from distilled grape juice."
color = "#7E4043" // rgb: 126, 64, 67
boozepwr = 35
@@ -351,7 +336,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/lizardwine
name = "Lizard wine"
id = "lizardwine"
description = "An alcoholic beverage from Space China, made by infusing lizard tails in ethanol."
color = "#7E4043" // rgb: 126, 64, 67
boozepwr = 45
@@ -362,7 +346,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/grappa
name = "Grappa"
id = "grappa"
description = "A fine Italian brandy, for when regular wine just isn't alcoholic enough for you."
color = "#F8EBF1"
boozepwr = 60
@@ -375,7 +358,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/cognac
name = "Cognac"
id = "cognac"
description = "A sweet and strongly alcoholic drink, made after numerous distillations and years of maturing. Classy as fornication."
color = "#AB3C05" // rgb: 171, 60, 5
boozepwr = 75
@@ -389,7 +371,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/absinthe
name = "Absinthe"
id = "absinthe"
description = "A powerful alcoholic drink. Rumored to cause hallucinations but does not."
color = rgb(10, 206, 0)
boozepwr = 80 //Very strong even by default
@@ -407,7 +388,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/hooch
name = "Hooch"
id = "hooch"
description = "Either someone's failure at cocktail making or attempt in alcohol production. In any case, do you really want to drink that?"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 100
@@ -424,7 +404,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/ale
name = "Ale"
id = "ale"
description = "A dark alcoholic beverage made with malted barley and yeast."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 65
@@ -437,7 +416,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/goldschlager
name = "Goldschlager"
id = "goldschlager"
description = "100 proof cinnamon schnapps, made for alcoholic teen girls on spring break."
color = "#FFFF91" // rgb: 255, 255, 145
boozepwr = 25
@@ -451,7 +429,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/patron
name = "Patron"
id = "patron"
description = "Tequila with silver in it, a favorite of alcoholic women in the club scene."
color = "#585840" // rgb: 88, 88, 64
boozepwr = 60
@@ -466,7 +443,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/gintonic
name = "Gin and Tonic"
id = "gintonic"
description = "An all time classic, mild cocktail."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 25
@@ -480,7 +456,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/rum_coke
name = "Rum and Coke"
id = "rumcoke"
description = "Rum, mixed with cola."
taste_description = "cola"
boozepwr = 40
@@ -494,7 +469,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/cuba_libre
name = "Cuba Libre"
id = "cubalibre"
description = "Viva la Revolucion! Viva Cuba Libre!"
color = "#3E1B00" // rgb: 62, 27, 0
boozepwr = 50
@@ -517,7 +491,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/whiskey_cola
name = "Whiskey Cola"
id = "whiskeycola"
description = "Whiskey, mixed with cola. Surprisingly refreshing."
color = "#3E1B00" // rgb: 62, 27, 0
boozepwr = 70
@@ -530,7 +503,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/martini
name = "Classic Martini"
id = "martini"
description = "Vermouth with Gin. Not quite how 007 enjoyed it, but still delicious."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 60
@@ -543,7 +515,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/vodkamartini
name = "Vodka Martini"
id = "vodkamartini"
description = "Vodka with Gin. Not quite how 007 enjoyed it, but still delicious."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 65
@@ -557,7 +528,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/white_russian
name = "White Russian"
id = "whiterussian"
description = "That's just, like, your opinion, man..."
color = "#A68340" // rgb: 166, 131, 64
boozepwr = 50
@@ -570,7 +540,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/screwdrivercocktail
name = "Screwdriver"
id = "screwdrivercocktail"
description = "Vodka, mixed with plain ol' orange juice. The result is surprisingly delicious."
color = "#A68310" // rgb: 166, 131, 16
boozepwr = 55
@@ -588,7 +557,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/booger
name = "Booger"
id = "booger"
description = "Ewww..."
color = "#8CFF8C" // rgb: 140, 255, 140
boozepwr = 45
@@ -600,7 +568,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/bloody_mary
name = "Bloody Mary"
id = "bloodymary"
description = "A strange yet pleasurable mixture made of vodka, tomato and lime juice. Or at least you THINK the red stuff is tomato juice."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 55
@@ -620,7 +587,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/brave_bull
name = "Brave Bull"
id = "bravebull"
description = "It's just as effective as Dutch-Courage!"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 80
@@ -645,7 +611,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/tequila_sunrise
name = "Tequila Sunrise"
id = "tequilasunrise"
description = "Tequila, Grenadine, and Orange Juice."
color = "#FFE48C" // rgb: 255, 228, 140
boozepwr = 45
@@ -664,7 +629,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/tequila_sunrise/on_mob_life(mob/living/carbon/M)
if(QDELETED(light_holder))
M.reagents.del_reagent("tequilasunrise") //If we lost our light object somehow, remove the reagent
M.reagents.del_reagent(type) //If we lost our light object somehow, remove the reagent
else if(light_holder.loc != M)
light_holder.forceMove(M)
return ..()
@@ -675,7 +640,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/toxins_special
name = "Toxins Special"
id = "toxinsspecial"
description = "This thing is ON FIRE! CALL THE DAMN SHUTTLE!"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 25
@@ -693,7 +657,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/beepsky_smash
name = "Beepsky Smash"
id = "beepskysmash"
description = "Drink this and prepare for the LAW."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 90 //THE FIST OF THE LAW IS STRONG AND HARD
@@ -738,7 +701,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/irish_cream
name = "Irish Cream"
id = "irishcream"
description = "Whiskey-imbued cream, what else would you expect from the Irish?"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 50
@@ -751,7 +713,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/manly_dorf
name = "The Manly Dorf"
id = "manlydorf"
description = "Beer and Ale, brought together in a delicious mix. Intended for true men only."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 100 //For the manly only
@@ -779,7 +740,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/longislandicedtea
name = "Long Island Iced Tea"
id = "longislandicedtea"
description = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
@@ -792,7 +752,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/moonshine
name = "Moonshine"
id = "moonshine"
description = "You've really hit rock bottom now... your liver packed its bags and left last night."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 95
@@ -804,7 +763,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/b52
name = "B-52"
id = "b52"
description = "Coffee, Irish Cream, and cognac. You will get bombed."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 85
@@ -821,7 +779,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/irishcoffee
name = "Irish Coffee"
id = "irishcoffee"
description = "Coffee, and alcohol. More fun than a Mimosa to drink in the morning."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
@@ -834,7 +791,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/margarita
name = "Margarita"
id = "margarita"
description = "On the rocks with salt on the rim. Arriba~!"
color = "#8CFF8C" // rgb: 140, 255, 140
boozepwr = 35
@@ -847,7 +803,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/black_russian
name = "Black Russian"
id = "blackrussian"
description = "For the lactose-intolerant. Still as classy as a White Russian."
color = "#360000" // rgb: 54, 0, 0
boozepwr = 70
@@ -861,7 +816,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/manhattan
name = "Manhattan"
id = "manhattan"
description = "The Detective's undercover drink of choice. He never could stomach gin..."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 30
@@ -875,7 +829,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/manhattan_proj
name = "Manhattan Project"
id = "manhattan_proj"
description = "A scientist's drink of choice, for pondering ways to blow up the station."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 45
@@ -893,7 +846,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/whiskeysoda
name = "Whiskey Soda"
id = "whiskeysoda"
description = "For the more refined griffon."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 70
@@ -906,7 +858,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/antifreeze
name = "Anti-freeze"
id = "antifreeze"
description = "The ultimate refreshment. Not what it sounds like."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
@@ -923,7 +874,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/barefoot
name = "Barefoot"
id = "barefoot"
description = "Barefoot and pregnant."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 45
@@ -944,7 +894,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/snowwhite
name = "Snow White"
id = "snowwhite"
description = "A cold refreshment."
color = "#FFFFFF" // rgb: 255, 255, 255
boozepwr = 35
@@ -957,7 +906,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/demonsblood //Prevents the imbiber from being dragged into a pool of blood by a slaughter demon.
name = "Demon's Blood"
id = "demonsblood"
description = "AHHHH!!!!"
color = "#820000" // rgb: 130, 0, 0
boozepwr = 75
@@ -970,7 +918,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/devilskiss //If eaten by a slaughter demon, the demon will regret it.
name = "Devil's Kiss"
id = "devilskiss"
description = "Creepy time!"
color = "#A68310" // rgb: 166, 131, 16
boozepwr = 70
@@ -983,7 +930,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/vodkatonic
name = "Vodka and Tonic"
id = "vodkatonic"
description = "For when a gin and tonic isn't Russian enough."
color = "#0064C8" // rgb: 0, 100, 200
boozepwr = 70
@@ -996,7 +942,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/ginfizz
name = "Gin Fizz"
id = "ginfizz"
description = "Refreshingly lemony, deliciously dry."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 45
@@ -1009,7 +954,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/bahama_mama
name = "Bahama Mama"
id = "bahama_mama"
description = "Tropical cocktail."
color = "#FF7F3B" // rgb: 255, 127, 59
boozepwr = 35
@@ -1022,7 +966,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/singulo
name = "Singulo"
id = "singulo"
description = "A blue-space beverage!"
color = "#2E6671" // rgb: 46, 102, 113
boozepwr = 35
@@ -1035,7 +978,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/sbiten
name = "Sbiten"
id = "sbiten"
description = "A spicy Vodka! Might be a little hot for the little guys!"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 70
@@ -1052,7 +994,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/red_mead
name = "Red Mead"
id = "red_mead"
description = "The true Viking drink! Even though it has a strange red color."
color = "#C73C00" // rgb: 199, 60, 0
boozepwr = 31 //Red drinks are stronger
@@ -1065,7 +1006,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/mead
name = "Mead"
id = "mead"
description = "A Viking drink, though a cheap one."
color = "#664300" // rgb: 102, 67, 0
nutriment_factor = 1 * REAGENTS_METABOLISM
@@ -1079,7 +1019,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/iced_beer
name = "Iced Beer"
id = "iced_beer"
description = "A beer which is so cold the air around it freezes."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 15
@@ -1095,7 +1034,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/grog
name = "Grog"
id = "grog"
description = "Watered down rum, Nanotrasen approves!"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 1 //Basically nothing
@@ -1107,7 +1045,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/aloe
name = "Aloe"
id = "aloe"
description = "So very, very, very good."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
@@ -1120,7 +1057,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/andalusia
name = "Andalusia"
id = "andalusia"
description = "A nice, strangely named drink."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 40
@@ -1133,7 +1069,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/alliescocktail
name = "Allies Cocktail"
id = "alliescocktail"
description = "A drink made from your allies. Not as sweet as those made from your enemies."
color = "#664300" // rgb: 102, 67, 0
boozepwr = 45
@@ -1146,7 +1081,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/acid_spit
name = "Acid Spit"
id = "acidspit"
description = "A drink for the daring, can be deadly if incorrectly prepared!"
color = "#365000" // rgb: 54, 80, 0
boozepwr = 80
@@ -1159,7 +1093,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/amasec
name = "Amasec"
id = "amasec"
description = "Official drink of the Nanotrasen Gun-Club!"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 35
@@ -1172,7 +1105,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/changelingsting
name = "Changeling Sting"
id = "changelingsting"
description = "You take a tiny sip and feel a burning sensation..."
color = "#2E6671" // rgb: 46, 102, 113
boozepwr = 95
@@ -1193,7 +1125,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/irishcarbomb
name = "Irish Car Bomb"
id = "irishcarbomb"
description = "Mmm, tastes like chocolate cake..."
color = "#2E6671" // rgb: 46, 102, 113
boozepwr = 25
@@ -1206,7 +1137,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/syndicatebomb
name = "Syndicate Bomb"
id = "syndicatebomb"
description = "Tastes like terrorism!"
color = "#2E6671" // rgb: 46, 102, 113
boozepwr = 90
@@ -1224,7 +1154,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/erikasurprise
name = "Erika Surprise"
id = "erikasurprise"
description = "The surprise is, it's green!"
color = "#2E6671" // rgb: 46, 102, 113
boozepwr = 35
@@ -1237,7 +1166,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/driestmartini
name = "Driest Martini"
id = "driestmartini"
description = "Only for the experienced. You think you see sand floating in the glass."
nutriment_factor = 1 * REAGENTS_METABOLISM
color = "#2E6671" // rgb: 46, 102, 113
@@ -1251,7 +1179,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/bananahonk
name = "Banana Honk"
id = "bananahonk"
description = "A drink from Clown Heaven."
nutriment_factor = 1 * REAGENTS_METABOLISM
color = "#FFFF91" // rgb: 255, 255, 140
@@ -1271,7 +1198,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/silencer
name = "Silencer"
id = "silencer"
description = "A drink from Mime Heaven."
nutriment_factor = 1 * REAGENTS_METABOLISM
color = "#664300" // rgb: 102, 67, 0
@@ -1291,7 +1217,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/drunkenblumpkin
name = "Drunken Blumpkin"
id = "drunkenblumpkin"
description = "A weird mix of whiskey and blumpkin juice."
color = "#1EA0FF" // rgb: 102, 67, 0
boozepwr = 50
@@ -1304,7 +1229,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/whiskey_sour //Requested since we had whiskey cola and soda but not sour.
name = "Whiskey Sour"
id = "whiskey_sour"
description = "Lemon juice/whiskey/sugar mixture. Moderate alcohol content."
color = rgb(255, 201, 49)
boozepwr = 35
@@ -1317,7 +1241,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/hcider
name = "Hard Cider"
id = "hcider"
description = "Apple juice, for adults."
color = "#CD6839"
nutriment_factor = 1 * REAGENTS_METABOLISM
@@ -1331,7 +1254,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/fetching_fizz //A reference to one of my favorite games of all time. Pulls nearby ores to the imbiber!
name = "Fetching Fizz"
id = "fetching_fizz"
description = "Whiskey sour/iron/uranium mixture resulting in a highly magnetic slurry. Mild alcohol content." //Requires no alcohol to make but has alcohol anyway because ~magic~
color = rgb(255, 91, 15)
boozepwr = 10
@@ -1351,7 +1273,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
//Another reference. Heals those in critical condition extremely quickly.
/datum/reagent/consumable/ethanol/hearty_punch
name = "Hearty Punch"
id = "hearty_punch"
description = "Brave bull/syndicate bomb/absinthe mixture resulting in an energizing beverage. Mild alcohol content."
color = rgb(140, 0, 0)
boozepwr = 90
@@ -1375,7 +1296,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/bacchus_blessing //An EXTREMELY powerful drink. Smashed in seconds, dead in minutes.
name = "Bacchus' Blessing"
id = "bacchus_blessing"
description = "Unidentifiable mixture. Unmeasurably high alcohol content."
color = rgb(51, 19, 3) //Sickly brown
boozepwr = 300 //I warned you
@@ -1388,7 +1308,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/atomicbomb
name = "Atomic Bomb"
id = "atomicbomb"
description = "Nuclear proliferation never tasted so good."
color = "#666300" // rgb: 102, 99, 0
boozepwr = 0 //custom drunk effect
@@ -1418,7 +1337,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/gargle_blaster
name = "Pan-Galactic Gargle Blaster"
id = "gargleblaster"
description = "Whoah, this stuff looks volatile!"
color = "#664300" // rgb: 102, 67, 0
boozepwr = 0 //custom drunk effect
@@ -1447,7 +1365,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/neurotoxin
name = "Neurotoxin"
id = "neurotoxin"
description = "A strong neurotoxin that puts the subject into a death-like state."
color = "#2E2E61" // rgb: 46, 46, 97
boozepwr = 50
@@ -1458,9 +1375,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_name = "Neurotoxin"
glass_desc = "A drink that is guaranteed to knock you silly."
//SplitChem = TRUE
impure_chem = "neuroweak"
impure_chem = /datum/reagent/consumable/ethanol/neuroweak
inverse_chem_val = 0.5 //Clear conversion
inverse_chem = "neuroweak"
inverse_chem = /datum/reagent/consumable/ethanol/neuroweak
value = 4
/datum/reagent/consumable/ethanol/neurotoxin/proc/pickt()
@@ -1470,12 +1387,12 @@ All effects don't start immediately, but rather get worse over time; the rate is
M.set_drugginess(50)
M.dizziness +=2
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1*REM, 150)
if(prob(20) && !holder.has_reagent("neuroweak"))
if(prob(20) && !holder.has_reagent(/datum/reagent/consumable/ethanol/neuroweak))
M.adjustStaminaLoss(10)
M.drop_all_held_items()
to_chat(M, "<span class='notice'>You cant feel your hands!</span>")
if(current_cycle > 5)
if(prob(20) && !holder.has_reagent("neuroweak"))
if(prob(20) && !holder.has_reagent(/datum/reagent/consumable/ethanol/neuroweak))
var/t = pickt()
ADD_TRAIT(M, t, type)
M.adjustStaminaLoss(10)
@@ -1499,19 +1416,18 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/neuroweak
name = "Neuro-Smash"
id = "neuroweak"
description = "A mostly safe alcoholic drink for the true daredevils. Counteracts Neurotoxins."
boozepwr = 60
pH = 8
value = 3
/datum/reagent/consumable/ethanol/neuroweak/on_mob_life(mob/living/carbon/M)
if(holder.has_reagent("neurotoxin"))
if(holder.has_reagent(/datum/reagent/consumable/ethanol/neurotoxin))
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1*REM, 150)
M.reagents.remove_reagent("neurotoxin", 1.5 * REAGENTS_METABOLISM, FALSE)
if(holder.has_reagent("fentanyl"))
M.reagents.remove_reagent(/datum/reagent/consumable/ethanol/neurotoxin, 1.5 * REAGENTS_METABOLISM, FALSE)
else if(holder.has_reagent(/datum/reagent/toxin/fentanyl))
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1*REM, 150)
M.reagents.remove_reagent("fentanyl", 0.75 * REAGENTS_METABOLISM, FALSE)
M.reagents.remove_reagent(/datum/reagent/toxin/fentanyl, 0.75 * REAGENTS_METABOLISM, FALSE)
else
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -0.5*REM, 150)
M.dizziness +=2
@@ -1519,7 +1435,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/hippies_delight
name = "Hippie's Delight"
id = "hippiesdelight"
description = "You just don't get it maaaan."
color = "#664300" // rgb: 102, 67, 0
nutriment_factor = 0
@@ -1565,7 +1480,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/eggnog
name = "Eggnog"
id = "eggnog"
description = "The traditional way to get absolutely hammered at a Christmas party."
color = "#fcfdc6" // rgb: 252, 253, 198
nutriment_factor = 2 * REAGENTS_METABOLISM
@@ -1580,7 +1494,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/narsour
name = "Nar'Sour"
id = "narsour"
description = "Side effects include self-mutilation and hoarding plasteel."
color = RUNE_COLOR_DARKRED
boozepwr = 10
@@ -1598,7 +1511,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/triple_sec
name = "Triple Sec"
id = "triple_sec"
description = "A sweet and vibrant orange liqueur."
color = "#ffcc66"
boozepwr = 30
@@ -1610,7 +1522,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/creme_de_menthe
name = "Creme de Menthe"
id = "creme_de_menthe"
description = "A minty liqueur excellent for refreshing, cool drinks."
color = "#00cc00"
boozepwr = 20
@@ -1622,7 +1533,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/creme_de_cacao
name = "Creme de Cacao"
id = "creme_de_cacao"
description = "A chocolatey liqueur excellent for adding dessert notes to beverages and bribing sororities."
color = "#996633"
boozepwr = 20
@@ -1634,7 +1544,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/quadruple_sec
name = "Quadruple Sec"
id = "quadruple_sec"
description = "Kicks just as hard as licking the powercell on a baton, but tastier."
color = "#cc0000"
boozepwr = 35
@@ -1654,7 +1563,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/quintuple_sec
name = "Quintuple Sec"
id = "quintuple_sec"
description = "Law, Order, Alcohol, and Police Brutality distilled into one single elixir of JUSTICE."
color = "#ff3300"
boozepwr = 80
@@ -1677,7 +1585,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/grasshopper
name = "Grasshopper"
id = "grasshopper"
description = "A fresh and sweet dessert shooter. Difficult to look manly while drinking this."
color = "00ff00"
boozepwr = 25
@@ -1690,7 +1597,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/stinger
name = "Stinger"
id = "stinger"
description = "A snappy way to end the day."
color = "ccff99"
boozepwr = 25
@@ -1703,7 +1609,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/bastion_bourbon
name = "Bastion Bourbon"
id = "bastion_bourbon"
description = "Soothing hot herbal brew with restorative properties. Hints of citrus and berry flavors."
color = "#00FFFF"
boozepwr = 30
@@ -1743,7 +1648,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/squirt_cider
name = "Squirt Cider"
id = "squirt_cider"
description = "Fermented squirt extract with a nose of stale bread and ocean water. Whatever a squirt is."
color = "#FF0000"
boozepwr = 40
@@ -1762,7 +1666,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/fringe_weaver
name = "Fringe Weaver"
id = "fringe_weaver"
description = "Bubbly, classy, and undoubtedly strong - a Glitch City classic."
color = "#FFEAC4"
boozepwr = 90 //classy hooch, essentially, but lower pwr to make up for slightly easier access
@@ -1775,7 +1678,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/sugar_rush
name = "Sugar Rush"
id = "sugar_rush"
description = "Sweet, light, and fruity - as girly as it gets."
color = "#FF226C"
boozepwr = 10
@@ -1794,7 +1696,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/crevice_spike
name = "Crevice Spike"
id = "crevice_spike"
description = "Sour, bitter, and smashingly sobering."
color = "#5BD231"
boozepwr = -10 //sobers you up - ideally, one would drink to get hit with brute damage now to avoid alcohol problems later
@@ -1810,7 +1711,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/sake
name = "Sake"
id = "sake"
description = "A sweet rice wine of questionable legality and extreme potency."
color = "#DDDDDD"
boozepwr = 70
@@ -1822,7 +1722,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/peppermint_patty
name = "Peppermint Patty"
id = "peppermint_patty"
description = "This lightly alcoholic drink combines the benefits of menthol and cocoa."
color = "#45ca7a"
taste_description = "mint and chocolate"
@@ -1840,7 +1739,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/alexander
name = "Alexander"
id = "alexander"
description = "Named after a Greek hero, this mix is said to embolden a user's shield as if they were in a phalanx."
color = "#F5E9D3"
boozepwr = 80
@@ -1864,7 +1762,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/alexander/on_mob_life(mob/living/L)
..()
if(mighty_shield && !(mighty_shield in L.contents)) //If you had a shield and lose it, you lose the reagent as well. Otherwise this is just a normal drink.
L.reagents.del_reagent("alexander")
L.reagents.del_reagent(type)
/datum/reagent/consumable/ethanol/alexander/on_mob_end_metabolize(mob/living/L)
if(mighty_shield)
@@ -1874,7 +1772,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/sidecar
name = "Sidecar"
id = "sidecar"
description = "The one ride you'll gladly give up the wheel for."
color = "#FFC55B"
boozepwr = 80
@@ -1887,7 +1784,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/between_the_sheets
name = "Between the Sheets"
id = "between_the_sheets"
description = "A provocatively named classic. Funny enough, doctors recommend drinking it before taking a nap."
color = "#F4C35A"
boozepwr = 80
@@ -1913,7 +1809,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/kamikaze
name = "Kamikaze"
id = "kamikaze"
description = "Divinely windy."
color = "#EEF191"
boozepwr = 60
@@ -1926,7 +1821,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/mojito
name = "Mojito"
id = "mojito"
description = "A drink that looks as refreshing as it tastes."
color = "#DFFAD9"
boozepwr = 30
@@ -1939,7 +1833,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/fernet
name = "Fernet"
id = "fernet"
description = "An incredibly bitter herbal liqueur used as a digestif."
color = "#1B2E24" // rgb: 27, 46, 36
boozepwr = 80
@@ -1957,7 +1850,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/fernet_cola
name = "Fernet Cola"
id = "fernet_cola"
description = "A very popular and bittersweet digestif, ideal after a heavy meal. Best served on a sawed-off cola bottle as per tradition."
color = "#390600" // rgb: 57, 6, 0
boozepwr = 25
@@ -1978,7 +1870,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/fanciulli
name = "Fanciulli"
id = "fanciulli"
description = "What if the Manhattan coctail ACTUALLY used a bitter herb liquour? Helps you sobers up." //also causes a bit of stamina damage to symbolize the afterdrink lazyness
color = "#CA933F" // rgb: 202, 147, 63
boozepwr = -10
@@ -2003,7 +1894,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/branca_menta
name = "Branca Menta"
id = "branca_menta"
description = "A refreshing mixture of bitter Fernet with mint creme liquour."
color = "#4B5746" // rgb: 75, 87, 70
boozepwr = 35
@@ -2026,7 +1916,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/blank_paper
name = "Blank Paper"
id = "blank_paper"
description = "A bubbling glass of blank paper. Just looking at it makes you feel fresh."
nutriment_factor = 1 * REAGENTS_METABOLISM
color = "#DCDCDC" // rgb: 220, 220, 220
@@ -2046,7 +1935,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/champagne //How the hell did we not have champagne already!?
name = "Champagne"
id = "champagne"
description = "A sparkling wine known for its ability to strike fast and hard."
color = "#ffffc1"
boozepwr = 40
@@ -2058,7 +1946,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/wizz_fizz
name = "Wizz Fizz"
id = "wizz_fizz"
description = "A magical potion, fizzy and wild! However the taste, you will find, is quite mild."
color = "#4235d0" //Just pretend that the triple-sec was blue curacao.
boozepwr = 50
@@ -2079,7 +1966,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/bug_spray
name = "Bug Spray"
id = "bug_spray"
description = "A harsh, acrid, bitter drink, for those who need something to brace themselves."
color = "#33ff33"
boozepwr = 50
@@ -2103,7 +1989,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/applejack
name = "Applejack"
id = "applejack"
description = "The perfect beverage for when you feel the need to horse around."
color = "#ff6633"
boozepwr = 20
@@ -2115,7 +2000,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/jack_rose
name = "Jack Rose"
id = "jack_rose"
description = "A light cocktail perfect for sipping with a slice of pie."
color = "#ff6633"
boozepwr = 15
@@ -2128,7 +2012,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/turbo
name = "Turbo"
id = "turbo"
description = "A turbulent cocktail associated with outlaw hoverbike racing. Not for the faint of heart."
color = "#e94c3a"
boozepwr = 85
@@ -2147,7 +2030,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/old_timer
name = "Old Timer"
id = "old_timer"
description = "An archaic potation enjoyed by old coots of all ages."
color = "#996835"
boozepwr = 35
@@ -2168,7 +2050,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
N.hair_color = "ccc"
N.update_hair()
if(N.age > 100)
N.become_nearsighted(id)
N.become_nearsighted(type)
if(N.gender == MALE)
N.facial_hair_style = "Beard (Very Long)"
N.update_hair()
@@ -2181,7 +2063,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/rubberneck
name = "Rubberneck"
id = "rubberneck"
description = "A quality rubberneck should not contain any gross natural ingredients."
color = "#ffe65b"
boozepwr = 60
@@ -2194,7 +2075,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/duplex
name = "Duplex"
id = "duplex"
description = "An inseparable combination of two fruity drinks."
color = "#50e5cf"
boozepwr = 25
@@ -2207,7 +2087,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/trappist
name = "Trappist Beer"
id = "trappist"
description = "A strong dark ale brewed by space-monks."
color = "#390c00"
boozepwr = 40
@@ -2227,7 +2106,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/blazaam
name = "Blazaam"
id = "blazaam"
description = "A strange drink that few people seem to remember existing. Doubles as a Berenstain remover."
boozepwr = 70
quality = DRINK_FANTASTIC
@@ -2251,7 +2129,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/planet_cracker
name = "Planet Cracker"
id = "planet_cracker"
description = "This jubilant drink celebrates humanity's triumph over the alien menace. May be offensive to non-human crewmembers."
boozepwr = 50
quality = DRINK_FANTASTIC
@@ -2263,7 +2140,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/commander_and_chief
name = "Commander and Chief"
id = "commander_and_chief"
description = "A cocktail for the captain on the go."
color = "#ffffc9"
boozepwr = 50
@@ -2287,7 +2163,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/fruit_wine
name = "Fruit Wine"
id = "fruit_wine"
description = "A wine made from grown plants."
color = "#FFFFFF"
boozepwr = 35
@@ -47,7 +47,6 @@
//does brute damage but can replicate when damaged and has a chance of expanding again
/datum/reagent/blob/replicating_foam
name = "Replicating Foam"
id = "replicating_foam"
description = "will do medium brute damage and occasionally expand again when expanding."
shortdesc = "will do medium brute damage."
effectdesc = "will also expand when attacked with burn damage, but takes more brute damage."
@@ -78,7 +77,6 @@
//does massive brute and burn damage, but can only expand manually
/datum/reagent/blob/networked_fibers
name = "Networked Fibers"
id = "networked_fibers"
description = "will do high brute and burn damage and will generate resources quicker, but can only expand manually."
shortdesc = "will do high brute and burn damage."
taste_description = "efficiency"
@@ -112,7 +110,6 @@
//does brute damage, shifts away when damaged
/datum/reagent/blob/shifting_fragments
name = "Shifting Fragments"
id = "shifting_fragments"
description = "will do medium brute damage."
effectdesc = "will also cause blob parts to shift away when attacked."
taste_description = "something other-dimensional"
@@ -134,7 +131,7 @@
if((damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser") && damage > 0 && B.obj_integrity - damage > 0 && prob(60-damage))
var/list/blobstopick = list()
for(var/obj/structure/blob/OB in orange(1, B))
if((istype(OB, /obj/structure/blob/normal) || (istype(OB, /obj/structure/blob/shield) && prob(25))) && OB.overmind && OB.overmind.blob_reagent_datum.id == B.overmind.blob_reagent_datum.id)
if((istype(OB, /obj/structure/blob/normal) || (istype(OB, /obj/structure/blob/shield) && prob(25))) && OB.overmind && OB.overmind.blob_reagent_datum.type == B.overmind.blob_reagent_datum.type)
blobstopick += OB //as long as the blob picked is valid; ie, a normal or shield blob that has the same chemical as we do, we can swap with it
if(blobstopick.len)
var/obj/structure/blob/targeted = pick(blobstopick) //randomize the blob chosen, because otherwise it'd tend to the lower left
@@ -146,7 +143,6 @@
//sets you on fire, does burn damage, explodes into flame when burnt, weak to water
/datum/reagent/blob/blazing_oil
name = "Blazing Oil"
id = "blazing_oil"
description = "will do medium burn damage and set targets on fire."
effectdesc = "will also release bursts of flame when burnt, but takes damage from water."
taste_description = "burning oil"
@@ -174,7 +170,7 @@
if(damage_type == BURN && damage_flag != "energy")
for(var/turf/open/T in range(1, B))
var/obj/structure/blob/C = locate() in T
if(!(C && C.overmind && C.overmind.blob_reagent_datum.id == B.overmind.blob_reagent_datum.id) && prob(80))
if(!(C && C.overmind && C.overmind.blob_reagent_datum.type == B.overmind.blob_reagent_datum.type) && prob(80))
new /obj/effect/hotspot(T)
if(damage_flag == "fire")
return 0
@@ -183,7 +179,6 @@
//does toxin damage, hallucination, targets think they're not hurt at all
/datum/reagent/blob/regenerative_materia
name = "Regenerative Materia"
id = "regenerative_materia"
description = "will do toxin damage and cause targets to believe they are fully healed."
analyzerdescdamage = "Does toxin damage and injects a toxin that causes the target to believe they are fully healed."
taste_description = "heaven"
@@ -195,8 +190,8 @@
reac_volume = ..()
M.adjust_drugginess(reac_volume)
if(M.reagents)
M.reagents.add_reagent("regenerative_materia", 0.2*reac_volume)
M.reagents.add_reagent("spore", 0.2*reac_volume)
M.reagents.add_reagent(/datum/reagent/blob/regenerative_materia, 0.2*reac_volume)
M.reagents.add_reagent(/datum/reagent/toxin/spore, 0.2*reac_volume)
M.apply_damage(0.7*reac_volume, TOX)
/datum/reagent/blob/regenerative_materia/on_mob_life(mob/living/carbon/C)
@@ -213,7 +208,6 @@
//kills sleeping targets and turns them into blob zombies, produces fragile spores when killed or on expanding
/datum/reagent/blob/zombifying_pods
name = "Zombifying Pods"
id = "zombifying_pods"
description = "will do very low toxin damage and harvest sleeping targets for additional resources and a blob zombie."
effectdesc = "will also produce fragile spores when killed and on expanding."
taste_description = "fungi"
@@ -257,7 +251,6 @@
//does tons of oxygen damage and a little stamina, immune to tesla bolts, weak to EMP
/datum/reagent/blob/energized_jelly
name = "Energized Jelly"
id = "energized_jelly"
description = "will cause low stamina and high oxygen damage, and cause targets to be unable to breathe."
taste_description = "gelatin"
effectdesc = "will also conduct electricity, but takes damage from EMPs."
@@ -289,7 +282,6 @@
//does aoe brute damage when hitting targets, is immune to explosions
/datum/reagent/blob/explosive_lattice
name = "Explosive Lattice"
id = "explosive_lattice"
description = "will do brute damage in an area around targets."
taste_description = "the bomb"
effectdesc = "will also resist explosions, but takes increased damage from fire and other energy sources."
@@ -326,7 +318,6 @@
//does brute, burn, and toxin damage, and cools targets down
/datum/reagent/blob/cryogenic_poison
name = "Cryogenic Poison"
id = "cryogenic_poison"
description = "will inject targets with a freezing poison that does high damage over time."
analyzerdescdamage = "Injects targets with a freezing poison that will gradually solidify the target's internal organs."
color = "#8BA6E9"
@@ -339,9 +330,9 @@
/datum/reagent/blob/cryogenic_poison/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
reac_volume = ..()
if(M.reagents)
M.reagents.add_reagent("frostoil", 0.3*reac_volume)
M.reagents.add_reagent("ice", 0.3*reac_volume)
M.reagents.add_reagent("cryogenic_poison", 0.3*reac_volume)
M.reagents.add_reagent(/datum/reagent/consumable/frostoil, 0.3*reac_volume)
M.reagents.add_reagent(/datum/reagent/consumable/ice, 0.3*reac_volume)
M.reagents.add_reagent(/datum/reagent/blob/cryogenic_poison, 0.3*reac_volume)
M.apply_damage(0.2*reac_volume, BRUTE)
/datum/reagent/blob/cryogenic_poison/on_mob_life(mob/living/carbon/M)
@@ -354,7 +345,6 @@
//does burn damage and EMPs, slightly fragile
/datum/reagent/blob/electromagnetic_web
name = "Electromagnetic Web"
id = "electromagnetic_web"
description = "will do high burn damage and EMP targets."
taste_description = "pop rocks"
effectdesc = "will also take massively increased damage and release an EMP when killed."
@@ -391,7 +381,6 @@
//does brute damage, bonus damage for each nearby blob, and spreads damage out
/datum/reagent/blob/synchronous_mesh
name = "Synchronous Mesh"
id = "synchronous_mesh"
description = "will do massively increased brute damage for each blob near the target."
effectdesc = "will also spread damage between each blob near the attacked blob."
taste_description = "toxic mold"
@@ -415,10 +404,10 @@
if(damage_flag == "melee" || damage_flag == "bullet" || damage_flag == "laser") //the cause isn't fire or bombs, so split the damage
var/damagesplit = 1 //maximum split is 9, reducing the damage each blob takes to 11% but doing that damage to 9 blobs
for(var/obj/structure/blob/C in orange(1, B))
if(!istype(C, /obj/structure/blob/core) && !istype(C, /obj/structure/blob/node) && C.overmind && C.overmind.blob_reagent_datum.id == B.overmind.blob_reagent_datum.id) //if it doesn't have the same chemical or is a core or node, don't split damage to it
if(!istype(C, /obj/structure/blob/core) && !istype(C, /obj/structure/blob/node) && C.overmind && C.overmind.blob_reagent_datum.type == B.overmind.blob_reagent_datum.type) //if it doesn't have the same chemical or is a core or node, don't split damage to it
damagesplit += 1
for(var/obj/structure/blob/C in orange(1, B))
if(!istype(C, /obj/structure/blob/core) && !istype(C, /obj/structure/blob/node) && C.overmind && C.overmind.blob_reagent_datum.id == B.overmind.blob_reagent_datum.id) //only hurt blobs that have the same overmind chemical and aren't cores or nodes
if(!istype(C, /obj/structure/blob/core) && !istype(C, /obj/structure/blob/node) && C.overmind && C.overmind.blob_reagent_datum.type == B.overmind.blob_reagent_datum.type) //only hurt blobs that have the same overmind chemical and aren't cores or nodes
C.take_damage(damage/damagesplit, CLONE, 0, 0)
return damage / damagesplit
else
@@ -427,7 +416,6 @@
//does brute damage through armor and bio resistance
/datum/reagent/blob/reactive_spines
name = "Reactive Spines"
id = "reactive_spines"
description = "will do medium brute damage through armor and bio resistance."
taste_description = "rock"
effectdesc = "will also react when attacked with brute damage, attacking all near the attacked blob."
@@ -454,7 +442,6 @@
//does low brute damage, oxygen damage, and stamina damage and wets tiles when damaged
/datum/reagent/blob/pressurized_slime
name = "Pressurized Slime"
id = "pressurized_slime"
description = "will do low brute, oxygen, and stamina damage, and wet tiles under targets."
effectdesc = "will also wet tiles near blobs that are attacked or killed."
taste_description = "a sponge"
@@ -6,7 +6,6 @@
/datum/reagent/consumable/orangejuice
name = "Orange Juice"
id = "orangejuice"
description = "Both delicious AND rich in Vitamin C, what more do you need?"
color = "#E78108" // rgb: 231, 129, 8
taste_description = "oranges"
@@ -23,7 +22,6 @@
/datum/reagent/consumable/tomatojuice
name = "Tomato Juice"
id = "tomatojuice"
description = "Tomatoes made into juice. What a waste of big, juicy tomatoes, huh?"
color = "#731008" // rgb: 115, 16, 8
taste_description = "tomatoes"
@@ -39,7 +37,6 @@
/datum/reagent/consumable/limejuice
name = "Lime Juice"
id = "limejuice"
description = "The sweet-sour juice of limes."
color = "#365E30" // rgb: 54, 94, 48
taste_description = "unbearable sourness"
@@ -56,7 +53,6 @@
/datum/reagent/consumable/carrotjuice
name = "Carrot Juice"
id = "carrotjuice"
description = "It is just like a carrot but without crunching."
color = "#973800" // rgb: 151, 56, 0
taste_description = "carrots"
@@ -78,7 +74,6 @@
/datum/reagent/consumable/berryjuice
name = "Berry Juice"
id = "berryjuice"
description = "A delicious blend of several different kinds of berries."
color = "#863333" // rgb: 134, 51, 51
taste_description = "berries"
@@ -88,7 +83,6 @@
/datum/reagent/consumable/applejuice
name = "Apple Juice"
id = "applejuice"
description = "The sweet juice of an apple, fit for all ages."
color = "#ECFF56" // rgb: 236, 255, 86
taste_description = "apples"
@@ -96,7 +90,6 @@
/datum/reagent/consumable/poisonberryjuice
name = "Poison Berry Juice"
id = "poisonberryjuice"
description = "A tasty juice blended from various kinds of very deadly and toxic berries."
color = "#863353" // rgb: 134, 51, 83
taste_description = "berries"
@@ -111,7 +104,6 @@
/datum/reagent/consumable/watermelonjuice
name = "Watermelon Juice"
id = "watermelonjuice"
description = "Delicious juice made from watermelon."
color = "#863333" // rgb: 134, 51, 51
taste_description = "juicy watermelon"
@@ -121,7 +113,6 @@
/datum/reagent/consumable/lemonjuice
name = "Lemon Juice"
id = "lemonjuice"
description = "This juice is VERY sour."
color = "#863333" // rgb: 175, 175, 0
taste_description = "sourness"
@@ -132,7 +123,6 @@
/datum/reagent/consumable/banana
name = "Banana Juice"
id = "banana"
description = "The raw essence of a banana. HONK"
color = "#863333" // rgb: 175, 175, 0
taste_description = "banana"
@@ -148,7 +138,6 @@
/datum/reagent/consumable/nothing
name = "Nothing"
id = "nothing"
description = "Absolutely nothing."
taste_description = "nothing"
glass_icon_state = "nothing"
@@ -164,7 +153,6 @@
/datum/reagent/consumable/laughter
name = "Laughter"
id = "laughter"
description = "Some say that this is the best medicine, but recent studies have proven that to be untrue."
metabolization_rate = INFINITY
color = "#FF4DD2"
@@ -177,7 +165,6 @@
/datum/reagent/consumable/superlaughter
name = "Super Laughter"
id = "superlaughter"
description = "Funny until you're the one laughing."
metabolization_rate = 1.5 * REAGENTS_METABOLISM
color = "#FF4DD2"
@@ -192,7 +179,6 @@
/datum/reagent/consumable/potato_juice
name = "Potato Juice"
id = "potato"
description = "Juice of the potato. Bleh."
nutriment_factor = 2 * REAGENTS_METABOLISM
color = "#302000" // rgb: 48, 32, 0
@@ -203,14 +189,12 @@
/datum/reagent/consumable/grapejuice
name = "Grape Juice"
id = "grapejuice"
description = "The juice of a bunch of grapes. Guaranteed non-alcoholic."
color = "#290029" // dark purple
taste_description = "grape soda"
/datum/reagent/consumable/milk
name = "Milk"
id = "milk"
description = "An opaque white liquid produced by the mammary glands of mammals."
color = "#DFDFDF" // rgb: 223, 223, 223
taste_description = "milk"
@@ -227,13 +211,12 @@
if(M.getBruteLoss() && prob(20))
M.heal_bodypart_damage(1,0, 0)
. = 1
if(holder.has_reagent("capsaicin"))
holder.remove_reagent("capsaicin", 2)
if(holder.has_reagent(/datum/reagent/consumable/capsaicin))
holder.remove_reagent(/datum/reagent/consumable/capsaicin, 2)
..()
/datum/reagent/consumable/soymilk
name = "Soy Milk"
id = "soymilk"
description = "An opaque white liquid made from soybeans."
color = "#DFDFC7" // rgb: 223, 223, 199
taste_description = "soy milk"
@@ -249,7 +232,6 @@
/datum/reagent/consumable/coconutmilk
name = "Coconut Milk"
id = "coconutmilk"
description = "A transparent white liquid extracted from coconuts. Rich in taste."
color = "#DFDFDF" // rgb: 223, 223, 223
taste_description = "sweet milk"
@@ -266,7 +248,6 @@
/datum/reagent/consumable/cream
name = "Cream"
id = "cream"
description = "The fatty, still liquid part of milk. Why don't you mix this with sum scotch, eh?"
color = "#DFD7AF" // rgb: 223, 215, 175
taste_description = "creamy milk"
@@ -282,7 +263,6 @@
/datum/reagent/consumable/coffee
name = "Coffee"
id = "coffee"
description = "Coffee is a brewed drink prepared from roasted seeds, commonly called coffee beans, of the coffee plant."
color = "#482000" // rgb: 72, 32, 0
nutriment_factor = 0
@@ -302,14 +282,13 @@
M.AdjustSleeping(-40, FALSE)
//310.15 is the normal bodytemp.
M.adjust_bodytemperature(25 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL)
if(holder.has_reagent("frostoil"))
holder.remove_reagent("frostoil", 5)
if(holder.has_reagent(/datum/reagent/consumable/frostoil))
holder.remove_reagent(/datum/reagent/consumable/frostoil, 5)
..()
. = 1
/datum/reagent/consumable/tea
name = "Tea"
id = "tea"
description = "Tasty black tea, it has antioxidants, it's good for you!"
color = "#101000" // rgb: 16, 16, 0
nutriment_factor = 0
@@ -331,7 +310,6 @@
/datum/reagent/consumable/lemonade
name = "Lemonade"
id = "lemonade"
description = "Sweet, tangy lemonade. Good for the soul."
quality = DRINK_NICE
taste_description = "sunshine and summertime"
@@ -341,7 +319,6 @@
/datum/reagent/consumable/tea/arnold_palmer
name = "Arnold Palmer"
id = "arnold_palmer"
description = "Encourages the patient to go golfing."
color = "#FFB766"
quality = DRINK_NICE
@@ -359,7 +336,6 @@
/datum/reagent/consumable/icecoffee
name = "Iced Coffee"
id = "icecoffee"
description = "Coffee and ice, refreshing and cool."
color = "#102838" // rgb: 16, 40, 56
nutriment_factor = 0
@@ -379,7 +355,6 @@
/datum/reagent/consumable/icetea
name = "Iced Tea"
id = "icetea"
description = "No relation to a certain rap artist/actor."
color = "#104038" // rgb: 16, 64, 56
nutriment_factor = 0
@@ -400,7 +375,6 @@
/datum/reagent/consumable/space_cola
name = "Cola"
id = "cola"
description = "A refreshing beverage."
color = "#100800" // rgb: 16, 8, 0
taste_description = "cola"
@@ -415,7 +389,6 @@
/datum/reagent/consumable/nuka_cola
name = "Nuka Cola"
id = "nuka_cola"
description = "Cola, cola never changes."
color = "#100800" // rgb: 16, 8, 0
quality = DRINK_VERYGOOD
@@ -424,10 +397,6 @@
glass_name = "glass of Nuka Cola"
glass_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland."
/datum/reagent/consumable/nuka_cola/on_mob_end_metabolize(mob/living/L)
L.remove_movespeed_modifier(id)
..()
/datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/carbon/M)
M.Jitter(20)
M.set_drugginess(30)
@@ -440,7 +409,6 @@
/datum/reagent/consumable/spacemountainwind
name = "SM Wind"
id = "spacemountainwind"
description = "Blows right through you like a space wind."
color = "#102000" // rgb: 16, 32, 0
taste_description = "sweet citrus soda"
@@ -458,7 +426,6 @@
/datum/reagent/consumable/dr_gibb
name = "Dr. Gibb"
id = "dr_gibb"
description = "A delicious blend of 42 different flavours."
color = "#102000" // rgb: 16, 32, 0
taste_description = "cherry soda" // FALSE ADVERTISING
@@ -473,7 +440,6 @@
/datum/reagent/consumable/space_up
name = "Space-Up"
id = "space_up"
description = "Tastes like a hull breach in your mouth."
color = "#00FF00" // rgb: 0, 255, 0
taste_description = "cherry soda"
@@ -489,7 +455,6 @@
/datum/reagent/consumable/lemon_lime
name = "Lemon Lime"
description = "A tangy substance made of 0.5% natural citrus!"
id = "lemon_lime"
color = "#8CFF00" // rgb: 135, 255, 0
taste_description = "tangy lime and lemon soda"
glass_icon_state = "glass_yellow"
@@ -503,7 +468,6 @@
/datum/reagent/consumable/pwr_game
name = "Pwr Game"
description = "The only drink with the PWR that true gamers crave."
id = "pwr_game"
color = "#9385bf" // rgb: 58, 52, 75
taste_description = "sweet and salty tang"
glass_icon_state = "glass_red"
@@ -517,7 +481,6 @@
/datum/reagent/consumable/shamblers
name = "Shambler's Juice"
description = "~Shake me up some of that Shambler's Juice!~"
id = "shamblers"
color = "#f00060" // rgb: 94, 0, 38
taste_description = "carbonated metallic soda"
glass_icon_state = "glass_red"
@@ -531,7 +494,6 @@
/datum/reagent/consumable/buzz_fuzz
name = "Buzz Fuzz"
description = "~A Hive of Flavour!~ NOTICE: Addicting."
id = "buzz_fuzz"
addiction_threshold = 26 //A can and a sip
color = "#8CFF00" // rgb: 135, 255, 0
taste_description = "carbonated honey and pollen"
@@ -540,9 +502,9 @@
glass_desc = "Stinging with flavour."
/datum/reagent/consumable/buzz_fuzz/on_mob_life(mob/living/carbon/M)
M.reagents.add_reagent("sugar",1)
M.reagents.add_reagent(/datum/reagent/consumable/sugar,1)
if(prob(5))
M.reagents.add_reagent("honey",1)
M.reagents.add_reagent(/datum/reagent/consumable/honey,1)
..()
/datum/reagent/consumable/buzz_fuzz/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
@@ -575,7 +537,6 @@
/datum/reagent/consumable/grey_bull
name = "Grey Bull"
id = "grey_bull"
description = "Grey Bull, it gives you gloves!"
color = "#EEFF00" // rgb: 238, 255, 0
quality = DRINK_VERYGOOD
@@ -586,10 +547,10 @@
/datum/reagent/consumable/grey_bull/on_mob_metabolize(mob/living/L)
..()
ADD_TRAIT(L, TRAIT_SHOCKIMMUNE, id)
ADD_TRAIT(L, TRAIT_SHOCKIMMUNE, type)
/datum/reagent/consumable/grey_bull/on_mob_end_metabolize(mob/living/L)
REMOVE_TRAIT(L, TRAIT_SHOCKIMMUNE, id)
REMOVE_TRAIT(L, TRAIT_SHOCKIMMUNE, type)
..()
/datum/reagent/consumable/grey_bull/on_mob_life(mob/living/carbon/M)
@@ -602,7 +563,6 @@
/datum/reagent/consumable/sodawater
name = "Soda Water"
id = "sodawater"
description = "A can of club soda. Why not make a scotch and soda?"
color = "#619494" // rgb: 97, 148, 148
taste_description = "carbonated water"
@@ -618,7 +578,6 @@
/datum/reagent/consumable/tonic
name = "Tonic Water"
id = "tonic"
description = "It tastes strange but at least the quinine keeps the Space Malaria at bay."
color = "#0064C8" // rgb: 0, 100, 200
taste_description = "tart and fresh"
@@ -636,7 +595,6 @@
/datum/reagent/consumable/ice
name = "Ice"
id = "ice"
description = "Frozen water, your dentist wouldn't like you chewing this."
reagent_state = SOLID
color = "#619494" // rgb: 97, 148, 148
@@ -651,7 +609,6 @@
/datum/reagent/consumable/soy_latte
name = "Soy Latte"
id = "soy_latte"
description = "A nice and tasty beverage while you are reading your hippie books."
color = "#664300" // rgb: 102, 67, 0
quality = DRINK_NICE
@@ -673,7 +630,6 @@
/datum/reagent/consumable/cafe_latte
name = "Cafe Latte"
id = "cafe_latte"
description = "A nice, strong and tasty beverage while you are reading."
color = "#664300" // rgb: 102, 67, 0
quality = DRINK_NICE
@@ -695,7 +651,6 @@
/datum/reagent/consumable/doctor_delight
name = "The Doctor's Delight"
id = "doctorsdelight"
description = "A gulp a day keeps the Medibot away! A mixture of juices that heals most damage types fairly quickly at the cost of hunger."
color = "#FF8CFF" // rgb: 255, 140, 255
quality = DRINK_VERYGOOD
@@ -717,7 +672,6 @@
/datum/reagent/consumable/chocolatepudding
name = "Chocolate Pudding"
id = "chocolatepudding"
description = "A great dessert for chocolate lovers."
color = "#800000"
quality = DRINK_VERYGOOD
@@ -729,7 +683,6 @@
/datum/reagent/consumable/vanillapudding
name = "Vanilla Pudding"
id = "vanillapudding"
description = "A great dessert for vanilla lovers."
color = "#FAFAD2"
quality = DRINK_VERYGOOD
@@ -741,7 +694,6 @@
/datum/reagent/consumable/cherryshake
name = "Cherry Shake"
id = "cherryshake"
description = "A cherry flavored milkshake."
color = "#FFB6C1"
quality = DRINK_VERYGOOD
@@ -753,7 +705,6 @@
/datum/reagent/consumable/bluecherryshake
name = "Blue Cherry Shake"
id = "bluecherryshake"
description = "An exotic milkshake."
color = "#00F1FF"
quality = DRINK_VERYGOOD
@@ -765,7 +716,6 @@
/datum/reagent/consumable/pumpkin_latte
name = "Pumpkin Latte"
id = "pumpkin_latte"
description = "A mix of pumpkin juice and coffee."
color = "#F4A460"
quality = DRINK_VERYGOOD
@@ -777,7 +727,6 @@
/datum/reagent/consumable/gibbfloats
name = "Gibb Floats"
id = "gibbfloats"
description = "Ice cream on top of a Dr. Gibb glass."
color = "#B22222"
quality = DRINK_NICE
@@ -789,21 +738,18 @@
/datum/reagent/consumable/pumpkinjuice
name = "Pumpkin Juice"
id = "pumpkinjuice"
description = "Juiced from real pumpkin."
color = "#FFA500"
taste_description = "pumpkin"
/datum/reagent/consumable/blumpkinjuice
name = "Blumpkin Juice"
id = "blumpkinjuice"
description = "Juiced from real blumpkin."
color = "#00BFFF"
taste_description = "a mouthful of pool water"
/datum/reagent/consumable/triple_citrus
name = "Triple Citrus"
id = "triple_citrus"
description = "A solution."
color = "#fff12b"
quality = DRINK_NICE
@@ -814,7 +760,6 @@
/datum/reagent/consumable/grape_soda
name = "Grape soda"
id = "grapesoda"
description = "Beloved of children and teetotalers."
color = "#E6CDFF"
taste_description = "grape soda"
@@ -827,7 +772,6 @@
/datum/reagent/consumable/milk/chocolate_milk
name = "Chocolate Milk"
id = "chocolate_milk"
description = "Milk for cool kids."
color = "#7D4E29"
quality = DRINK_NICE
@@ -835,7 +779,6 @@
/datum/reagent/consumable/menthol
name = "Menthol"
id = "menthol"
description = "Alleviates coughing symptoms one might have."
color = "#80AF9C"
taste_description = "mint"
@@ -849,7 +792,6 @@
/datum/reagent/consumable/grenadine
name = "Grenadine"
id = "grenadine"
description = "Not cherry flavored!"
color = "#EA1D26"
taste_description = "sweet pomegranates"
@@ -858,7 +800,6 @@
/datum/reagent/consumable/parsnipjuice
name = "Parsnip Juice"
id = "parsnipjuice"
description = "Why..."
color = "#FFA500"
taste_description = "parsnip"
@@ -866,7 +807,6 @@
/datum/reagent/consumable/peachjuice //Intended to be extremely rare due to being the limiting ingredients in the blazaam drink
name = "Peach Juice"
id = "peachjuice"
description = "Just peachy."
color = "#E78108"
taste_description = "peaches"
@@ -874,7 +814,6 @@
/datum/reagent/consumable/cream_soda
name = "Cream Soda"
id = "cream_soda"
description = "A classic space-American vanilla flavored soft drink."
color = "#dcb137"
quality = DRINK_VERYGOOD
@@ -889,7 +828,6 @@
/datum/reagent/consumable/red_queen
name = "Red Queen"
id = "red_queen"
description = "DRINK ME."
color = "#e6ddc3"
quality = DRINK_GOOD
@@ -917,7 +855,6 @@
/datum/reagent/consumable/pinkmilk
name = "Strawberry Milk"
id = "pinkmilk"
description = "A drink of a bygone era of milk and artificial sweetener back on a rock."
color = "#f76aeb"//rgb(247, 106, 235)
glass_icon_state = "pinkmilk"
@@ -934,7 +871,6 @@
/datum/reagent/consumable/pinktea //Tiny Tim song
name = "Strawberry Tea"
id = "pinktea"
description = "A timeless classic!"
color = "#f76aeb"//rgb(247, 106, 235)
glass_icon_state = "pinktea"
@@ -951,7 +887,6 @@
/datum/reagent/consumable/catnip_tea
name = "Catnip Tea"
id = "catnip_tea"
description = "A sleepy and tasty catnip tea!"
color = "#101000" // rgb: 16, 16, 0
nutriment_factor = 0
@@ -976,7 +911,6 @@
/datum/reagent/consumable/monkey_energy
name = "Monkey Energy"
id = "monkey_energy"
description = "The only drink that will make you unleash the ape."
color = "#f39b03" // rgb: 243, 155, 3
taste_description = "barbecue and nostalgia"
@@ -991,3 +925,12 @@
M.AdjustSleeping(-40, FALSE)
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
..()
/datum/reagent/consumable/bungojuice
name = "Bungo Juice"
color = "#F9E43D"
description = "Exotic! You feel like you are on vactation already."
taste_description = "succulent bungo"
glass_icon_state = "glass_yellow"
glass_name = "glass of bungo juice"
glass_desc = "Exotic! You feel like you are on vacation already."
@@ -1,6 +1,5 @@
/datum/reagent/drug
name = "Drug"
id = "drug"
value = 12
metabolization_rate = 0.5 * REAGENTS_METABOLISM
taste_description = "bitterness"
@@ -8,11 +7,10 @@
/datum/reagent/drug/on_mob_end_metabolize(mob/living/M)
if(trippy)
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "[id]_high")
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "[type]_high")
/datum/reagent/drug/space_drugs
name = "Space drugs"
id = "space_drugs"
value = 6
description = "An illegal chemical compound used as drug."
color = "#60A584" // rgb: 96, 165, 132
@@ -31,7 +29,7 @@
/datum/reagent/drug/space_drugs/overdose_start(mob/living/M)
to_chat(M, "<span class='userdanger'>You start tripping hard!</span>")
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[id]_overdose", /datum/mood_event/overdose, name)
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/overdose, name)
/datum/reagent/drug/space_drugs/overdose_process(mob/living/M)
if(M.hallucination < volume && prob(20))
@@ -40,7 +38,6 @@
/datum/reagent/drug/nicotine
name = "Nicotine"
id = "nicotine"
value = 0
description = "Slightly reduces stun times. If overdosed it will deal toxin and oxygen damage."
reagent_state = LIQUID
@@ -64,7 +61,6 @@
/datum/reagent/drug/crank
name = "Crank"
id = "crank"
description = "Reduces stun times by about 200%. If overdosed or addicted it will deal significant Toxin, Brute and Brain damage."
reagent_state = LIQUID
color = "#FA00C8"
@@ -112,7 +108,6 @@
/datum/reagent/drug/krokodil
name = "Krokodil"
id = "krokodil"
description = "Cools and calms you down. If overdosed it will deal significant Brain and Toxin damage. If addicted it will begin to deal fatal amounts of Brute damage as the subject's skin falls off."
reagent_state = LIQUID
color = "#0064B4"
@@ -164,7 +159,6 @@
/datum/reagent/drug/methamphetamine
name = "Methamphetamine"
id = "methamphetamine"
description = "Reduces stun times by about 300%, and allows the user to quickly recover stamina while dealing a small amount of Brain damage. If overdosed the subject will move randomly, laugh randomly, drop items and suffer from Toxin and Brain damage. If addicted the subject will constantly jitter and drool, before becoming dizzy and losing motor control and eventually suffer heavy toxin damage."
reagent_state = LIQUID
color = "#FAFAFA"
@@ -178,10 +172,10 @@
/datum/reagent/drug/methamphetamine/on_mob_metabolize(mob/living/L)
..()
L.ignore_slowdown(id)
L.ignore_slowdown(type)
/datum/reagent/drug/methamphetamine/on_mob_end_metabolize(mob/living/L)
L.unignore_slowdown(id)
L.unignore_slowdown(type)
..()
/datum/reagent/drug/methamphetamine/on_mob_life(mob/living/carbon/M)
@@ -252,7 +246,6 @@
. = 1
/datum/reagent/drug/methamphetamine/changeling
id = "changelingmeth"
name = "Changeling Adrenaline"
addiction_threshold = 35
overdose_threshold = 35
@@ -261,7 +254,6 @@
/datum/reagent/drug/bath_salts
name = "Bath Salts"
id = "bath_salts"
description = "Makes you impervious to stuns and grants a stamina regeneration buff, but you will be a nearly uncontrollable tramp-bearded raving lunatic."
reagent_state = LIQUID
color = "#FAFAFA"
@@ -273,16 +265,16 @@
/datum/reagent/drug/bath_salts/on_mob_metabolize(mob/living/L)
..()
ADD_TRAIT(L, TRAIT_STUNIMMUNE, id)
ADD_TRAIT(L, TRAIT_SLEEPIMMUNE, id)
ADD_TRAIT(L, TRAIT_STUNIMMUNE, type)
ADD_TRAIT(L, TRAIT_SLEEPIMMUNE, type)
if(iscarbon(L))
var/mob/living/carbon/C = L
rage = new()
C.gain_trauma(rage, TRAUMA_RESILIENCE_ABSOLUTE)
/datum/reagent/drug/bath_salts/on_mob_end_metabolize(mob/living/L)
REMOVE_TRAIT(L, TRAIT_STUNIMMUNE, id)
REMOVE_TRAIT(L, TRAIT_SLEEPIMMUNE, id)
REMOVE_TRAIT(L, TRAIT_STUNIMMUNE, type)
REMOVE_TRAIT(L, TRAIT_SLEEPIMMUNE, type)
if(rage)
QDEL_NULL(rage)
..()
@@ -362,7 +354,6 @@
/datum/reagent/drug/aranesp
name = "Aranesp"
id = "aranesp"
description = "Amps you up and gets you going, fixes all stamina damage you might have but can cause toxin and oxygen damage."
reagent_state = LIQUID
color = "#78FFF0"
@@ -382,7 +373,6 @@
/datum/reagent/drug/happiness
name = "Happiness"
id = "happiness"
description = "Fills you with ecstasic numbness and causes minor brain damage. Highly addictive. If overdosed causes sudden mood swings."
reagent_state = LIQUID
color = "#FFF378"
@@ -392,11 +382,11 @@
/datum/reagent/drug/happiness/on_mob_add(mob/living/L)
..()
ADD_TRAIT(L, TRAIT_FEARLESS, id)
ADD_TRAIT(L, TRAIT_FEARLESS, type)
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "happiness_drug", /datum/mood_event/happiness_drug)
/datum/reagent/drug/happiness/on_mob_delete(mob/living/L)
REMOVE_TRAIT(L, TRAIT_FEARLESS, id)
REMOVE_TRAIT(L, TRAIT_FEARLESS, type)
SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "happiness_drug")
..()
@@ -460,7 +450,6 @@
/datum/reagent/drug/skooma
name = "Skooma"
id = "skooma"
description = "An ancient, highly-addictive drug of long-forgotten times. It greatly improves the user's speed and strength, but heavily impedes their intelligence and agility."
reagent_state = LIQUID
color = "#F3E0F9"
@@ -472,7 +461,7 @@
/datum/reagent/drug/skooma/on_mob_metabolize(mob/living/L)
. = ..()
L.add_movespeed_modifier(id, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING))
L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING))
L.next_move_modifier *= 2
if(ishuman(L))
var/mob/living/carbon/human/H = L
@@ -483,7 +472,7 @@
/datum/reagent/drug/skooma/on_mob_end_metabolize(mob/living/L)
. = ..()
L.remove_movespeed_modifier(id)
L.remove_movespeed_modifier(type)
L.next_move_modifier *= 0.5
if(ishuman(L))
var/mob/living/carbon/human/H = L
@@ -9,7 +9,6 @@
/datum/reagent/consumable
name = "Consumable"
id = "consumable"
taste_description = "generic food"
taste_mult = 4
value = 0.1
@@ -19,7 +18,7 @@
/datum/reagent/consumable/on_mob_life(mob/living/carbon/M)
current_cycle++
M.nutrition += nutriment_factor
holder.remove_reagent(src.id, metabolization_rate)
holder.remove_reagent(type, metabolization_rate)
/datum/reagent/consumable/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
if(method == INGEST)
@@ -39,7 +38,6 @@
/datum/reagent/consumable/nutriment
name = "Nutriment"
id = "nutriment"
description = "All the vitamins, minerals, and carbohydrates the body needs in pure form."
reagent_state = SOLID
nutriment_factor = 15 * REAGENTS_METABOLISM
@@ -90,7 +88,6 @@
/datum/reagent/consumable/nutriment/vitamin
name = "Vitamin"
id = "vitamin"
description = "All the best vitamins, minerals, and carbohydrates the body needs in pure form."
value = 0.5
@@ -104,7 +101,6 @@
/datum/reagent/consumable/cooking_oil
name = "Cooking Oil"
id = "cooking_oil"
description = "A variety of cooking oil derived from fat or plants. Used in food preparation and frying."
color = "#EADD6B" //RGB: 234, 221, 107 (based off of canola oil)
taste_mult = 0.8
@@ -121,7 +117,7 @@
O.loc.visible_message("<span class='warning'>[O] rapidly fries as it's splashed with hot oil! Somehow.</span>")
var/obj/item/reagent_containers/food/snacks/deepfryholder/F = new(O.drop_location(), O)
F.fry(volume)
F.reagents.add_reagent("cooking_oil", reac_volume)
F.reagents.add_reagent(/datum/reagent/consumable/cooking_oil, reac_volume)
/datum/reagent/consumable/cooking_oil/reaction_mob(mob/living/M, method = TOUCH, reac_volume, show_message = 1, touch_protection = 0)
if(!istype(M))
@@ -150,7 +146,6 @@
/datum/reagent/consumable/sugar
name = "Sugar"
id = "sugar"
description = "The organic compound commonly known as table sugar and sometimes called saccharose. This white, odorless, crystalline powder has a pleasing, sweet taste."
reagent_state = SOLID
color = "#FFFFFF" // rgb: 255, 255, 255
@@ -173,7 +168,6 @@
/datum/reagent/consumable/virus_food
name = "Virus Food"
id = "virusfood"
description = "A mixture of water and milk. Virus cells can use this mixture to reproduce."
nutriment_factor = 2 * REAGENTS_METABOLISM
color = "#899613" // rgb: 137, 150, 19
@@ -181,7 +175,6 @@
/datum/reagent/consumable/soysauce
name = "Soysauce"
id = "soysauce"
description = "A salty sauce made from the soy plant."
nutriment_factor = 2 * REAGENTS_METABOLISM
color = "#792300" // rgb: 121, 35, 0
@@ -189,7 +182,6 @@
/datum/reagent/consumable/ketchup
name = "Ketchup"
id = "ketchup"
description = "Ketchup, catsup, whatever. It's tomato paste."
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#731008" // rgb: 115, 16, 8
@@ -197,7 +189,6 @@
/datum/reagent/consumable/mustard
name = "Mustard"
id = "mustard"
description = "Mustard, mostly used on hotdogs, corndogs and burgers."
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#DDED26" // rgb: 221, 237, 38
@@ -205,7 +196,6 @@
/datum/reagent/consumable/capsaicin
name = "Capsaicin Oil"
id = "capsaicin"
description = "This is what makes chilis hot."
color = "#B31008" // rgb: 179, 16, 8
taste_description = "hot peppers"
@@ -216,8 +206,8 @@
switch(current_cycle)
if(1 to 15)
heating = 5 * TEMPERATURE_DAMAGE_COEFFICIENT
if(holder.has_reagent("cryostylane"))
holder.remove_reagent("cryostylane", 5)
if(holder.has_reagent(/datum/reagent/cryostylane))
holder.remove_reagent(/datum/reagent/cryostylane, 5)
if(isslime(M))
heating = rand(5,20)
if(15 to 25)
@@ -237,7 +227,6 @@
/datum/reagent/consumable/frostoil
name = "Frost Oil"
id = "frostoil"
description = "A special oil that noticably chills the body. Extracted from Icepeppers and slimes."
color = "#8BA6E9" // rgb: 139, 166, 233
taste_description = "mint"
@@ -249,8 +238,8 @@
switch(current_cycle)
if(1 to 15)
cooling = -10 * TEMPERATURE_DAMAGE_COEFFICIENT
if(holder.has_reagent("capsaicin"))
holder.remove_reagent("capsaicin", 5)
if(holder.has_reagent(/datum/reagent/consumable/capsaicin))
holder.remove_reagent(/datum/reagent/consumable/capsaicin, 5)
if(isslime(M))
cooling = -rand(5,20)
if(15 to 25)
@@ -284,7 +273,6 @@
/datum/reagent/consumable/condensedcapsaicin
name = "Condensed Capsaicin"
id = "condensedcapsaicin"
description = "A chemical agent used for self-defense and in police work."
color = "#B31008" // rgb: 179, 16, 8
taste_description = "scorching agony"
@@ -358,7 +346,6 @@
/datum/reagent/consumable/sodiumchloride
name = "Table Salt"
id = "sodiumchloride"
description = "A salt made of sodium chloride. Commonly used to season food."
reagent_state = SOLID
color = "#FFFFFF" // rgb: 255,255,255
@@ -379,7 +366,6 @@
/datum/reagent/consumable/blackpepper
name = "Black Pepper"
id = "blackpepper"
description = "A powder ground from peppercorns. *AAAACHOOO*"
reagent_state = SOLID
// no color (ie, black)
@@ -387,7 +373,6 @@
/datum/reagent/consumable/coco
name = "Coco Powder"
id = "cocoa"
description = "A fatty, bitter paste made from coco beans."
reagent_state = SOLID
nutriment_factor = 5 * REAGENTS_METABOLISM
@@ -396,7 +381,6 @@
/datum/reagent/consumable/hot_coco
name = "Hot Chocolate"
id = "hot_coco"
description = "Made with love! And coco beans."
nutriment_factor = 3 * REAGENTS_METABOLISM
color = "#403010" // rgb: 64, 48, 16
@@ -411,7 +395,6 @@
/datum/reagent/drug/mushroomhallucinogen
name = "Mushroom Hallucinogen"
id = "mushroomhallucinogen"
description = "A strong hallucinogenic drug derived from certain species of mushroom."
color = "#E700E7" // rgb: 231, 0, 231
metabolization_rate = 0.2 * REAGENTS_METABOLISM
@@ -442,7 +425,6 @@
/datum/reagent/consumable/sprinkles
name = "Sprinkles"
id = "sprinkles"
value = 3
description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops."
color = "#FF00FF" // rgb: 255, 0, 255
@@ -456,7 +438,6 @@
/datum/reagent/consumable/peanut_butter
name = "Peanut Butter"
id = "peanut_butter"
description = "A popular food paste made from ground dry-roasted peanuts."
color = "#C29261"
value = 3
@@ -465,7 +446,6 @@
/datum/reagent/consumable/cornoil
name = "Corn Oil"
id = "cornoil"
description = "An oil derived from various types of corn."
nutriment_factor = 20 * REAGENTS_METABOLISM
value = 4
@@ -486,7 +466,6 @@
/datum/reagent/consumable/enzyme
name = "Universal Enzyme"
id = "enzyme"
value = 1
description = "A universal enzyme used in the preperation of certain chemicals and foods."
color = "#365E30" // rgb: 54, 94, 48
@@ -494,7 +473,6 @@
/datum/reagent/consumable/dry_ramen
name = "Dry Ramen"
id = "dry_ramen"
description = "Space age food, since August 25, 1958. Contains dried noodles, vegetables, and chemicals that boil in contact with water."
reagent_state = SOLID
color = "#302000" // rgb: 48, 32, 0
@@ -502,7 +480,6 @@
/datum/reagent/consumable/hot_ramen
name = "Hot Ramen"
id = "hot_ramen"
description = "The noodles are boiled, the flavors are artificial, just like being back in school."
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#302000" // rgb: 48, 32, 0
@@ -514,7 +491,6 @@
/datum/reagent/consumable/hell_ramen
name = "Hell Ramen"
id = "hell_ramen"
description = "The noodles are boiled, the flavors are artificial, just like being back in school."
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#302000" // rgb: 48, 32, 0
@@ -526,7 +502,6 @@
/datum/reagent/consumable/flour
name = "Flour"
id = "flour"
value = 0.5
description = "This is what you rub all over yourself to pretend to be a ghost."
reagent_state = SOLID
@@ -538,11 +513,10 @@
var/obj/effect/decal/cleanable/flour/reagentdecal = new/obj/effect/decal/cleanable/flour(T)
reagentdecal = locate() in T //Might have merged with flour already there.
if(reagentdecal)
reagentdecal.reagents.add_reagent("flour", reac_volume)
reagentdecal.reagents.add_reagent(/datum/reagent/consumable/flour, reac_volume)
/datum/reagent/consumable/cherryjelly
name = "Cherry Jelly"
id = "cherryjelly"
description = "Totally the best. Only to be spread on foods with excellent lateral symmetry."
color = "#801E28" // rgb: 128, 30, 40
value = 1
@@ -550,7 +524,6 @@
/datum/reagent/consumable/bluecherryjelly
name = "Blue Cherry Jelly"
id = "bluecherryjelly"
description = "Blue and tastier kind of cherry jelly."
color = "#00F0FF"
value = 12
@@ -558,7 +531,6 @@
/datum/reagent/consumable/rice
name = "Rice"
id = "rice"
value = 0.5
description = "tiny nutritious grains"
reagent_state = SOLID
@@ -568,7 +540,6 @@
/datum/reagent/consumable/vanilla
name = "Vanilla Powder"
id = "vanilla"
value = 1
description = "A fatty, bitter paste made from vanilla pods."
reagent_state = SOLID
@@ -578,7 +549,6 @@
/datum/reagent/consumable/eggyolk
name = "Egg Yolk"
id = "eggyolk"
value = 1
description = "It's full of protein."
nutriment_factor = 3 * REAGENTS_METABOLISM
@@ -587,7 +557,6 @@
/datum/reagent/consumable/corn_starch
name = "Corn Starch"
id = "corn_starch"
value = 2
description = "A slippery solution."
color = "#f7f6e4"
@@ -595,7 +564,6 @@
/datum/reagent/consumable/corn_syrup
name = "Corn Syrup"
id = "corn_syrup"
value = 1
description = "Decays into sugar."
color = "#fff882"
@@ -603,12 +571,11 @@
taste_description = "sweet slime"
/datum/reagent/consumable/corn_syrup/on_mob_life(mob/living/carbon/M)
holder.add_reagent("sugar", 3)
holder.add_reagent(/datum/reagent/consumable/sugar, 3)
..()
/datum/reagent/consumable/honey
name = "honey"
id = "honey"
description = "Sweet sweet honey that decays into sugar. Has antibacterial and natural healing properties."
color = "#d3a308"
value = 15
@@ -617,7 +584,7 @@
taste_description = "sweetness"
/datum/reagent/consumable/honey/on_mob_life(mob/living/carbon/M)
M.reagents.add_reagent("sugar",3)
M.reagents.add_reagent(/datum/reagent/consumable/sugar,3)
if(prob(55))
M.adjustBruteLoss(-1*REM, 0)
M.adjustFireLoss(-1*REM, 0)
@@ -635,7 +602,6 @@
/datum/reagent/consumable/mayonnaise
name = "Mayonnaise"
id = "mayonnaise"
description = "An white and oily mixture of mixed egg yolks."
color = "#DFDFDF"
value = 5
@@ -643,7 +609,6 @@
/datum/reagent/consumable/tearjuice
name = "Tear Juice"
id = "tearjuice"
description = "A blinding substance extracted from certain onions."
color = "#c0c9a0"
taste_description = "bitterness"
@@ -682,7 +647,6 @@
/datum/reagent/consumable/nutriment/stabilized
name = "Stabilized Nutriment"
id = "stabilizednutriment"
description = "A bioengineered protien-nutrient structure designed to decompose in high saturation. In layman's terms, it won't get you fat."
reagent_state = SOLID
nutriment_factor = 15 * REAGENTS_METABOLISM
@@ -698,7 +662,6 @@
/datum/reagent/consumable/entpoly
name = "Entropic Polypnium"
id = "entpoly"
description = "An ichor, derived from a certain mushroom, makes for a bad time."
color = "#1d043d"
taste_description = "bitter mushroom"
@@ -719,7 +682,6 @@
/datum/reagent/consumable/tinlux
name = "Tinea Luxor"
id = "tinlux"
description = "A stimulating ichor which causes luminescent fungi to grow on the skin. "
color = "#b5a213"
taste_description = "tingling mushroom"
@@ -733,7 +695,6 @@
/datum/reagent/consumable/vitfro
name = "Vitrium Froth"
id = "vitfro"
description = "A bubbly paste that heals wounds of the skin."
color = "#d3a308"
nutriment_factor = 3 * REAGENTS_METABOLISM
@@ -749,7 +710,6 @@
/datum/reagent/consumable/clownstears
name = "Clown's Tears"
id = "clownstears"
description = "The sorrow and melancholy of a thousand bereaved clowns, forever denied their Honkmechs."
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#eef442" // rgb: 238, 244, 66
@@ -758,7 +718,6 @@
/datum/reagent/consumable/liquidelectricity
name = "Liquid Electricity"
id = "liquidelectricity"
description = "The blood of Ethereals, and the stuff that keeps them going. Great for them, horrid for anyone else."
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#97ee63"
@@ -782,7 +741,6 @@
/datum/reagent/consumable/astrotame
name = "Astrotame"
id = "astrotame"
description = "A space age artifical sweetener."
nutriment_factor = 0
metabolization_rate = 2 * REAGENTS_METABOLISM
@@ -801,7 +759,6 @@
/datum/reagent/consumable/caramel
name = "Caramel"
id = "caramel"
description = "Who would have guessed that heated sugar could be so delicious?"
nutriment_factor = 10 * REAGENTS_METABOLISM
color = "#D98736"
@@ -811,7 +768,6 @@
/datum/reagent/consumable/secretsauce
name = "secret sauce"
id = "secret_sauce"
description = "What could it be."
nutriment_factor = 2 * REAGENTS_METABOLISM
color = "#792300"
@@ -823,7 +779,6 @@
/datum/reagent/consumable/char
name = "Char"
id = "char"
description = "Essence of the grill. Has strange properties when overdosed."
reagent_state = LIQUID
nutriment_factor = 5 * REAGENTS_METABOLISM
@@ -838,7 +793,6 @@
/datum/reagent/consumable/bbqsauce
name = "BBQ Sauce"
id = "bbqsauce"
description = "Sweet, Smokey, Savory, and gets everywhere. Perfect for Grilling."
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#78280A" // rgb: 120 40, 10
@@ -8,7 +8,6 @@
/datum/reagent/impure/fermiTox
name = "Chemical Isomers"
id = "fermiTox"
description = "Toxic chemical isomers made from impure reactions. At low volumes will cause light toxin damage, but as the volume increases, it deals larger amounts, damages the liver, then eventually the heart. This is default impure chem for all chems, and changes only if stated."
data = "merge"
color = "FFFFFF"
@@ -7,17 +7,15 @@
/datum/reagent/medicine
name = "Medicine"
id = "medicine"
value = 2
taste_description = "bitterness"
/datum/reagent/medicine/on_mob_life(mob/living/carbon/M)
current_cycle++
holder.remove_reagent(src.id, metabolization_rate / M.metabolism_efficiency) //medicine reagents stay longer if you have a better metabolism
holder.remove_reagent(type, metabolization_rate / M.metabolism_efficiency) //medicine reagents stay longer if you have a better metabolism
/datum/reagent/medicine/leporazine
name = "Leporazine"
id = "leporazine"
description = "Leporazine will effectively regulate a patient's body temperature, ensuring it never leaves safe levels."
pH = 8.4
color = "#82b8aa"
@@ -31,7 +29,6 @@
/datum/reagent/medicine/adminordrazine //An OP chemical for admins
name = "Adminordrazine"
id = "adminordrazine"
description = "It's magic. We don't have to explain it."
color = "#ffffff"
can_synth = FALSE
@@ -79,13 +76,11 @@
/datum/reagent/medicine/adminordrazine/quantum_heal
name = "Quantum Medicine"
id = "quantum_heal"
description = "Rare and experimental particles, that apparently swap the user's body with one from an alternate dimension where it's completely healthy."
taste_description = "science"
/datum/reagent/medicine/synaptizine
name = "Synaptizine"
id = "synaptizine"
description = "Increases resistance to stuns as well as reducing drowsiness and hallucinations."
color = "#FF00FF"
pH = 4
@@ -95,8 +90,8 @@
M.AdjustStun(-20, 0)
M.AdjustKnockdown(-20, 0)
M.AdjustUnconscious(-20, 0)
if(holder.has_reagent("mindbreaker"))
holder.remove_reagent("mindbreaker", 5)
if(holder.has_reagent(/datum/reagent/toxin/mindbreaker))
holder.remove_reagent(/datum/reagent/toxin/mindbreaker, 5)
M.hallucination = max(0, M.hallucination - 10)
if(prob(30))
M.adjustToxLoss(1, 0)
@@ -105,17 +100,16 @@
/datum/reagent/medicine/synaphydramine
name = "Diphen-Synaptizine"
id = "synaphydramine"
description = "Reduces drowsiness, hallucinations, and Histamine from body."
color = "#EC536D" // rgb: 236, 83, 109
pH = 5.2
/datum/reagent/medicine/synaphydramine/on_mob_life(mob/living/carbon/M)
M.drowsyness = max(M.drowsyness-5, 0)
if(holder.has_reagent("mindbreaker"))
holder.remove_reagent("mindbreaker", 5)
if(holder.has_reagent("histamine"))
holder.remove_reagent("histamine", 5)
if(holder.has_reagent(/datum/reagent/toxin/mindbreaker))
holder.remove_reagent(/datum/reagent/toxin/mindbreaker, 5)
if(holder.has_reagent(/datum/reagent/toxin/histamine))
holder.remove_reagent(/datum/reagent/toxin/histamine, 5)
M.hallucination = max(0, M.hallucination - 10)
if(prob(30))
M.adjustToxLoss(1, 0)
@@ -124,7 +118,6 @@
/datum/reagent/medicine/inacusiate
name = "Inacusiate"
id = "inacusiate"
description = "Instantly restores all hearing to the patient, but does not cure deafness."
color = "#6600FF" // rgb: 100, 165, 255
pH = 2
@@ -136,7 +129,6 @@
/datum/reagent/medicine/cryoxadone
name = "Cryoxadone"
id = "cryoxadone"
description = "A chemical mixture with almost magical healing powers. Its main limitation is that the patient's body temperature must be under 270K for it to metabolise correctly."
color = "#0000C8"
taste_description = "sludge"
@@ -157,7 +149,6 @@
/datum/reagent/medicine/clonexadone
name = "Clonexadone"
id = "clonexadone"
description = "A chemical that derives from Cryoxadone. It specializes in healing clone damage, but nothing else. Requires very cold temperatures to properly metabolize, and metabolizes quicker than cryoxadone."
color = "#0000C8"
taste_description = "muscle"
@@ -174,7 +165,6 @@
/datum/reagent/medicine/pyroxadone
name = "Pyroxadone"
id = "pyroxadone"
description = "A mixture of cryoxadone and slime jelly, that apparently inverses the requirement for its activation."
color = "#f7832a"
taste_description = "spicy jelly"
@@ -204,7 +194,6 @@
/datum/reagent/medicine/rezadone
name = "Rezadone"
id = "rezadone"
description = "A powder derived from fish toxin, Rezadone can effectively treat genetic damage as well as restoring minor wounds. Overdose will cause intense nausea and minor toxin damage."
reagent_state = SOLID
color = "#669900" // rgb: 102, 153, 0
@@ -229,7 +218,6 @@
/datum/reagent/medicine/spaceacillin
name = "Spaceacillin"
id = "spaceacillin"
description = "Spaceacillin will prevent a patient from conventionally spreading any diseases they are currently infected with."
color = "#f2f2f2"
metabolization_rate = 0.1 * REAGENTS_METABOLISM
@@ -238,7 +226,6 @@
//Goon Chems. Ported mainly from Goonstation. Easily mixable (or not so easily) and provide a variety of effects.
/datum/reagent/medicine/silver_sulfadiazine
name = "Silver Sulfadiazine"
id = "silver_sulfadiazine"
description = "If used in touch-based applications, immediately restores burn wounds as well as restoring more over time. It is mildly poisonous taken orally or by injection. If overdosed, deals brute and minor liver damage."
reagent_state = LIQUID
pH = 7.2
@@ -277,7 +264,6 @@
/datum/reagent/medicine/oxandrolone
name = "Oxandrolone"
id = "oxandrolone"
description = "Stimulates the healing of severe burns. Extremely rapidly heals severe burns and slowly heals minor ones. Overdose will worsen existing burns."
reagent_state = LIQUID
color = "#f7ffa5"
@@ -302,7 +288,6 @@
/datum/reagent/medicine/styptic_powder
name = "Styptic Powder"
id = "styptic_powder"
description = "If used in touch-based applications, immediately restores bruising as well as restoring more over time. It is poisonous if taken orally or by injection. If overdosed, deals brute and minor liver damage."
reagent_state = LIQUID
color = "#FF9696"
@@ -342,7 +327,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/salglu_solution
name = "Saline-Glucose Solution"
id = "salglu_solution"
description = "Has a 33% chance per metabolism cycle to heal brute and burn damage. Can be used as a temporary blood substitute."
reagent_state = LIQUID
color = "#DCDCDC"
@@ -374,12 +358,12 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/salglu_solution/overdose_process(mob/living/M)
if(prob(3))
to_chat(M, "<span class = 'warning'>You feel salty.</span>")
holder.add_reagent("sodiumchloride", 1)
holder.remove_reagent("salglu_solution", 0.5)
holder.add_reagent(/datum/reagent/consumable/sodiumchloride, 1)
holder.remove_reagent(/datum/reagent/medicine/salglu_solution, 0.5)
else if(prob(3))
to_chat(M, "<span class = 'warning'>You feel sweet.</span>")
holder.add_reagent("sugar", 1)
holder.remove_reagent("salglu_solution", 0.5)
holder.add_reagent(/datum/reagent/consumable/sugar, 1)
holder.remove_reagent(/datum/reagent/medicine/salglu_solution, 0.5)
if(prob(33))
M.adjustBruteLoss(0.5*REM, 0)
M.adjustFireLoss(0.5*REM, 0)
@@ -388,7 +372,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/mine_salve
name = "Miner's Salve"
id = "mine_salve"
description = "A powerful painkiller. Restores bruising and burns in addition to making the patient believe they are fully healed."
reagent_state = LIQUID
color = "#6D6374"
@@ -428,7 +411,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/synthflesh
name = "Synthflesh"
id = "synthflesh"
description = "Has a 100% chance of healing large amounts of brute and burn damage very quickly. One unit of the chemical will heal one point of damage. Touch application only."
reagent_state = LIQUID
color = "#FFEBEB"
@@ -461,7 +443,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/charcoal
name = "Charcoal"
id = "charcoal"
description = "Heals toxin damage as well as slowly removing any other chemicals the patient has in their bloodstream."
reagent_state = LIQUID
color = "#000000"
@@ -473,14 +454,14 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/charcoal/on_mob_life(mob/living/carbon/M)
M.adjustToxLoss(-2*REM, 0)
. = 1
for(var/datum/reagent/R in M.reagents.reagent_list)
for(var/A in M.reagents.reagent_list)
var/datum/reagent/R = A
if(R != src)
M.reagents.remove_reagent(R.id,1)
M.reagents.remove_reagent(R.type,1)
..()
/datum/reagent/medicine/omnizine
name = "Omnizine"
id = "omnizine"
description = "Slowly heals all damage types. Overdose will cause damage in all types instead."
reagent_state = LIQUID
color = "#DCDCDC"
@@ -507,7 +488,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/calomel
name = "Calomel"
id = "calomel"
description = "Quickly purges the body of all chemicals. Toxin damage is dealt if the patient is in good condition."
reagent_state = LIQUID
color = "#19C832"
@@ -516,9 +496,10 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
pH = 1.5
/datum/reagent/medicine/calomel/on_mob_life(mob/living/carbon/M)
for(var/datum/reagent/R in M.reagents.reagent_list)
for(var/A in M.reagents.reagent_list)
var/datum/reagent/R = A
if(R != src)
M.reagents.remove_reagent(R.id,2.5)
M.reagents.remove_reagent(R.type,2.5)
if(M.health > 20)
M.adjustToxLoss(2.5*REM, 0)
. = 1
@@ -526,7 +507,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/potass_iodide
name = "Potassium Iodide"
id = "potass_iodide"
description = "Efficiently restores low radiation damage."
reagent_state = LIQUID
color = "#14FF3C"
@@ -540,7 +520,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/prussian_blue
name = "Prussian Blue"
id = "prussian_blue"
description = "Efficiently restores heavy radiation damage."
reagent_state = LIQUID
color = "#003153" // RGB 0, 49, 83
@@ -554,7 +533,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/pen_acid
name = "Pentetic Acid"
id = "pen_acid"
description = "Reduces massive amounts of radiation and toxin damage while purging other chemicals from the body."
reagent_state = LIQUID
color = "#E6FFF0"
@@ -565,15 +543,15 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/pen_acid/on_mob_life(mob/living/carbon/M)
M.radiation -= max(M.radiation-RAD_MOB_SAFE, 0)/50
M.adjustToxLoss(-2*REM, 0, healtoxinlover)
for(var/datum/reagent/R in M.reagents.reagent_list)
for(var/A in M.reagents.reagent_list)
var/datum/reagent/R = A
if(R != src)
M.reagents.remove_reagent(R.id,2)
M.reagents.remove_reagent(R.type,2)
..()
. = 1
/datum/reagent/medicine/pen_acid/pen_jelly
name = "Pentetic Jelly"
id = "pen_jelly"
description = "Reduces massive amounts of radiation and toxin damage while purging other chemicals from the body. Slimepeople friendly!"
color = "#91D865"
healtoxinlover = TRUE
@@ -581,7 +559,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/sal_acid
name = "Salicyclic Acid"
id = "sal_acid"
description = "Stimulates the healing of severe bruises. Extremely rapidly heals severe bruising and slowly heals minor ones. Overdose will worsen existing bruising."
reagent_state = LIQUID
color = "#D2D2D2"
@@ -606,7 +583,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/salbutamol
name = "Salbutamol"
id = "salbutamol"
description = "Rapidly restores oxygen deprivation as well as preventing more of it to an extent."
reagent_state = LIQUID
color = "#00FFFF"
@@ -622,7 +598,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/perfluorodecalin
name = "Perfluorodecalin"
id = "perfluorodecalin"
description = "Extremely rapidly restores oxygen deprivation, but inhibits speech. May also heal small amounts of bruising and burns."
reagent_state = LIQUID
color = "#FF6464"
@@ -640,7 +615,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/ephedrine
name = "Ephedrine"
id = "ephedrine"
description = "Increases stun resistance. Overdose deals toxin damage and inhibits breathing."
reagent_state = LIQUID
color = "#D2FFFA"
@@ -697,7 +671,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/diphenhydramine
name = "Diphenhydramine"
id = "diphenhydramine"
description = "Rapidly purges the body of Histamine and reduces jitteriness. Slight chance of causing drowsiness."
reagent_state = LIQUID
color = "#64FFE6"
@@ -708,12 +681,11 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
if(prob(10))
M.drowsyness += 1
M.jitteriness -= 1
M.reagents.remove_reagent("histamine",3)
M.reagents.remove_reagent(/datum/reagent/toxin/histamine,3)
..()
/datum/reagent/medicine/morphine
name = "Morphine"
id = "morphine"
description = "A painkiller that allows the patient to move at full speed even in bulky objects. Causes drowsiness and eventually unconsciousness in high doses. Overdose will cause a variety of effects, ranging from minor to lethal."
reagent_state = LIQUID
color = "#A9FBFB"
@@ -724,10 +696,10 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/morphine/on_mob_metabolize(mob/living/L)
..()
L.ignore_slowdown(id)
L.ignore_slowdown(type)
/datum/reagent/medicine/morphine/on_mob_end_metabolize(mob/living/L)
L.unignore_slowdown(id)
L.unignore_slowdown(type)
..()
/datum/reagent/medicine/morphine/on_mob_life(mob/living/carbon/M)
@@ -783,7 +755,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/oculine
name = "Oculine"
id = "oculine"
description = "Quickly restores eye damage, cures nearsightedness, and has a chance to restore vision to the blind."
reagent_state = LIQUID
color = "#FFFFFF"
@@ -814,7 +785,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/atropine
name = "Atropine"
id = "atropine"
description = "If a patient is in critical condition, rapidly heals all damage types as well as regulating oxygen in the body. Excellent for stabilizing wounded patients."
reagent_state = LIQUID
color = "#000000"
@@ -844,7 +814,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/epinephrine
name = "Epinephrine"
id = "epinephrine"
description = "Minor boost to stun resistance. Slowly heals damage if a patient is in critical condition, as well as regulating oxygen loss. Overdose causes weakness and toxin damage."
reagent_state = LIQUID
color = "#D2FFFA"
@@ -881,7 +850,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/strange_reagent
name = "Strange Reagent"
id = "strange_reagent"
description = "A miracle drug capable of bringing the dead back to life. Only functions when applied by patch or spray, if the target has less than 100 brute and burn damage (independent of one another) and hasn't been husked. Causes slight damage to the living."
reagent_state = LIQUID
color = "#A0E85E"
@@ -933,7 +901,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/mannitol
name = "Mannitol"
id = "mannitol"
description = "Efficiently restores brain damage."
color = "#DCDCFF"
pH = 10.4
@@ -946,7 +913,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/neurine
name = "Neurine"
id = "neurine"
description = "Reacts with neural tissue, helping reform damaged connections. Can cure minor traumas."
color = "#EEFF8F"
@@ -966,15 +932,14 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/neurine/on_mob_life(mob/living/carbon/C)
if(holder.has_reagent("neurotoxin"))
holder.remove_reagent("neurotoxin", 5)
if(holder.has_reagent(/datum/reagent/consumable/ethanol/neurotoxin))
holder.remove_reagent(/datum/reagent/consumable/ethanol/neurotoxin, 5)
if(prob(15))
C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_BASIC)
..()
/datum/reagent/medicine/mutadone
name = "Mutadone"
id = "mutadone"
description = "Removes jitteriness and restores genetic defects."
color = "#5096C8"
taste_description = "acid"
@@ -989,7 +954,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/antihol
name = "Antihol"
id = "antihol"
description = "Purges alcoholic substance from the patient's body and eliminates its side effects."
color = "#00B4C8"
taste_description = "raw egg"
@@ -1010,7 +974,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/stimulants
name = "Stimulants"
id = "stimulants"
description = "Increases stun resistance and movement speed in addition to restoring minor damage and weakness. Overdose causes weakness and toxin damage."
color = "#78008C"
metabolization_rate = 0.5 * REAGENTS_METABOLISM
@@ -1019,10 +982,10 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/stimulants/on_mob_metabolize(mob/living/L)
..()
L.add_movespeed_modifier(id, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING))
L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-1, blacklisted_movetypes=(FLYING|FLOATING))
/datum/reagent/medicine/stimulants/on_mob_end_metabolize(mob/living/L)
L.remove_movespeed_modifier(id)
L.remove_movespeed_modifier(type)
..()
/datum/reagent/medicine/stimulants/on_mob_life(mob/living/carbon/M)
@@ -1048,7 +1011,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/insulin
name = "Insulin"
id = "insulin"
description = "Increases sugar depletion rates."
reagent_state = LIQUID
color = "#FFFFF0"
@@ -1058,13 +1020,12 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/insulin/on_mob_life(mob/living/carbon/M)
if(M.AdjustSleeping(-20, FALSE))
. = 1
M.reagents.remove_reagent("sugar", 3)
M.reagents.remove_reagent(/datum/reagent/consumable/sugar, 3)
..()
//Trek Chems, used primarily by medibots. Only heals a specific damage type, but is very efficient.
/datum/reagent/medicine/bicaridine
name = "Bicaridine"
id = "bicaridine"
description = "Restores bruising. Overdose causes it instead."
reagent_state = LIQUID
color = "#fc2626"
@@ -1083,7 +1044,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/dexalin
name = "Dexalin"
id = "dexalin"
description = "Restores oxygen loss. Overdose causes it instead."
reagent_state = LIQUID
color = "#13d2f0"
@@ -1102,7 +1062,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/kelotane
name = "Kelotane"
id = "kelotane"
description = "Restores fire damage. Overdose causes it instead."
reagent_state = LIQUID
color = "#ffc400"
@@ -1121,7 +1080,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/antitoxin
name = "Anti-Toxin"
id = "antitoxin"
description = "Heals toxin damage and removes toxins in the bloodstream. Overdose causes toxin damage."
reagent_state = LIQUID
color = "#6aff00"
@@ -1132,7 +1090,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/antitoxin/on_mob_life(mob/living/carbon/M)
M.adjustToxLoss(-2*REM, 0)
for(var/datum/reagent/toxin/R in M.reagents.reagent_list)
M.reagents.remove_reagent(R.id,1)
M.reagents.remove_reagent(R.type,1)
..()
. = 1
@@ -1143,7 +1101,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/inaprovaline
name = "Inaprovaline"
id = "inaprovaline"
description = "Stabilizes the breathing of patients. Good for those in critical condition."
reagent_state = LIQUID
pH = 8.5
@@ -1156,7 +1113,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/tricordrazine
name = "Tricordrazine"
id = "tricordrazine"
description = "Has a high chance to heal all types of damage. Overdose instead causes it."
reagent_state = LIQUID
color = "#e650c0"
@@ -1182,7 +1138,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/regen_jelly
name = "Regenerative Jelly"
id = "regen_jelly"
description = "Gradually regenerates all types of damage, without harming slime anatomy."
reagent_state = LIQUID
color = "#91D865"
@@ -1198,7 +1153,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/syndicate_nanites //Used exclusively by Syndicate medical cyborgs
name = "Restorative Nanites"
id = "syndicate_nanites"
description = "Miniature medical robots that swiftly restore bodily damage."
reagent_state = SOLID
color = "#555555"
@@ -1219,7 +1173,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/lesser_syndicate_nanites // the one in the injector
name = "Regenerative Nanites"
id = "lesser_syndicate_nanites"
description = "Miniature medical robots that restore damage and get operatives back in the fight."
reagent_state = SOLID
color = "#555555"
@@ -1240,7 +1193,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/neo_jelly
name = "Neo Jelly"
id = "neo_jelly"
description = "Gradually regenerates all types of damage, without harming slime anatomy.Can OD"
reagent_state = LIQUID
metabolization_rate = 1 * REAGENTS_METABOLISM
@@ -1266,7 +1218,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/earthsblood //Created by ambrosia gaia plants
name = "Earthsblood"
id = "earthsblood"
description = "Ichor from an extremely powerful plant. Great for restoring wounds, but it's a little heavy on the brain."
color = rgb(255, 175, 0)
overdose_threshold = 25
@@ -1293,7 +1244,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/haloperidol
name = "Haloperidol"
id = "haloperidol"
description = "Increases depletion rates for most stimulating/hallucinogenic drugs. Reduces druggy effects and jitteriness. Severe stamina regeneration penalty, causes drowsiness. Small chance of brain damage."
reagent_state = LIQUID
color = "#27870a"
@@ -1302,7 +1252,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/haloperidol/on_mob_life(mob/living/carbon/M)
for(var/datum/reagent/drug/R in M.reagents.reagent_list)
M.reagents.remove_reagent(R.id,5)
M.reagents.remove_reagent(R.type,5)
M.drowsyness += 2
if(M.jitteriness >= 3)
M.jitteriness -= 3
@@ -1316,7 +1266,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/lavaland_extract
name = "Lavaland Extract"
id = "lavaland_extract"
description = "An extract of lavaland atmospheric and mineral elements. Heals the user in small doses, but is extremely toxic otherwise."
color = "#a1a1a1"
overdose_threshold = 3 //To prevent people stacking massive amounts of a very strong healing reagent
@@ -1338,7 +1287,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
//used for changeling's adrenaline power
/datum/reagent/medicine/changelingadrenaline
name = "Changeling Adrenaline"
id = "changelingadrenaline"
description = "Reduces the duration of unconciousness, knockdown and stuns. Restores stamina, but deals toxin damage when overdosed."
color = "#918e53"
overdose_threshold = 30
@@ -1359,17 +1307,16 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/changelinghaste
name = "Changeling Haste"
id = "changelinghaste"
description = "Drastically increases movement speed, but deals toxin damage."
color = "#669153"
metabolization_rate = 1
/datum/reagent/medicine/changelinghaste/on_mob_metabolize(mob/living/L)
..()
L.add_movespeed_modifier(id, update=TRUE, priority=100, multiplicative_slowdown=-2, blacklisted_movetypes=(FLYING|FLOATING))
L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-2, blacklisted_movetypes=(FLYING|FLOATING))
/datum/reagent/medicine/changelinghaste/on_mob_end_metabolize(mob/living/L)
L.remove_movespeed_modifier(id)
L.remove_movespeed_modifier(type)
..()
/datum/reagent/medicine/changelinghaste/on_mob_life(mob/living/carbon/M)
@@ -1381,7 +1328,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
// Heart attack code will not do damage if corazone is present
// because it's SPACE MAGIC ASPIRIN
name = "Corazone"
id = "corazone"
description = "A medication used to treat pain, fever, and inflammation, along with heart attacks."
color = "#F5F5F5"
self_consuming = TRUE
@@ -1399,20 +1345,18 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/muscle_stimulant
name = "Muscle Stimulant"
id = "muscle_stimulant"
description = "A potent chemical that allows someone under its influence to be at full physical ability even when under massive amounts of pain."
/datum/reagent/medicine/muscle_stimulant/on_mob_metabolize(mob/living/M)
. = ..()
M.ignore_slowdown(id)
M.ignore_slowdown(type)
/datum/reagent/medicine/muscle_stimulant/on_mob_end_metabolize(mob/living/M)
. = ..()
M.unignore_slowdown(id)
M.unignore_slowdown(type)
/datum/reagent/medicine/modafinil
name = "Modafinil"
id = "modafinil"
description = "Long-lasting sleep suppressant that very slightly reduces stun and knockdown times. Overdosing has horrendous side effects and deals lethal oxygen damage, will knock you unconscious if not dealt with."
reagent_state = LIQUID
color = "#BEF7D8" // palish blue white
@@ -1423,11 +1367,11 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
pH = 7.89
/datum/reagent/medicine/modafinil/on_mob_metabolize(mob/living/M)
ADD_TRAIT(M, TRAIT_SLEEPIMMUNE, id)
ADD_TRAIT(M, TRAIT_SLEEPIMMUNE, type)
..()
/datum/reagent/medicine/modafinil/on_mob_end_metabolize(mob/living/M)
REMOVE_TRAIT(M, TRAIT_SLEEPIMMUNE, id)
REMOVE_TRAIT(M, TRAIT_SLEEPIMMUNE, type)
..()
/datum/reagent/medicine/modafinil/on_mob_life(mob/living/carbon/M)
@@ -1480,7 +1424,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/psicodine
name = "Psicodine"
id = "psicodine"
description = "Suppresses anxiety and other various forms of mental distress. Overdose causes hallucinations and minor toxin damage."
reagent_state = LIQUID
color = "#07E79E"
@@ -1490,10 +1433,10 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/psicodine/on_mob_add(mob/living/L)
..()
ADD_TRAIT(L, TRAIT_FEARLESS, id)
ADD_TRAIT(L, TRAIT_FEARLESS, type)
/datum/reagent/medicine/psicodine/on_mob_delete(mob/living/L)
REMOVE_TRAIT(L, TRAIT_FEARLESS, id)
REMOVE_TRAIT(L, TRAIT_FEARLESS, type)
..()
/datum/reagent/medicine/psicodine/on_mob_life(mob/living/carbon/M)
@@ -1515,7 +1458,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/silibinin
name = "Silibinin"
id = "silibinin"
description = "A thistle derrived hepatoprotective flavolignan mixture that help reverse damage to the liver."
reagent_state = SOLID
color = "#FFFFD0"
@@ -1528,7 +1470,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
/datum/reagent/medicine/polypyr //This is intended to be an ingredient in advanced chems.
name = "Polypyrylium Oligomers"
id = "polypyr"
description = "Apurple mixture of short polyelectrolyte chains not easily synthesized in the laboratory. It is valued as an intermediate in the synthesis of the cutting edge pharmaceuticals."
reagent_state = SOLID
color = "#9423FF"
File diff suppressed because it is too large Load Diff
@@ -1,7 +1,6 @@
/datum/reagent/thermite
name = "Thermite"
id = "thermite"
description = "Thermite produces an aluminothermic reaction known as a thermite reaction. Can be used to melt walls."
reagent_state = SOLID
color = "#550000"
@@ -18,7 +17,6 @@
/datum/reagent/nitroglycerin
name = "Nitroglycerin"
id = "nitroglycerin"
value = 5
description = "Nitroglycerin is a heavy, colorless, oily, explosive liquid obtained by nitrating glycerol."
color = "#808080" // rgb: 128, 128, 128
@@ -26,7 +24,6 @@
/datum/reagent/stabilizing_agent
name = "Stabilizing Agent"
id = "stabilizing_agent"
description = "Keeps unstable chemicals stable. This does not work on everything."
reagent_state = LIQUID
color = "#FFFF00"
@@ -35,7 +32,6 @@
/datum/reagent/clf3
name = "Chlorine Trifluoride"
id = "clf3"
description = "Makes a temporary 3x3 fireball when it comes into existence, so be careful when mixing. ClF3 applied to a surface burns things that wouldn't otherwise burn, sometimes through the very floors of the station and exposing it to the vacuum of space."
reagent_state = LIQUID
color = "#FFC8C8"
@@ -79,7 +75,6 @@
/datum/reagent/sorium
name = "Sorium"
id = "sorium"
description = "Sends everything flying from the detonation point."
reagent_state = LIQUID
color = "#5A64C8"
@@ -87,7 +82,6 @@
/datum/reagent/liquid_dark_matter
name = "Liquid Dark Matter"
id = "liquid_dark_matter"
description = "Sucks everything into the detonation point."
reagent_state = LIQUID
color = "#210021"
@@ -96,7 +90,6 @@
/datum/reagent/blackpowder
name = "Black Powder"
id = "blackpowder"
description = "Explodes. Violently."
reagent_state = LIQUID
color = "#000000"
@@ -118,7 +111,6 @@
/datum/reagent/flash_powder
name = "Flash Powder"
id = "flash_powder"
description = "Makes a very bright flash."
reagent_state = LIQUID
color = "#C8C8C8"
@@ -126,7 +118,6 @@
/datum/reagent/smoke_powder
name = "Smoke Powder"
id = "smoke_powder"
description = "Makes a large cloud of smoke that can carry reagents."
reagent_state = LIQUID
color = "#C8C8C8"
@@ -134,7 +125,6 @@
/datum/reagent/sonic_powder
name = "Sonic Powder"
id = "sonic_powder"
description = "Makes a deafening noise."
reagent_state = LIQUID
color = "#C8C8C8"
@@ -142,7 +132,6 @@
/datum/reagent/phlogiston
name = "Phlogiston"
id = "phlogiston"
description = "Catches you on fire and makes you ignite."
reagent_state = LIQUID
color = "#FA00AF"
@@ -164,7 +153,6 @@
/datum/reagent/napalm
name = "Napalm"
id = "napalm"
description = "Very flammable."
reagent_state = LIQUID
color = "#FA00AF"
@@ -182,7 +170,6 @@
/datum/reagent/cryostylane
name = "Cryostylane"
id = "cryostylane"
description = "Comes into existence at 20K. As long as there is sufficient oxygen for it to react with, Cryostylane slowly cools all other reagents in the container 0K."
color = "#0000DC"
metabolization_rate = 0.5 * REAGENTS_METABOLISM
@@ -190,8 +177,8 @@
/datum/reagent/cryostylane/on_mob_life(mob/living/carbon/M) //TODO: code freezing into an ice cube
if(M.reagents.has_reagent("oxygen"))
M.reagents.remove_reagent("oxygen", 0.5)
if(M.reagents.has_reagent(/datum/reagent/oxygen))
M.reagents.remove_reagent(/datum/reagent/oxygen, 0.5)
M.adjust_bodytemperature(-15)
..()
@@ -202,21 +189,19 @@
/datum/reagent/pyrosium
name = "Pyrosium"
id = "pyrosium"
description = "Comes into existence at 20K. As long as there is sufficient oxygen for it to react with, Pyrosium slowly heats all other reagents in the container."
color = "#64FAC8"
metabolization_rate = 0.5 * REAGENTS_METABOLISM
taste_description = "bitterness"
/datum/reagent/pyrosium/on_mob_life(mob/living/carbon/M)
if(M.reagents.has_reagent("oxygen"))
M.reagents.remove_reagent("oxygen", 0.5)
if(M.reagents.has_reagent(/datum/reagent/oxygen))
M.reagents.remove_reagent(/datum/reagent/oxygen, 0.5)
M.adjust_bodytemperature(15)
..()
/datum/reagent/teslium //Teslium. Causes periodic shocks, and makes shocks against the target much more effective.
name = "Teslium"
id = "teslium"
description = "An unstable, electrically-charged metallic slurry. Periodically electrocutes its victim, and makes electrocutions against them more deadly. Excessively heating teslium results in dangerous destabilization. Do not allow to come into contact with water."
reagent_state = LIQUID
color = "#20324D" //RGB: 32, 50, 77
@@ -234,7 +219,6 @@
/datum/reagent/teslium/energized_jelly
name = "Energized Jelly"
id = "energized_jelly"
description = "Electrically-charged jelly. Boosts jellypeople's nervous system, but only shocks other lifeforms."
reagent_state = LIQUID
color = "#CAFF43"
@@ -255,7 +239,6 @@
/datum/reagent/firefighting_foam
name = "Firefighting Foam"
id = "firefighting_foam"
description = "A historical fire suppressant. Originally believed to simply displace oxygen to starve fires, it actually interferes with the combustion reaction itself. Vastly superior to the cheap water-based extinguishers found on NT vessels."
reagent_state = LIQUID
color = "#A6FAFF55"
@@ -3,7 +3,6 @@
/datum/reagent/toxin
name = "Toxin"
id = "toxin"
description = "A toxic chemical."
color = "#CF3600" // rgb: 207, 54, 0
taste_description = "bitterness"
@@ -18,7 +17,6 @@
/datum/reagent/toxin/amatoxin
name = "Amatoxin"
id = "amatoxin"
description = "A powerful poison derived from certain species of mushroom."
color = "#792300" // rgb: 121, 35, 0
toxpwr = 2.5
@@ -27,7 +25,6 @@
/datum/reagent/toxin/mutagen
name = "Unstable mutagen"
id = "mutagen"
description = "Might cause unpredictable mutations. Keep away from children."
color = "#00FF00"
toxpwr = 0
@@ -56,7 +53,6 @@
/datum/reagent/toxin/plasma
name = "Plasma"
id = "plasma"
description = "Plasma in its liquid form."
taste_description = "bitterness"
specific_heat = SPECIFIC_HEAT_PLASMA
@@ -66,8 +62,8 @@
pH = 4
/datum/reagent/toxin/plasma/on_mob_life(mob/living/carbon/C)
if(holder.has_reagent("epinephrine"))
holder.remove_reagent("epinephrine", 2*REM)
if(holder.has_reagent(/datum/reagent/medicine/epinephrine))
holder.remove_reagent(/datum/reagent/medicine/epinephrine, 2*REM)
C.adjustPlasma(20)
return ..()
@@ -91,7 +87,6 @@
/datum/reagent/toxin/lexorin
name = "Lexorin"
id = "lexorin"
description = "A powerful poison used to stop respiration."
color = "#7DC3A0"
toxpwr = 0
@@ -113,7 +108,6 @@
/datum/reagent/toxin/slimejelly
name = "Slime Jelly"
id = "slimejelly"
description = "A gooey semi-liquid produced from one of the deadliest lifeforms in existence. SO REAL."
color = "#801E28" // rgb: 128, 30, 40
toxpwr = 0
@@ -133,7 +127,6 @@
/datum/reagent/toxin/minttoxin
name = "Mint Toxin"
id = "minttoxin"
description = "Useful for dealing with undesirable customers."
color = "#CF3600" // rgb: 207, 54, 0
toxpwr = 0
@@ -147,7 +140,6 @@
/datum/reagent/toxin/carpotoxin
name = "Carpotoxin"
id = "carpotoxin"
description = "A deadly neurotoxin produced by the dreaded spess carp."
color = "#003333" // rgb: 0, 51, 51
toxpwr = 2
@@ -156,7 +148,6 @@
/datum/reagent/toxin/zombiepowder
name = "Zombie Powder"
id = "zombiepowder"
description = "A strong neurotoxin that puts the subject into a death-like state."
reagent_state = SOLID
color = "#669900" // rgb: 102, 153, 0
@@ -166,10 +157,10 @@
/datum/reagent/toxin/zombiepowder/on_mob_metabolize(mob/living/L)
..()
L.fakedeath(id)
L.fakedeath(type)
/datum/reagent/toxin/zombiepowder/on_mob_end_metabolize(mob/living/L)
L.cure_fakedeath(id)
L.cure_fakedeath(type)
..()
/datum/reagent/toxin/zombiepowder/on_mob_life(mob/living/carbon/M)
@@ -179,7 +170,6 @@
/datum/reagent/toxin/ghoulpowder
name = "Ghoul Powder"
id = "ghoulpowder"
description = "A strong neurotoxin that slows metabolism to a death-like state, while keeping the patient fully active. Causes toxin buildup if used too long."
reagent_state = SOLID
color = "#664700" // rgb: 102, 71, 0
@@ -189,10 +179,10 @@
/datum/reagent/toxin/ghoulpowder/on_mob_metabolize(mob/living/L)
..()
ADD_TRAIT(L, TRAIT_FAKEDEATH, id)
ADD_TRAIT(L, TRAIT_FAKEDEATH, type)
/datum/reagent/toxin/ghoulpowder/on_mob_end_metabolize(mob/living/L)
REMOVE_TRAIT(L, TRAIT_FAKEDEATH, id)
REMOVE_TRAIT(L, TRAIT_FAKEDEATH, type)
..()
/datum/reagent/toxin/ghoulpowder/on_mob_life(mob/living/carbon/M)
@@ -202,7 +192,6 @@
/datum/reagent/toxin/mindbreaker
name = "Mindbreaker Toxin"
id = "mindbreaker"
description = "A powerful hallucinogen. Not a thing to be messed with. For some mental patients. it counteracts their symptoms and anchors them to reality."
color = "#B31008" // rgb: 139, 166, 233
toxpwr = 0
@@ -215,7 +204,6 @@
/datum/reagent/toxin/plantbgone
name = "Plant-B-Gone"
id = "plantbgone"
description = "A harmful toxic mixture to kill plantlife. Do not ingest!"
color = "#49002E" // rgb: 73, 0, 46
toxpwr = 1
@@ -242,14 +230,12 @@
/datum/reagent/toxin/plantbgone/weedkiller
name = "Weed Killer"
id = "weedkiller"
description = "A harmful toxic mixture to kill weeds. Do not ingest!"
color = "#4B004B" // rgb: 75, 0, 75
pH = 3
/datum/reagent/toxin/pestkiller
name = "Pest Killer"
id = "pestkiller"
description = "A harmful toxic mixture to kill pests. Do not ingest!"
color = "#4B004B" // rgb: 75, 0, 75
toxpwr = 1
@@ -263,7 +249,6 @@
/datum/reagent/toxin/spore
name = "Spore Toxin"
id = "spore"
description = "A natural toxin produced by blob spores that inhibits vision when ingested."
color = "#9ACD32"
toxpwr = 1
@@ -277,7 +262,6 @@
/datum/reagent/toxin/spore_burning
name = "Burning Spore Toxin"
id = "spore_burning"
description = "A natural toxin produced by blob spores that induces combustion in its victim."
color = "#9ACD32"
toxpwr = 0.5
@@ -291,7 +275,6 @@
/datum/reagent/toxin/chloralhydrate
name = "Chloral Hydrate"
id = "chloralhydrate"
description = "A powerful sedative that induces confusion and drowsiness before putting its target to sleep."
reagent_state = SOLID
color = "#000067" // rgb: 0, 0, 103
@@ -315,7 +298,6 @@
/datum/reagent/toxin/fakebeer //disguised as normal beer for use by emagged brobots
name = "Beer"
id = "fakebeer"
description = "A specially-engineered sedative disguised as beer. It induces instant sleep in its target."
color = "#664300" // rgb: 102, 67, 0
metabolization_rate = 1.5 * REAGENTS_METABOLISM
@@ -336,7 +318,6 @@
/datum/reagent/toxin/coffeepowder
name = "Coffee Grounds"
id = "coffeepowder"
description = "Finely ground coffee beans, used to make coffee."
reagent_state = SOLID
color = "#5B2E0D" // rgb: 91, 46, 13
@@ -345,7 +326,6 @@
/datum/reagent/toxin/teapowder
name = "Ground Tea Leaves"
id = "teapowder"
description = "Finely shredded tea leaves, used for making tea."
reagent_state = SOLID
color = "#7F8400" // rgb: 127, 132, 0
@@ -354,7 +334,6 @@
/datum/reagent/toxin/mutetoxin //the new zombie powder.
name = "Mute Toxin"
id = "mutetoxin"
description = "A nonlethal poison that inhibits speech in its victim."
color = "#F0F8FF" // rgb: 240, 248, 255
toxpwr = 0
@@ -367,7 +346,6 @@
/datum/reagent/toxin/staminatoxin
name = "Tirizene"
id = "tirizene"
description = "A nonlethal poison that causes extreme fatigue and weakness in its victim."
color = "#6E2828"
data = 15
@@ -381,7 +359,6 @@
/datum/reagent/toxin/polonium
name = "Polonium"
id = "polonium"
description = "An extremely radioactive material in liquid form. Ingestion results in fatal irradiation."
reagent_state = LIQUID
color = "#787878"
@@ -394,7 +371,6 @@
/datum/reagent/toxin/histamine
name = "Histamine"
id = "histamine"
description = "Histamine's effects become more dangerous depending on the dosage amount. They range from mildly annoying to incredibly lethal."
reagent_state = LIQUID
color = "#FA6464"
@@ -428,7 +404,6 @@
/datum/reagent/toxin/formaldehyde
name = "Formaldehyde"
id = "formaldehyde"
description = "Formaldehyde, on its own, is a fairly weak toxin. It contains trace amounts of Histamine, very rarely making it decay into Histamine."
reagent_state = LIQUID
color = "#B4004B"
@@ -437,14 +412,13 @@
/datum/reagent/toxin/formaldehyde/on_mob_life(mob/living/carbon/M)
if(prob(5))
holder.add_reagent("histamine", pick(5,15))
holder.remove_reagent("formaldehyde", 1.2)
holder.add_reagent(/datum/reagent/toxin/histamine, pick(5,15))
holder.remove_reagent(type, 1.2)
else
return ..()
/datum/reagent/toxin/venom
name = "Venom"
id = "venom"
description = "An exotic poison extracted from highly toxic fauna. Causes scaling amounts of toxin damage and bruising depending and dosage. Often decays into Histamine."
reagent_state = LIQUID
color = "#F0FFF0"
@@ -456,14 +430,13 @@
M.adjustBruteLoss((0.3*volume)*REM, 0)
. = 1
if(prob(15))
M.reagents.add_reagent("histamine", pick(5,10))
M.reagents.remove_reagent("venom", 1.1)
M.reagents.add_reagent(/datum/reagent/toxin/histamine, pick(5,10))
M.reagents.remove_reagent(type, 1.1)
else
..()
/datum/reagent/toxin/fentanyl
name = "Fentanyl"
id = "fentanyl"
description = "Fentanyl will inhibit brain function and cause toxin damage before eventually knocking out its victim."
reagent_state = LIQUID
color = "#64916E"
@@ -481,7 +454,6 @@
/datum/reagent/toxin/cyanide
name = "Cyanide"
id = "cyanide"
description = "An infamous poison known for its use in assassination. Causes small amounts of toxin damage with a small chance of oxygen damage or a stun."
reagent_state = LIQUID
color = "#00B4FF"
@@ -499,7 +471,6 @@
/datum/reagent/toxin/bad_food
name = "Bad Food"
id = "bad_food"
description = "The result of some abomination of cookery, food so bad it's toxic."
reagent_state = LIQUID
color = "#d6d6d8"
@@ -509,7 +480,6 @@
/datum/reagent/toxin/itching_powder
name = "Itching Powder"
id = "itching_powder"
description = "A powder that induces itching upon contact with the skin. Causes the victim to scratch at their itches and has a very low chance to decay into Histamine."
reagent_state = LIQUID
color = "#C8C8C8"
@@ -518,7 +488,7 @@
/datum/reagent/toxin/itching_powder/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
if(method == TOUCH || method == VAPOR)
M.reagents.add_reagent("itching_powder", reac_volume)
M.reagents.add_reagent(/datum/reagent/toxin/itching_powder, reac_volume)
/datum/reagent/toxin/itching_powder/on_mob_life(mob/living/carbon/M)
if(prob(15))
@@ -534,14 +504,13 @@
M.adjustBruteLoss(0.2*REM, 0)
. = 1
if(prob(3))
M.reagents.add_reagent("histamine",rand(1,3))
M.reagents.remove_reagent("itching_powder",1.2)
M.reagents.add_reagent(/datum/reagent/toxin/histamine,rand(1,3))
M.reagents.remove_reagent(type,1.2)
return
..()
/datum/reagent/toxin/initropidril
name = "Initropidril"
id = "initropidril"
description = "A powerful poison with insidious effects. It can cause stuns, lethal breathing failure, and cardiac arrest."
reagent_state = LIQUID
color = "#7F10C0"
@@ -572,7 +541,6 @@
/datum/reagent/toxin/pancuronium
name = "Pancuronium"
id = "pancuronium"
description = "An undetectable toxin that swiftly incapacitates its victim. May also cause breathing failure."
reagent_state = LIQUID
color = "#195096"
@@ -590,7 +558,6 @@
/datum/reagent/toxin/sodium_thiopental
name = "Sodium Thiopental"
id = "sodium_thiopental"
description = "Sodium Thiopental induces heavy weakness in its target as well as unconsciousness."
reagent_state = LIQUID
color = "#6496FA"
@@ -606,7 +573,6 @@
/datum/reagent/toxin/sulfonal
name = "Sulfonal"
id = "sulfonal"
description = "A stealthy poison that deals minor toxin damage and eventually puts the target to sleep."
reagent_state = LIQUID
color = "#7DC3A0"
@@ -620,7 +586,6 @@
/datum/reagent/toxin/amanitin
name = "Amanitin"
id = "amanitin"
description = "A very powerful delayed toxin. Upon full metabolization, a massive amount of toxin damage will be dealt depending on how long it has been in the victim's bloodstream."
reagent_state = LIQUID
color = "#FFFFFF"
@@ -635,7 +600,6 @@
/datum/reagent/toxin/lipolicide
name = "Lipolicide"
id = "lipolicide"
description = "A powerful toxin that will destroy fat cells, massively reducing body weight in a short time. Deadly to those without nutriment in their body."
taste_description = "mothballs"
reagent_state = LIQUID
@@ -652,7 +616,6 @@
/datum/reagent/toxin/coniine
name = "Coniine"
id = "coniine"
description = "Coniine metabolizes extremely slowly, but deals high amounts of toxin damage and stops breathing."
reagent_state = LIQUID
color = "#7DC3A0"
@@ -665,7 +628,6 @@
/datum/reagent/toxin/spewium
name = "Spewium"
id = "spewium"
description = "A powerful emetic, causes uncontrollable vomiting. May result in vomiting organs at high doses."
reagent_state = LIQUID
color = "#2f6617" //A sickly green color
@@ -680,7 +642,7 @@
C.vomit(10, prob(10), prob(50), rand(0,4), TRUE, prob(30))
for(var/datum/reagent/toxin/R in C.reagents.reagent_list)
if(R != src)
C.reagents.remove_reagent(R.id,1)
C.reagents.remove_reagent(R.type,1)
/datum/reagent/toxin/spewium/overdose_process(mob/living/carbon/C)
. = ..()
@@ -691,7 +653,6 @@
/datum/reagent/toxin/curare
name = "Curare"
id = "curare"
description = "Causes slight toxin damage followed by chain-stunning and oxygen damage."
reagent_state = LIQUID
color = "#191919"
@@ -707,7 +668,6 @@
/datum/reagent/toxin/heparin //Based on a real-life anticoagulant. I'm not a doctor, so this won't be realistic.
name = "Heparin"
id = "heparin"
description = "A powerful anticoagulant. Victims will bleed uncontrollably and suffer scaling bruising."
reagent_state = LIQUID
color = "#C8C8C8" //RGB: 200, 200, 200
@@ -725,7 +685,6 @@
/datum/reagent/toxin/rotatium //Rotatium. Fucks up your rotation and is hilarious
name = "Rotatium"
id = "rotatium"
description = "A constantly swirling, oddly colourful fluid. Causes the consumer's sense of direction and hand-eye coordination to become wild."
reagent_state = LIQUID
color = "#AC88CA" //RGB: 172, 136, 202
@@ -752,7 +711,6 @@
/datum/reagent/toxin/skewium
name = "Skewium"
id = "skewium"
description = "A strange, dull coloured liquid that appears to warp back and forth inside its container. Causes any consumer to experience a visual phenomena similar to said warping."
reagent_state = LIQUID
color = "#ADBDCD"
@@ -790,7 +748,6 @@
/datum/reagent/toxin/anacea
name = "Anacea"
id = "anacea"
description = "A toxin that quickly purges medicines and metabolizes very slowly."
reagent_state = LIQUID
color = "#3C5133"
@@ -799,10 +756,10 @@
/datum/reagent/toxin/anacea/on_mob_life(mob/living/carbon/M)
var/remove_amt = 5
if(holder.has_reagent("calomel") || holder.has_reagent("pen_acid") || holder.has_reagent("pen_jelly"))
if(holder.has_reagent(/datum/reagent/medicine/calomel) || holder.has_reagent(/datum/reagent/medicine/pen_acid) || holder.has_reagent(/datum/reagent/medicine/pen_acid/pen_jelly))
remove_amt = 0.5
for(var/datum/reagent/medicine/R in M.reagents.reagent_list)
M.reagents.remove_reagent(R.id,remove_amt)
M.reagents.remove_reagent(R.type,remove_amt)
return ..()
//ACID
@@ -810,7 +767,6 @@
/datum/reagent/toxin/acid
name = "Sulphuric acid"
id = "sacid"
description = "A strong mineral acid with the molecular formula H2SO4."
color = "#00FF32"
toxpwr = 1
@@ -845,7 +801,6 @@
/datum/reagent/toxin/acid/fluacid
name = "Fluorosulfuric acid"
id = "facid"
description = "Fluorosulfuric acid is an extremely corrosive chemical substance."
color = "#5050FF"
toxpwr = 2
@@ -858,7 +813,6 @@
/datum/reagent/toxin/delayed
name = "Toxin Microcapsules"
id = "delayed_toxin"
description = "Causes heavy toxin damage after a brief time of inactivity."
reagent_state = LIQUID
metabolization_rate = 0 //stays in the system until active.
@@ -869,7 +823,7 @@
/datum/reagent/toxin/delayed/on_mob_life(mob/living/carbon/M)
if(current_cycle > delay)
holder.remove_reagent(id, actual_metaboliztion_rate * M.metabolism_efficiency)
holder.remove_reagent(type, actual_metaboliztion_rate * M.metabolism_efficiency)
M.adjustToxLoss(actual_toxpwr*REM, 0)
if(prob(10))
M.Knockdown(20, 0)
@@ -878,21 +832,19 @@
/datum/reagent/toxin/mimesbane
name = "Mime's Bane"
id = "mimesbane"
description = "A nonlethal neurotoxin that interferes with the victim's ability to gesture."
color = "#F0F8FF" // rgb: 240, 248, 255
toxpwr = 0
taste_description = "stillness"
/datum/reagent/toxin/mimesbane/on_mob_metabolize(mob/living/L)
ADD_TRAIT(L, TRAIT_EMOTEMUTE, id)
ADD_TRAIT(L, TRAIT_EMOTEMUTE, type)
/datum/reagent/toxin/mimesbane/on_mob_end_metabolize(mob/living/L)
REMOVE_TRAIT(L, TRAIT_EMOTEMUTE, id)
REMOVE_TRAIT(L, TRAIT_EMOTEMUTE, type)
/datum/reagent/toxin/bonehurtingjuice //oof ouch
name = "Bone Hurting Juice"
id = "bonehurtingjuice"
description = "A strange substance that looks a lot like water. Drinking it is oddly tempting. Oof ouch."
color = "#AAAAAA77" //RGBA: 170, 170, 170, 77
toxpwr = 0
@@ -953,7 +905,6 @@
/datum/reagent/toxin/brainhurtingjuice //oof ouch
name = "Brain Hurting Juice"
id = "brainhurtingjuice"
color = "#AAAAAA77" //RGBA: 170, 170, 170, 77
toxpwr = 0
taste_description = "brain hurting"
@@ -970,7 +921,6 @@
/datum/reagent/toxin/bungotoxin
name = "Bungotoxin"
id = "bungotoxin"
description = "A horrible cardiotoxin that protects the humble bungo pit."
//silent_toxin = TRUE //I guess we don't really have the entire tox system ported.
color = "#EBFF8E"
@@ -1,64 +1,64 @@
/datum/chemical_reaction/space_drugs
name = "Space Drugs"
id = "space_drugs"
results = list("space_drugs" = 3)
required_reagents = list("mercury" = 1, "sugar" = 1, "lithium" = 1)
id = /datum/reagent/drug/space_drugs
results = list(/datum/reagent/drug/space_drugs = 3)
required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/lithium = 1)
/datum/chemical_reaction/crank
name = "Crank"
id = "crank"
results = list("crank" = 5)
required_reagents = list("diphenhydramine" = 1, "ammonia" = 1, "lithium" = 1, "sacid" = 1, "welding_fuel" = 1)
id = /datum/reagent/drug/crank
results = list(/datum/reagent/drug/crank = 5)
required_reagents = list(/datum/reagent/medicine/diphenhydramine = 1, /datum/reagent/ammonia = 1, /datum/reagent/lithium = 1, /datum/reagent/toxin/acid = 1, /datum/reagent/fuel = 1)
mix_message = "The mixture violently reacts, leaving behind a few crystalline shards."
required_temp = 390
/datum/chemical_reaction/krokodil
name = "Krokodil"
id = "krokodil"
results = list("krokodil" = 6)
required_reagents = list("diphenhydramine" = 1, "morphine" = 1, "cleaner" = 1, "potassium" = 1, "phosphorus" = 1, "welding_fuel" = 1)
id = /datum/reagent/drug/krokodil
results = list(/datum/reagent/drug/krokodil = 6)
required_reagents = list(/datum/reagent/medicine/diphenhydramine = 1, /datum/reagent/medicine/morphine = 1, /datum/reagent/space_cleaner = 1, /datum/reagent/potassium = 1, /datum/reagent/phosphorus = 1, /datum/reagent/fuel = 1)
mix_message = "The mixture dries into a pale blue powder."
required_temp = 380
/datum/chemical_reaction/methamphetamine
name = "methamphetamine"
id = "methamphetamine"
results = list("methamphetamine" = 4)
required_reagents = list("ephedrine" = 1, "iodine" = 1, "phosphorus" = 1, "hydrogen" = 1)
id = /datum/reagent/drug/methamphetamine
results = list(/datum/reagent/drug/methamphetamine = 4)
required_reagents = list(/datum/reagent/medicine/ephedrine = 1, /datum/reagent/iodine = 1, /datum/reagent/phosphorus = 1, /datum/reagent/hydrogen = 1)
required_temp = 374
/datum/chemical_reaction/bath_salts
name = "bath_salts"
id = "bath_salts"
results = list("bath_salts" = 7)
required_reagents = list("bad_food" = 1, "saltpetre" = 1, "nutriment" = 1, "cleaner" = 1, "enzyme" = 1, "tea" = 1, "mercury" = 1)
id = /datum/reagent/drug/bath_salts
results = list(/datum/reagent/drug/bath_salts = 7)
required_reagents = list(/datum/reagent/toxin/bad_food = 1, /datum/reagent/saltpetre = 1, /datum/reagent/consumable/nutriment = 1, /datum/reagent/space_cleaner = 1, /datum/reagent/consumable/enzyme = 1, /datum/reagent/consumable/tea = 1, /datum/reagent/mercury = 1)
required_temp = 374
/datum/chemical_reaction/aranesp
name = "aranesp"
id = "aranesp"
results = list("aranesp" = 3)
required_reagents = list("epinephrine" = 1, "atropine" = 1, "morphine" = 1)
id = /datum/reagent/drug/aranesp
results = list(/datum/reagent/drug/aranesp = 3)
required_reagents = list(/datum/reagent/medicine/epinephrine = 1, /datum/reagent/medicine/atropine = 1, /datum/reagent/medicine/morphine = 1)
/datum/chemical_reaction/happiness
name = "Happiness"
id = "happiness"
results = list("happiness" = 4)
required_reagents = list("nitrous_oxide" = 2, "epinephrine" = 1, "ethanol" = 1)
required_catalysts = list("plasma" = 5)
id = /datum/reagent/drug/happiness
results = list(/datum/reagent/drug/happiness = 4)
required_reagents = list(/datum/reagent/nitrous_oxide = 2, /datum/reagent/medicine/epinephrine = 1, /datum/reagent/consumable/ethanol = 1)
required_catalysts = list(/datum/reagent/toxin/plasma = 5)
/datum/chemical_reaction/skooma
name = "skooma"
id = "skooma"
results = list("skooma" = 2, "moonshine" = 4, "sugar" = 4)
id = /datum/reagent/drug/skooma
results = list(/datum/reagent/drug/skooma = 2, /datum/reagent/consumable/ethanol/moonshine = 4, /datum/reagent/consumable/sugar = 4)
required_temp = 280
is_cold_recipe = TRUE
required_reagents = list("moonsugar" = 10, "morphine" = 5)
required_reagents = list(/datum/reagent/moonsugar = 10, /datum/reagent/medicine/morphine = 5)
/datum/chemical_reaction/skoomarevert
name = "skoomarevert"
id = "skoomarevert"
results = list("moonsugar" = 1, "morphine" = 2.5)
results = list(/datum/reagent/moonsugar = 1, /datum/reagent/medicine/morphine = 2.5)
required_temp = 315 //a little above normal body temperature
required_reagents = list("skooma" = 1)
required_reagents = list(/datum/reagent/drug/skooma = 1)
@@ -1,79 +1,79 @@
/datum/chemical_reaction/leporazine
name = "Leporazine"
id = "leporazine"
results = list("leporazine" = 2)
required_reagents = list("silicon" = 1, "copper" = 1)
required_catalysts = list("plasma" = 5)
id = /datum/reagent/medicine/leporazine
results = list(/datum/reagent/medicine/leporazine = 2)
required_reagents = list(/datum/reagent/silicon = 1, /datum/reagent/copper = 1)
required_catalysts = list(/datum/reagent/toxin/plasma = 5)
/datum/chemical_reaction/rezadone
name = "Rezadone"
id = "rezadone"
results = list("rezadone" = 3)
required_reagents = list("carpotoxin" = 1, "cryptobiolin" = 1, "copper" = 1)
id = /datum/reagent/medicine/rezadone
results = list(/datum/reagent/medicine/rezadone = 3)
required_reagents = list(/datum/reagent/toxin/carpotoxin = 1, /datum/reagent/cryptobiolin = 1, /datum/reagent/copper = 1)
/datum/chemical_reaction/spaceacillin
name = "Spaceacillin"
id = "spaceacillin"
results = list("spaceacillin" = 2)
required_reagents = list("cryptobiolin" = 1, "epinephrine" = 1)
id = /datum/reagent/medicine/spaceacillin
results = list(/datum/reagent/medicine/spaceacillin = 2)
required_reagents = list(/datum/reagent/cryptobiolin = 1, /datum/reagent/medicine/epinephrine = 1)
/datum/chemical_reaction/inacusiate
name = "inacusiate"
id = "inacusiate"
results = list("inacusiate" = 2)
required_reagents = list("water" = 1, "carbon" = 1, "charcoal" = 1)
id = /datum/reagent/medicine/inacusiate
results = list(/datum/reagent/medicine/inacusiate = 2)
required_reagents = list(/datum/reagent/water = 1, /datum/reagent/carbon = 1, /datum/reagent/medicine/charcoal = 1)
/datum/chemical_reaction/synaptizine
name = "Synaptizine"
id = "synaptizine"
results = list("synaptizine" = 3)
required_reagents = list("sugar" = 1, "lithium" = 1, "water" = 1)
id = /datum/reagent/medicine/synaptizine
results = list(/datum/reagent/medicine/synaptizine = 3)
required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/lithium = 1, /datum/reagent/water = 1)
/datum/chemical_reaction/charcoal
name = "Charcoal"
id = "charcoal"
results = list("charcoal" = 2)
required_reagents = list("ash" = 1, "sodiumchloride" = 1)
id = /datum/reagent/medicine/charcoal
results = list(/datum/reagent/medicine/charcoal = 2)
required_reagents = list(/datum/reagent/ash = 1, /datum/reagent/consumable/sodiumchloride = 1)
mix_message = "The mixture yields a fine black powder."
required_temp = 380
/datum/chemical_reaction/silver_sulfadiazine
name = "Silver Sulfadiazine"
id = "silver_sulfadiazine"
results = list("silver_sulfadiazine" = 5)
required_reagents = list("ammonia" = 1, "silver" = 1, "sulfur" = 1, "oxygen" = 1, "chlorine" = 1)
id = /datum/reagent/medicine/silver_sulfadiazine
results = list(/datum/reagent/medicine/silver_sulfadiazine = 5)
required_reagents = list(/datum/reagent/ammonia = 1, /datum/reagent/silver = 1, /datum/reagent/sulfur = 1, /datum/reagent/oxygen = 1, /datum/reagent/chlorine = 1)
/datum/chemical_reaction/salglu_solution
name = "Saline-Glucose Solution"
id = "salglu_solution"
results = list("salglu_solution" = 3)
required_reagents = list("sodiumchloride" = 1, "water" = 1, "sugar" = 1)
id = /datum/reagent/medicine/salglu_solution
results = list(/datum/reagent/medicine/salglu_solution = 3)
required_reagents = list(/datum/reagent/consumable/sodiumchloride = 1, /datum/reagent/water = 1, /datum/reagent/consumable/sugar = 1)
/datum/chemical_reaction/mine_salve
name = "Miner's Salve"
id = "mine_salve"
results = list("mine_salve" = 3)
required_reagents = list("oil" = 1, "water" = 1, "iron" = 1)
id = /datum/reagent/medicine/mine_salve
results = list(/datum/reagent/medicine/mine_salve = 3)
required_reagents = list(/datum/reagent/oil = 1, /datum/reagent/water = 1, /datum/reagent/iron = 1)
/datum/chemical_reaction/mine_salve2
name = "Miner's Salve"
id = "mine_salve"
results = list("mine_salve" = 15)
required_reagents = list("plasma" = 5, "iron" = 5, "sugar" = 1) // A sheet of plasma, a twinkie and a sheet of metal makes four of these
id = "mine_salve_2"
results = list(/datum/reagent/medicine/mine_salve = 15)
required_reagents = list(/datum/reagent/toxin/plasma = 5, /datum/reagent/iron = 5, /datum/reagent/consumable/sugar = 1) // A sheet of plasma, a twinkie and a sheet of metal makes four of these
/datum/chemical_reaction/synthflesh
name = "Synthflesh"
id = "synthflesh"
results = list("synthflesh" = 3)
required_reagents = list("blood" = 1, "carbon" = 1, "styptic_powder" = 1)
id = /datum/reagent/medicine/synthflesh
results = list(/datum/reagent/medicine/synthflesh = 3)
required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/carbon = 1, /datum/reagent/medicine/styptic_powder = 1)
/datum/chemical_reaction/synthtissue
name = "Synthtissue"
id = "synthtissue"
results = list("synthtissue" = 5)
required_reagents = list("synthflesh" = 1)
required_catalysts = list("sugar" = 0.1)
id = /datum/reagent/synthtissue
results = list(/datum/reagent/synthtissue = 5)
required_reagents = list(/datum/reagent/medicine/synthflesh = 1)
required_catalysts = list(/datum/reagent/consumable/sugar = 0.1)
//FermiChem vars:
OptimalTempMin = 305 // Lower area of bell curve for determining heat based rate reactions
OptimalTempMax = 315 // Upper end for above
@@ -91,13 +91,13 @@
PurityMin = 0
/datum/chemical_reaction/synthtissue/FermiCreate(datum/reagents/holder, added_volume, added_purity)
var/datum/reagent/synthtissue/St = holder.has_reagent("synthtissue")
var/datum/reagent/N = holder.has_reagent("sugar")
var/datum/reagent/synthtissue/St = holder.has_reagent(/datum/reagent/synthtissue)
var/datum/reagent/N = holder.has_reagent(/datum/reagent/consumable/sugar)
if(!St)
return
if(holder.chem_temp > 320)
var/temp_ratio = 1-(330 - holder.chem_temp)/10
holder.remove_reagent(src.id, added_volume*temp_ratio)
holder.remove_reagent(id, added_volume*temp_ratio)
if(St.purity < 1)
St.volume *= St.purity
St.purity = 1
@@ -108,209 +108,209 @@
/datum/chemical_reaction/styptic_powder
name = "Styptic Powder"
id = "styptic_powder"
results = list("styptic_powder" = 4)
required_reagents = list("aluminium" = 1, "hydrogen" = 1, "oxygen" = 1, "sacid" = 1)
id = /datum/reagent/medicine/styptic_powder
results = list(/datum/reagent/medicine/styptic_powder = 4)
required_reagents = list(/datum/reagent/aluminium = 1, /datum/reagent/hydrogen = 1, /datum/reagent/oxygen = 1, /datum/reagent/toxin/acid = 1)
mix_message = "The solution yields an astringent powder."
/datum/chemical_reaction/calomel
name = "Calomel"
id = "calomel"
results = list("calomel" = 2)
required_reagents = list("mercury" = 1, "chlorine" = 1)
id = /datum/reagent/medicine/calomel
results = list(/datum/reagent/medicine/calomel = 2)
required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/chlorine = 1)
required_temp = 374
/datum/chemical_reaction/potass_iodide
name = "Potassium Iodide"
id = "potass_iodide"
results = list("potass_iodide" = 2)
required_reagents = list("potassium" = 1, "iodine" = 1)
id = /datum/reagent/medicine/potass_iodide
results = list(/datum/reagent/medicine/potass_iodide = 2)
required_reagents = list(/datum/reagent/potassium = 1, /datum/reagent/iodine = 1)
/datum/chemical_reaction/pen_acid
name = "Pentetic Acid"
id = "pen_acid"
results = list("pen_acid" = 6)
required_reagents = list("welding_fuel" = 1, "chlorine" = 1, "ammonia" = 1, "formaldehyde" = 1, "sodium" = 1, "cyanide" = 1)
id = /datum/reagent/medicine/pen_acid
results = list(/datum/reagent/medicine/pen_acid = 6)
required_reagents = list(/datum/reagent/fuel = 1, /datum/reagent/chlorine = 1, /datum/reagent/ammonia = 1, /datum/reagent/toxin/formaldehyde = 1, /datum/reagent/sodium = 1, /datum/reagent/toxin/cyanide = 1)
/datum/chemical_reaction/pen_jelly
name = "Pentetic Jelly"
id = "pen_jelly"
results = list("pen_jelly" = 2)
required_reagents = list("pen_acid" = 1, "slimejelly" = 1)
id = /datum/reagent/medicine/pen_acid/pen_jelly
results = list(/datum/reagent/medicine/pen_acid/pen_jelly = 2)
required_reagents = list(/datum/reagent/medicine/pen_acid = 1, /datum/reagent/toxin/slimejelly = 1)
/datum/chemical_reaction/sal_acid
name = "Salicyclic Acid"
id = "sal_acid"
results = list("sal_acid" = 5)
required_reagents = list("sodium" = 1, "phenol" = 1, "carbon" = 1, "oxygen" = 1, "sacid" = 1)
id = /datum/reagent/medicine/sal_acid
results = list(/datum/reagent/medicine/sal_acid = 5)
required_reagents = list(/datum/reagent/sodium = 1, /datum/reagent/phenol = 1, /datum/reagent/carbon = 1, /datum/reagent/oxygen = 1, /datum/reagent/toxin/acid = 1)
/datum/chemical_reaction/oxandrolone
name = "Oxandrolone"
id = "oxandrolone"
results = list("oxandrolone" = 6)
required_reagents = list("carbon" = 3, "phenol" = 1, "hydrogen" = 1, "oxygen" = 1)
id = /datum/reagent/medicine/oxandrolone
results = list(/datum/reagent/medicine/oxandrolone = 6)
required_reagents = list(/datum/reagent/carbon = 3, /datum/reagent/phenol = 1, /datum/reagent/hydrogen = 1, /datum/reagent/oxygen = 1)
/datum/chemical_reaction/salbutamol
name = "Salbutamol"
id = "salbutamol"
results = list("salbutamol" = 5)
required_reagents = list("sal_acid" = 1, "lithium" = 1, "aluminium" = 1, "bromine" = 1, "ammonia" = 1)
id = /datum/reagent/medicine/salbutamol
results = list(/datum/reagent/medicine/salbutamol = 5)
required_reagents = list(/datum/reagent/medicine/sal_acid = 1, /datum/reagent/lithium = 1, /datum/reagent/aluminium = 1, /datum/reagent/bromine = 1, /datum/reagent/ammonia = 1)
/datum/chemical_reaction/perfluorodecalin
name = "Perfluorodecalin"
id = "perfluorodecalin"
results = list("perfluorodecalin" = 3)
required_reagents = list("hydrogen" = 1, "fluorine" = 1, "oil" = 1)
id = /datum/reagent/medicine/perfluorodecalin
results = list(/datum/reagent/medicine/perfluorodecalin = 3)
required_reagents = list(/datum/reagent/hydrogen = 1, /datum/reagent/fluorine = 1, /datum/reagent/oil = 1)
required_temp = 370
mix_message = "The mixture rapidly turns into a dense pink liquid."
/datum/chemical_reaction/ephedrine
name = "Ephedrine"
id = "ephedrine"
results = list("ephedrine" = 4)
required_reagents = list("sugar" = 1, "oil" = 1, "hydrogen" = 1, "diethylamine" = 1)
id = /datum/reagent/medicine/ephedrine
results = list(/datum/reagent/medicine/ephedrine = 4)
required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/oil = 1, /datum/reagent/hydrogen = 1, /datum/reagent/diethylamine = 1)
mix_message = "The solution fizzes and gives off toxic fumes."
/datum/chemical_reaction/diphenhydramine
name = "Diphenhydramine"
id = "diphenhydramine"
results = list("diphenhydramine" = 4)
required_reagents = list("oil" = 1, "carbon" = 1, "bromine" = 1, "diethylamine" = 1, "ethanol" = 1)
id = /datum/reagent/medicine/diphenhydramine
results = list(/datum/reagent/medicine/diphenhydramine = 4)
required_reagents = list(/datum/reagent/oil = 1, /datum/reagent/carbon = 1, /datum/reagent/bromine = 1, /datum/reagent/diethylamine = 1, /datum/reagent/consumable/ethanol = 1)
mix_message = "The mixture dries into a pale blue powder."
/datum/chemical_reaction/oculine
name = "Oculine"
id = "oculine"
results = list("oculine" = 3)
required_reagents = list("charcoal" = 1, "carbon" = 1, "hydrogen" = 1)
id = /datum/reagent/medicine/oculine
results = list(/datum/reagent/medicine/oculine = 3)
required_reagents = list(/datum/reagent/medicine/charcoal = 1, /datum/reagent/carbon = 1, /datum/reagent/hydrogen = 1)
mix_message = "The mixture sputters loudly and becomes a pale pink color."
/datum/chemical_reaction/atropine
name = "Atropine"
id = "atropine"
results = list("atropine" = 5)
required_reagents = list("ethanol" = 1, "acetone" = 1, "diethylamine" = 1, "phenol" = 1, "sacid" = 1)
id = /datum/reagent/medicine/atropine
results = list(/datum/reagent/medicine/atropine = 5)
required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/acetone = 1, /datum/reagent/diethylamine = 1, /datum/reagent/phenol = 1, /datum/reagent/toxin/acid = 1)
/datum/chemical_reaction/epinephrine
name = "Epinephrine"
id = "epinephrine"
results = list("epinephrine" = 6)
required_reagents = list("phenol" = 1, "acetone" = 1, "diethylamine" = 1, "oxygen" = 1, "chlorine" = 1, "hydrogen" = 1)
id = /datum/reagent/medicine/epinephrine
results = list(/datum/reagent/medicine/epinephrine = 6)
required_reagents = list(/datum/reagent/phenol = 1, /datum/reagent/acetone = 1, /datum/reagent/diethylamine = 1, /datum/reagent/oxygen = 1, /datum/reagent/chlorine = 1, /datum/reagent/hydrogen = 1)
/datum/chemical_reaction/strange_reagent
name = "Strange Reagent"
id = "strange_reagent"
results = list("strange_reagent" = 3)
required_reagents = list("omnizine" = 1, "holywater" = 1, "mutagen" = 1)
id = /datum/reagent/medicine/strange_reagent
results = list(/datum/reagent/medicine/strange_reagent = 3)
required_reagents = list(/datum/reagent/medicine/omnizine = 1, /datum/reagent/water/holywater = 1, /datum/reagent/toxin/mutagen = 1)
/datum/chemical_reaction/mannitol
name = "Mannitol"
id = "mannitol"
results = list("mannitol" = 3)
required_reagents = list("sugar" = 1, "hydrogen" = 1, "water" = 1)
id = /datum/reagent/medicine/mannitol
results = list(/datum/reagent/medicine/mannitol = 3)
required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/hydrogen = 1, /datum/reagent/water = 1)
mix_message = "The solution slightly bubbles, becoming thicker."
/datum/chemical_reaction/mutadone
name = "Mutadone"
id = "mutadone"
results = list("mutadone" = 3)
required_reagents = list("mutagen" = 1, "acetone" = 1, "bromine" = 1)
id = /datum/reagent/medicine/mutadone
results = list(/datum/reagent/medicine/mutadone = 3)
required_reagents = list(/datum/reagent/toxin/mutagen = 1, /datum/reagent/acetone = 1, /datum/reagent/bromine = 1)
/datum/chemical_reaction/neurine
name = "Neurine"
id = "neurine"
results = list("neurine" = 3)
required_reagents = list("mannitol" = 1, "acetone" = 1, "oxygen" = 1)
id = /datum/reagent/medicine/neurine
results = list(/datum/reagent/medicine/neurine = 3)
required_reagents = list(/datum/reagent/medicine/mannitol = 1, /datum/reagent/acetone = 1, /datum/reagent/oxygen = 1)
/datum/chemical_reaction/antihol
name = "antihol"
id = "antihol"
results = list("antihol" = 3)
required_reagents = list("ethanol" = 1, "charcoal" = 1, "copper" = 1)
id = /datum/reagent/medicine/antihol
results = list(/datum/reagent/medicine/antihol = 3)
required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/medicine/charcoal = 1, /datum/reagent/copper = 1)
/datum/chemical_reaction/cryoxadone
name = "Cryoxadone"
id = "cryoxadone"
results = list("cryoxadone" = 3)
required_reagents = list("stable_plasma" = 1, "acetone" = 1, "mutagen" = 1)
id = /datum/reagent/medicine/cryoxadone
results = list(/datum/reagent/medicine/cryoxadone = 3)
required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/acetone = 1, /datum/reagent/toxin/mutagen = 1)
/datum/chemical_reaction/pyroxadone
name = "Pyroxadone"
id = "pyroxadone"
results = list("pyroxadone" = 2)
required_reagents = list("cryoxadone" = 1, "slimejelly" = 1)
id = /datum/reagent/medicine/pyroxadone
results = list(/datum/reagent/medicine/pyroxadone = 2)
required_reagents = list(/datum/reagent/medicine/cryoxadone = 1, /datum/reagent/toxin/slimejelly = 1)
/datum/chemical_reaction/clonexadone
name = "Clonexadone"
id = "clonexadone"
results = list("clonexadone" = 2)
required_reagents = list("cryoxadone" = 1, "sodium" = 1)
required_catalysts = list("plasma" = 5)
id = /datum/reagent/medicine/clonexadone
results = list(/datum/reagent/medicine/clonexadone = 2)
required_reagents = list(/datum/reagent/medicine/cryoxadone = 1, /datum/reagent/sodium = 1)
required_catalysts = list(/datum/reagent/toxin/plasma = 5)
/datum/chemical_reaction/haloperidol
name = "Haloperidol"
id = "haloperidol"
results = list("haloperidol" = 5)
required_reagents = list("chlorine" = 1, "fluorine" = 1, "aluminium" = 1, "potass_iodide" = 1, "oil" = 1)
id = /datum/reagent/medicine/haloperidol
results = list(/datum/reagent/medicine/haloperidol = 5)
required_reagents = list(/datum/reagent/chlorine = 1, /datum/reagent/fluorine = 1, /datum/reagent/aluminium = 1, /datum/reagent/medicine/potass_iodide = 1, /datum/reagent/oil = 1)
/datum/chemical_reaction/bicaridine
name = "Bicaridine"
id = "bicaridine"
results = list("bicaridine" = 3)
required_reagents = list("carbon" = 1, "oxygen" = 1, "sugar" = 1)
id = /datum/reagent/medicine/bicaridine
results = list(/datum/reagent/medicine/bicaridine = 3)
required_reagents = list(/datum/reagent/carbon = 1, /datum/reagent/oxygen = 1, /datum/reagent/consumable/sugar = 1)
/datum/chemical_reaction/kelotane
name = "Kelotane"
id = "kelotane"
results = list("kelotane" = 2)
required_reagents = list("carbon" = 1, "silicon" = 1)
id = /datum/reagent/medicine/kelotane
results = list(/datum/reagent/medicine/kelotane = 2)
required_reagents = list(/datum/reagent/carbon = 1, /datum/reagent/silicon = 1)
/datum/chemical_reaction/antitoxin
name = "Antitoxin"
id = "antitoxin"
results = list("antitoxin" = 3)
required_reagents = list("nitrogen" = 1, "silicon" = 1, "potassium" = 1)
id = /datum/reagent/medicine/antitoxin
results = list(/datum/reagent/medicine/antitoxin = 3)
required_reagents = list(/datum/reagent/nitrogen = 1, /datum/reagent/silicon = 1, /datum/reagent/potassium = 1)
/datum/chemical_reaction/tricordrazine
name = "Tricordrazine"
id = "tricordrazine"
results = list("tricordrazine" = 3)
required_reagents = list("bicaridine" = 1, "kelotane" = 1, "antitoxin" = 1)
id = /datum/reagent/medicine/tricordrazine
results = list(/datum/reagent/medicine/tricordrazine = 3)
required_reagents = list(/datum/reagent/medicine/bicaridine = 1, /datum/reagent/medicine/kelotane = 1, /datum/reagent/medicine/antitoxin = 1)
/datum/chemical_reaction/regen_jelly
name = "Regenerative Jelly"
id = "regen_jelly"
results = list("regen_jelly" = 2)
required_reagents = list("tricordrazine" = 1, "slimejelly" = 1)
id = /datum/reagent/medicine/regen_jelly
results = list(/datum/reagent/medicine/regen_jelly = 2)
required_reagents = list(/datum/reagent/medicine/tricordrazine = 1, /datum/reagent/toxin/slimejelly = 1)
/datum/chemical_reaction/jelly_convert
name = "Blood Jelly Conversion"
id = "blood_jelly"
results = list("slimejelly" = 1)
required_reagents = list("toxin" = 1, "jellyblood" = 1)
id = /datum/reagent/toxin/slimejelly
results = list(/datum/reagent/toxin/slimejelly = 1)
required_reagents = list(/datum/reagent/toxin = 1, /datum/reagent/blood/jellyblood = 1)
/datum/chemical_reaction/corazone
name = "Corazone"
id = "corazone"
results = list("corazone" = 3)
required_reagents = list("phenol" = 2, "lithium" = 1)
id = /datum/reagent/medicine/corazone
results = list(/datum/reagent/medicine/corazone = 3)
required_reagents = list(/datum/reagent/phenol = 2, /datum/reagent/lithium = 1)
/datum/chemical_reaction/morphine
name = "Morphine"
id = "morphine"
results = list("morphine" = 2)
required_reagents = list("carbon" = 2, "hydrogen" = 2, "ethanol" = 1, "oxygen" = 1)
id = /datum/reagent/medicine/morphine
results = list(/datum/reagent/medicine/morphine = 2)
required_reagents = list(/datum/reagent/carbon = 2, /datum/reagent/hydrogen = 2, /datum/reagent/consumable/ethanol = 1, /datum/reagent/oxygen = 1)
required_temp = 480
/datum/chemical_reaction/modafinil
name = "Modafinil"
id = "modafinil"
results = list("modafinil" = 5)
required_reagents = list("diethylamine" = 1, "ammonia" = 1, "phenol" = 1, "acetone" = 1, "sacid" = 1)
required_catalysts = list("bromine" = 1) // as close to the real world synthesis as possible
id = /datum/reagent/medicine/modafinil
results = list(/datum/reagent/medicine/modafinil = 5)
required_reagents = list(/datum/reagent/diethylamine = 1, /datum/reagent/ammonia = 1, /datum/reagent/phenol = 1, /datum/reagent/acetone = 1, /datum/reagent/toxin/acid = 1)
required_catalysts = list(/datum/reagent/bromine = 1) // as close to the real world synthesis as possible
/datum/chemical_reaction/psicodine
name = "Psicodine"
id = "psicodine"
results = list("psicodine" = 5)
required_reagents = list( "mannitol" = 2, "water" = 2, "impedrezene" = 1)
id = /datum/reagent/medicine/psicodine
results = list(/datum/reagent/medicine/psicodine = 5)
required_reagents = list( /datum/reagent/medicine/mannitol = 2, /datum/reagent/water = 2, /datum/reagent/impedrezene = 1)
+211 -211
View File
@@ -2,55 +2,55 @@
/datum/chemical_reaction/sterilizine
name = "Sterilizine"
id = "sterilizine"
results = list("sterilizine" = 3)
required_reagents = list("ethanol" = 1, "charcoal" = 1, "chlorine" = 1)
results = list(/datum/reagent/space_cleaner/sterilizine = 3)
required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/medicine/charcoal = 1, /datum/reagent/chlorine = 1)
/datum/chemical_reaction/lube
name = "Space Lube"
id = "lube"
results = list("lube" = 4)
required_reagents = list("water" = 1, "silicon" = 1, "oxygen" = 1)
id = /datum/reagent/lube
results = list(/datum/reagent/lube = 4)
required_reagents = list(/datum/reagent/water = 1, /datum/reagent/silicon = 1, /datum/reagent/oxygen = 1)
/datum/chemical_reaction/spraytan
name = "Spray Tan"
id = "spraytan"
results = list("spraytan" = 2)
required_reagents = list("orangejuice" = 1, "oil" = 1)
id = /datum/reagent/spraytan
results = list(/datum/reagent/spraytan = 2)
required_reagents = list(/datum/reagent/consumable/orangejuice = 1, /datum/reagent/oil = 1)
/datum/chemical_reaction/spraytan2
name = "Spray Tan"
id = "spraytan"
results = list("spraytan" = 2)
required_reagents = list("orangejuice" = 1, "cornoil" = 1)
id = "spraytan2"
results = list(/datum/reagent/spraytan = 2)
required_reagents = list(/datum/reagent/consumable/orangejuice = 1, /datum/reagent/consumable/cornoil = 1)
/datum/chemical_reaction/impedrezene
name = "Impedrezene"
id = "impedrezene"
results = list("impedrezene" = 2)
required_reagents = list("mercury" = 1, "oxygen" = 1, "sugar" = 1)
id = /datum/reagent/impedrezene
results = list(/datum/reagent/impedrezene = 2)
required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/oxygen = 1, /datum/reagent/consumable/sugar = 1)
/datum/chemical_reaction/cryptobiolin
name = "Cryptobiolin"
id = "cryptobiolin"
results = list("cryptobiolin" = 3)
required_reagents = list("potassium" = 1, "oxygen" = 1, "sugar" = 1)
id = /datum/reagent/cryptobiolin
results = list(/datum/reagent/cryptobiolin = 3)
required_reagents = list(/datum/reagent/potassium = 1, /datum/reagent/oxygen = 1, /datum/reagent/consumable/sugar = 1)
/datum/chemical_reaction/glycerol
name = "Glycerol"
id = "glycerol"
results = list("glycerol" = 1)
required_reagents = list("cornoil" = 3, "sacid" = 1)
id = /datum/reagent/glycerol
results = list(/datum/reagent/glycerol = 1)
required_reagents = list(/datum/reagent/consumable/cornoil = 3, /datum/reagent/toxin/acid = 1)
/datum/chemical_reaction/sodiumchloride
name = "Sodium Chloride"
id = "sodiumchloride"
results = list("sodiumchloride" = 3)
required_reagents = list("water" = 1, "sodium" = 1, "chlorine" = 1)
results = list(/datum/reagent/consumable/sodiumchloride = 3)
required_reagents = list(/datum/reagent/water = 1, /datum/reagent/sodium = 1, /datum/reagent/chlorine = 1)
/datum/chemical_reaction/plasmasolidification
name = "Solid Plasma"
id = "solidplasma"
required_reagents = list("iron" = 5, "frostoil" = 5, "plasma" = 20)
required_reagents = list(/datum/reagent/iron = 5, /datum/reagent/consumable/frostoil = 5, /datum/reagent/toxin/plasma = 20)
mob_react = FALSE
/datum/chemical_reaction/plasmasolidification/on_reaction(datum/reagents/holder, created_volume)
@@ -61,7 +61,7 @@
/datum/chemical_reaction/goldsolidification
name = "Solid Gold"
id = "solidgold"
required_reagents = list("frostoil" = 5, "gold" = 20, "iron" = 1)
required_reagents = list(/datum/reagent/consumable/frostoil = 5, /datum/reagent/gold = 20, /datum/reagent/iron = 1)
mob_react = FALSE
/datum/chemical_reaction/goldsolidification/on_reaction(datum/reagents/holder, created_volume)
@@ -71,22 +71,22 @@
/datum/chemical_reaction/capsaicincondensation
name = "Capsaicincondensation"
id = "capsaicincondensation"
results = list("condensedcapsaicin" = 5)
required_reagents = list("capsaicin" = 1, "ethanol" = 5)
id = /datum/reagent/consumable/condensedcapsaicin
results = list(/datum/reagent/consumable/condensedcapsaicin = 5)
required_reagents = list(/datum/reagent/consumable/capsaicin = 1, /datum/reagent/consumable/ethanol = 5)
/datum/chemical_reaction/soapification
name = "Soapification"
id = "soapification"
required_reagents = list("liquidgibs" = 10, "lye" = 10) // requires two scooped gib tiles
required_reagents = list(/datum/reagent/liquidgibs = 10, /datum/reagent/lye = 10) // requires two scooped gib tiles
required_temp = 374
mob_react = FALSE
/datum/chemical_reaction/mustard
name = "Mustard"
id = "mustard"
results = list("mustard" = 5)
required_reagents = list("mustardgrind" = 1, "water" = 10, "enzyme"= 1)
id = /datum/reagent/consumable/mustard
results = list(/datum/reagent/consumable/mustard = 5)
required_reagents = list(/datum/reagent/mustardgrind = 1, /datum/reagent/water = 10, /datum/reagent/consumable/enzyme= 1)
/datum/chemical_reaction/soapification/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
@@ -96,7 +96,7 @@
/datum/chemical_reaction/candlefication
name = "Candlefication"
id = "candlefication"
required_reagents = list("liquidgibs" = 5, "oxygen" = 5) //
required_reagents = list(/datum/reagent/liquidgibs = 5, /datum/reagent/oxygen = 5)
required_temp = 374
mob_react = FALSE
@@ -108,7 +108,7 @@
/datum/chemical_reaction/meatification
name = "Meatification"
id = "meatification"
required_reagents = list("liquidgibs" = 10, "nutriment" = 10, "carbon" = 10)
required_reagents = list(/datum/reagent/liquidgibs = 10, /datum/reagent/consumable/nutriment = 10, /datum/reagent/carbon = 10)
mob_react = FALSE
/datum/chemical_reaction/meatification/on_reaction(datum/reagents/holder, created_volume)
@@ -119,30 +119,30 @@
/datum/chemical_reaction/carbondioxide
name = "Direct Carbon Oxidation"
id = "burningcarbon"
results = list("co2" = 3)
required_reagents = list("carbon" = 1, "oxygen" = 2)
id = /datum/reagent/carbondioxide
results = list(/datum/reagent/carbondioxide = 3)
required_reagents = list(/datum/reagent/carbon = 1, /datum/reagent/oxygen = 2)
required_temp = 777 // pure carbon isn't especially reactive.
/datum/chemical_reaction/nitrous_oxide
name = "Nitrous Oxide"
id = "nitrous_oxide"
results = list("nitrous_oxide" = 5)
required_reagents = list("ammonia" = 2, "nitrogen" = 1, "oxygen" = 2)
id = /datum/reagent/nitrous_oxide
results = list(/datum/reagent/nitrous_oxide = 5)
required_reagents = list(/datum/reagent/ammonia = 2, /datum/reagent/nitrogen = 1, /datum/reagent/oxygen = 2)
required_temp = 525
//Technically a mutation toxin
/datum/chemical_reaction/mulligan
name = "Mulligan"
id = "mulligan"
results = list("mulligan" = 1)
required_reagents = list("slime_toxin" = 1, "mutagen" = 1)
results = list(/datum/reagent/mulligan = 1)
required_reagents = list(/datum/reagent/slime_toxin = 1, /datum/reagent/toxin/mutagen = 1)
/datum/chemical_reaction/fermis_plush
name = "Fermis plush"
id = "fermis_plush"
required_reagents = list("caramel" = 10, "blood" = 10, "stable_plasma" = 10)
required_reagents = list(/datum/reagent/consumable/caramel = 10, /datum/reagent/blood = 10, /datum/reagent/stable_plasma = 10)
mob_react = FALSE
required_temp = 300
@@ -156,75 +156,75 @@
/datum/chemical_reaction/virus_food
name = "Virus Food"
id = "virusfood"
results = list("virusfood" = 15)
required_reagents = list("water" = 5, "milk" = 5)
results = list(/datum/reagent/consumable/virus_food = 15)
required_reagents = list(/datum/reagent/water = 5, /datum/reagent/consumable/milk = 5)
/datum/chemical_reaction/virus_food_mutagen
name = "mutagenic agar"
id = "mutagenvirusfood"
results = list("mutagenvirusfood" = 1)
required_reagents = list("mutagen" = 1, "virusfood" = 1)
results = list(/datum/reagent/toxin/mutagen/mutagenvirusfood = 1)
required_reagents = list(/datum/reagent/toxin/mutagen = 1, /datum/reagent/consumable/virus_food = 1)
/datum/chemical_reaction/virus_food_synaptizine
name = "virus rations"
id = "synaptizinevirusfood"
results = list("synaptizinevirusfood" = 1)
required_reagents = list("synaptizine" = 1, "virusfood" = 1)
results = list(/datum/reagent/medicine/synaptizine/synaptizinevirusfood = 1)
required_reagents = list(/datum/reagent/medicine/synaptizine = 1, /datum/reagent/consumable/virus_food = 1)
/datum/chemical_reaction/virus_food_plasma
name = "virus plasma"
id = "plasmavirusfood"
results = list("plasmavirusfood" = 1)
required_reagents = list("plasma" = 1, "virusfood" = 1)
id = /datum/reagent/toxin/plasma/plasmavirusfood
results = list(/datum/reagent/toxin/plasma/plasmavirusfood = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1, /datum/reagent/consumable/virus_food = 1)
/datum/chemical_reaction/virus_food_plasma_synaptizine
name = "weakened virus plasma"
id = "weakplasmavirusfood"
results = list("weakplasmavirusfood" = 2)
required_reagents = list("synaptizine" = 1, "plasmavirusfood" = 1)
id = /datum/reagent/toxin/plasma/plasmavirusfood/weak
results = list(/datum/reagent/toxin/plasma/plasmavirusfood/weak = 2)
required_reagents = list(/datum/reagent/medicine/synaptizine = 1, /datum/reagent/toxin/plasma/plasmavirusfood = 1)
/datum/chemical_reaction/virus_food_mutagen_sugar
name = "sucrose agar"
id = "sugarvirusfood"
results = list("sugarvirusfood" = 2)
required_reagents = list("sugar" = 1, "mutagenvirusfood" = 1)
id = /datum/reagent/toxin/mutagen/mutagenvirusfood/sugar
results = list(/datum/reagent/toxin/mutagen/mutagenvirusfood/sugar = 2)
required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/toxin/mutagen/mutagenvirusfood = 1)
/datum/chemical_reaction/virus_food_mutagen_salineglucose
name = "sucrose agar"
id = "salineglucosevirusfood"
results = list("sugarvirusfood" = 2)
required_reagents = list("salglu_solution" = 1, "mutagenvirusfood" = 1)
results = list(/datum/reagent/toxin/mutagen/mutagenvirusfood/sugar = 2)
required_reagents = list(/datum/reagent/medicine/salglu_solution = 1, /datum/reagent/toxin/mutagen/mutagenvirusfood = 1)
/datum/chemical_reaction/virus_food_uranium
name = "Decaying uranium gel"
id = "uraniumvirusfood"
results = list("uraniumvirusfood" = 1)
required_reagents = list("uranium" = 1, "virusfood" = 1)
id = /datum/reagent/uranium/uraniumvirusfood
results = list(/datum/reagent/uranium/uraniumvirusfood = 1)
required_reagents = list(/datum/reagent/uranium = 1, /datum/reagent/consumable/virus_food = 1)
/datum/chemical_reaction/virus_food_uranium_plasma
name = "Unstable uranium gel"
id = "uraniumvirusfood_plasma"
results = list("uraniumplasmavirusfood_unstable" = 1)
required_reagents = list("uranium" = 5, "plasmavirusfood" = 1)
id = /datum/reagent/uranium/uraniumvirusfood/unstable
results = list(/datum/reagent/uranium/uraniumvirusfood/unstable = 1)
required_reagents = list(/datum/reagent/uranium = 5, /datum/reagent/toxin/plasma/plasmavirusfood = 1)
/datum/chemical_reaction/virus_food_uranium_plasma_gold
name = "Stable uranium gel"
id = "uraniumvirusfood_gold"
results = list("uraniumplasmavirusfood_stable" = 1)
required_reagents = list("uranium" = 10, "gold" = 10, "plasma" = 1)
results = list(/datum/reagent/uranium/uraniumvirusfood/stable = 1)
required_reagents = list(/datum/reagent/uranium = 10, /datum/reagent/gold = 10, /datum/reagent/toxin/plasma = 1)
/datum/chemical_reaction/virus_food_uranium_plasma_silver
name = "Stable uranium gel"
id = "uraniumvirusfood_silver"
results = list("uraniumplasmavirusfood_stable" = 1)
required_reagents = list("uranium" = 10, "silver" = 10, "plasma" = 1)
results = list(/datum/reagent/uranium/uraniumvirusfood/stable = 1)
required_reagents = list(/datum/reagent/uranium = 10, /datum/reagent/silver = 10, /datum/reagent/toxin/plasma = 1)
/datum/chemical_reaction/mix_virus
name = "Mix Virus"
id = "mixvirus"
results = list("blood" = 1)
required_reagents = list("virusfood" = 1)
required_catalysts = list("blood" = 1)
results = list(/datum/reagent/blood = 1)
required_reagents = list(/datum/reagent/consumable/virus_food = 1)
required_catalysts = list(/datum/reagent/blood = 1)
var/level_min = 1
var/level_max = 2
@@ -241,7 +241,7 @@
name = "Mix Virus 2"
id = "mixvirus2"
required_reagents = list("mutagen" = 1)
required_reagents = list(/datum/reagent/toxin/mutagen = 1)
level_min = 2
level_max = 4
@@ -249,7 +249,7 @@
name = "Mix Virus 3"
id = "mixvirus3"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
level_min = 4
level_max = 6
@@ -257,7 +257,7 @@
name = "Mix Virus 4"
id = "mixvirus4"
required_reagents = list("uranium" = 1)
required_reagents = list(/datum/reagent/uranium = 1)
level_min = 5
level_max = 6
@@ -265,7 +265,7 @@
name = "Mix Virus 5"
id = "mixvirus5"
required_reagents = list("mutagenvirusfood" = 1)
required_reagents = list(/datum/reagent/toxin/mutagen/mutagenvirusfood = 1)
level_min = 3
level_max = 3
@@ -273,7 +273,7 @@
name = "Mix Virus 6"
id = "mixvirus6"
required_reagents = list("sugarvirusfood" = 1)
required_reagents = list(/datum/reagent/toxin/mutagen/mutagenvirusfood/sugar = 1)
level_min = 4
level_max = 4
@@ -281,7 +281,7 @@
name = "Mix Virus 7"
id = "mixvirus7"
required_reagents = list("weakplasmavirusfood" = 1)
required_reagents = list(/datum/reagent/toxin/plasma/plasmavirusfood/weak = 1)
level_min = 5
level_max = 5
@@ -289,7 +289,7 @@
name = "Mix Virus 8"
id = "mixvirus8"
required_reagents = list("plasmavirusfood" = 1)
required_reagents = list(/datum/reagent/toxin/plasma/plasmavirusfood = 1)
level_min = 6
level_max = 6
@@ -297,7 +297,7 @@
name = "Mix Virus 9"
id = "mixvirus9"
required_reagents = list("synaptizinevirusfood" = 1)
required_reagents = list(/datum/reagent/medicine/synaptizine/synaptizinevirusfood = 1)
level_min = 1
level_max = 1
@@ -305,7 +305,7 @@
name = "Mix Virus 10"
id = "mixvirus10"
required_reagents = list("uraniumvirusfood" = 1)
required_reagents = list(/datum/reagent/uranium/uraniumvirusfood = 1)
level_min = 6
level_max = 7
@@ -313,7 +313,7 @@
name = "Mix Virus 11"
id = "mixvirus11"
required_reagents = list("uraniumplasmavirusfood_unstable" = 1)
required_reagents = list(/datum/reagent/uranium/uraniumvirusfood/unstable = 1)
level_min = 7
level_max = 7
@@ -321,7 +321,7 @@
name = "Mix Virus 12"
id = "mixvirus12"
required_reagents = list("uraniumplasmavirusfood_stable" = 1)
required_reagents = list(/datum/reagent/uranium/uraniumvirusfood/stable = 1)
level_min = 8
level_max = 8
@@ -329,8 +329,8 @@
name = "Devolve Virus"
id = "remvirus"
required_reagents = list("synaptizine" = 1)
required_catalysts = list("blood" = 1)
required_reagents = list(/datum/reagent/medicine/synaptizine = 1)
required_catalysts = list(/datum/reagent/blood = 1)
/datum/chemical_reaction/mix_virus/rem_virus/on_reaction(datum/reagents/holder, created_volume)
@@ -343,8 +343,8 @@
/datum/chemical_reaction/mix_virus/neuter_virus
name = "Neuter Virus"
id = "neutervirus"
required_reagents = list("formaldehyde" = 1)
required_catalysts = list("blood" = 1)
required_reagents = list(/datum/reagent/toxin/formaldehyde = 1)
required_catalysts = list(/datum/reagent/blood = 1)
/datum/chemical_reaction/mix_virus/neuter_virus/on_reaction(datum/reagents/holder, created_volume)
@@ -362,13 +362,13 @@
/datum/chemical_reaction/surfactant
name = "Foam surfactant"
id = "foam surfactant"
results = list("fluorosurfactant" = 5)
required_reagents = list("fluorine" = 2, "carbon" = 2, "sacid" = 1)
results = list(/datum/reagent/fluorosurfactant = 5)
required_reagents = list(/datum/reagent/fluorine = 2, /datum/reagent/carbon = 2, /datum/reagent/toxin/acid = 1)
/datum/chemical_reaction/foam
name = "Foam"
id = "foam"
required_reagents = list("fluorosurfactant" = 1, "water" = 1)
required_reagents = list(/datum/reagent/fluorosurfactant = 1, /datum/reagent/water = 1)
mob_react = FALSE
/datum/chemical_reaction/foam/on_reaction(datum/reagents/holder, created_volume)
@@ -385,7 +385,7 @@
/datum/chemical_reaction/metalfoam
name = "Metal Foam"
id = "metalfoam"
required_reagents = list("aluminium" = 3, "foaming_agent" = 1, "facid" = 1)
required_reagents = list(/datum/reagent/aluminium = 3, /datum/reagent/foaming_agent = 1, /datum/reagent/toxin/acid/fluacid = 1)
mob_react = FALSE
/datum/chemical_reaction/metalfoam/on_reaction(datum/reagents/holder, created_volume)
@@ -402,7 +402,7 @@
/datum/chemical_reaction/smart_foam
name = "Smart Metal Foam"
id = "smart_metal_foam"
required_reagents = list("aluminium" = 3, "smart_foaming_agent" = 1, "facid" = 1)
required_reagents = list(/datum/reagent/aluminium = 3, /datum/reagent/smart_foaming_agent = 1, /datum/reagent/toxin/acid/fluacid = 1)
mob_react = TRUE
/datum/chemical_reaction/smart_foam/on_reaction(datum/reagents/holder, created_volume)
@@ -416,7 +416,7 @@
/datum/chemical_reaction/ironfoam
name = "Iron Foam"
id = "ironlfoam"
required_reagents = list("iron" = 3, "foaming_agent" = 1, "facid" = 1)
required_reagents = list(/datum/reagent/iron = 3, /datum/reagent/foaming_agent = 1, /datum/reagent/toxin/acid/fluacid = 1)
mob_react = FALSE
/datum/chemical_reaction/ironfoam/on_reaction(datum/reagents/holder, created_volume)
@@ -430,15 +430,15 @@
/datum/chemical_reaction/foaming_agent
name = "Foaming Agent"
id = "foaming_agent"
results = list("foaming_agent" = 1)
required_reagents = list("lithium" = 1, "hydrogen" = 1)
id = /datum/reagent/foaming_agent
results = list(/datum/reagent/foaming_agent = 1)
required_reagents = list(/datum/reagent/lithium = 1, /datum/reagent/hydrogen = 1)
/datum/chemical_reaction/smart_foaming_agent
name = "Smart foaming Agent"
id = "smart_foaming_agent"
results = list("smart_foaming_agent" = 3)
required_reagents = list("foaming_agent" = 3, "acetone" = 1, "iron" = 1)
id = /datum/reagent/smart_foaming_agent
results = list(/datum/reagent/smart_foaming_agent = 3)
required_reagents = list(/datum/reagent/foaming_agent = 3, /datum/reagent/acetone = 1, /datum/reagent/iron = 1)
mix_message = "The solution mixes into a frothy metal foam and conforms to the walls of its container."
@@ -446,83 +446,83 @@
/datum/chemical_reaction/ammonia
name = "Ammonia"
id = "ammonia"
results = list("ammonia" = 3)
required_reagents = list("hydrogen" = 3, "nitrogen" = 1)
id = /datum/reagent/ammonia
results = list(/datum/reagent/ammonia = 3)
required_reagents = list(/datum/reagent/hydrogen = 3, /datum/reagent/nitrogen = 1)
/datum/chemical_reaction/diethylamine
name = "Diethylamine"
id = "diethylamine"
results = list("diethylamine" = 2)
required_reagents = list ("ammonia" = 1, "ethanol" = 1)
id = /datum/reagent/diethylamine
results = list(/datum/reagent/diethylamine = 2)
required_reagents = list (/datum/reagent/ammonia = 1, /datum/reagent/consumable/ethanol = 1)
/datum/chemical_reaction/space_cleaner
name = "Space cleaner"
id = "cleaner"
results = list("cleaner" = 2)
required_reagents = list("ammonia" = 1, "water" = 1)
id = /datum/reagent/space_cleaner
results = list(/datum/reagent/space_cleaner = 2)
required_reagents = list(/datum/reagent/ammonia = 1, /datum/reagent/water = 1)
/datum/chemical_reaction/plantbgone
name = "Plant-B-Gone"
id = "plantbgone"
results = list("plantbgone" = 5)
required_reagents = list("toxin" = 1, "water" = 4)
id = /datum/reagent/toxin/plantbgone
results = list(/datum/reagent/toxin/plantbgone = 5)
required_reagents = list(/datum/reagent/toxin = 1, /datum/reagent/water = 4)
/datum/chemical_reaction/weedkiller
name = "Weed Killer"
id = "weedkiller"
results = list("weedkiller" = 5)
required_reagents = list("toxin" = 1, "ammonia" = 4)
id = /datum/reagent/toxin/plantbgone/weedkiller
results = list(/datum/reagent/toxin/plantbgone/weedkiller = 5)
required_reagents = list(/datum/reagent/toxin = 1, /datum/reagent/ammonia = 4)
/datum/chemical_reaction/pestkiller
name = "Pest Killer"
id = "pestkiller"
results = list("pestkiller" = 5)
required_reagents = list("toxin" = 1, "ethanol" = 4)
id = /datum/reagent/toxin/pestkiller
results = list(/datum/reagent/toxin/pestkiller = 5)
required_reagents = list(/datum/reagent/toxin = 1, /datum/reagent/consumable/ethanol = 4)
/datum/chemical_reaction/drying_agent
name = "Drying agent"
id = "drying_agent"
results = list("drying_agent" = 3)
required_reagents = list("stable_plasma" = 2, "ethanol" = 1, "sodium" = 1)
id = /datum/reagent/drying_agent
results = list(/datum/reagent/drying_agent = 3)
required_reagents = list(/datum/reagent/stable_plasma = 2, /datum/reagent/consumable/ethanol = 1, /datum/reagent/sodium = 1)
//////////////////////////////////// Other goon stuff ///////////////////////////////////////////
/datum/chemical_reaction/acetone
name = "acetone"
id = "acetone"
results = list("acetone" = 3)
required_reagents = list("oil" = 1, "welding_fuel" = 1, "oxygen" = 1)
id = /datum/reagent/acetone
results = list(/datum/reagent/acetone = 3)
required_reagents = list(/datum/reagent/oil = 1, /datum/reagent/fuel = 1, /datum/reagent/oxygen = 1)
/datum/chemical_reaction/oil
name = "Oil"
id = "oil"
results = list("oil" = 3)
required_reagents = list("welding_fuel" = 1, "carbon" = 1, "hydrogen" = 1)
id = /datum/reagent/oil
results = list(/datum/reagent/oil = 3)
required_reagents = list(/datum/reagent/fuel = 1, /datum/reagent/carbon = 1, /datum/reagent/hydrogen = 1)
/datum/chemical_reaction/phenol
name = "phenol"
id = "phenol"
results = list("phenol" = 3)
required_reagents = list("water" = 1, "chlorine" = 1, "oil" = 1)
id = /datum/reagent/phenol
results = list(/datum/reagent/phenol = 3)
required_reagents = list(/datum/reagent/water = 1, /datum/reagent/chlorine = 1, /datum/reagent/oil = 1)
/datum/chemical_reaction/ash
name = "Ash"
id = "ash"
results = list("ash" = 1)
required_reagents = list("oil" = 1)
id = /datum/reagent/ash
results = list(/datum/reagent/ash = 1)
required_reagents = list(/datum/reagent/oil = 1)
required_temp = 480
/datum/chemical_reaction/colorful_reagent
name = "colorful_reagent"
id = "colorful_reagent"
results = list("colorful_reagent" = 5)
required_reagents = list("stable_plasma" = 1, "radium" = 1, "space_drugs" = 1, "cryoxadone" = 1, "triple_citrus" = 1)
id = /datum/reagent/colorful_reagent
results = list(/datum/reagent/colorful_reagent = 5)
required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/radium = 1, /datum/reagent/drug/space_drugs = 1, /datum/reagent/medicine/cryoxadone = 1, /datum/reagent/consumable/triple_citrus = 1)
/datum/chemical_reaction/life
name = "Life"
id = "life"
required_reagents = list("strange_reagent" = 1, "synthflesh" = 1, "blood" = 1)
required_reagents = list(/datum/reagent/medicine/strange_reagent = 1, /datum/reagent/medicine/synthflesh = 1, /datum/reagent/blood = 1)
required_temp = 374
/datum/chemical_reaction/life/on_reaction(datum/reagents/holder, created_volume)
@@ -532,7 +532,7 @@
/datum/chemical_reaction/life_friendly
name = "Life (Friendly)"
id = "life_friendly"
required_reagents = list("strange_reagent" = 1, "synthflesh" = 1, "sugar" = 1)
required_reagents = list(/datum/reagent/medicine/strange_reagent = 1, /datum/reagent/medicine/synthflesh = 1, /datum/reagent/consumable/sugar = 1)
required_temp = 374
/datum/chemical_reaction/life_friendly/on_reaction(datum/reagents/holder, created_volume)
@@ -541,7 +541,7 @@
/datum/chemical_reaction/corgium
name = "corgium"
id = "corgium"
required_reagents = list("nutriment" = 1, "colorful_reagent" = 1, "strange_reagent" = 1, "blood" = 1)
required_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent = 1, /datum/reagent/medicine/strange_reagent = 1, /datum/reagent/blood = 1)
required_temp = 374
/datum/chemical_reaction/corgium/on_reaction(datum/reagents/holder, created_volume)
@@ -552,56 +552,56 @@
/datum/chemical_reaction/hair_dye
name = "hair_dye"
id = "hair_dye"
results = list("hair_dye" = 5)
required_reagents = list("colorful_reagent" = 1, "radium" = 1, "space_drugs" = 1)
id = /datum/reagent/hair_dye
results = list(/datum/reagent/hair_dye = 5)
required_reagents = list(/datum/reagent/colorful_reagent = 1, /datum/reagent/radium = 1, /datum/reagent/drug/space_drugs = 1)
/datum/chemical_reaction/barbers_aid
name = "barbers_aid"
id = "barbers_aid"
results = list("barbers_aid" = 5)
required_reagents = list("carpet" = 1, "radium" = 1, "space_drugs" = 1)
id = /datum/reagent/barbers_aid
results = list(/datum/reagent/barbers_aid = 5)
required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/radium = 1, /datum/reagent/drug/space_drugs = 1)
/datum/chemical_reaction/concentrated_barbers_aid
name = "concentrated_barbers_aid"
id = "concentrated_barbers_aid"
results = list("concentrated_barbers_aid" = 2)
required_reagents = list("barbers_aid" = 1, "mutagen" = 1)
id = /datum/reagent/concentrated_barbers_aid
results = list(/datum/reagent/concentrated_barbers_aid = 2)
required_reagents = list(/datum/reagent/barbers_aid = 1, /datum/reagent/toxin/mutagen = 1)
/datum/chemical_reaction/saltpetre
name = "saltpetre"
id = "saltpetre"
results = list("saltpetre" = 3)
required_reagents = list("potassium" = 1, "nitrogen" = 1, "oxygen" = 3)
id = /datum/reagent/saltpetre
results = list(/datum/reagent/saltpetre = 3)
required_reagents = list(/datum/reagent/potassium = 1, /datum/reagent/nitrogen = 1, /datum/reagent/oxygen = 3)
/datum/chemical_reaction/lye
name = "lye"
id = "lye"
results = list("lye" = 3)
required_reagents = list("sodium" = 1, "hydrogen" = 1, "oxygen" = 1)
id = /datum/reagent/lye
results = list(/datum/reagent/lye = 3)
required_reagents = list(/datum/reagent/sodium = 1, /datum/reagent/hydrogen = 1, /datum/reagent/oxygen = 1)
/datum/chemical_reaction/lye2
name = "lye"
id = "lye"
results = list("lye" = 2)
required_reagents = list("ash" = 1, "water" = 1, "carbon" = 1)
id = "lye2"
results = list(/datum/reagent/lye = 2)
required_reagents = list(/datum/reagent/ash = 1, /datum/reagent/water = 1, /datum/reagent/carbon = 1)
/datum/chemical_reaction/royal_bee_jelly
name = "royal bee jelly"
id = "royal_bee_jelly"
results = list("royal_bee_jelly" = 5)
required_reagents = list("mutagen" = 10, "honey" = 40)
id = /datum/reagent/royal_bee_jelly
results = list(/datum/reagent/royal_bee_jelly = 5)
required_reagents = list(/datum/reagent/toxin/mutagen = 10, /datum/reagent/consumable/honey = 40)
/datum/chemical_reaction/laughter
name = "laughter"
id = "laughter"
results = list("laughter" = 10) // Fuck it. I'm not touching this one.
required_reagents = list("sugar" = 1, "banana" = 1)
id = /datum/reagent/consumable/laughter
results = list(/datum/reagent/consumable/laughter = 10) // Fuck it. I'm not touching this one.
required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/banana = 1)
/datum/chemical_reaction/plastic_polymers
name = "plastic polymers"
id = "plastic_polymers"
required_reagents = list("oil" = 5, "sacid" = 2, "ash" = 3)
required_reagents = list(/datum/reagent/oil = 5, /datum/reagent/toxin/acid = 2, /datum/reagent/ash = 3)
required_temp = 374 //lazily consistent with soap & other crafted objects generically created with heat.
/datum/chemical_reaction/plastic_polymers/on_reaction(datum/reagents/holder, created_volume)
@@ -611,101 +611,101 @@
/datum/chemical_reaction/pax
name = "pax"
id = "pax"
results = list("pax" = 3)
required_reagents = list("mindbreaker" = 1, "synaptizine" = 1, "water" = 1)
id = /datum/reagent/pax
results = list(/datum/reagent/pax = 3)
required_reagents = list(/datum/reagent/toxin/mindbreaker = 1, /datum/reagent/medicine/synaptizine = 1, /datum/reagent/water = 1)
/datum/chemical_reaction/cat
name = "felined mutation toxic"
id = "cats"
results = list("felinidmutationtoxin" = 1)
required_reagents = list("mindbreaker" = 1, "ammonia" = 1, "water" = 1, "aphro" = 10, "stablemutationtoxin" = 1) // Maybe aphro+ if it becomes a shitty meme
id = /datum/reagent/mutationtoxin/felinid
results = list(/datum/reagent/mutationtoxin/felinid = 1)
required_reagents = list(/datum/reagent/toxin/mindbreaker = 1, /datum/reagent/ammonia = 1, /datum/reagent/water = 1, /datum/reagent/drug/aphrodisiac = 10, /datum/reagent/mutationtoxin = 1) // Maybe aphro+ if it becomes a shitty meme
required_temp = 450
/datum/chemical_reaction/moff
name = "insect mutation toxic"
id = "moffs"
results = list("mothmutationtoxin" = 1)
required_reagents = list("liquid_dark_matter" = 2, "ammonia" = 5, "lithium" = 1, "stablemutationtoxin" = 1)
id = /datum/reagent/mutationtoxin/insect
results = list(/datum/reagent/mutationtoxin/insect = 1)
required_reagents = list(/datum/reagent/liquid_dark_matter = 2, /datum/reagent/ammonia = 5, /datum/reagent/lithium = 1, /datum/reagent/mutationtoxin = 1)
required_temp = 320
/datum/chemical_reaction/notlight //Harder to make do to it being a hard race to play
name = "shadow muatatuin toxic"
id = "notlight"
results = list("shadowmutationtoxin" = 1)
required_reagents = list("liquid_dark_matter" = 5, "synaptizine" = 10, "oculine" = 10, "stablemutationtoxin" = 1)
id = /datum/reagent/mutationtoxin/shadow
results = list(/datum/reagent/mutationtoxin/shadow = 1)
required_reagents = list(/datum/reagent/liquid_dark_matter = 5, /datum/reagent/medicine/synaptizine = 10, /datum/reagent/medicine/oculine = 10, /datum/reagent/mutationtoxin = 1)
required_temp = 600
// Liquid Carpets
/datum/chemical_reaction/carpet
name = "carpet"
id = "carpet"
results = list("carpet" = 2)
required_reagents = list("space_drugs" = 1, "blood" = 1)
id = /datum/reagent/carpet
results = list(/datum/reagent/carpet = 2)
required_reagents = list(/datum/reagent/drug/space_drugs = 1, /datum/reagent/blood = 1)
/datum/chemical_reaction/carpet/black
name = "liquid black carpet"
id = "blackcarpet"
results = list("blackcarpet" = 2)
required_reagents = list("carpet" = 1, "carbon" = 1)
id = /datum/reagent/carpet/black
results = list(/datum/reagent/carpet/black = 2)
required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/carbon = 1)
/datum/chemical_reaction/carpet/blackred
name = "liquid red black carpet"
id = "blackredcarpet"
results = list("blackredcarpet" = 2)
required_reagents = list("carpet" = 1, "charcoal" = 1)
id = /datum/reagent/carpet/blackred
results = list(/datum/reagent/carpet/blackred = 2)
required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/medicine/charcoal = 1)
/datum/chemical_reaction/carpet/monochrome
name = "liquid monochrome carpet"
id = "monochromecarpet"
results = list("monochromecarpet" = 2)
required_reagents = list("carpet" = 1, "oil" = 1)
id = /datum/reagent/carpet/monochrome
results = list(/datum/reagent/carpet/monochrome = 2)
required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/oil = 1)
/datum/chemical_reaction/carpet/blue
name = "liquid blue carpet"
id = "bluecarpet"
results = list("bluecarpet" = 2)
required_reagents = list("carpet" = 1, "tonic" = 1)
id = /datum/reagent/carpet/blue
results = list(/datum/reagent/carpet/blue = 2)
required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/consumable/tonic = 1)
/datum/chemical_reaction/carpet/cyan
name = "liquid cyan carpet"
id = "cyancarpet"
results = list("cyancarpet" = 2)
required_reagents = list("carpet" = 1, "ice" = 1)
id = /datum/reagent/carpet/cyan
results = list(/datum/reagent/carpet/cyan = 2)
required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/consumable/ice = 1)
/datum/chemical_reaction/carpet/green
name = "liquid green carpet"
id = "greencarpet"
results = list("greencarpet" = 2)
required_reagents = list("carpet" = 1, "sacid" = 1)
id = /datum/reagent/carpet/green
results = list(/datum/reagent/carpet/green = 2)
required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/toxin/acid = 1)
/datum/chemical_reaction/carpet/orange
name = "liquid orange carpet"
id = "orangecarpet"
results = list("orangecarpet" = 2)
required_reagents = list("carpet" = 1, "orangejuice" = 1)
id = /datum/reagent/carpet/orange
results = list(/datum/reagent/carpet/orange = 2)
required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/consumable/orangejuice = 1)
/datum/chemical_reaction/carpet/purple
name = "liquid purple carpet"
id = "purplecarpet"
results = list("purplecarpet" = 2)
required_reagents = list("carpet" = 1, "stable_plasma" = 1)
id = /datum/reagent/carpet/purple
results = list(/datum/reagent/carpet/purple = 2)
required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/stable_plasma = 1)
/datum/chemical_reaction/carpet/red
name = "liquid red carpet"
id = "redcarpet"
results = list("redcarpet" = 2)
required_reagents = list("carpet" = 1, "welding_fuel" = 1)
id = /datum/reagent/carpet/red
results = list(/datum/reagent/carpet/red = 2)
required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/fuel = 1)
/datum/chemical_reaction/carpet/royalblack
name = "liquid royal black carpet"
id = "royalblackcarpet"
results = list("royalblackcarpet" = 2)
required_reagents = list("carpet" = 1, "blackpepper" = 1)
id = /datum/reagent/carpet/royalblack
results = list(/datum/reagent/carpet/royalblack = 2)
required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/consumable/blackpepper = 1)
/datum/chemical_reaction/carpet/royalblue
name = "liquid royal blue carpet"
id = "royalbluecarpet"
results = list("royalbluecarpet" = 2)
required_reagents = list("carpet" = 1, "clonexadone" = 1)
id = /datum/reagent/carpet/royalblue
results = list(/datum/reagent/carpet/royalblue = 2)
required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/medicine/clonexadone = 1)
@@ -27,21 +27,21 @@
/datum/chemical_reaction/reagent_explosion/nitroglycerin
name = "Nitroglycerin"
id = "nitroglycerin"
results = list("nitroglycerin" = 2)
required_reagents = list("glycerol" = 1, "facid" = 1, "sacid" = 1)
id = /datum/reagent/nitroglycerin
results = list(/datum/reagent/nitroglycerin = 2)
required_reagents = list(/datum/reagent/glycerol = 1, /datum/reagent/toxin/acid/fluacid = 1, /datum/reagent/toxin/acid = 1)
strengthdiv = 2
/datum/chemical_reaction/reagent_explosion/nitroglycerin/on_reaction(datum/reagents/holder, created_volume)
if(holder.has_reagent("stabilizing_agent"))
if(holder.has_reagent(/datum/reagent/stabilizing_agent))
return
holder.remove_reagent("nitroglycerin", created_volume*2)
holder.remove_reagent(/datum/reagent/nitroglycerin, created_volume*2)
..()
/datum/chemical_reaction/reagent_explosion/nitroglycerin_explosion
name = "Nitroglycerin explosion"
id = "nitroglycerin_explosion"
required_reagents = list("nitroglycerin" = 1)
required_reagents = list(/datum/reagent/nitroglycerin = 1)
required_temp = 474
strengthdiv = 2
@@ -49,13 +49,13 @@
/datum/chemical_reaction/reagent_explosion/potassium_explosion
name = "Explosion"
id = "potassium_explosion"
required_reagents = list("water" = 1, "potassium" = 1)
required_reagents = list(/datum/reagent/water = 1, /datum/reagent/potassium = 1)
strengthdiv = 10
/datum/chemical_reaction/reagent_explosion/potassium_explosion/holyboom
name = "Holy Explosion"
id = "holyboom"
required_reagents = list("holywater" = 1, "potassium" = 1)
required_reagents = list(/datum/reagent/water/holywater = 1, /datum/reagent/potassium = 1)
/datum/chemical_reaction/reagent_explosion/potassium_explosion/holyboom/on_reaction(datum/reagents/holder, created_volume)
var/turf/T = get_turf(holder.my_atom)
@@ -84,14 +84,14 @@
/datum/chemical_reaction/blackpowder
name = "Black Powder"
id = "blackpowder"
results = list("blackpowder" = 3)
required_reagents = list("saltpetre" = 1, "charcoal" = 1, "sulfur" = 1)
id = /datum/reagent/blackpowder
results = list(/datum/reagent/blackpowder = 3)
required_reagents = list(/datum/reagent/saltpetre = 1, /datum/reagent/medicine/charcoal = 1, /datum/reagent/sulfur = 1)
/datum/chemical_reaction/reagent_explosion/blackpowder_explosion
name = "Black Powder Kaboom"
id = "blackpowder_explosion"
required_reagents = list("blackpowder" = 1)
required_reagents = list(/datum/reagent/blackpowder = 1)
required_temp = 474
strengthdiv = 6
modifier = 1
@@ -103,14 +103,14 @@
/datum/chemical_reaction/thermite
name = "Thermite"
id = "thermite"
results = list("thermite" = 3)
required_reagents = list("aluminium" = 1, "iron" = 1, "oxygen" = 1)
id = /datum/reagent/thermite
results = list(/datum/reagent/thermite = 3)
required_reagents = list(/datum/reagent/aluminium = 1, /datum/reagent/iron = 1, /datum/reagent/oxygen = 1)
/datum/chemical_reaction/emp_pulse
name = "EMP Pulse"
id = "emp_pulse"
required_reagents = list("uranium" = 1, "iron" = 1) // Yes, laugh, it's the best recipe I could think of that makes a little bit of sense
required_reagents = list(/datum/reagent/uranium = 1, /datum/reagent/iron = 1) // Yes, laugh, it's the best recipe I could think of that makes a little bit of sense
/datum/chemical_reaction/emp_pulse/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
@@ -123,7 +123,7 @@
/datum/chemical_reaction/beesplosion
name = "Bee Explosion"
id = "beesplosion"
required_reagents = list("honey" = 1, "strange_reagent" = 1, "radium" = 1)
required_reagents = list(/datum/reagent/consumable/honey = 1, /datum/reagent/medicine/strange_reagent = 1, /datum/reagent/radium = 1)
/datum/chemical_reaction/beesplosion/on_reaction(datum/reagents/holder, created_volume)
var/location = holder.my_atom.drop_location()
@@ -134,7 +134,7 @@
var/list/beeagents = list()
for(var/X in holder.reagent_list)
var/datum/reagent/R = X
if(required_reagents[R.id])
if(required_reagents[R.type])
continue
beeagents += R
var/bee_amount = round(created_volume * 0.2)
@@ -146,15 +146,15 @@
/datum/chemical_reaction/stabilizing_agent
name = "stabilizing_agent"
id = "stabilizing_agent"
results = list("stabilizing_agent" = 3)
required_reagents = list("iron" = 1, "oxygen" = 1, "hydrogen" = 1)
id = /datum/reagent/stabilizing_agent
results = list(/datum/reagent/stabilizing_agent = 3)
required_reagents = list(/datum/reagent/iron = 1, /datum/reagent/oxygen = 1, /datum/reagent/hydrogen = 1)
/datum/chemical_reaction/clf3
name = "Chlorine Trifluoride"
id = "clf3"
results = list("clf3" = 4)
required_reagents = list("chlorine" = 1, "fluorine" = 3)
id = /datum/reagent/clf3
results = list(/datum/reagent/clf3 = 4)
required_reagents = list(/datum/reagent/chlorine = 1, /datum/reagent/fluorine = 3)
required_temp = 424
/datum/chemical_reaction/clf3/on_reaction(datum/reagents/holder, created_volume)
@@ -167,7 +167,7 @@
name = "Meth explosion"
id = "methboom1"
required_temp = 380 //slightly above the meth mix time.
required_reagents = list("methamphetamine" = 1)
required_reagents = list(/datum/reagent/drug/methamphetamine = 1)
strengthdiv = 6
modifier = 1
mob_react = FALSE
@@ -181,19 +181,19 @@
/datum/chemical_reaction/reagent_explosion/methsplosion/methboom2
id = "methboom2"
required_reagents = list("diethylamine" = 1, "iodine" = 1, "phosphorus" = 1, "hydrogen" = 1) //diethylamine is often left over from mixing the ephedrine.
required_reagents = list(/datum/reagent/diethylamine = 1, /datum/reagent/iodine = 1, /datum/reagent/phosphorus = 1, /datum/reagent/hydrogen = 1) //diethylamine is often left over from mixing the ephedrine.
required_temp = 300 //room temperature, chilling it even a little will prevent the explosion
/datum/chemical_reaction/sorium
name = "Sorium"
id = "sorium"
results = list("sorium" = 4)
required_reagents = list("mercury" = 1, "oxygen" = 1, "nitrogen" = 1, "carbon" = 1)
id = /datum/reagent/sorium
results = list(/datum/reagent/sorium = 4)
required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/oxygen = 1, /datum/reagent/nitrogen = 1, /datum/reagent/carbon = 1)
/datum/chemical_reaction/sorium/on_reaction(datum/reagents/holder, created_volume)
if(holder.has_reagent("stabilizing_agent"))
if(holder.has_reagent(/datum/reagent/stabilizing_agent))
return
holder.remove_reagent("sorium", created_volume*4)
holder.remove_reagent(/datum/reagent/sorium, created_volume*4)
var/turf/T = get_turf(holder.my_atom)
var/range = CLAMP(sqrt(created_volume*4), 1, 6)
goonchem_vortex(T, 1, range)
@@ -201,7 +201,7 @@
/datum/chemical_reaction/sorium_vortex
name = "sorium_vortex"
id = "sorium_vortex"
required_reagents = list("sorium" = 1)
required_reagents = list(/datum/reagent/sorium = 1)
required_temp = 474
/datum/chemical_reaction/sorium_vortex/on_reaction(datum/reagents/holder, created_volume)
@@ -211,14 +211,14 @@
/datum/chemical_reaction/liquid_dark_matter
name = "Liquid Dark Matter"
id = "liquid_dark_matter"
results = list("liquid_dark_matter" = 3)
required_reagents = list("stable_plasma" = 1, "radium" = 1, "carbon" = 1)
id = /datum/reagent/liquid_dark_matter
results = list(/datum/reagent/liquid_dark_matter = 3)
required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/radium = 1, /datum/reagent/carbon = 1)
/datum/chemical_reaction/liquid_dark_matter/on_reaction(datum/reagents/holder, created_volume)
if(holder.has_reagent("stabilizing_agent"))
if(holder.has_reagent(/datum/reagent/stabilizing_agent))
return
holder.remove_reagent("liquid_dark_matter", created_volume*3)
holder.remove_reagent(/datum/reagent/liquid_dark_matter, created_volume*3)
var/turf/T = get_turf(holder.my_atom)
var/range = CLAMP(sqrt(created_volume*3), 1, 6)
goonchem_vortex(T, 0, range)
@@ -226,7 +226,7 @@
/datum/chemical_reaction/ldm_vortex
name = "LDM Vortex"
id = "ldm_vortex"
required_reagents = list("liquid_dark_matter" = 1)
required_reagents = list(/datum/reagent/liquid_dark_matter = 1)
required_temp = 474
/datum/chemical_reaction/ldm_vortex/on_reaction(datum/reagents/holder, created_volume)
@@ -236,12 +236,12 @@
/datum/chemical_reaction/flash_powder
name = "Flash powder"
id = "flash_powder"
results = list("flash_powder" = 3)
required_reagents = list("aluminium" = 1, "potassium" = 1, "sulfur" = 1 )
id = /datum/reagent/flash_powder
results = list(/datum/reagent/flash_powder = 3)
required_reagents = list(/datum/reagent/aluminium = 1, /datum/reagent/potassium = 1, /datum/reagent/sulfur = 1 )
/datum/chemical_reaction/flash_powder/on_reaction(datum/reagents/holder, created_volume)
if(holder.has_reagent("stabilizing_agent"))
if(holder.has_reagent(/datum/reagent/stabilizing_agent))
return
var/location = get_turf(holder.my_atom)
do_sparks(2, TRUE, location)
@@ -255,12 +255,12 @@
C.Knockdown(60)
else
C.Stun(100)
holder.remove_reagent("flash_powder", created_volume*3)
holder.remove_reagent(/datum/reagent/flash_powder, created_volume*3)
/datum/chemical_reaction/flash_powder_flash
name = "Flash powder activation"
id = "flash_powder_flash"
required_reagents = list("flash_powder" = 1)
required_reagents = list(/datum/reagent/flash_powder = 1)
required_temp = 374
/datum/chemical_reaction/flash_powder_flash/on_reaction(datum/reagents/holder, created_volume)
@@ -279,14 +279,14 @@
/datum/chemical_reaction/smoke_powder
name = "smoke_powder"
id = "smoke_powder"
results = list("smoke_powder" = 3)
required_reagents = list("potassium" = 1, "sugar" = 1, "phosphorus" = 1)
id = /datum/reagent/smoke_powder
results = list(/datum/reagent/smoke_powder = 3)
required_reagents = list(/datum/reagent/potassium = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/phosphorus = 1)
/datum/chemical_reaction/smoke_powder/on_reaction(datum/reagents/holder, created_volume)
if(holder.has_reagent("stabilizing_agent"))
if(holder.has_reagent(/datum/reagent/stabilizing_agent))
return
holder.remove_reagent("smoke_powder", created_volume*3)
holder.remove_reagent(/datum/reagent/smoke_powder, created_volume*3)
var/smoke_radius = round(sqrt(created_volume * 1.5), 1)
var/location = get_turf(holder.my_atom)
var/datum/effect_system/smoke_spread/chem/S = new
@@ -301,7 +301,7 @@
/datum/chemical_reaction/smoke_powder_smoke
name = "smoke_powder_smoke"
id = "smoke_powder_smoke"
required_reagents = list("smoke_powder" = 1)
required_reagents = list(/datum/reagent/smoke_powder = 1)
required_temp = 374
mob_react = FALSE
@@ -319,14 +319,14 @@
/datum/chemical_reaction/sonic_powder
name = "sonic_powder"
id = "sonic_powder"
results = list("sonic_powder" = 3)
required_reagents = list("oxygen" = 1, "cola" = 1, "phosphorus" = 1)
id = /datum/reagent/sonic_powder
results = list(/datum/reagent/sonic_powder = 3)
required_reagents = list(/datum/reagent/oxygen = 1, /datum/reagent/consumable/space_cola = 1, /datum/reagent/phosphorus = 1)
/datum/chemical_reaction/sonic_powder/on_reaction(datum/reagents/holder, created_volume)
if(holder.has_reagent("stabilizing_agent"))
if(holder.has_reagent(/datum/reagent/stabilizing_agent))
return
holder.remove_reagent("sonic_powder", created_volume*3)
holder.remove_reagent(/datum/reagent/sonic_powder, created_volume*3)
var/location = get_turf(holder.my_atom)
playsound(location, 'sound/effects/bang.ogg', 25, 1)
for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/3, location))
@@ -335,7 +335,7 @@
/datum/chemical_reaction/sonic_powder_deafen
name = "sonic_powder_deafen"
id = "sonic_powder_deafen"
required_reagents = list("sonic_powder" = 1)
required_reagents = list(/datum/reagent/sonic_powder = 1)
required_temp = 374
/datum/chemical_reaction/sonic_powder_deafen/on_reaction(datum/reagents/holder, created_volume)
@@ -346,12 +346,12 @@
/datum/chemical_reaction/phlogiston
name = "phlogiston"
id = "phlogiston"
results = list("phlogiston" = 3)
required_reagents = list("phosphorus" = 1, "sacid" = 1, "stable_plasma" = 1)
id = /datum/reagent/phlogiston
results = list(/datum/reagent/phlogiston = 3)
required_reagents = list(/datum/reagent/phosphorus = 1, /datum/reagent/toxin/acid = 1, /datum/reagent/stable_plasma = 1)
/datum/chemical_reaction/phlogiston/on_reaction(datum/reagents/holder, created_volume)
if(holder.has_reagent("stabilizing_agent"))
if(holder.has_reagent(/datum/reagent/stabilizing_agent))
return
var/turf/open/T = get_turf(holder.my_atom)
if(istype(T))
@@ -361,15 +361,15 @@
/datum/chemical_reaction/napalm
name = "Napalm"
id = "napalm"
results = list("napalm" = 3)
required_reagents = list("oil" = 1, "welding_fuel" = 1, "ethanol" = 1 )
id = /datum/reagent/napalm
results = list(/datum/reagent/napalm = 3)
required_reagents = list(/datum/reagent/oil = 1, /datum/reagent/fuel = 1, /datum/reagent/consumable/ethanol = 1 )
/datum/chemical_reaction/cryostylane
name = "cryostylane"
id = "cryostylane"
results = list("cryostylane" = 3)
required_reagents = list("water" = 1, "stable_plasma" = 1, "nitrogen" = 1)
id = /datum/reagent/cryostylane
results = list(/datum/reagent/cryostylane = 3)
required_reagents = list(/datum/reagent/water = 1, /datum/reagent/stable_plasma = 1, /datum/reagent/nitrogen = 1)
/datum/chemical_reaction/cryostylane/on_reaction(datum/reagents/holder, created_volume)
holder.chem_temp = 20 // cools the fuck down
@@ -378,8 +378,8 @@
/datum/chemical_reaction/cryostylane_oxygen
name = "ephemeral cryostylane reaction"
id = "cryostylane_oxygen"
results = list("cryostylane" = 1)
required_reagents = list("cryostylane" = 1, "oxygen" = 1)
results = list(/datum/reagent/cryostylane = 1)
required_reagents = list(/datum/reagent/cryostylane = 1, /datum/reagent/oxygen = 1)
mob_react = FALSE
/datum/chemical_reaction/cryostylane_oxygen/on_reaction(datum/reagents/holder, created_volume)
@@ -388,8 +388,8 @@
/datum/chemical_reaction/pyrosium_oxygen
name = "ephemeral pyrosium reaction"
id = "pyrosium_oxygen"
results = list("pyrosium" = 1)
required_reagents = list("pyrosium" = 1, "oxygen" = 1)
results = list(/datum/reagent/pyrosium = 1)
required_reagents = list(/datum/reagent/pyrosium = 1, /datum/reagent/oxygen = 1)
mob_react = FALSE
/datum/chemical_reaction/pyrosium_oxygen/on_reaction(datum/reagents/holder, created_volume)
@@ -397,9 +397,9 @@
/datum/chemical_reaction/pyrosium
name = "pyrosium"
id = "pyrosium"
results = list("pyrosium" = 3)
required_reagents = list("stable_plasma" = 1, "radium" = 1, "phosphorus" = 1)
id = /datum/reagent/pyrosium
results = list(/datum/reagent/pyrosium = 3)
required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/radium = 1, /datum/reagent/phosphorus = 1)
/datum/chemical_reaction/pyrosium/on_reaction(datum/reagents/holder, created_volume)
holder.chem_temp = 20 // also cools the fuck down
@@ -407,23 +407,23 @@
/datum/chemical_reaction/teslium
name = "Teslium"
id = "teslium"
results = list("teslium" = 3)
required_reagents = list("stable_plasma" = 1, "silver" = 1, "blackpowder" = 1)
id = /datum/reagent/teslium
results = list(/datum/reagent/teslium = 3)
required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/silver = 1, /datum/reagent/blackpowder = 1)
mix_message = "<span class='danger'>A jet of sparks flies from the mixture as it merges into a flickering slurry.</span>"
required_temp = 400
/datum/chemical_reaction/energized_jelly
name = "Energized Jelly"
id = "energized_jelly"
results = list("energized_jelly" = 2)
required_reagents = list("slimejelly" = 1, "teslium" = 1)
id = /datum/reagent/teslium/energized_jelly
results = list(/datum/reagent/teslium/energized_jelly = 2)
required_reagents = list(/datum/reagent/toxin/slimejelly = 1, /datum/reagent/teslium = 1)
mix_message = "<span class='danger'>The slime jelly starts glowing intermittently.</span>"
/datum/chemical_reaction/reagent_explosion/teslium_lightning
name = "Teslium Destabilization"
id = "teslium_lightning"
required_reagents = list("teslium" = 1, "water" = 1)
required_reagents = list(/datum/reagent/teslium = 1, /datum/reagent/water = 1)
strengthdiv = 100
modifier = -100
noexplosion = TRUE
@@ -452,29 +452,29 @@
/datum/chemical_reaction/reagent_explosion/teslium_lightning/heat
id = "teslium_lightning2"
required_temp = 474
required_reagents = list("teslium" = 1)
required_reagents = list(/datum/reagent/teslium = 1)
/datum/chemical_reaction/reagent_explosion/nitrous_oxide
name = "N2O explosion"
id = "n2o_explosion"
required_reagents = list("nitrous_oxide" = 1)
required_reagents = list(/datum/reagent/nitrous_oxide = 1)
strengthdiv = 7
required_temp = 575
modifier = 1
/datum/chemical_reaction/firefighting_foam
name = "Firefighting Foam"
id = "firefighting_foam"
results = list("firefighting_foam" = 3)
required_reagents = list("stabilizing_agent" = 1,"fluorosurfactant" = 1,"carbon" = 1)
id = /datum/reagent/firefighting_foam
results = list(/datum/reagent/firefighting_foam = 3)
required_reagents = list(/datum/reagent/stabilizing_agent = 1, /datum/reagent/fluorosurfactant = 1,/datum/reagent/carbon = 1)
required_temp = 200
is_cold_recipe = 1
/datum/chemical_reaction/reagent_explosion/lingblood
name = "Changeling Blood Reaction"
id = "ling_blood_reaction"
results = list("ash" = 1)
required_reagents = list("blood" = 1)
results = list(/datum/reagent/ash = 1)
required_reagents = list(/datum/reagent/blood = 1)
strengthdiv = 4 //The explosion should be somewhat strong if a full 15u is heated within a syringe. !!fun!!
required_temp = 666
special_react = TRUE
@@ -16,7 +16,7 @@
/datum/chemical_reaction/slime/slimespawn
name = "Slime Spawn"
id = "m_spawn"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/grey
required_other = TRUE
@@ -28,15 +28,15 @@
/datum/chemical_reaction/slime/slimeinaprov
name = "Slime epinephrine"
id = "m_inaprov"
results = list("epinephrine" = 3)
required_reagents = list("water" = 5)
results = list(/datum/reagent/medicine/epinephrine = 3)
required_reagents = list(/datum/reagent/water = 5)
required_other = TRUE
required_container = /obj/item/slime_extract/grey
/datum/chemical_reaction/slime/slimemonkey
name = "Slime Monkey"
id = "m_monkey"
required_reagents = list("blood" = 1)
required_reagents = list(/datum/reagent/blood = 1)
required_container = /obj/item/slime_extract/grey
required_other = TRUE
@@ -48,25 +48,25 @@
//Green
/datum/chemical_reaction/slime/slimemutate
name = "Mutation Toxin"
id = "slimetoxin"
results = list("slime_toxin" = 1)
required_reagents = list("plasma" = 1)
id = /datum/reagent/slime_toxin
results = list(/datum/reagent/slime_toxin = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_other = TRUE
required_container = /obj/item/slime_extract/green
/datum/chemical_reaction/slime/slimehuman
name = "Human Mutation Toxin"
id = "humanmuttoxin"
results = list("stablemutationtoxin" = 1)
required_reagents = list("blood" = 1)
id = /datum/reagent/mutationtoxin
results = list(/datum/reagent/mutationtoxin = 1)
required_reagents = list(/datum/reagent/blood = 1)
required_other = TRUE
required_container = /obj/item/slime_extract/green
/datum/chemical_reaction/slime/slimelizard
name = "Lizard Mutation Toxin"
id = "lizardmuttoxin"
results = list("lizardmutationtoxin" = 1)
required_reagents = list("radium" = 1)
id = /datum/reagent/mutationtoxin/lizard
results = list(/datum/reagent/mutationtoxin/lizard = 1)
required_reagents = list(/datum/reagent/radium = 1)
required_other = TRUE
required_container = /obj/item/slime_extract/green
@@ -74,7 +74,7 @@
/datum/chemical_reaction/slime/slimemetal
name = "Slime Metal"
id = "m_metal"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/metal
required_other = TRUE
@@ -87,7 +87,7 @@
/datum/chemical_reaction/slime/slimeglass
name = "Slime Glass"
id = "m_glass"
required_reagents = list("water" = 1)
required_reagents = list(/datum/reagent/water = 1)
required_container = /obj/item/slime_extract/metal
required_other = TRUE
@@ -101,7 +101,7 @@
/datum/chemical_reaction/slime/slimemobspawn
name = "Slime Crit"
id = "m_tele"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/gold
required_other = TRUE
deletes_extract = FALSE //we do delete, but we don't do so instantly
@@ -121,7 +121,7 @@
/datum/chemical_reaction/slime/slimemobspawn/lesser
name = "Slime Crit Lesser"
id = "m_tele3"
required_reagents = list("blood" = 1)
required_reagents = list(/datum/reagent/blood = 1)
/datum/chemical_reaction/slime/slimemobspawn/lesser/summon_mobs(datum/reagents/holder, turf/T)
T.visible_message("<span class='danger'>The slime extract begins to vibrate violently!</span>")
@@ -130,7 +130,7 @@
/datum/chemical_reaction/slime/slimemobspawn/friendly
name = "Slime Crit Friendly"
id = "m_tele5"
required_reagents = list("water" = 1)
required_reagents = list(/datum/reagent/water = 1)
/datum/chemical_reaction/slime/slimemobspawn/friendly/summon_mobs(datum/reagents/holder, turf/T)
T.visible_message("<span class='danger'>The slime extract begins to vibrate adorably!</span>")
@@ -140,7 +140,7 @@
/datum/chemical_reaction/slime/slimebork
name = "Slime Bork"
id = "m_tele2"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/silver
required_other = TRUE
@@ -172,7 +172,7 @@
/datum/chemical_reaction/slime/slimebork/drinks
name = "Slime Bork 2"
id = "m_tele4"
required_reagents = list("water" = 1)
required_reagents = list(/datum/reagent/water = 1)
/datum/chemical_reaction/slime/slimebork/drinks/getbork()
return get_random_drink()
@@ -181,15 +181,15 @@
/datum/chemical_reaction/slime/slimefrost
name = "Slime Frost Oil"
id = "m_frostoil"
results = list("frostoil" = 10)
required_reagents = list("plasma" = 1)
results = list(/datum/reagent/consumable/frostoil = 10)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/blue
required_other = TRUE
/datum/chemical_reaction/slime/slimestabilizer
name = "Slime Stabilizer"
id = "m_slimestabilizer"
required_reagents = list("blood" = 1)
required_reagents = list(/datum/reagent/blood = 1)
required_container = /obj/item/slime_extract/blue
required_other = TRUE
@@ -200,8 +200,8 @@
/datum/chemical_reaction/slime/slimefoam
name = "Slime Foam"
id = "m_foam"
results = list("fluorosurfactant" = 20, "water" = 20)
required_reagents = list("water" = 5)
results = list(/datum/reagent/fluorosurfactant = 20, /datum/reagent/water = 20)
required_reagents = list(/datum/reagent/water = 5)
required_container = /obj/item/slime_extract/blue
required_other = TRUE
@@ -209,7 +209,7 @@
/datum/chemical_reaction/slime/slimefreeze
name = "Slime Freeze"
id = "m_freeze"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/darkblue
required_other = TRUE
deletes_extract = FALSE
@@ -233,7 +233,7 @@
/datum/chemical_reaction/slime/slimefireproof
name = "Slime Fireproof"
id = "m_fireproof"
required_reagents = list("water" = 1)
required_reagents = list(/datum/reagent/water = 1)
required_container = /obj/item/slime_extract/darkblue
required_other = TRUE
@@ -245,15 +245,15 @@
/datum/chemical_reaction/slime/slimecasp
name = "Slime Capsaicin Oil"
id = "m_capsaicinoil"
results = list("capsaicin" = 10)
required_reagents = list("blood" = 1)
results = list(/datum/reagent/consumable/capsaicin = 10)
required_reagents = list(/datum/reagent/blood = 1)
required_container = /obj/item/slime_extract/orange
required_other = TRUE
/datum/chemical_reaction/slime/slimefire
name = "Slime fire"
id = "m_fire"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/orange
required_other = TRUE
deletes_extract = FALSE
@@ -277,8 +277,8 @@
/datum/chemical_reaction/slime/slimesmoke
name = "Slime Smoke"
id = "m_smoke"
results = list("phosphorus" = 10, "potassium" = 10, "sugar" = 10)
required_reagents = list("water" = 5)
results = list(/datum/reagent/phosphorus = 10, /datum/reagent/potassium = 10, /datum/reagent/consumable/sugar = 10)
required_reagents = list(/datum/reagent/water = 5)
required_container = /obj/item/slime_extract/orange
required_other = TRUE
@@ -286,7 +286,7 @@
/datum/chemical_reaction/slime/slimeoverload
name = "Slime EMP"
id = "m_emp"
required_reagents = list("blood" = 1)
required_reagents = list(/datum/reagent/blood = 1)
required_container = /obj/item/slime_extract/yellow
required_other = TRUE
@@ -297,7 +297,7 @@
/datum/chemical_reaction/slime/slimecell
name = "Slime Powercell"
id = "m_cell"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/yellow
required_other = TRUE
@@ -308,7 +308,7 @@
/datum/chemical_reaction/slime/slimeglow
name = "Slime Glow"
id = "m_glow"
required_reagents = list("water" = 1)
required_reagents = list(/datum/reagent/water = 1)
required_container = /obj/item/slime_extract/yellow
required_other = TRUE
@@ -322,7 +322,7 @@
/datum/chemical_reaction/slime/slimepsteroid
name = "Slime Steroid"
id = "m_steroid"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/purple
required_other = TRUE
@@ -333,8 +333,8 @@
/datum/chemical_reaction/slime/slimeregen
name = "Slime Regen"
id = "m_regen"
results = list("regen_jelly" = 5)
required_reagents = list("blood" = 1)
results = list(/datum/reagent/medicine/regen_jelly = 5)
required_reagents = list(/datum/reagent/blood = 1)
required_container = /obj/item/slime_extract/purple
required_other = TRUE
@@ -342,7 +342,7 @@
/datum/chemical_reaction/slime/slimeplasma
name = "Slime Plasma"
id = "m_plasma"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/darkpurple
required_other = TRUE
@@ -354,7 +354,7 @@
/datum/chemical_reaction/slime/slimemutator
name = "Slime Mutator"
id = "m_slimemutator"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/red
required_other = TRUE
@@ -365,7 +365,7 @@
/datum/chemical_reaction/slime/slimebloodlust
name = "Bloodlust"
id = "m_bloodlust"
required_reagents = list("blood" = 1)
required_reagents = list(/datum/reagent/blood = 1)
required_container = /obj/item/slime_extract/red
required_other = TRUE
@@ -383,7 +383,7 @@
/datum/chemical_reaction/slime/slimespeed
name = "Slime Speed"
id = "m_speed"
required_reagents = list("water" = 1)
required_reagents = list(/datum/reagent/water = 1)
required_container = /obj/item/slime_extract/red
required_other = TRUE
@@ -395,7 +395,7 @@
/datum/chemical_reaction/slime/docility
name = "Docility Potion"
id = "m_potion"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/pink
required_other = TRUE
@@ -406,7 +406,7 @@
/datum/chemical_reaction/slime/gender
name = "Gender Potion"
id = "m_gender"
required_reagents = list("blood" = 1)
required_reagents = list(/datum/reagent/blood = 1)
required_container = /obj/item/slime_extract/pink
required_other = TRUE
@@ -417,9 +417,9 @@
//Black
/datum/chemical_reaction/slime/slimemutate2
name = "Advanced Mutation Toxin"
id = "mutationtoxin2"
results = list("amutationtoxin" = 1)
required_reagents = list("plasma" = 1)
id = /datum/reagent/aslimetoxin
results = list(/datum/reagent/aslimetoxin = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_other = TRUE
required_container = /obj/item/slime_extract/black
@@ -427,7 +427,7 @@
/datum/chemical_reaction/slime/slimeexplosion
name = "Slime Explosion"
id = "m_explosion"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/oil
required_other = TRUE
deletes_extract = FALSE
@@ -456,8 +456,8 @@
/datum/chemical_reaction/slime/slimecornoil
name = "Slime Corn Oil"
id = "m_cornoil"
results = list("cornoil" = 10)
required_reagents = list("blood" = 1)
results = list(/datum/reagent/consumable/cornoil = 10)
required_reagents = list(/datum/reagent/blood = 1)
required_container = /obj/item/slime_extract/oil
required_other = TRUE
@@ -466,7 +466,7 @@
name = "Slime Potion 2"
id = "m_potion2"
required_container = /obj/item/slime_extract/lightpink
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_other = TRUE
/datum/chemical_reaction/slime/slimepotion2/on_reaction(datum/reagents/holder)
@@ -477,7 +477,7 @@
name = "Renaming Potion"
id = "m_renaming_potion"
required_container = /obj/item/slime_extract/lightpink
required_reagents = list("water" = 1)
required_reagents = list(/datum/reagent/water = 1)
required_other = TRUE
/datum/chemical_reaction/slime/renaming/on_reaction(datum/reagents/holder)
@@ -489,7 +489,7 @@
/datum/chemical_reaction/slime/adamantine
name = "Adamantine"
id = "adamantine"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/adamantine
required_other = TRUE
@@ -501,7 +501,7 @@
/datum/chemical_reaction/slime/slimefloor2
name = "Bluespace Floor"
id = "m_floor2"
required_reagents = list("blood" = 1)
required_reagents = list(/datum/reagent/blood = 1)
required_container = /obj/item/slime_extract/bluespace
required_other = TRUE
@@ -513,7 +513,7 @@
/datum/chemical_reaction/slime/slimecrystal
name = "Slime Crystal"
id = "m_crystal"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/bluespace
required_other = TRUE
@@ -525,7 +525,7 @@
/datum/chemical_reaction/slime/slimeradio
name = "Slime Radio"
id = "m_radio"
required_reagents = list("water" = 1)
required_reagents = list(/datum/reagent/water = 1)
required_container = /obj/item/slime_extract/bluespace
required_other = TRUE
@@ -537,7 +537,7 @@
/datum/chemical_reaction/slime/slimepsteroid2
name = "Slime Steroid 2"
id = "m_steroid2"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/cerulean
required_other = TRUE
@@ -548,7 +548,7 @@
/datum/chemical_reaction/slime/slime_territory
name = "Slime Territory"
id = "s_territory"
required_reagents = list("blood" = 1)
required_reagents = list(/datum/reagent/blood = 1)
required_container = /obj/item/slime_extract/cerulean
required_other = TRUE
@@ -560,7 +560,7 @@
/datum/chemical_reaction/slime/slimestop
name = "Slime Stop"
id = "m_stop"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/sepia
required_other = TRUE
@@ -573,7 +573,7 @@
/datum/chemical_reaction/slime/slimecamera
name = "Slime Camera"
id = "m_camera"
required_reagents = list("water" = 1)
required_reagents = list(/datum/reagent/water = 1)
required_container = /obj/item/slime_extract/sepia
required_other = TRUE
@@ -585,7 +585,7 @@
/datum/chemical_reaction/slime/slimefloor
name = "Sepia Floor"
id = "m_floor"
required_reagents = list("blood" = 1)
required_reagents = list(/datum/reagent/blood = 1)
required_container = /obj/item/slime_extract/sepia
required_other = TRUE
@@ -597,7 +597,7 @@
/datum/chemical_reaction/slime/slimepaint
name = "Slime Paint"
id = "s_paint"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_container = /obj/item/slime_extract/pyrite
required_other = TRUE
@@ -609,7 +609,7 @@
/datum/chemical_reaction/slime/slimecrayon
name = "Slime Crayon"
id = "s_crayon"
required_reagents = list("blood" = 1)
required_reagents = list(/datum/reagent/blood = 1)
required_container = /obj/item/slime_extract/pyrite
required_other = TRUE
@@ -622,7 +622,7 @@
/datum/chemical_reaction/slime/slimeRNG
name = "Random Core"
id = "slimerng"
required_reagents = list("plasma" = 1)
required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_other = TRUE
required_container = /obj/item/slime_extract/rainbow
@@ -642,7 +642,7 @@
/datum/chemical_reaction/slime/slimebomb
name = "Clusterblorble"
id = "slimebomb"
required_reagents = list("slimejelly" = 1)
required_reagents = list(/datum/reagent/toxin/slimejelly = 1)
required_other = TRUE
required_container = /obj/item/slime_extract/rainbow
@@ -658,7 +658,7 @@
/datum/chemical_reaction/slime/slime_transfer
name = "Transfer Potion"
id = "slimetransfer"
required_reagents = list("blood" = 1)
required_reagents = list(/datum/reagent/blood = 1)
required_other = TRUE
required_container = /obj/item/slime_extract/rainbow
@@ -669,7 +669,7 @@
/datum/chemical_reaction/slime/flight_potion
name = "Flight Potion"
id = "flightpotion"
required_reagents = list("holywater" = 5, "uranium" = 5)
required_reagents = list(/datum/reagent/water/holywater = 5, /datum/reagent/uranium = 5)
required_other = TRUE
required_container = /obj/item/slime_extract/rainbow
@@ -123,11 +123,23 @@ GLOBAL_LIST_INIT(food_reagents, build_reagents_to_food()) //reagentid = related
/datum/chemical_reaction/randomized/proc/LoadOldRecipe(recipe_data)
created = text2num(recipe_data["timestamp"])
required_reagents = SANITIZE_LIST(recipe_data["required_reagents"])
required_catalysts = SANITIZE_LIST(recipe_data["required_catalysts"])
var/req_reag = unwrap_reagent_list(recipe_data["required_reagents"])
if(!req_reag)
return FALSE
required_reagents = req_reag
var/req_catalysts = unwrap_reagent_list(recipe_data["required_catalysts"])
if(!req_catalysts)
return FALSE
required_catalysts = req_catalysts
required_temp = recipe_data["required_temp"]
is_cold_recipe = recipe_data["is_cold_recipe"]
results = SANITIZE_LIST(recipe_data["results"])
var/temp_results = unwrap_reagent_list(recipe_data["results"])
if(!temp_results)
return FALSE
results = temp_results
var/containerpath = text2path(recipe_data["required_container"])
if(!containerpath)
return FALSE
@@ -136,13 +148,13 @@ GLOBAL_LIST_INIT(food_reagents, build_reagents_to_food()) //reagentid = related
/datum/chemical_reaction/randomized/secret_sauce
name = "secret sauce creation"
id = "secretsauce"
id = /datum/reagent/consumable/secretsauce
persistent = TRUE
persistence_period = 7 //Reset every week
randomize_container = TRUE
possible_containers = list(/obj/item/reagent_containers/glass/bucket) //easy way to ensure no common conflicts
randomize_req_temperature = TRUE
results = list("secret_sauce" =1)
results = list(/datum/reagent/consumable/secretsauce =1)
/datum/chemical_reaction/randomized/secret_sauce/GetPossibleReagents(kind)
switch(kind)
@@ -1,128 +1,128 @@
/datum/chemical_reaction/formaldehyde
name = "formaldehyde"
id = "Formaldehyde"
results = list("formaldehyde" = 3)
required_reagents = list("ethanol" = 1, "oxygen" = 1, "silver" = 1)
id = /datum/reagent/toxin/formaldehyde
results = list(/datum/reagent/toxin/formaldehyde = 3)
required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/oxygen = 1, /datum/reagent/silver = 1)
required_temp = 420
/datum/chemical_reaction/fentanyl
name = "fentanyl"
id = "fentanyl"
results = list("fentanyl" = 1)
required_reagents = list("space_drugs" = 1)
id = /datum/reagent/toxin/fentanyl
results = list(/datum/reagent/toxin/fentanyl = 1)
required_reagents = list(/datum/reagent/drug/space_drugs = 1)
required_temp = 674
/datum/chemical_reaction/cyanide
name = "Cyanide"
id = "cyanide"
results = list("cyanide" = 3)
required_reagents = list("oil" = 1, "ammonia" = 1, "oxygen" = 1)
id = /datum/reagent/toxin/cyanide
results = list(/datum/reagent/toxin/cyanide = 3)
required_reagents = list(/datum/reagent/oil = 1, /datum/reagent/ammonia = 1, /datum/reagent/oxygen = 1)
required_temp = 380
/datum/chemical_reaction/itching_powder
name = "Itching Powder"
id = "itching_powder"
results = list("itching_powder" = 3)
required_reagents = list("welding_fuel" = 1, "ammonia" = 1, "charcoal" = 1)
id = /datum/reagent/toxin/itching_powder
results = list(/datum/reagent/toxin/itching_powder = 3)
required_reagents = list(/datum/reagent/fuel = 1, /datum/reagent/ammonia = 1, /datum/reagent/medicine/charcoal = 1)
/datum/chemical_reaction/facid
name = "Fluorosulfuric acid"
id = "facid"
results = list("facid" = 4)
required_reagents = list("sacid" = 1, "fluorine" = 1, "hydrogen" = 1, "potassium" = 1)
id = /datum/reagent/toxin/acid/fluacid
results = list(/datum/reagent/toxin/acid/fluacid = 4)
required_reagents = list(/datum/reagent/toxin/acid = 1, /datum/reagent/fluorine = 1, /datum/reagent/hydrogen = 1, /datum/reagent/potassium = 1)
required_temp = 380
/datum/chemical_reaction/sulfonal
name = "sulfonal"
id = "sulfonal"
results = list("sulfonal" = 3)
required_reagents = list("acetone" = 1, "diethylamine" = 1, "sulfur" = 1)
id = /datum/reagent/toxin/sulfonal
results = list(/datum/reagent/toxin/sulfonal = 3)
required_reagents = list(/datum/reagent/acetone = 1, /datum/reagent/diethylamine = 1, /datum/reagent/sulfur = 1)
/datum/chemical_reaction/lipolicide
name = "lipolicide"
id = "lipolicide"
results = list("lipolicide" = 3)
required_reagents = list("mercury" = 1, "diethylamine" = 1, "ephedrine" = 1)
id = /datum/reagent/toxin/lipolicide
results = list(/datum/reagent/toxin/lipolicide = 3)
required_reagents = list(/datum/reagent/mercury = 1, /datum/reagent/diethylamine = 1, /datum/reagent/medicine/ephedrine = 1)
/datum/chemical_reaction/mutagen
name = "Unstable mutagen"
id = "mutagen"
results = list("mutagen" = 3)
required_reagents = list("radium" = 1, "phosphorus" = 1, "chlorine" = 1)
id = /datum/reagent/toxin/mutagen
results = list(/datum/reagent/toxin/mutagen = 3)
required_reagents = list(/datum/reagent/radium = 1, /datum/reagent/phosphorus = 1, /datum/reagent/chlorine = 1)
/datum/chemical_reaction/lexorin
name = "Lexorin"
id = "lexorin"
results = list("lexorin" = 3)
required_reagents = list("plasma" = 1, "hydrogen" = 1, "oxygen" = 1)
id = /datum/reagent/toxin/lexorin
results = list(/datum/reagent/toxin/lexorin = 3)
required_reagents = list(/datum/reagent/toxin/plasma = 1, /datum/reagent/hydrogen = 1, /datum/reagent/oxygen = 1)
/datum/chemical_reaction/chloralhydrate
name = "Chloral Hydrate"
id = "chloralhydrate"
results = list("chloralhydrate" = 1)
required_reagents = list("ethanol" = 1, "chlorine" = 3, "water" = 1)
id = /datum/reagent/toxin/chloralhydrate
results = list(/datum/reagent/toxin/chloralhydrate = 1)
required_reagents = list(/datum/reagent/consumable/ethanol = 1, /datum/reagent/chlorine = 3, /datum/reagent/water = 1)
/datum/chemical_reaction/mutetoxin //i'll just fit this in here snugly between other unfun chemicals :v
name = "Mute Toxin"
id = "mutetoxin"
results = list("mutetoxin" = 2)
required_reagents = list("uranium" = 2, "water" = 1, "carbon" = 1)
id = /datum/reagent/toxin/mutetoxin
results = list(/datum/reagent/toxin/mutetoxin = 2)
required_reagents = list(/datum/reagent/uranium = 2, /datum/reagent/water = 1, /datum/reagent/carbon = 1)
/datum/chemical_reaction/zombiepowder
name = "Zombie Powder"
id = "zombiepowder"
results = list("zombiepowder" = 2)
required_reagents = list("carpotoxin" = 5, "morphine" = 5, "copper" = 5)
id = /datum/reagent/toxin/zombiepowder
results = list(/datum/reagent/toxin/zombiepowder = 2)
required_reagents = list(/datum/reagent/toxin/carpotoxin = 5, /datum/reagent/medicine/morphine = 5, /datum/reagent/copper = 5)
/datum/chemical_reaction/ghoulpowder
name = "Ghoul Powder"
id = "ghoulpowder"
results = list("ghoulpowder" = 2)
required_reagents = list("zombiepowder" = 1, "epinephrine" = 1)
id = /datum/reagent/toxin/ghoulpowder
results = list(/datum/reagent/toxin/ghoulpowder = 2)
required_reagents = list(/datum/reagent/toxin/zombiepowder = 1, /datum/reagent/medicine/epinephrine = 1)
/datum/chemical_reaction/mindbreaker
name = "Mindbreaker Toxin"
id = "mindbreaker"
results = list("mindbreaker" = 5)
required_reagents = list("silicon" = 1, "hydrogen" = 1, "charcoal" = 1)
id = /datum/reagent/toxin/mindbreaker
results = list(/datum/reagent/toxin/mindbreaker = 5)
required_reagents = list(/datum/reagent/silicon = 1, /datum/reagent/hydrogen = 1, /datum/reagent/medicine/charcoal = 1)
/datum/chemical_reaction/heparin
name = "Heparin"
id = "Heparin"
results = list("heparin" = 4)
required_reagents = list("formaldehyde" = 1, "sodium" = 1, "chlorine" = 1, "lithium" = 1)
id = /datum/reagent/toxin/heparin
results = list(/datum/reagent/toxin/heparin = 4)
required_reagents = list(/datum/reagent/toxin/formaldehyde = 1, /datum/reagent/sodium = 1, /datum/reagent/chlorine = 1, /datum/reagent/lithium = 1)
mix_message = "<span class='danger'>The mixture thins and loses all color.</span>"
/datum/chemical_reaction/rotatium
name = "Rotatium"
id = "Rotatium"
results = list("rotatium" = 3)
required_reagents = list("mindbreaker" = 1, "teslium" = 1, "fentanyl" = 1)
id = /datum/reagent/toxin/rotatium
results = list(/datum/reagent/toxin/rotatium = 3)
required_reagents = list(/datum/reagent/toxin/mindbreaker = 1, /datum/reagent/teslium = 1, /datum/reagent/toxin/fentanyl = 1)
mix_message = "<span class='danger'>After sparks, fire, and the smell of mindbreaker, the mix is constantly spinning with no stop in sight.</span>"
/datum/chemical_reaction/skewium
name = "Skewium"
id = "Skewium"
results = list("skewium" = 5)
required_reagents = list("rotatium" = 2, "plasma" = 2, "sacid" = 1)
id = /datum/reagent/toxin/skewium
results = list(/datum/reagent/toxin/skewium = 5)
required_reagents = list(/datum/reagent/toxin/rotatium = 2, /datum/reagent/toxin/plasma = 2, /datum/reagent/toxin/acid = 1)
mix_message = "<span class='danger'>Wow! it turns out if you mix rotatium with some plasma and sulphuric acid, it gets even worse!</span>"
/datum/chemical_reaction/anacea
name = "Anacea"
id = "anacea"
results = list("anacea" = 3)
required_reagents = list("haloperidol" = 1, "impedrezene" = 1, "radium" = 1)
id = /datum/reagent/toxin/anacea
results = list(/datum/reagent/toxin/anacea = 3)
required_reagents = list(/datum/reagent/medicine/haloperidol = 1, /datum/reagent/impedrezene = 1, /datum/reagent/radium = 1)
/datum/chemical_reaction/mimesbane
name = "Mime's Bane"
id = "mimesbane"
results = list("mimesbane" = 3)
required_reagents = list("radium" = 1, "mutetoxin" = 1, "nothing" = 1)
id = /datum/reagent/toxin/mimesbane
results = list(/datum/reagent/toxin/mimesbane = 3)
required_reagents = list(/datum/reagent/radium = 1, /datum/reagent/toxin/mutetoxin = 1, /datum/reagent/consumable/nothing = 1)
/datum/chemical_reaction/bonehurtingjuice
name = "Bone Hurting Juice"
id = "bonehurtingjuice"
results = list("bonehurtingjuice" = 5)
required_reagents = list("mutagen" = 1, "itching_powder" = 3, "milk" = 1)
id = /datum/reagent/toxin/bonehurtingjuice
results = list(/datum/reagent/toxin/bonehurtingjuice = 5)
required_reagents = list(/datum/reagent/toxin/mutagen = 1, /datum/reagent/toxin/itching_powder = 3, /datum/reagent/consumable/milk = 1)
mix_message = "<span class='danger'>The mixture suddenly becomes clear and looks a lot like water. You feel a strong urge to drink it.</span>"
+16 -13
View File
@@ -9,6 +9,7 @@
w_class = WEIGHT_CLASS_TINY
var/amount_per_transfer_from_this = 5
var/list/possible_transfer_amounts = list(5,10,15,20,25,30)
var/APTFT_altclick = TRUE //will the set amount_per_transfer_from_this proc be called on AltClick() ?
var/volume = 30
var/reagent_flags
var/list/list_reagents = null
@@ -19,25 +20,17 @@
var/container_HP = 2
var/cached_icon
/obj/item/reagent_containers/verb/set_APTFT(mob/user) //set amount_per_transfer_from_this
set name = "Set Transfer Amount"
set category = "Object"
var/N = input("Amount per transfer from this:","[src]") as null|anything in possible_transfer_amounts
if(N)
amount_per_transfer_from_this = N
to_chat(user, "<span class='notice'>[src]'s transfer amount is now [amount_per_transfer_from_this] units.</span>")
/obj/item/reagent_containers/Initialize(mapload, vol)
. = ..()
if(isnum(vol) && vol > 0)
volume = vol
if(!possible_transfer_amounts)
src.verbs -= /obj/item/reagent_containers/verb/set_APTFT
if(length(possible_transfer_amounts))
verbs += /obj/item/reagent_containers/proc/set_APTFT
create_reagents(volume, reagent_flags)
if(spawned_disease)
var/datum/disease/F = new spawned_disease()
var/list/data = list("blood_DNA" = "UNKNOWN DNA", "blood_type" = "SY","viruses"= list(F))
reagents.add_reagent("blood", disease_amount, data)
reagents.add_reagent(/datum/reagent/blood, disease_amount, data)
add_initial_reagents()
/obj/item/reagent_containers/examine(mob/user)
@@ -48,8 +41,18 @@
/obj/item/reagent_containers/AltClick(mob/user)
. = ..()
if(possible_transfer_amounts && user.Adjacent(src))
if(APTFT_altclick && length(possible_transfer_amounts) > 1 && user.canUseTopic(src, BE_CLOSE, NO_DEXTERY))
set_APTFT()
return TRUE
/obj/item/reagent_containers/proc/set_APTFT(mob/user) //set amount_per_transfer_from_this
set name = "Set Transfer Amount"
set category = "Object"
set waitfor = FALSE
var/N = input("Amount per transfer from this:","[src]") as null|anything in possible_transfer_amounts
if(N)
amount_per_transfer_from_this = N
to_chat(user, "<span class='notice'>[src]'s transfer amount is now [amount_per_transfer_from_this] units.</span>")
/obj/item/reagent_containers/proc/add_initial_reagents()
if(list_reagents)
@@ -124,7 +127,7 @@
target.visible_message("<span class='danger'>[M] has been splashed with something!</span>", \
"<span class='userdanger'>[M] has been splashed with something!</span>")
for(var/datum/reagent/A in reagents.reagent_list)
R += A.id + " ("
R += A.type + " ("
R += num2text(A.volume) + "),"
if(thrownby)
@@ -13,12 +13,12 @@
/obj/item/reagent_containers/blood/Initialize()
. = ..()
if(blood_type != null)
reagents.add_reagent("blood", 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_colour"=color, "blood_type"=blood_type,"resistances"=null,"trace_chem"=null))
reagents.add_reagent(/datum/reagent/blood, 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_colour"=color, "blood_type"=blood_type,"resistances"=null,"trace_chem"=null))
update_icon()
/obj/item/reagent_containers/blood/on_reagent_change(changetype)
if(reagents)
var/datum/reagent/blood/B = reagents.has_reagent("blood")
var/datum/reagent/blood/B = reagents.has_reagent(/datum/reagent/blood)
if(B && B.data && B.data["blood_type"])
blood_type = B.data["blood_type"]
color_to_apply = bloodtype_to_color(blood_type)
@@ -26,7 +26,8 @@ Borg Hypospray
var/bypass_protection = 0 //If the hypospray can go through armor or thick material
var/list/datum/reagents/reagent_list = list()
var/list/reagent_ids = list("dexalin", "kelotane", "bicaridine", "antitoxin", "epinephrine", "spaceacillin", "salglu_solution", "insulin")
var/list/reagent_ids = list(/datum/reagent/medicine/dexalin, /datum/reagent/medicine/kelotane, /datum/reagent/medicine/bicaridine, /datum/reagent/medicine/antitoxin,
/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/salglu_solution, /datum/reagent/medicine/insulin)
var/accepts_reagent_upgrades = TRUE //If upgrades can increase number of reagents dispensed.
var/list/modes = list() //Basically the inverse of reagent_ids. Instead of having numbers as "keys" and strings as values it has strings as keys and numbers as values.
//Used as list for input() in shakers.
@@ -138,19 +139,19 @@ Borg Hypospray
/obj/item/reagent_containers/borghypo/hacked
icon_state = "borghypo_s"
reagent_ids = list ("facid", "mutetoxin", "cyanide", "sodium_thiopental", "heparin", "lexorin")
reagent_ids = list (/datum/reagent/toxin/acid, /datum/reagent/toxin/mutetoxin, /datum/reagent/toxin/cyanide, /datum/reagent/toxin/sodium_thiopental, /datum/reagent/toxin/heparin, /datum/reagent/toxin/lexorin)
accepts_reagent_upgrades = FALSE
/obj/item/reagent_containers/borghypo/clown
name = "laughter injector"
desc = "Keeps the crew happy and productive!"
reagent_ids = list("laughter")
reagent_ids = list(/datum/reagent/consumable/laughter)
accepts_reagent_upgrades = FALSE
/obj/item/reagent_containers/borghypo/clown/hacked
name = "laughter injector"
desc = "Keeps the crew so happy they don't work!"
reagent_ids = list("superlaughter")
reagent_ids = list(/datum/reagent/consumable/superlaughter)
accepts_reagent_upgrades = FALSE
/obj/item/reagent_containers/borghypo/syndicate
@@ -159,7 +160,7 @@ Borg Hypospray
icon_state = "borghypo_s"
charge_cost = 20
recharge_time = 2
reagent_ids = list("syndicate_nanites", "potass_iodide", "morphine", "insulin")
reagent_ids = list(/datum/reagent/medicine/syndicate_nanites, /datum/reagent/medicine/potass_iodide, /datum/reagent/medicine/morphine, /datum/reagent/medicine/insulin)
bypass_protection = 1
accepts_reagent_upgrades = FALSE
@@ -175,7 +176,14 @@ Borg Shaker
charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster.
recharge_time = 3
accepts_reagent_upgrades = FALSE
reagent_ids = list("beer", "orangejuice", "grenadine", "limejuice", "tomatojuice", "cola", "tonic", "sodawater", "ice", "cream", "whiskey", "vodka", "rum", "gin", "tequila", "vermouth", "wine", "kahlua", "cognac", "ale", "milk", "coffee", "banana", "lemonjuice")
reagent_ids = list(/datum/reagent/consumable/ethanol/beer, /datum/reagent/consumable/orangejuice, /datum/reagent/consumable/grenadine,
/datum/reagent/consumable/limejuice, /datum/reagent/consumable/tomatojuice, /datum/reagent/consumable/space_cola,
/datum/reagent/consumable/tonic, /datum/reagent/consumable/sodawater, /datum/reagent/consumable/ice,
/datum/reagent/consumable/cream, /datum/reagent/consumable/ethanol/whiskey, /datum/reagent/consumable/ethanol/vodka,
/datum/reagent/consumable/ethanol/rum, /datum/reagent/consumable/ethanol/gin, /datum/reagent/consumable/ethanol/tequila,
/datum/reagent/consumable/ethanol/vermouth, /datum/reagent/consumable/ethanol/wine, /datum/reagent/consumable/ethanol/kahlua,
/datum/reagent/consumable/ethanol/cognac, /datum/reagent/consumable/ethanol/ale, /datum/reagent/consumable/milk,
/datum/reagent/consumable/coffee, /datum/reagent/consumable/banana, /datum/reagent/consumable/lemonjuice)
/obj/item/reagent_containers/borghypo/borgshaker/attack(mob/M, mob/user)
return //Can't inject stuff with a shaker, can we? //not with that attitude
@@ -230,21 +238,24 @@ Borg Shaker
charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster.
recharge_time = 3
accepts_reagent_upgrades = FALSE
reagent_ids = list("fakebeer", "fernet")
reagent_ids = list(/datum/reagent/toxin/fakebeer, /datum/reagent/consumable/ethanol/fernet)
/obj/item/reagent_containers/borghypo/peace
name = "Peace Hypospray"
reagent_ids = list("dizzysolution", "tiresolution", "synthpax", "insulin")
reagent_ids = list(/datum/reagent/peaceborg_confuse, /datum/reagent/peaceborg_tire, /datum/reagent/pax/peaceborg, /datum/reagent/medicine/insulin)
accepts_reagent_upgrades = FALSE
/obj/item/reagent_containers/borghypo/peace/hacked
desc = "Everything's peaceful in death!"
icon_state = "borghypo_s"
reagent_ids = list("dizzysolution", "tiresolution", "synthpax", "tirizene", "sulfonal", "sodium_thiopental", "cyanide", "fentanyl")
reagent_ids = list(/datum/reagent/peaceborg_confuse, /datum/reagent/peaceborg_tire, /datum/reagent/pax/peaceborg,
/datum/reagent/toxin/staminatoxin,/datum/reagent/toxin/sulfonal,/datum/reagent/toxin/sodium_thiopental,
/datum/reagent/toxin/cyanide,/datum/reagent/toxin/fentanyl)
accepts_reagent_upgrades = FALSE
/obj/item/reagent_containers/borghypo/epi
name = "Stabilizer injector"
desc = "An advanced chemical synthesizer and injection system, designed to stabilize patients."
reagent_ids = list("epinephrine", "insulin")
reagent_ids = list(/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/insulin)
accepts_reagent_upgrades = FALSE
@@ -43,96 +43,96 @@
/obj/item/reagent_containers/glass/bottle/epinephrine
name = "epinephrine bottle"
desc = "A small bottle. Contains epinephrine - used to stabilize patients."
list_reagents = list("epinephrine" = 30)
list_reagents = list(/datum/reagent/medicine/epinephrine = 30)
/obj/item/reagent_containers/glass/bottle/toxin
name = "toxin bottle"
desc = "A small bottle of toxins. Do not drink, it is poisonous."
list_reagents = list("toxin" = 30)
list_reagents = list(/datum/reagent/toxin = 30)
/obj/item/reagent_containers/glass/bottle/cyanide
name = "cyanide bottle"
desc = "A small bottle of cyanide. Bitter almonds?"
list_reagents = list("cyanide" = 30)
list_reagents = list(/datum/reagent/toxin/cyanide = 30)
/obj/item/reagent_containers/glass/bottle/spewium
name = "spewium bottle"
desc = "A small bottle of spewium."
list_reagents = list("spewium" = 30)
list_reagents = list(/datum/reagent/toxin/spewium = 30)
/obj/item/reagent_containers/glass/bottle/morphine
name = "morphine bottle"
desc = "A small bottle of morphine."
icon = 'icons/obj/chemical.dmi'
list_reagents = list("morphine" = 30)
list_reagents = list(/datum/reagent/medicine/morphine = 30)
/obj/item/reagent_containers/glass/bottle/chloralhydrate
name = "Chloral Hydrate Bottle"
desc = "A small bottle of Choral Hydrate. Mickey's Favorite!"
icon_state = "bottle20"
list_reagents = list("chloralhydrate" = 15)
list_reagents = list(/datum/reagent/toxin/chloralhydrate = 15)
/obj/item/reagent_containers/glass/bottle/charcoal
name = "charcoal bottle"
desc = "A small bottle of charcoal, which removes toxins and other chemicals from the bloodstream."
list_reagents = list("charcoal" = 30)
list_reagents = list(/datum/reagent/medicine/charcoal = 30)
/obj/item/reagent_containers/glass/bottle/cryoxadone
name = "cryoxadone bottle"
desc = "A small bottle of cryoxadone, heals most types of damage when used in extremely cold enviornments."
list_reagents = list("cryoxadone" = 30)
list_reagents = list(/datum/reagent/medicine/cryoxadone = 30)
/obj/item/reagent_containers/glass/bottle/mutagen
name = "unstable mutagen bottle"
desc = "A small bottle of unstable mutagen. Randomly changes the DNA structure of whoever comes in contact."
list_reagents = list("mutagen" = 30)
list_reagents = list(/datum/reagent/toxin/mutagen = 30)
/obj/item/reagent_containers/glass/bottle/plasma
name = "liquid plasma bottle"
desc = "A small bottle of liquid plasma. Extremely toxic and reacts with micro-organisms inside blood."
list_reagents = list("plasma" = 30)
list_reagents = list(/datum/reagent/toxin/plasma = 30)
/obj/item/reagent_containers/glass/bottle/synaptizine
name = "synaptizine bottle"
desc = "A small bottle of synaptizine."
list_reagents = list("synaptizine" = 30)
list_reagents = list(/datum/reagent/medicine/synaptizine = 30)
/obj/item/reagent_containers/glass/bottle/formaldehyde
name = "formaldehyde bottle"
desc = "A small bottle of formaldehyde."
list_reagents = list("formaldehyde" = 30)
list_reagents = list(/datum/reagent/toxin/formaldehyde = 30)
/obj/item/reagent_containers/glass/bottle/ammonia
name = "ammonia bottle"
desc = "A small bottle of ammonia."
list_reagents = list("ammonia" = 30)
list_reagents = list(/datum/reagent/ammonia = 30)
/obj/item/reagent_containers/glass/bottle/diethylamine
name = "diethylamine bottle"
desc = "A small bottle of diethylamine."
list_reagents = list("diethylamine" = 30)
list_reagents = list(/datum/reagent/diethylamine = 30)
/obj/item/reagent_containers/glass/bottle/facid
name = "Fluorosulfuric Acid Bottle"
desc = "A small bottle. Contains a small amount of fluorosulfuric acid."
list_reagents = list("facid" = 30)
list_reagents = list(/datum/reagent/toxin/acid/fluacid = 30)
/obj/item/reagent_containers/glass/bottle/adminordrazine
name = "Adminordrazine Bottle"
desc = "A small bottle. Contains the liquid essence of the gods."
icon = 'icons/obj/drinks.dmi'
icon_state = "holyflask"
list_reagents = list("adminordrazine" = 30)
list_reagents = list(/datum/reagent/medicine/adminordrazine = 30)
/obj/item/reagent_containers/glass/bottle/capsaicin
name = "Capsaicin Bottle"
desc = "A small bottle. Contains hot sauce."
list_reagents = list("capsaicin" = 30)
list_reagents = list(/datum/reagent/consumable/capsaicin = 30)
/obj/item/reagent_containers/glass/bottle/frostoil
name = "Frost Oil Bottle"
desc = "A small bottle. Contains cold sauce."
list_reagents = list("frostoil" = 30)
list_reagents = list(/datum/reagent/consumable/frostoil = 30)
/obj/item/reagent_containers/glass/bottle/traitor
name = "syndicate bottle"
@@ -142,94 +142,95 @@
/obj/item/reagent_containers/glass/bottle/traitor/Initialize()
. = ..()
extra_reagent = pick("polonium", "histamine", "formaldehyde", "venom", "fentanyl", "cyanide")
reagents.add_reagent("[extra_reagent]", 3)
extra_reagent = pick(/datum/reagent/toxin/polonium, /datum/reagent/toxin/histamine, /datum/reagent/toxin/formaldehyde,
/datum/reagent/toxin/venom, /datum/reagent/toxin/fentanyl, /datum/reagent/toxin/cyanide)
reagents.add_reagent(extra_reagent, 3)
/obj/item/reagent_containers/glass/bottle/polonium
name = "polonium bottle"
desc = "A small bottle. Contains Polonium."
list_reagents = list("polonium" = 30)
list_reagents = list(/datum/reagent/toxin/polonium = 30)
/obj/item/reagent_containers/glass/bottle/magillitis
name = "magillitis bottle"
desc = "A small bottle. Contains a serum known only as 'magillitis'."
list_reagents = list("magillitis" = 5)
list_reagents = list(/datum/reagent/magillitis = 5)
/obj/item/reagent_containers/glass/bottle/venom
name = "venom bottle"
desc = "A small bottle. Contains Venom."
list_reagents = list("venom" = 30)
list_reagents = list(/datum/reagent/toxin/venom = 30)
/obj/item/reagent_containers/glass/bottle/fentanyl
name = "fentanyl bottle"
desc = "A small bottle. Contains Fentanyl."
list_reagents = list("fentanyl" = 30)
list_reagents = list(/datum/reagent/toxin/fentanyl = 30)
/obj/item/reagent_containers/glass/bottle/formaldehyde
name = "formaldehyde bottle"
desc = "A small bottle. Contains Formaldehyde."
list_reagents = list("formaldehyde" = 30)
list_reagents = list(/datum/reagent/toxin/formaldehyde = 30)
/obj/item/reagent_containers/glass/bottle/initropidril
name = "initropidril bottle"
desc = "A small bottle. Contains initropidril."
list_reagents = list("initropidril" = 30)
list_reagents = list(/datum/reagent/toxin/initropidril = 30)
/obj/item/reagent_containers/glass/bottle/pancuronium
name = "pancuronium bottle"
desc = "A small bottle. Contains pancuronium."
list_reagents = list("pancuronium" = 30)
list_reagents = list(/datum/reagent/toxin/pancuronium = 30)
/obj/item/reagent_containers/glass/bottle/sodium_thiopental
name = "sodium thiopental bottle"
desc = "A small bottle. Contains sodium thiopental."
list_reagents = list("sodium_thiopental" = 30)
list_reagents = list(/datum/reagent/toxin/sodium_thiopental = 30)
/obj/item/reagent_containers/glass/bottle/coniine
name = "coniine bottle"
desc = "A small bottle. Contains coniine."
list_reagents = list("coniine" = 30)
list_reagents = list(/datum/reagent/toxin/coniine = 30)
/obj/item/reagent_containers/glass/bottle/curare
name = "curare bottle"
desc = "A small bottle. Contains curare."
list_reagents = list("curare" = 30)
list_reagents = list(/datum/reagent/toxin/curare = 30)
/obj/item/reagent_containers/glass/bottle/amanitin
name = "amanitin bottle"
desc = "A small bottle. Contains amanitin."
list_reagents = list("amanitin" = 30)
list_reagents = list(/datum/reagent/toxin/amanitin = 30)
/obj/item/reagent_containers/glass/bottle/histamine
name = "histamine bottle"
desc = "A small bottle. Contains Histamine."
list_reagents = list("histamine" = 30)
list_reagents = list(/datum/reagent/toxin/histamine = 30)
/obj/item/reagent_containers/glass/bottle/diphenhydramine
name = "antihistamine bottle"
desc = "A small bottle of diphenhydramine."
list_reagents = list("diphenhydramine" = 30)
list_reagents = list(/datum/reagent/medicine/diphenhydramine = 30)
/obj/item/reagent_containers/glass/bottle/potass_iodide
name = "anti-radiation bottle"
desc = "A small bottle of potassium iodide."
list_reagents = list("potass_iodide" = 30)
list_reagents = list(/datum/reagent/medicine/potass_iodide = 30)
/obj/item/reagent_containers/glass/bottle/salglu_solution
name = "saline-glucose solution bottle"
desc = "A small bottle of saline-glucose solution."
icon_state = "bottle1"
list_reagents = list("salglu_solution" = 30)
list_reagents = list(/datum/reagent/medicine/salglu_solution = 30)
/obj/item/reagent_containers/glass/bottle/atropine
name = "atropine bottle"
desc = "A small bottle of atropine."
list_reagents = list("atropine" = 30)
list_reagents = list(/datum/reagent/medicine/atropine = 30)
/obj/item/reagent_containers/glass/bottle/romerol
name = "romerol bottle"
desc = "A small bottle of Romerol. The REAL zombie powder."
list_reagents = list("romerol" = 30)
list_reagents = list(/datum/reagent/romerol = 30)
/obj/item/reagent_containers/glass/bottle/random_virus
name = "Experimental disease culture bottle"
@@ -306,128 +307,128 @@
/obj/item/reagent_containers/glass/bottle/tuberculosiscure
name = "BVAK bottle"
desc = "A small bottle containing Bio Virus Antidote Kit."
list_reagents = list("atropine" = 5, "epinephrine" = 5, "salbutamol" = 10, "spaceacillin" = 10)
list_reagents = list(/datum/reagent/medicine/atropine = 5, /datum/reagent/medicine/epinephrine = 5, /datum/reagent/medicine/salbutamol = 10, /datum/reagent/medicine/spaceacillin = 10)
//Oldstation.dmm chemical storage bottles
/obj/item/reagent_containers/glass/bottle/hydrogen
name = "hydrogen bottle"
list_reagents = list("hydrogen" = 30)
list_reagents = list(/datum/reagent/hydrogen = 30)
/obj/item/reagent_containers/glass/bottle/lithium
name = "lithium bottle"
list_reagents = list("lithium" = 30)
list_reagents = list(/datum/reagent/lithium = 30)
/obj/item/reagent_containers/glass/bottle/carbon
name = "carbon bottle"
list_reagents = list("carbon" = 30)
list_reagents = list(/datum/reagent/carbon = 30)
/obj/item/reagent_containers/glass/bottle/nitrogen
name = "nitrogen bottle"
list_reagents = list("nitrogen" = 30)
list_reagents = list(/datum/reagent/nitrogen = 30)
/obj/item/reagent_containers/glass/bottle/oxygen
name = "oxygen bottle"
list_reagents = list("oxygen" = 30)
list_reagents = list(/datum/reagent/oxygen = 30)
/obj/item/reagent_containers/glass/bottle/fluorine
name = "fluorine bottle"
list_reagents = list("fluorine" = 30)
list_reagents = list(/datum/reagent/fluorine = 30)
/obj/item/reagent_containers/glass/bottle/sodium
name = "sodium bottle"
list_reagents = list("sodium" = 30)
list_reagents = list(/datum/reagent/sodium = 30)
/obj/item/reagent_containers/glass/bottle/aluminium
name = "aluminium bottle"
list_reagents = list("aluminium" = 30)
list_reagents = list(/datum/reagent/aluminium = 30)
/obj/item/reagent_containers/glass/bottle/silicon
name = "silicon bottle"
list_reagents = list("silicon" = 30)
list_reagents = list(/datum/reagent/silicon = 30)
/obj/item/reagent_containers/glass/bottle/phosphorus
name = "phosphorus bottle"
list_reagents = list("phosphorus" = 30)
list_reagents = list(/datum/reagent/phosphorus = 30)
/obj/item/reagent_containers/glass/bottle/sulfur
name = "sulfur bottle"
list_reagents = list("sulfur" = 30)
list_reagents = list(/datum/reagent/sulfur = 30)
/obj/item/reagent_containers/glass/bottle/chlorine
name = "chlorine bottle"
list_reagents = list("chlorine" = 30)
list_reagents = list(/datum/reagent/chlorine = 30)
/obj/item/reagent_containers/glass/bottle/potassium
name = "potassium bottle"
list_reagents = list("potassium" = 30)
list_reagents = list(/datum/reagent/potassium = 30)
/obj/item/reagent_containers/glass/bottle/iron
name = "iron bottle"
list_reagents = list("iron" = 30)
list_reagents = list(/datum/reagent/iron = 30)
/obj/item/reagent_containers/glass/bottle/copper
name = "copper bottle"
list_reagents = list("copper" = 30)
list_reagents = list(/datum/reagent/copper = 30)
/obj/item/reagent_containers/glass/bottle/mercury
name = "mercury bottle"
list_reagents = list("mercury" = 30)
list_reagents = list(/datum/reagent/mercury = 30)
/obj/item/reagent_containers/glass/bottle/radium
name = "radium bottle"
list_reagents = list("radium" = 30)
list_reagents = list(/datum/reagent/radium = 30)
/obj/item/reagent_containers/glass/bottle/water
name = "water bottle"
list_reagents = list("water" = 30)
list_reagents = list(/datum/reagent/water = 30)
/obj/item/reagent_containers/glass/bottle/ethanol
name = "ethanol bottle"
list_reagents = list("ethanol" = 30)
list_reagents = list(/datum/reagent/consumable/ethanol = 30)
/obj/item/reagent_containers/glass/bottle/sugar
name = "sugar bottle"
list_reagents = list("sugar" = 30)
list_reagents = list(/datum/reagent/consumable/sugar = 30)
/obj/item/reagent_containers/glass/bottle/sacid
name = "sulphuric acid bottle"
list_reagents = list("sacid" = 30)
list_reagents = list(/datum/reagent/toxin/acid = 30)
/obj/item/reagent_containers/glass/bottle/welding_fuel
name = "welding fuel bottle"
list_reagents = list("welding_fuel" = 30)
list_reagents = list(/datum/reagent/fuel = 30)
/obj/item/reagent_containers/glass/bottle/silver
name = "silver bottle"
list_reagents = list("silver" = 30)
list_reagents = list(/datum/reagent/silver = 30)
/obj/item/reagent_containers/glass/bottle/iodine
name = "iodine bottle"
list_reagents = list("iodine" = 30)
list_reagents = list(/datum/reagent/iodine = 30)
/obj/item/reagent_containers/glass/bottle/bromine
name = "bromine bottle"
list_reagents = list("bromine" = 30)
list_reagents = list(/datum/reagent/bromine = 30)
//Lewd Stuff
/obj/item/reagent_containers/glass/bottle/crocin
name = "Crocin bottle"
desc = "A bottle of mild aphrodisiac. Increases libido."
list_reagents = list("aphro" = 30)
list_reagents = list(/datum/reagent/drug/aphrodisiac = 30)
/obj/item/reagent_containers/glass/bottle/hexacrocin
name = "Hexacrocin bottle"
desc = "A bottle of strong aphrodisiac. Increases libido."
list_reagents = list("aphro+" = 30)
list_reagents = list(/datum/reagent/drug/aphrodisiacplus = 30)
/obj/item/reagent_containers/glass/bottle/camphor
name = "Camphor bottle"
desc = "A bottle of mild anaphrodisiac. Reduces libido."
list_reagents = list("anaphro" = 30)
list_reagents = list(/datum/reagent/drug/anaphrodisiac = 30)
/obj/item/reagent_containers/glass/bottle/hexacamphor
name = "Hexacamphor bottle"
desc = "A bottle of strong anaphrodisiac. Reduces libido."
list_reagents = list("anaphro+" = 30)
list_reagents = list(/datum/reagent/drug/anaphrodisiacplus = 30)
@@ -67,7 +67,7 @@
var/R
if(reagents)
for(var/datum/reagent/A in src.reagents.reagent_list)
R += A.id + " ("
R += A.type + " ("
R += num2text(A.volume) + "),"
log_combat(user, M, "squirted", R)
@@ -27,7 +27,7 @@
"<span class='userdanger'>[user] splashes the contents of [src] onto [M]!</span>")
if(reagents)
for(var/datum/reagent/A in reagents.reagent_list)
R += A.id + " ("
R += A.type + " ("
R += num2text(A.volume) + "),"
if(isturf(target) && reagents.reagent_list.len && thrownby)
log_combat(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]")
@@ -233,32 +233,32 @@
container_HP = 5
/obj/item/reagent_containers/glass/beaker/cryoxadone
list_reagents = list("cryoxadone" = 30)
list_reagents = list(/datum/reagent/medicine/cryoxadone = 30)
/obj/item/reagent_containers/glass/beaker/sulphuric
list_reagents = list("sacid" = 50)
list_reagents = list(/datum/reagent/toxin/acid = 50)
/obj/item/reagent_containers/glass/beaker/slime
list_reagents = list("slimejelly" = 50)
list_reagents = list(/datum/reagent/toxin/slimejelly = 50)
/obj/item/reagent_containers/glass/beaker/large/styptic
name = "styptic reserve tank"
list_reagents = list("styptic_powder" = 50)
list_reagents = list(/datum/reagent/medicine/styptic_powder = 50)
/obj/item/reagent_containers/glass/beaker/large/silver_sulfadiazine
name = "silver sulfadiazine reserve tank"
list_reagents = list("silver_sulfadiazine" = 50)
list_reagents = list(/datum/reagent/medicine/silver_sulfadiazine = 50)
/obj/item/reagent_containers/glass/beaker/large/charcoal
name = "charcoal reserve tank"
list_reagents = list("charcoal" = 50)
list_reagents = list(/datum/reagent/medicine/charcoal = 50)
/obj/item/reagent_containers/glass/beaker/large/epinephrine
name = "epinephrine reserve tank"
list_reagents = list("epinephrine" = 50)
list_reagents = list(/datum/reagent/medicine/epinephrine = 50)
/obj/item/reagent_containers/glass/beaker/synthflesh
list_reagents = list("synthflesh" = 50)
list_reagents = list(/datum/reagent/medicine/synthflesh = 50)
/obj/item/reagent_containers/glass/bucket
name = "bucket"
@@ -337,7 +337,7 @@
icon = 'icons/obj/drinks.dmi'
icon_state = "smallbottle"
item_state = "bottle"
list_reagents = list("water" = 49.5, "fluorine" = 0.5)//see desc, don't think about it too hard
list_reagents = list(/datum/reagent/water = 49.5, /datum/reagent/fluorine = 0.5)//see desc, don't think about it too hard
materials = list(MAT_GLASS=0)
volume = 50
amount_per_transfer_from_this = 10
@@ -355,7 +355,7 @@
desc = "A fresh commercial-sized bottle of water."
icon_state = "largebottle"
materials = list(MAT_GLASS=0)
list_reagents = list("water" = 100)
list_reagents = list(/datum/reagent/water = 100)
volume = 100
amount_per_transfer_from_this = 20
possible_transfer_amounts = list(5,10,15,20,25,30,50,100)
@@ -51,7 +51,7 @@
log_combat(user, M, "injected", src, "([contained])")
/obj/item/reagent_containers/hypospray/CMO
list_reagents = list("omnizine" = 30)
list_reagents = list(/datum/reagent/medicine/omnizine = 30)
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
/obj/item/reagent_containers/hypospray/combat
@@ -61,17 +61,17 @@
icon_state = "combat_hypo"
volume = 100
ignore_flags = 1 // So they can heal their comrades.
list_reagents = list("epinephrine" = 30, "lesser_syndicate_nanites" = 40, "leporazine" = 15, "atropine" = 15)
list_reagents = list(/datum/reagent/medicine/epinephrine = 30, /datum/reagent/medicine/lesser_syndicate_nanites = 40, /datum/reagent/medicine/leporazine = 15, /datum/reagent/medicine/atropine = 15)
/obj/item/reagent_containers/hypospray/combat/omnizine // owned idiot
desc = "A modified air-needle autoinjector, used by underfunded support operatives to slowly heal injuries in combat and limp away from a fight."
volume = 90
list_reagents = list("epinephrine" = 30, "omnizine" = 30, "leporazine" = 15, "atropine" = 15)
list_reagents = list(/datum/reagent/medicine/epinephrine = 30, /datum/reagent/medicine/omnizine = 30, /datum/reagent/medicine/leporazine = 15, /datum/reagent/medicine/atropine = 15)
/obj/item/reagent_containers/hypospray/combat/nanites
desc = "A modified air-needle autoinjector for use in combat situations. Prefilled with experimental medical compounds for rapid healing."
volume = 100
list_reagents = list("quantum_heal" = 80, "synaptizine" = 20)
list_reagents = list(/datum/reagent/medicine/adminordrazine/quantum_heal = 80, /datum/reagent/medicine/synaptizine = 20)
/obj/item/reagent_containers/hypospray/magillitis
name = "experimental autoinjector"
@@ -79,7 +79,7 @@
icon_state = "combat_hypo"
volume = 5
reagent_flags = NONE
list_reagents = list("magillitis" = 5)
list_reagents = list(/datum/reagent/magillitis = 5)
//MediPens
@@ -95,7 +95,7 @@
ignore_flags = 1 //so you can medipen through hardsuits
reagent_flags = DRAWABLE
flags_1 = null
list_reagents = list("epinephrine" = 10)
list_reagents = list(/datum/reagent/medicine/epinephrine = 10)
/obj/item/reagent_containers/hypospray/medipen/suicide_act(mob/living/carbon/user)
user.visible_message("<span class='suicide'>[user] begins to choke on \the [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
@@ -137,7 +137,7 @@
desc = "A highly illegal medipen due to its load and small injections, allow for five uses before being drained"
volume = 50
amount_per_transfer_from_this = 10
list_reagents = list("stimulants" = 50)
list_reagents = list(/datum/reagent/medicine/stimulants = 50)
/obj/item/reagent_containers/hypospray/medipen/stimulants/baseball
name = "the reason the syndicate major league team wins"
@@ -145,7 +145,7 @@
icon_state = "baseballstim"
volume = 50
amount_per_transfer_from_this = 50
list_reagents = list("stimulants" = 50)
list_reagents = list(/datum/reagent/medicine/stimulants = 50)
/obj/item/reagent_containers/hypospray/medipen/stimpack //goliath kiting
name = "stimpack medipen"
@@ -153,16 +153,16 @@
icon_state = "stimpen"
volume = 20
amount_per_transfer_from_this = 20
list_reagents = list("ephedrine" = 10, "coffee" = 10)
list_reagents = list(/datum/reagent/medicine/ephedrine = 10, /datum/reagent/consumable/coffee = 10)
/obj/item/reagent_containers/hypospray/medipen/stimpack/traitor
desc = "A modified stimulants autoinjector for use in combat situations. Has a mild healing effect."
list_reagents = list("stimulants" = 10, "omnizine" = 10)
list_reagents = list(/datum/reagent/medicine/stimulants = 10, /datum/reagent/medicine/omnizine = 10)
/obj/item/reagent_containers/hypospray/medipen/morphine
name = "morphine medipen"
desc = "A rapid way to get you out of a tight situation and fast! You'll feel rather drowsy, though."
list_reagents = list("morphine" = 10)
list_reagents = list(/datum/reagent/medicine/morphine = 10)
/obj/item/reagent_containers/hypospray/medipen/tuberculosiscure
name = "BVAK autoinjector"
@@ -170,7 +170,7 @@
icon_state = "stimpen"
volume = 60
amount_per_transfer_from_this = 30
list_reagents = list("atropine" = 10, "epinephrine" = 10, "salbutamol" = 20, "spaceacillin" = 20)
list_reagents = list(/datum/reagent/medicine/atropine = 10, /datum/reagent/medicine/epinephrine = 10, /datum/reagent/medicine/salbutamol = 20, /datum/reagent/medicine/spaceacillin = 20)
/obj/item/reagent_containers/hypospray/medipen/survival
name = "survival medipen"
@@ -178,28 +178,20 @@
icon_state = "stimpen"
volume = 52
amount_per_transfer_from_this = 52
list_reagents = list("salbutamol" = 10, "leporazine" = 15, "neo_jelly" = 15, "epinephrine" = 10, "lavaland_extract" = 2)
/obj/item/reagent_containers/hypospray/medipen/species_mutator
name = "species mutator medipen"
desc = "Embark on a whirlwind tour of racial insensitivity by \
literally appropriating other races."
volume = 1
amount_per_transfer_from_this = 1
list_reagents = list("unstablemutationtoxin" = 1)
list_reagents = list(/datum/reagent/medicine/salbutamol = 10, /datum/reagent/medicine/leporazine = 15, /datum/reagent/medicine/neo_jelly = 15, /datum/reagent/medicine/epinephrine = 10, /datum/reagent/medicine/lavaland_extract = 2)
/obj/item/reagent_containers/hypospray/medipen/firelocker
name = "fire treatment medipen"
desc = "A medipen that has been fulled with burn healing chemicals for personnel without advanced medical knowledge."
volume = 15
amount_per_transfer_from_this = 15
list_reagents = list("oxandrolone" = 5, "kelotane" = 10)
list_reagents = list(/datum/reagent/medicine/oxandrolone = 5, /datum/reagent/medicine/kelotane = 10)
/obj/item/reagent_containers/hypospray/combat/heresypurge
name = "holy water autoinjector"
desc = "A modified air-needle autoinjector for use in combat situations. Prefilled with 5 doses of a holy water mixture."
volume = 250
list_reagents = list("holywater" = 150, "tiresolution" = 50, "dizzysolution" = 50)
list_reagents = list(/datum/reagent/water/holywater = 150, /datum/reagent/peaceborg_tire = 50, /datum/reagent/peaceborg_confuse = 50)
amount_per_transfer_from_this = 50
#define HYPO_SPRAY 0
@@ -240,19 +232,19 @@
var/penetrates = FALSE
/obj/item/hypospray/mkii/brute
start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/bicaridine
start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/bicaridine
/obj/item/hypospray/mkii/toxin
start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/antitoxin
start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/antitoxin
/obj/item/hypospray/mkii/oxygen
start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/dexalin
start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/dexalin
/obj/item/hypospray/mkii/burn
start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/kelotane
start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/kelotane
/obj/item/hypospray/mkii/tricord
start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/preloaded/tricord
start_vial = /obj/item/reagent_containers/glass/bottle/vial/small/tricord
/obj/item/hypospray/mkii/enlarge
spawnwithvial = FALSE
@@ -263,7 +255,7 @@
icon_state = "cmo2"
desc = "The Deluxe Hypospray can take larger-size vials. It also acts faster and delivers more reagents per spray."
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
start_vial = /obj/item/reagent_containers/glass/bottle/vial/large/preloaded/CMO
start_vial = /obj/item/reagent_containers/glass/bottle/vial/large/CMO
inject_wait = DELUXE_WAIT_INJECT
spray_wait = DELUXE_WAIT_SPRAY
spray_self = DELUXE_SELF_SPRAY
@@ -273,7 +265,7 @@
name = "combat hypospray mk.II"
desc = "A combat-ready deluxe hypospray that acts almost instantly. It can be tactically reloaded by using a vial on it."
icon_state = "combat2"
start_vial = /obj/item/reagent_containers/glass/bottle/vial/large/preloaded/combat
start_vial = /obj/item/reagent_containers/glass/bottle/vial/large/combat
inject_wait = COMBAT_WAIT_INJECT
spray_wait = COMBAT_WAIT_SPRAY
spray_self = COMBAT_SELF_SPRAY
@@ -5,9 +5,9 @@
desc = "A hypovial compatible with most hyposprays."
icon_state = "hypovial"
spillable = FALSE
var/comes_with = list() //Easy way of doing this.
volume = 10
possible_transfer_amounts = list(1,2,5,10)
APTFT_altclick = FALSE
obj_flags = UNIQUE_RENAME
unique_reskin = list("hypovial" = "hypovial",
"red hypovial" = "hypovial-b",
@@ -24,8 +24,6 @@
. = ..()
if(!icon_state)
icon_state = "hypovial"
for(var/R in comes_with)
reagents.add_reagent(R,comes_with[R])
update_icon()
// beaker_weakness_bitflag |= PH_WEAK // fuck you if you're using these like beakers
// beaker_weakness_bitflag |= TEMP_WEAK
@@ -115,87 +113,87 @@
unique_reskin = null
/obj/item/reagent_containers/glass/bottle/vial/small/preloaded/bicaridine
/obj/item/reagent_containers/glass/bottle/vial/small/bicaridine
name = "red hypovial (bicaridine)"
icon_state = "hypovial-b"
comes_with = list("bicaridine" = 30)
list_reagents = list(/datum/reagent/medicine/bicaridine = 30)
/obj/item/reagent_containers/glass/bottle/vial/small/preloaded/antitoxin
/obj/item/reagent_containers/glass/bottle/vial/small/antitoxin
name = "green hypovial (Anti-Tox)"
icon_state = "hypovial-a"
comes_with = list("antitoxin" = 30)
list_reagents = list(/datum/reagent/medicine/antitoxin = 30)
/obj/item/reagent_containers/glass/bottle/vial/small/preloaded/kelotane
/obj/item/reagent_containers/glass/bottle/vial/small/kelotane
name = "orange hypovial (kelotane)"
icon_state = "hypovial-k"
comes_with = list("kelotane" = 30)
list_reagents = list(/datum/reagent/medicine/kelotane = 30)
/obj/item/reagent_containers/glass/bottle/vial/small/preloaded/dexalin
/obj/item/reagent_containers/glass/bottle/vial/small/dexalin
name = "blue hypovial (dexalin)"
icon_state = "hypovial-d"
comes_with = list("dexalin" = 30)
list_reagents = list(/datum/reagent/medicine/dexalin = 30)
/obj/item/reagent_containers/glass/bottle/vial/small/preloaded/tricord
/obj/item/reagent_containers/glass/bottle/vial/small/tricord
name = "hypovial (tricordrazine)"
icon_state = "hypovial"
comes_with = list("tricordrazine" = 30)
list_reagents = list(/datum/reagent/medicine/tricordrazine = 30)
/obj/item/reagent_containers/glass/bottle/vial/small/preloaded/breastreduction
/obj/item/reagent_containers/glass/bottle/vial/small/breastreduction
name = "pink hypovial (breast treatment)"
icon_state = "hypovial-pink"
comes_with = list("BEsmaller_hypo" = 30)
list_reagents = list(/datum/reagent/fermi/BEsmaller_hypo = 30)
/obj/item/reagent_containers/glass/bottle/vial/small/preloaded/penisreduction
/obj/item/reagent_containers/glass/bottle/vial/small/penisreduction
name = "pink hypovial (penis treatment)"
icon_state = "hypovial-pink"
comes_with = list("PEsmaller_hypo" = 30)
list_reagents = list(/datum/reagent/fermi/PEsmaller_hypo = 30)
/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/CMO
/obj/item/reagent_containers/glass/bottle/vial/large/CMO
name = "deluxe hypovial"
icon_state = "hypoviallarge-cmos"
comes_with = list("omnizine" = 20, "leporazine" = 20, "atropine" = 20)
list_reagents = list(/datum/reagent/medicine/omnizine = 20, /datum/reagent/medicine/leporazine = 20, /datum/reagent/medicine/atropine = 20)
/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/bicaridine
/obj/item/reagent_containers/glass/bottle/vial/large/bicaridine
name = "large red hypovial (bicaridine)"
icon_state = "hypoviallarge-b"
comes_with = list("bicaridine" = 60)
list_reagents = list(/datum/reagent/medicine/bicaridine = 60)
/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/antitoxin
/obj/item/reagent_containers/glass/bottle/vial/large/antitoxin
name = "large green hypovial (anti-tox)"
icon_state = "hypoviallarge-a"
comes_with = list("antitoxin" = 60)
list_reagents = list(/datum/reagent/medicine/antitoxin = 60)
/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/kelotane
/obj/item/reagent_containers/glass/bottle/vial/large/kelotane
name = "large orange hypovial (kelotane)"
icon_state = "hypoviallarge-k"
comes_with = list("kelotane" = 60)
list_reagents = list(/datum/reagent/medicine/kelotane = 60)
/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/dexalin
/obj/item/reagent_containers/glass/bottle/vial/large/dexalin
name = "large blue hypovial (dexalin)"
icon_state = "hypoviallarge-d"
comes_with = list("dexalin" = 60)
list_reagents = list(/datum/reagent/medicine/dexalin = 60)
/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/charcoal
/obj/item/reagent_containers/glass/bottle/vial/large/charcoal
name = "large black hypovial (charcoal)"
icon_state = "hypoviallarge-t"
comes_with = list("charcoal" = 60)
list_reagents = list(/datum/reagent/medicine/charcoal = 60)
/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/tricord
/obj/item/reagent_containers/glass/bottle/vial/large/tricord
name = "large hypovial (tricord)"
icon_state = "hypoviallarge"
comes_with = list("tricordrazine" = 60)
list_reagents = list(/datum/reagent/medicine/tricordrazine = 60)
/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/salglu
/obj/item/reagent_containers/glass/bottle/vial/large/salglu
name = "large green hypovial (salglu)"
icon_state = "hypoviallarge-a"
comes_with = list("salglu_solution" = 60)
list_reagents = list(/datum/reagent/medicine/salglu_solution = 60)
/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/synthflesh
/obj/item/reagent_containers/glass/bottle/vial/large/synthflesh
name = "large orange hypovial (synthflesh)"
icon_state = "hypoviallarge-k"
comes_with = list("synthflesh" = 60)
list_reagents = list(/datum/reagent/medicine/synthflesh = 60)
/obj/item/reagent_containers/glass/bottle/vial/large/preloaded/combat
/obj/item/reagent_containers/glass/bottle/vial/large/combat
name = "combat hypovial"
icon_state = "hypoviallarge-t"
comes_with = list("epinephrine" = 3, "omnizine" = 19, "leporazine" = 19, "atropine" = 19) //Epinephrine's main effect here is to kill suff damage, so we don't need much given atropine
list_reagents = list(/datum/reagent/medicine/epinephrine = 3, /datum/reagent/medicine/omnizine = 19, /datum/reagent/medicine/leporazine = 19, /datum/reagent/medicine/atropine = 19) //Epinephrine's main effect here is to kill suff damage, so we don't need much given atropine
@@ -82,26 +82,26 @@
name = "medical spray (styptic powder)"
desc = "A medical spray bottle, designed for precision application, with an unscrewable cap. This one contains styptic powder, for treating cuts and bruises."
icon_state = "brutespray"
list_reagents = list("styptic_powder" = 60)
list_reagents = list(/datum/reagent/medicine/styptic_powder = 60)
/obj/item/reagent_containers/medspray/silver_sulf
name = "medical spray (silver sulfadiazine)"
desc = "A medical spray bottle, designed for precision application, with an unscrewable cap. This one contains silver sulfadiazine, useful for treating burns."
icon_state = "burnspray"
list_reagents = list("silver_sulfadiazine" = 60)
list_reagents = list(/datum/reagent/medicine/silver_sulfadiazine = 60)
/obj/item/reagent_containers/medspray/synthflesh
name = "medical spray (synthflesh)"
desc = "A medical spray bottle, designed for precision application, with an unscrewable cap. This one contains synthflesh, an apex brute and burn healing agent."
icon_state = "synthspray"
list_reagents = list("synthflesh" = 60)
list_reagents = list(/datum/reagent/medicine/synthflesh = 60)
/obj/item/reagent_containers/medspray/sterilizine
name = "sterilizer spray"
desc = "Spray bottle loaded with non-toxic sterilizer. Useful in preparation for surgery."
list_reagents = list("sterilizine" = 60)
list_reagents = list(/datum/reagent/space_cleaner/sterilizine = 60)
/obj/item/reagent_containers/medspray/synthtissue
name = "Synthtissue young culture spray"
desc = "Spray bottle loaded with synthtissue. Useful in synthtissue grafting surgeries."
list_reagents = list("synthtissue" = 60)
list_reagents = list(/datum/reagent/synthtissue = 60)
@@ -32,13 +32,13 @@
/obj/item/reagent_containers/pill/patch/styptic
name = "brute patch"
desc = "Helps with brute injuries."
list_reagents = list("styptic_powder" = 20)
list_reagents = list(/datum/reagent/medicine/styptic_powder = 20)
icon_state = "bandaid_brute"
/obj/item/reagent_containers/pill/patch/silver_sulf
name = "burn patch"
desc = "Helps with burn injuries."
list_reagents = list("silver_sulfadiazine" = 20)
list_reagents = list(/datum/reagent/medicine/silver_sulfadiazine = 20)
icon_state = "bandaid_burn"
/obj/item/reagent_containers/pill/patch/get_belt_overlay()
@@ -82,97 +82,97 @@
name = "toxins pill"
desc = "Highly toxic."
icon_state = "pill5"
list_reagents = list("toxin" = 50)
list_reagents = list(/datum/reagent/toxin = 50)
roundstart = 1
/obj/item/reagent_containers/pill/cyanide
name = "cyanide pill"
desc = "Don't swallow this."
icon_state = "pill5"
list_reagents = list("cyanide" = 50)
list_reagents = list(/datum/reagent/toxin/cyanide = 50)
roundstart = 1
/obj/item/reagent_containers/pill/adminordrazine
name = "adminordrazine pill"
desc = "It's magic. We don't have to explain it."
icon_state = "pill16"
list_reagents = list("adminordrazine" = 50)
list_reagents = list(/datum/reagent/medicine/adminordrazine = 50)
roundstart = 1
/obj/item/reagent_containers/pill/morphine
name = "morphine pill"
desc = "Commonly used to treat insomnia."
icon_state = "pill8"
list_reagents = list("morphine" = 30)
list_reagents = list(/datum/reagent/medicine/morphine = 30)
roundstart = 1
/obj/item/reagent_containers/pill/stimulant
name = "stimulant pill"
desc = "Often taken by overworked employees, athletes, and the inebriated. You'll snap to attention immediately!"
icon_state = "pill19"
list_reagents = list("ephedrine" = 10, "antihol" = 10, "coffee" = 30)
list_reagents = list(/datum/reagent/medicine/ephedrine = 10, /datum/reagent/medicine/antihol = 10, /datum/reagent/consumable/coffee = 30)
roundstart = 1
/obj/item/reagent_containers/pill/salbutamol
name = "salbutamol pill"
desc = "Used to treat oxygen deprivation."
icon_state = "pill16"
list_reagents = list("salbutamol" = 30)
list_reagents = list(/datum/reagent/medicine/salbutamol = 30)
roundstart = 1
/obj/item/reagent_containers/pill/charcoal
name = "charcoal pill"
desc = "Neutralizes many common toxins."
icon_state = "pill17"
list_reagents = list("charcoal" = 10)
list_reagents = list(/datum/reagent/medicine/charcoal = 10)
roundstart = 1
/obj/item/reagent_containers/pill/epinephrine
name = "epinephrine pill"
desc = "Used to stabilize patients."
icon_state = "pill5"
list_reagents = list("epinephrine" = 15)
list_reagents = list(/datum/reagent/medicine/epinephrine = 15)
roundstart = 1
/obj/item/reagent_containers/pill/mannitol
name = "mannitol pill"
desc = "Used to treat brain damage."
icon_state = "pill17"
list_reagents = list("mannitol" = 50)
list_reagents = list(/datum/reagent/medicine/mannitol = 50)
roundstart = 1
/obj/item/reagent_containers/pill/mutadone
name = "mutadone pill"
desc = "Used to treat genetic damage."
icon_state = "pill20"
list_reagents = list("mutadone" = 50)
list_reagents = list(/datum/reagent/medicine/mutadone = 50)
roundstart = 1
/obj/item/reagent_containers/pill/salicyclic
name = "salicylic acid pill"
desc = "Used to dull pain."
icon_state = "pill9"
list_reagents = list("sal_acid" = 24)
list_reagents = list(/datum/reagent/medicine/sal_acid = 24)
roundstart = 1
/obj/item/reagent_containers/pill/oxandrolone
name = "oxandrolone pill"
desc = "Used to stimulate burn healing."
icon_state = "pill11"
list_reagents = list("oxandrolone" = 24)
list_reagents = list(/datum/reagent/medicine/oxandrolone = 24)
roundstart = 1
/obj/item/reagent_containers/pill/insulin
name = "insulin pill"
desc = "Handles hyperglycaemic coma."
icon_state = "pill18"
list_reagents = list("insulin" = 50)
list_reagents = list(/datum/reagent/medicine/insulin = 50)
roundstart = 1
/obj/item/reagent_containers/pill/psicodine
name = "psicodine pill"
desc = "Used to treat mental instability and traumas."
list_reagents = list("psicodine" = 10)
list_reagents = list(/datum/reagent/medicine/psicodine = 10)
icon_state = "pill22"
roundstart = 1
@@ -180,21 +180,21 @@
name = "potassium iodide pill"
desc = "Used to treat radition used to counter radiation poisoning."
icon_state = "pill18"
list_reagents = list("potass_iodide" = 50)
list_reagents = list(/datum/reagent/medicine/potass_iodide = 50)
roundstart = 1
/obj/item/reagent_containers/pill/antirad_plus
name = "prussian blue pill"
desc = "Used to treat heavy radition poisoning."
icon_state = "prussian_blue"
list_reagents = list("prussian_blue" = 25, "water" = 10)
list_reagents = list(/datum/reagent/medicine/prussian_blue = 25, /datum/reagent/water = 10)
roundstart = 1
/obj/item/reagent_containers/pill/mutarad
name = "radiation treatment deluxe pill"
desc = "Used to treat heavy radition poisoning and genetic defects."
icon_state = "anit_rad_fixgene"
list_reagents = list("prussian_blue" = 15, "potass_iodide" = 15, "mutadone" = 15, "water" = 5)
list_reagents = list(/datum/reagent/medicine/prussian_blue = 15, /datum/reagent/medicine/potass_iodide = 15, /datum/reagent/medicine/mutadone = 15, /datum/reagent/water = 5)
roundstart = 1
///////////////////////////////////////// this pill is used only in a legion mob drop
@@ -203,32 +203,32 @@
desc = "I wouldn't eat this if I were you."
icon_state = "pill9"
color = "#454545"
list_reagents = list("shadowmutationtoxin" = 1)
list_reagents = list(/datum/reagent/mutationtoxin/shadow = 1)
//////////////////////////////////////// drugs
/obj/item/reagent_containers/pill/zoom
name = "zoom pill"
list_reagents = list("synaptizine" = 10, "nicotine" = 10, "methamphetamine" = 1)
list_reagents = list(/datum/reagent/medicine/synaptizine = 10, /datum/reagent/drug/nicotine = 10, /datum/reagent/drug/methamphetamine = 1)
/obj/item/reagent_containers/pill/happy
name = "happy pill"
list_reagents = list("sugar" = 10, "space_drugs" = 10)
list_reagents = list(/datum/reagent/consumable/sugar = 10, /datum/reagent/drug/space_drugs = 10)
/obj/item/reagent_containers/pill/lsd
name = "hallucinogen pill"
list_reagents = list("mushroomhallucinogen" = 15, "mindbreaker" = 15)
list_reagents = list(/datum/reagent/drug/mushroomhallucinogen = 15, /datum/reagent/toxin/mindbreaker = 15)
/obj/item/reagent_containers/pill/aranesp
name = "speedy pill"
list_reagents = list("aranesp" = 10)
list_reagents = list(/datum/reagent/drug/aranesp = 10)
/obj/item/reagent_containers/pill/happiness
name = "happiness pill"
desc = "It has a creepy smiling face on it."
icon_state = "pill_happy"
list_reagents = list("happiness" = 10)
list_reagents = list(/datum/reagent/drug/happiness = 10)
/obj/item/reagent_containers/pill/floorpill
name = "floorpill"
@@ -250,8 +250,8 @@
/obj/item/reagent_containers/pill/penis_enlargement
name = "penis enlargement pill"
list_reagents = list("penis_enlarger" = 10)
list_reagents = list(/datum/reagent/fermi/penis_enlarger = 10)
/obj/item/reagent_containers/pill/breast_enlargement
name = "breast enlargement pill"
list_reagents = list("breast_enlarger" = 10)
list_reagents = list(/datum/reagent/fermi/breast_enlarger = 10)
@@ -8,6 +8,7 @@
reagent_flags = REFILLABLE | DRAINABLE
amount_per_transfer_from_this = 5
possible_transfer_amounts = list()
APTFT_altclick = FALSE
volume = 5
spillable = FALSE
var/wipe_sound
@@ -73,9 +74,9 @@
if(M.fire_stacks)
var/minus_plus = M.fire_stacks < 0 ? 1 : -1
var/amount = min(abs(M.fire_stacks), soak_efficiency)
var/r_id = "fuel"
var/r_id = /datum/reagent/fuel
if(M.fire_stacks < 0)
r_id = "water"
r_id = /datum/reagent/water
reagents.add_reagent(r_id, amount * 0.3)
M.adjust_fire_stacks(minus_plus * amount)
M.wash_cream()
@@ -8,4 +8,4 @@
spillable = TRUE
resistance_flags = ACID_PROOF
amount_per_transfer_from_this = 0
possible_transfer_amounts = list(0)
possible_transfer_amounts = list()
@@ -52,13 +52,13 @@
user.changeNext_move(CLICK_CD_RANGE*2)
user.newtonian_move(get_dir(A, user))
var/turf/T = get_turf(src)
if(reagents.has_reagent("sacid"))
if(reagents.has_reagent(/datum/reagent/toxin/acid))
message_admins("[ADMIN_LOOKUPFLW(user)] fired sulphuric acid from \a [src] at [ADMIN_VERBOSEJMP(T)].")
log_game("[key_name(user)] fired sulphuric acid from \a [src] at [AREACOORD(T)].")
if(reagents.has_reagent("facid"))
if(reagents.has_reagent(/datum/reagent/toxin/acid/fluacid))
message_admins("[ADMIN_LOOKUPFLW(user)] fired Fluacid from \a [src] at [ADMIN_VERBOSEJMP(T)].")
log_game("[key_name(user)] fired Fluacid from \a [src] at [AREACOORD(T)].")
if(reagents.has_reagent("lube"))
if(reagents.has_reagent(/datum/reagent/lube))
message_admins("[ADMIN_LOOKUPFLW(user)] fired Space lube from \a [src] at [ADMIN_VERBOSEJMP(T)].")
log_game("[key_name(user)] fired Space lube from \a [src] at [AREACOORD(T)].")
return
@@ -149,7 +149,7 @@
name = "space cleaner"
desc = "BLAM!-brand non-foaming space cleaner!"
volume = 100
list_reagents = list("cleaner" = 100)
list_reagents = list(/datum/reagent/space_cleaner = 100)
amount_per_transfer_from_this = 2
stream_amount = 5
@@ -172,7 +172,7 @@
name = "drying agent spray"
desc = "A spray bottle for drying agent."
volume = 100
list_reagents = list("drying_agent" = 100)
list_reagents = list(/datum/reagent/drying_agent = 100)
amount_per_transfer_from_this = 2
stream_amount = 5
@@ -181,7 +181,7 @@
name = "spray tan"
volume = 50
desc = "Gyaro brand spray tan. Do not spray near eyes or other orifices."
list_reagents = list("spraytan" = 50)
list_reagents = list(/datum/reagent/spraytan = 50)
//pepperspray
@@ -197,7 +197,7 @@
stream_range = 4
spray_delay = 1
amount_per_transfer_from_this = 5
list_reagents = list("condensedcapsaicin" = 40)
list_reagents = list(/datum/reagent/consumable/condensedcapsaicin = 40)
/obj/item/reagent_containers/spray/pepper/suicide_act(mob/living/carbon/user)
user.visible_message("<span class='suicide'>[user] begins huffing \the [src]! It looks like [user.p_theyre()] getting a dirty high!</span>")
@@ -218,7 +218,7 @@
item_state = "sunflower"
amount_per_transfer_from_this = 1
volume = 10
list_reagents = list("water" = 10)
list_reagents = list(/datum/reagent/water = 10)
/obj/item/reagent_containers/spray/waterflower/attack_self(mob/user) //Don't allow changing how much the flower sprays
return
@@ -230,14 +230,14 @@
icon = 'icons/obj/chemical.dmi'
icon_state = "clownflower"
volume = 30
list_reagents = list("superlube" = 30)
list_reagents = list(/datum/reagent/lube/superlube = 30)
/obj/item/reagent_containers/spray/waterflower/cyborg
reagent_flags = NONE
volume = 100
list_reagents = list("water" = 100)
list_reagents = list(/datum/reagent/water = 100)
var/generate_amount = 5
var/generate_type = "water"
var/generate_type = /datum/reagent/water
var/last_generate = 0
var/generate_delay = 10 //deciseconds
can_fill_from_container = FALSE
@@ -245,9 +245,9 @@
/obj/item/reagent_containers/spray/waterflower/cyborg/hacked
name = "nova flower"
desc = "This doesn't look safe at all..."
list_reagents = list("clf3" = 3)
list_reagents = list(/datum/reagent/clf3 = 3)
volume = 3
generate_type = "clf3"
generate_type = /datum/reagent/clf3
generate_amount = 1
generate_delay = 40 //deciseconds
@@ -309,7 +309,7 @@
..(the_targets[i])
/obj/item/reagent_containers/spray/chemsprayer/bioterror
list_reagents = list("sodium_thiopental" = 100, "coniine" = 100, "venom" = 100, "condensedcapsaicin" = 100, "initropidril" = 100, "polonium" = 100)
list_reagents = list(/datum/reagent/toxin/sodium_thiopental = 100, /datum/reagent/toxin/coniine = 100, /datum/reagent/toxin/venom = 100, /datum/reagent/consumable/condensedcapsaicin = 100, /datum/reagent/toxin/initropidril = 100, /datum/reagent/toxin/polonium = 100)
// Plant-B-Gone
/obj/item/reagent_containers/spray/plantbgone // -- Skie
@@ -321,4 +321,4 @@
lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi'
volume = 100
list_reagents = list("plantbgone" = 100)
list_reagents = list(/datum/reagent/toxin/plantbgone = 100)
@@ -179,39 +179,39 @@
/obj/item/reagent_containers/syringe/epinephrine
name = "syringe (epinephrine)"
desc = "Contains epinephrine - used to stabilize patients."
list_reagents = list("epinephrine" = 15)
list_reagents = list(/datum/reagent/medicine/epinephrine = 15)
/obj/item/reagent_containers/syringe/charcoal
name = "syringe (charcoal)"
desc = "Contains charcoal."
list_reagents = list("charcoal" = 15)
list_reagents = list(/datum/reagent/medicine/charcoal = 15)
/obj/item/reagent_containers/syringe/antiviral
name = "syringe (spaceacillin)"
desc = "Contains antiviral agents."
list_reagents = list("spaceacillin" = 15)
list_reagents = list(/datum/reagent/medicine/spaceacillin = 15)
/obj/item/reagent_containers/syringe/bioterror
name = "bioterror syringe"
desc = "Contains several paralyzing reagents."
list_reagents = list("neurotoxin" = 5, "mutetoxin" = 5, "sodium_thiopental" = 5)
list_reagents = list(/datum/reagent/consumable/ethanol/neurotoxin = 5, /datum/reagent/toxin/mutetoxin = 5, /datum/reagent/toxin/sodium_thiopental = 5)
/obj/item/reagent_containers/syringe/stimulants
name = "Stimpack"
desc = "Contains stimulants."
amount_per_transfer_from_this = 50
volume = 50
list_reagents = list("stimulants" = 50)
list_reagents = list(/datum/reagent/medicine/stimulants = 50)
/obj/item/reagent_containers/syringe/calomel
name = "syringe (calomel)"
desc = "Contains calomel."
list_reagents = list("calomel" = 15)
list_reagents = list(/datum/reagent/medicine/calomel = 15)
/obj/item/reagent_containers/syringe/plasma
name = "syringe (plasma)"
desc = "Contains plasma."
list_reagents = list("plasma" = 15)
list_reagents = list(/datum/reagent/toxin/plasma = 15)
/obj/item/reagent_containers/syringe/lethal
name = "lethal injection syringe"
@@ -220,24 +220,24 @@
volume = 50
/obj/item/reagent_containers/syringe/lethal/choral
list_reagents = list("chloralhydrate" = 50)
list_reagents = list(/datum/reagent/toxin/chloralhydrate = 50)
/obj/item/reagent_containers/syringe/lethal/execution
list_reagents = list("amatoxin" = 15, "formaldehyde" = 15, "cyanide" = 10, "facid" = 10) //Citadel edit, changing out plasma from lethals
list_reagents = list(/datum/reagent/toxin/amatoxin = 15, /datum/reagent/toxin/formaldehyde = 15, /datum/reagent/toxin/cyanide = 10, /datum/reagent/toxin/acid/fluacid = 10) //Citadel edit, changing out plasma from lethals
/obj/item/reagent_containers/syringe/mulligan
name = "Mulligan"
desc = "A syringe used to completely change the users identity."
amount_per_transfer_from_this = 1
volume = 1
list_reagents = list("mulligan" = 1)
list_reagents = list(/datum/reagent/mulligan = 1)
/obj/item/reagent_containers/syringe/gluttony
name = "Gluttony's Blessing"
desc = "A syringe recovered from a dread place. It probably isn't wise to use."
amount_per_transfer_from_this = 1
volume = 1
list_reagents = list("gluttonytoxin" = 1)
list_reagents = list(/datum/reagent/gluttonytoxin = 1)
/obj/item/reagent_containers/syringe/bluespace
name = "bluespace syringe"
+15 -16
View File
@@ -8,7 +8,7 @@
pressure_resistance = 2*ONE_ATMOSPHERE
max_integrity = 300
var/tank_volume = 1000 //In units, how much the dispenser can hold
var/reagent_id = "water" //The ID of the reagent that the dispenser uses
var/reagent_id = /datum/reagent/water //The ID of the reagent that the dispenser uses
/obj/structure/reagent_dispensers/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
. = ..()
@@ -58,7 +58,7 @@
name = "firefighting foam tank"
desc = "A tank full of firefighting foam."
icon_state = "foam"
reagent_id = "firefighting_foam"
reagent_id = /datum/reagent/firefighting_foam
tank_volume = 500
/obj/structure/reagent_dispensers/water_cooler
@@ -99,7 +99,7 @@
name = "fuel tank"
desc = "A tank full of industrial welding fuel. Do not consume."
icon_state = "fuel"
reagent_id = "welding_fuel"
reagent_id = /datum/reagent/fuel
/obj/structure/reagent_dispensers/fueltank/high //Unused - Good for ghost roles
name = "high-capacity fuel tank"
@@ -136,12 +136,12 @@
/obj/structure/reagent_dispensers/fueltank/attackby(obj/item/I, mob/living/user, params)
if(istype(I, /obj/item/weldingtool))
if(!reagents.has_reagent("welding_fuel"))
if(!reagents.has_reagent(/datum/reagent/fuel))
to_chat(user, "<span class='warning'>[src] is out of fuel!</span>")
return
var/obj/item/weldingtool/W = I
if(!W.welding)
if(W.reagents.has_reagent("welding_fuel", W.max_fuel))
if(W.reagents.has_reagent(/datum/reagent/fuel, W.max_fuel))
to_chat(user, "<span class='warning'>Your [W.name] is already full!</span>")
return
reagents.trans_to(W, W.max_fuel)
@@ -171,7 +171,7 @@
icon_state = "pepper"
anchored = TRUE
density = FALSE
reagent_id = "condensedcapsaicin"
reagent_id = /datum/reagent/consumable/condensedcapsaicin
/obj/structure/reagent_dispensers/peppertank/Initialize()
. = ..()
@@ -184,14 +184,14 @@
icon_state = "virus_food"
anchored = TRUE
density = FALSE
reagent_id = "virusfood"
reagent_id = /datum/reagent/toxin/mutagen/mutagenvirusfood
/obj/structure/reagent_dispensers/cooking_oil
name = "vat of cooking oil"
desc = "A huge metal vat with a tap on the front. Filled with cooking oil for use in frying food."
icon_state = "vat"
anchored = TRUE
reagent_id = "cooking_oil"
reagent_id = /datum/reagent/consumable/cooking_oil
////////
//Kegs//
@@ -201,7 +201,7 @@
name = "beer keg"
desc = "Beer is liquid bread, it's good for you..."
icon_state = "beer"
reagent_id = "beer"
reagent_id = /datum/reagent/consumable/ethanol/beer
/obj/structure/reagent_dispensers/beerkeg/blob_act(obj/structure/blob/B)
explosion(src.loc,0,3,5,7,10)
@@ -213,42 +213,41 @@
desc = "A keg."
icon = 'modular_citadel/icons/obj/objects.dmi'
icon_state = "keg"
reagent_id = "water"
/obj/structure/reagent_dispensers/keg/mead
name = "keg of mead"
desc = "A keg of mead."
icon_state = "orangekeg"
reagent_id = "mead"
reagent_id = /datum/reagent/consumable/ethanol/mead
/obj/structure/reagent_dispensers/keg/aphro
name = "keg of aphrodisiac"
desc = "A keg of aphrodisiac."
icon_state = "pinkkeg"
reagent_id = "aphro"
reagent_id = /datum/reagent/drug/aphrodisiac
tank_volume = 150
/obj/structure/reagent_dispensers/keg/aphro/strong
name = "keg of strong aphrodisiac"
desc = "A keg of strong and addictive aphrodisiac."
reagent_id = "aphro+"
reagent_id = /datum/reagent/drug/aphrodisiacplus
tank_volume = 120
/obj/structure/reagent_dispensers/keg/milk
name = "keg of milk"
desc = "It's not quite what you were hoping for."
icon_state = "whitekeg"
reagent_id = "milk"
reagent_id = /datum/reagent/consumable/milk
/obj/structure/reagent_dispensers/keg/semen
name = "keg of semen"
desc = "Dear lord, where did this even come from?"
icon_state = "whitekeg"
reagent_id = "semen"
reagent_id = /datum/reagent/consumable/semen
/obj/structure/reagent_dispensers/keg/gargle
name = "keg of pan galactic gargleblaster"
desc = "A keg of... wow that's a long name."
icon_state = "bluekeg"
reagent_id = "gargleblaster"
reagent_id = /datum/reagent/consumable/ethanol/gargle_blaster
tank_volume = 100