diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm
index 21f2d380905..b66fbdf3d5a 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm
@@ -28,7 +28,7 @@
"g" = (
/obj/structure/reagent_dispensers/water_cooler{
name = "punch cooler";
- reagent_id = "bacchus_blessing"
+ reagent_id = /datum/reagent/consumable/ethanol/bacchus_blessing
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood{
diff --git a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm
index 0fadc72f863..69a1c2046ca 100644
--- a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm
+++ b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm
@@ -3372,7 +3372,7 @@
"lq" = (
/obj/structure/table,
/obj/item/reagent_containers/glass/beaker{
- list_reagents = list("sacid" = 50)
+ list_reagents = list(/datum/reagent/toxin/acid = 50)
},
/obj/item/paper/crumpled/bloody/ruins/thederelict/unfinished,
/obj/item/pen,
diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm
index 1969b8296a7..d6d872a52b4 100644
--- a/code/__DEFINES/antagonists.dm
+++ b/code/__DEFINES/antagonists.dm
@@ -59,4 +59,4 @@
#define TRACKER_MINDSHIELD_TIME 1200
#define TRACKER_AWAKENED_TIME 3000
#define TRACKER_BONUS_LARGE 300
-#define TRACKER_BONUS_SMALL 100
\ No newline at end of file
+#define TRACKER_BONUS_SMALL 100
diff --git a/code/__DEFINES/contracts.dm b/code/__DEFINES/contracts.dm
index b600a5fdc01..c6e23394ba2 100644
--- a/code/__DEFINES/contracts.dm
+++ b/code/__DEFINES/contracts.dm
@@ -41,4 +41,4 @@
#define BANISH_FUNERAL_GARB "funeral"
#define LORE 1
-#define LAW 2
\ No newline at end of file
+#define LAW 2
diff --git a/code/controllers/subsystem/economy.dm b/code/controllers/subsystem/economy.dm
index e332384528e..8c2e2d341ac 100644
--- a/code/controllers/subsystem/economy.dm
+++ b/code/controllers/subsystem/economy.dm
@@ -55,7 +55,7 @@ SUBSYSTEM_DEF(economy)
return ..()
/datum/controller/subsystem/economy/fire(resumed = 0)
- boring_eng_payout() // Payout based on nothing. What will replace it? Surplus power, powered APC's, air alarms? Who knows.
+ boring_eng_payout() // Payout based on nothing. What will replace it? Surplus power, powered APC's, air alarms? Who knows.
boring_sci_payout() // Payout based on slimes.
boring_secmedsrv_payout() // Payout based on crew safety, health, and mood.
boring_civ_payout() // Payout based on ??? Profit
diff --git a/code/datums/components/rot.dm b/code/datums/components/rot.dm
index 488ccf29580..1a34763046a 100644
--- a/code/datums/components/rot.dm
+++ b/code/datums/components/rot.dm
@@ -46,7 +46,7 @@
return
// No decay if formaldehyde in corpse or when the corpse is charred
- if(C.reagents.has_reagent("formaldehyde", 15) || HAS_TRAIT(C, TRAIT_HUSK))
+ if(C.reagents.has_reagent(/datum/reagent/toxin/formaldehyde, 15) || HAS_TRAIT(C, TRAIT_HUSK))
return
// Also no decay if corpse chilled or not organic/undead
diff --git a/code/datums/components/thermite.dm b/code/datums/components/thermite.dm
index 45243014dda..8257a9e34f5 100644
--- a/code/datums/components/thermite.dm
+++ b/code/datums/components/thermite.dm
@@ -78,4 +78,4 @@
/datum/component/thermite/proc/attackby_react(datum/source, obj/item/thing, mob/user, params)
if(thing.is_hot())
- thermite_melt(user)
\ No newline at end of file
+ thermite_melt(user)
diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm
index 9ff4a5a2587..3a80e4b65b9 100644
--- a/code/datums/datumvars.dm
+++ b/code/datums/datumvars.dm
@@ -1402,4 +1402,3 @@
H.remove_quirk(T)
else
H.add_quirk(T,TRUE)
-
diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm
index 5e3f061ef1d..3f969244a09 100644
--- a/code/datums/diseases/_disease.dm
+++ b/code/datums/diseases/_disease.dm
@@ -103,7 +103,7 @@
if(!(spread_flags & DISEASE_SPREAD_AIRBORNE) && !force_spread)
return
- if(affected_mob.reagents.has_reagent("spaceacillin") || (affected_mob.satiety > 0 && prob(affected_mob.satiety/10)))
+ if(affected_mob.reagents.has_reagent(/datum/reagent/medicine/spaceacillin) || (affected_mob.satiety > 0 && prob(affected_mob.satiety/10)))
return
var/spread_range = 2
diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm
index 469495ffee0..3330951df48 100644
--- a/code/datums/diseases/advance/advance.dm
+++ b/code/datums/diseases/advance/advance.dm
@@ -34,10 +34,10 @@
// The order goes from easy to cure to hard to cure.
var/static/list/advance_cures = list(
- "sodiumchloride", "sugar", "orangejuice",
- "spaceacillin", "salglu_solution", "ethanol",
- "leporazine", "synaptizine", "lipolicide",
- "silver", "gold"
+ /datum/reagent/consumable/sodiumchloride, /datum/reagent/consumable/sugar, /datum/reagent/consumable/orangejuice,
+ /datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/salglu_solution, /datum/reagent/consumable/ethanol,
+ /datum/reagent/medicine/leporazine, /datum/reagent/medicine/synaptizine, /datum/reagent/toxin/lipolicide,
+ /datum/reagent/silver, /datum/reagent/gold
)
/*
diff --git a/code/datums/diseases/advance/symptoms/choking.dm b/code/datums/diseases/advance/symptoms/choking.dm
index 81cdad8042b..7583a621b17 100644
--- a/code/datums/diseases/advance/symptoms/choking.dm
+++ b/code/datums/diseases/advance/symptoms/choking.dm
@@ -138,7 +138,7 @@ Bonus
var/get_damage = rand(15,21) * power
M.adjustOxyLoss(get_damage)
if(paralysis)
- M.reagents.add_reagent_list(list("pancuronium" = 3, "sodium_thiopental" = 3))
+ M.reagents.add_reagent_list(list(/datum/reagent/toxin/pancuronium = 3, /datum/reagent/toxin/sodium_thiopental = 3))
return 1
/datum/symptom/asphyxiation/proc/Asphyxiate_death(mob/living/M, datum/disease/advance/A)
diff --git a/code/datums/diseases/advance/symptoms/fire.dm b/code/datums/diseases/advance/symptoms/fire.dm
index f1c179658cd..b7a482a0f70 100644
--- a/code/datums/diseases/advance/symptoms/fire.dm
+++ b/code/datums/diseases/advance/symptoms/fire.dm
@@ -156,7 +156,7 @@ Bonus
M.adjust_fire_stacks(get_stacks)
M.take_overall_damage(burn = get_stacks / 2, required_status = BODYPART_ORGANIC)
if(chems)
- M.reagents.add_reagent("clf3", 2 * power)
+ M.reagents.add_reagent(/datum/reagent/clf3, 2 * power)
return 1
/datum/symptom/alkali/proc/Alkali_fire_stage_5(mob/living/M, datum/disease/advance/A)
@@ -164,5 +164,5 @@ Bonus
M.adjust_fire_stacks(get_stacks)
M.take_overall_damage(burn = get_stacks, required_status = BODYPART_ORGANIC)
if(chems)
- M.reagents.add_reagent_list(list("napalm" = 4 * power, "clf3" = 4 * power))
+ M.reagents.add_reagent_list(list(/datum/reagent/napalm = 4 * power, /datum/reagent/clf3 = 4 * power))
return 1
diff --git a/code/datums/diseases/advance/symptoms/flesh_eating.dm b/code/datums/diseases/advance/symptoms/flesh_eating.dm
index e81f45d5eaa..ecbf24dc8a7 100644
--- a/code/datums/diseases/advance/symptoms/flesh_eating.dm
+++ b/code/datums/diseases/advance/symptoms/flesh_eating.dm
@@ -124,7 +124,7 @@ Bonus
var/get_damage = rand(6,10)
M.take_overall_damage(brute = get_damage, required_status = BODYPART_ORGANIC)
if(chems)
- M.reagents.add_reagent_list(list("heparin" = 2, "lipolicide" = 2))
+ M.reagents.add_reagent_list(list(/datum/reagent/toxin/heparin = 2, /datum/reagent/toxin/lipolicide = 2))
if(zombie)
- M.reagents.add_reagent("romerol", 1)
+ M.reagents.add_reagent(/datum/reagent/romerol, 1)
return 1
\ No newline at end of file
diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm
index 39306b4b944..21b7c037cfa 100644
--- a/code/datums/diseases/advance/symptoms/heal.dm
+++ b/code/datums/diseases/advance/symptoms/heal.dm
@@ -118,7 +118,7 @@
/datum/symptom/heal/chem/Heal(mob/living/M, datum/disease/advance/A, actual_power)
for(var/datum/reagent/R in M.reagents.reagent_list) //Not just toxins!
- M.reagents.remove_reagent(R.id, actual_power)
+ M.reagents.remove_reagent(R.type, actual_power)
if(food_conversion)
M.adjust_nutrition(0.3)
if(prob(2))
@@ -311,11 +311,11 @@
if(M.fire_stacks < 0)
M.fire_stacks = min(M.fire_stacks + 1 * absorption_coeff, 0)
. += power
- if(M.reagents.has_reagent("holywater"))
- M.reagents.remove_reagent("holywater", 0.5 * absorption_coeff)
+ if(M.reagents.has_reagent(/datum/reagent/water/holywater))
+ M.reagents.remove_reagent(/datum/reagent/water/holywater, 0.5 * absorption_coeff)
. += power * 0.75
- else if(M.reagents.has_reagent("water"))
- M.reagents.remove_reagent("water", 0.5 * absorption_coeff)
+ else if(M.reagents.has_reagent(/datum/reagent/water))
+ M.reagents.remove_reagent(/datum/reagent/water, 0.5 * absorption_coeff)
. += power * 0.5
/datum/symptom/heal/water/Heal(mob/living/carbon/M, datum/disease/advance/A, actual_power)
@@ -374,7 +374,7 @@
gases = environment.gases
if(gases["plasma"] && gases["plasma"][MOLES] > gases["plasma"][GAS_META][META_GAS_MOLES_VISIBLE]) //if there's enough plasma in the air to see
. += power * 0.5
- if(M.reagents.has_reagent("plasma"))
+ if(M.reagents.has_reagent(/datum/reagent/toxin/plasma))
. += power * 0.75
/datum/symptom/heal/plasma/Heal(mob/living/carbon/M, datum/disease/advance/A, actual_power)
diff --git a/code/datums/diseases/advance/symptoms/sensory.dm b/code/datums/diseases/advance/symptoms/sensory.dm
index 8d7cc5ed708..0c17fa17705 100644
--- a/code/datums/diseases/advance/symptoms/sensory.dm
+++ b/code/datums/diseases/advance/symptoms/sensory.dm
@@ -44,10 +44,10 @@
if(A.stage >= 4)
M.drowsyness = max(0, M.drowsyness - 2)
- if(M.reagents.has_reagent("mindbreaker"))
- M.reagents.remove_reagent("mindbreaker", 5)
- if(M.reagents.has_reagent("histamine"))
- M.reagents.remove_reagent("histamine", 5)
+ if(M.reagents.has_reagent(/datum/reagent/toxin/mindbreaker))
+ M.reagents.remove_reagent(/datum/reagent/toxin/mindbreaker, 5)
+ if(M.reagents.has_reagent(/datum/reagent/toxin/histamine))
+ M.reagents.remove_reagent(/datum/reagent/toxin/histamine, 5)
M.hallucination = max(0, M.hallucination - 10)
if(A.stage >= 5)
diff --git a/code/datums/diseases/anxiety.dm b/code/datums/diseases/anxiety.dm
index 2d96157bb08..20ecceb224c 100644
--- a/code/datums/diseases/anxiety.dm
+++ b/code/datums/diseases/anxiety.dm
@@ -5,7 +5,7 @@
spread_text = "On contact"
spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS
cure_text = "Ethanol"
- cures = list("ethanol")
+ cures = list(/datum/reagent/consumable/ethanol)
agent = "Excess Lepidopticides"
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
desc = "If left untreated subject will regurgitate butterflies."
diff --git a/code/datums/diseases/beesease.dm b/code/datums/diseases/beesease.dm
index ab64fd515c6..edd6f151c9e 100644
--- a/code/datums/diseases/beesease.dm
+++ b/code/datums/diseases/beesease.dm
@@ -5,7 +5,7 @@
spread_text = "On contact"
spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS
cure_text = "Sugar"
- cures = list("sugar")
+ cures = list(/datum/reagent/consumable/sugar)
agent = "Apidae Infection"
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
desc = "If left untreated subject will regurgitate bees."
diff --git a/code/datums/diseases/brainrot.dm b/code/datums/diseases/brainrot.dm
index 0a345017633..fc4c057ce5c 100644
--- a/code/datums/diseases/brainrot.dm
+++ b/code/datums/diseases/brainrot.dm
@@ -4,7 +4,7 @@
spread_text = "On contact"
spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS
cure_text = "Mannitol"
- cures = list("mannitol")
+ cures = list(/datum/reagent/medicine/mannitol)
agent = "Cryptococcus Cosmosis"
viable_mobtypes = list(/mob/living/carbon/human)
cure_chance = 15//higher chance to cure, since two reagents are required
diff --git a/code/datums/diseases/cold.dm b/code/datums/diseases/cold.dm
index 96e2d0344e0..b93ae4ec12e 100644
--- a/code/datums/diseases/cold.dm
+++ b/code/datums/diseases/cold.dm
@@ -2,7 +2,7 @@
name = "The Cold"
max_stages = 3
cure_text = "Rest & Spaceacillin"
- cures = list("spaceacillin")
+ cures = list(/datum/reagent/medicine/spaceacillin)
agent = "XY-rhinovirus"
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
permeability_mod = 0.5
diff --git a/code/datums/diseases/cold9.dm b/code/datums/diseases/cold9.dm
index da5e67a4fb8..eea3147107f 100644
--- a/code/datums/diseases/cold9.dm
+++ b/code/datums/diseases/cold9.dm
@@ -4,7 +4,7 @@
spread_text = "On contact"
spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS
cure_text = "Common Cold Anti-bodies & Spaceacillin"
- cures = list("spaceacillin")
+ cures = list(/datum/reagent/medicine/spaceacillin)
agent = "ICE9-rhinovirus"
viable_mobtypes = list(/mob/living/carbon/human)
desc = "If left untreated the subject will slow, as if partly frozen."
diff --git a/code/datums/diseases/decloning.dm b/code/datums/diseases/decloning.dm
index 2b668e11599..70d10bc7de8 100644
--- a/code/datums/diseases/decloning.dm
+++ b/code/datums/diseases/decloning.dm
@@ -8,7 +8,7 @@
viable_mobtypes = list(/mob/living/carbon/human)
desc = @"If left untreated the subject will [REDACTED]!"
severity = "Dangerous!"
- cures = list("rezadone")
+ cures = list(/datum/reagent/medicine/rezadone)
disease_flags = CAN_CARRY|CAN_RESIST
spread_flags = DISEASE_SPREAD_NON_CONTAGIOUS
process_dead = TRUE
diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm
index 267dd711a31..972a7f4e187 100644
--- a/code/datums/diseases/dna_spread.dm
+++ b/code/datums/diseases/dna_spread.dm
@@ -4,7 +4,7 @@
spread_text = "On contact"
spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS
cure_text = "Mutadone"
- cures = list("mutadone")
+ cures = list(/datum/reagent/medicine/mutadone)
disease_flags = CAN_CARRY|CAN_RESIST|CURABLE
agent = "S4E1 retrovirus"
viable_mobtypes = list(/mob/living/carbon/human)
diff --git a/code/datums/diseases/fake_gbs.dm b/code/datums/diseases/fake_gbs.dm
index add60c73f19..70bcc67d210 100644
--- a/code/datums/diseases/fake_gbs.dm
+++ b/code/datums/diseases/fake_gbs.dm
@@ -4,7 +4,7 @@
spread_text = "On contact"
spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS
cure_text = "Synaptizine & Sulfur"
- cures = list("synaptizine","sulfur")
+ cures = list(/datum/reagent/medicine/synaptizine,/datum/reagent/sulfur)
agent = "Gravitokinetic Bipotential SADS-"
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
desc = "If left untreated death will occur."
diff --git a/code/datums/diseases/flu.dm b/code/datums/diseases/flu.dm
index 96a36be1538..916e56373fa 100644
--- a/code/datums/diseases/flu.dm
+++ b/code/datums/diseases/flu.dm
@@ -3,7 +3,7 @@
max_stages = 3
spread_text = "Airborne"
cure_text = "Spaceacillin"
- cures = list("spaceacillin")
+ cures = list(/datum/reagent/medicine/spaceacillin)
cure_chance = 10
agent = "H13N1 flu virion"
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
diff --git a/code/datums/diseases/fluspanish.dm b/code/datums/diseases/fluspanish.dm
index 9577ca43d09..1557ddfbd8d 100644
--- a/code/datums/diseases/fluspanish.dm
+++ b/code/datums/diseases/fluspanish.dm
@@ -3,7 +3,7 @@
max_stages = 3
spread_text = "Airborne"
cure_text = "Spaceacillin & Anti-bodies to the common flu"
- cures = list("spaceacillin")
+ cures = list(/datum/reagent/medicine/spaceacillin)
cure_chance = 10
agent = "1nqu1s1t10n flu virion"
viable_mobtypes = list(/mob/living/carbon/human)
diff --git a/code/datums/diseases/gastrolisis.dm b/code/datums/diseases/gastrolisis.dm
index 6ae1eb01a26..a1a87ba1a54 100644
--- a/code/datums/diseases/gastrolisis.dm
+++ b/code/datums/diseases/gastrolisis.dm
@@ -8,7 +8,7 @@
viable_mobtypes = list(/mob/living/carbon/human)
stage_prob = 1
disease_flags = CURABLE
- cures = list("sodiumchloride", "mutadone")
+ cures = list(/datum/reagent/consumable/sodiumchloride, /datum/reagent/medicine/mutadone)
/datum/disease/gastrolosis/stage_act()
..()
diff --git a/code/datums/diseases/gbs.dm b/code/datums/diseases/gbs.dm
index 0487b1c815f..8a6eab6048f 100644
--- a/code/datums/diseases/gbs.dm
+++ b/code/datums/diseases/gbs.dm
@@ -4,7 +4,7 @@
spread_text = "On contact"
spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS
cure_text = "Synaptizine & Sulfur"
- cures = list("synaptizine","sulfur")
+ cures = list(/datum/reagent/medicine/synaptizine,/datum/reagent/sulfur)
cure_chance = 15//higher chance to cure, since two reagents are required
agent = "Gravitokinetic Bipotential SADS+"
viable_mobtypes = list(/mob/living/carbon/human)
diff --git a/code/datums/diseases/heart_failure.dm b/code/datums/diseases/heart_failure.dm
index f126e18bf04..e2cbb8e5440 100644
--- a/code/datums/diseases/heart_failure.dm
+++ b/code/datums/diseases/heart_failure.dm
@@ -58,7 +58,7 @@
H.visible_message("[H] clutches at [H.p_their()] chest as if [H.p_their()] heart is stopping!")
H.adjustStaminaLoss(60)
H.set_heartattack(TRUE)
- H.reagents.add_reagent("corazone", 3) // To give the victim a final chance to shock their heart before losing consciousness
+ H.reagents.add_reagent(/datum/reagent/medicine/corazone, 3) // To give the victim a final chance to shock their heart before losing consciousness
cure()
else
cure()
diff --git a/code/datums/diseases/magnitis.dm b/code/datums/diseases/magnitis.dm
index 7c5f05c440e..cb00f571aae 100644
--- a/code/datums/diseases/magnitis.dm
+++ b/code/datums/diseases/magnitis.dm
@@ -3,7 +3,7 @@
max_stages = 4
spread_text = "Airborne"
cure_text = "Iron"
- cures = list("iron")
+ cures = list(/datum/reagent/iron)
agent = "Fukkos Miracos"
viable_mobtypes = list(/mob/living/carbon/human)
disease_flags = CAN_CARRY|CAN_RESIST|CURABLE
diff --git a/code/datums/diseases/parrotpossession.dm b/code/datums/diseases/parrotpossession.dm
index d9c4b324f63..68e962055aa 100644
--- a/code/datums/diseases/parrotpossession.dm
+++ b/code/datums/diseases/parrotpossession.dm
@@ -5,7 +5,7 @@
spread_flags = DISEASE_SPREAD_SPECIAL
disease_flags = CURABLE
cure_text = "Holy Water."
- cures = list("holywater")
+ cures = list(/datum/reagent/water/holywater)
cure_chance = 20
agent = "Avian Vengence"
viable_mobtypes = list(/mob/living/carbon/human)
diff --git a/code/datums/diseases/pierrot_throat.dm b/code/datums/diseases/pierrot_throat.dm
index 64f453cd48a..a43b2f582bf 100644
--- a/code/datums/diseases/pierrot_throat.dm
+++ b/code/datums/diseases/pierrot_throat.dm
@@ -3,7 +3,7 @@
max_stages = 4
spread_text = "Airborne"
cure_text = "Banana products, especially banana bread."
- cures = list("banana")
+ cures = list(/datum/reagent/consumable/banana)
cure_chance = 75
agent = "H0NI<42 Virus"
viable_mobtypes = list(/mob/living/carbon/human)
diff --git a/code/datums/diseases/retrovirus.dm b/code/datums/diseases/retrovirus.dm
index 47365b3a752..b1cf149600a 100644
--- a/code/datums/diseases/retrovirus.dm
+++ b/code/datums/diseases/retrovirus.dm
@@ -17,7 +17,7 @@
..()
agent = "Virus class [pick("A","B","C","D","E","F")][pick("A","B","C","D","E","F")]-[rand(50,300)]"
if(prob(40))
- cures = list("mutadone")
+ cures = list(/datum/reagent/medicine/mutadone)
else
restcure = 1
diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm
index b967b7a5861..035a506d24d 100644
--- a/code/datums/diseases/transformation.dm
+++ b/code/datums/diseases/transformation.dm
@@ -93,7 +93,7 @@
/datum/disease/transformation/jungle_fever
name = "Jungle Fever"
cure_text = "Death."
- cures = list("adminordrazine")
+ cures = list(/datum/reagent/medicine/adminordrazine)
spread_text = "Monkey Bites"
spread_flags = DISEASE_SPREAD_SPECIAL
viable_mobtypes = list(/mob/living/carbon/monkey, /mob/living/carbon/human)
@@ -156,7 +156,7 @@
name = "Robotic Transformation"
cure_text = "An injection of copper."
- cures = list("copper")
+ cures = list(/datum/reagent/copper)
cure_chance = 5
agent = "R2D2 Nanomachines"
desc = "This disease, actually acute nanomachine infection, converts the victim into a cyborg."
@@ -189,7 +189,7 @@
name = "Xenomorph Transformation"
cure_text = "Spaceacillin & Glycerol"
- cures = list("spaceacillin", "glycerol")
+ cures = list(/datum/reagent/medicine/spaceacillin, /datum/reagent/glycerol)
cure_chance = 5
agent = "Rip-LEY Alien Microbes"
desc = "This disease changes the victim into a xenomorph."
@@ -218,7 +218,7 @@
/datum/disease/transformation/slime
name = "Advanced Mutation Transformation"
cure_text = "frost oil"
- cures = list("frostoil")
+ cures = list(/datum/reagent/consumable/frostoil)
cure_chance = 80
agent = "Advanced Mutation Toxin"
desc = "This highly concentrated extract converts anything into more of itself."
@@ -247,7 +247,7 @@
/datum/disease/transformation/corgi
name = "The Barkening"
cure_text = "Death"
- cures = list("adminordrazine")
+ cures = list(/datum/reagent/medicine/adminordrazine)
agent = "Fell Doge Majicks"
desc = "This disease transforms the victim into a corgi."
severity = DISEASE_SEVERITY_BIOHAZARD
@@ -271,8 +271,8 @@
/datum/disease/transformation/morph
name = "Gluttony's Blessing"
- cure_text = "nothing"
- cures = list("adminordrazine")
+ cure_text = /datum/reagent/consumable/nothing
+ cures = list(/datum/reagent/medicine/adminordrazine)
agent = "Gluttony's Blessing"
desc = "A 'gift' from somewhere terrible."
stage_prob = 20
@@ -289,7 +289,7 @@
/datum/disease/transformation/gondola
name = "Gondola Transformation"
cure_text = "Condensed Capsaicin, ingested or injected." //getting pepper sprayed doesn't help
- cures = list("condensedcapsaicin") //beats the hippie crap right out of your system
+ cures = list(/datum/reagent/consumable/condensedcapsaicin) //beats the hippie crap right out of your system
cure_chance = 80
stage_prob = 5
agent = "Tranquility"
@@ -310,17 +310,17 @@
if (prob(5))
affected_mob.emote("smile")
if (prob(20))
- affected_mob.reagents.add_reagent_list(list("pax" = 5))
+ affected_mob.reagents.add_reagent_list(list(/datum/reagent/pax = 5))
if(3)
if (prob(5))
affected_mob.emote("smile")
if (prob(20))
- affected_mob.reagents.add_reagent_list(list("pax" = 5))
+ affected_mob.reagents.add_reagent_list(list(/datum/reagent/pax = 5))
if(4)
if (prob(5))
affected_mob.emote("smile")
if (prob(20))
- affected_mob.reagents.add_reagent_list(list("pax" = 5))
+ affected_mob.reagents.add_reagent_list(list(/datum/reagent/pax = 5))
if (prob(2))
to_chat(affected_mob, "You let go of what you were holding.")
var/obj/item/I = affected_mob.get_active_held_item()
diff --git a/code/datums/diseases/tuberculosis.dm b/code/datums/diseases/tuberculosis.dm
index 1df04d0e413..f59a19c7a38 100644
--- a/code/datums/diseases/tuberculosis.dm
+++ b/code/datums/diseases/tuberculosis.dm
@@ -4,7 +4,7 @@
max_stages = 5
spread_text = "Airborne"
cure_text = "Spaceacillin & salbutamol"
- cures = list("spaceacillin", "salbutamol")
+ cures = list(/datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/salbutamol)
agent = "Fungal Tubercle bacillus Cosmosis"
viable_mobtypes = list(/mob/living/carbon/human)
cure_chance = 5//like hell are you getting out of hell
diff --git a/code/datums/diseases/wizarditis.dm b/code/datums/diseases/wizarditis.dm
index b2880463800..244cc819d8a 100644
--- a/code/datums/diseases/wizarditis.dm
+++ b/code/datums/diseases/wizarditis.dm
@@ -3,7 +3,7 @@
max_stages = 4
spread_text = "Airborne"
cure_text = "The Manly Dorf"
- cures = list("manlydorf")
+ cures = list(/datum/reagent/consumable/ethanol/manly_dorf)
cure_chance = 100
agent = "Rincewindus Vulgaris"
viable_mobtypes = list(/mob/living/carbon/human)
diff --git a/code/datums/recipe.dm b/code/datums/recipe.dm
index ae7d846e938..0cd636bfeb8 100644
--- a/code/datums/recipe.dm
+++ b/code/datums/recipe.dm
@@ -34,7 +34,7 @@
* */
/datum/recipe
- var/list/reagents_list // example: = list("berryjuice" = 5) // do not list same reagent twice
+ var/list/reagents_list // example: = list(/datum/reagent/consumable/berryjuice = 5) // do not list same reagent twice
var/list/items // example: =list(/obj/item/crowbar, /obj/item/welder) // place /foo/bar before /foo
var/result //example: = /obj/item/reagent_containers/food/snacks/donut
var/time = 100 // 1/10 part of second
@@ -88,7 +88,7 @@
var/obj/result_obj = new result(container)
for (var/obj/O in (container.contents-result_obj))
if (O.reagents)
- O.reagents.del_reagent("nutriment")
+ O.reagents.del_reagent(/datum/reagent/consumable/nutriment)
O.reagents.update_total()
O.reagents.trans_to(result_obj, O.reagents.total_volume)
qdel(O)
diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm
index acea0772d14..0cd69df8074 100644
--- a/code/datums/status_effects/buffs.dm
+++ b/code/datums/status_effects/buffs.dm
@@ -487,7 +487,7 @@
else
owner.visible_message("[owner]'s soul is absorbed into the rod, relieving the previous snake of its duty.")
var/mob/living/simple_animal/hostile/retaliate/poison/snake/healSnake = new(owner.loc)
- var/list/chems = list("bicaridine", "salbutamol", "kelotane", "antitoxin")
+ var/list/chems = list(/datum/reagent/medicine/bicaridine, /datum/reagent/medicine/salbutamol, /datum/reagent/medicine/kelotane, /datum/reagent/medicine/antitoxin)
healSnake.poison_type = pick(chems)
healSnake.name = "Asclepius's Snake"
healSnake.real_name = "Asclepius's Snake"
diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm
index a638b6b8fab..1e9ce27c4f2 100644
--- a/code/datums/status_effects/debuffs.dm
+++ b/code/datums/status_effects/debuffs.dm
@@ -354,7 +354,7 @@
/datum/status_effect/cultghost/tick()
if(owner.reagents)
- owner.reagents.del_reagent("holywater") //can't be deconverted
+ owner.reagents.del_reagent(/datum/reagent/water/holywater) //can't be deconverted
/datum/status_effect/crusher_mark
id = "crusher_mark"
diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm
index b8af65b6273..0a070743fd7 100644
--- a/code/datums/traits/negative.dm
+++ b/code/datums/traits/negative.dm
@@ -376,7 +376,7 @@
medical_record_text = "Patient suffers from acute Reality Dissociation Syndrome and experiences vivid hallucinations."
/datum/quirk/insanity/on_process()
- if(quirk_holder.reagents.has_reagent("mindbreaker"))
+ if(quirk_holder.reagents.has_reagent(/datum/reagent/toxin/mindbreaker))
quirk_holder.hallucination = 0
return
if(prob(2)) //we'll all be mad soon enough
@@ -425,7 +425,7 @@
gain_text = "You suddenly feel the craving for drugs."
lose_text = "You feel like you should kick your drug habit."
medical_record_text = "Patient has a history of hard drugs."
- var/drug_list = list("crank", "krokodil", "morphine", "happiness", "methamphetamine") //List of possible IDs
+ var/drug_list = list(/datum/reagent/drug/crank, /datum/reagent/drug/krokodil, /datum/reagent/medicine/morphine, /datum/reagent/drug/happiness, /datum/reagent/drug/methamphetamine) //List of possible IDs
var/reagent_id //ID picked from list
var/datum/reagent/reagent_type //If this is defined, reagent_id will be unused and the defined reagent type will be instead.
var/datum/reagent/reagent_instance
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index d11fd39a4ef..b4155617795 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -336,12 +336,12 @@
//returns the mob's dna info as a list, to be inserted in an object's blood_DNA list
/mob/living/proc/get_blood_dna_list()
- if(get_blood_id() != "blood")
+ if(get_blood_id() != /datum/reagent/blood)
return
return list("ANIMAL DNA" = "Y-")
/mob/living/carbon/get_blood_dna_list()
- if(get_blood_id() != "blood")
+ if(get_blood_id() != /datum/reagent/blood)
return
var/list/blood_dna = list()
if(dna)
diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm
index 2a37142a7a0..b1a8b364d97 100644
--- a/code/game/gamemodes/clown_ops/clown_weapons.dm
+++ b/code/game/gamemodes/clown_ops/clown_weapons.dm
@@ -8,7 +8,7 @@
spray_range = 1
stream_range = 1
volume = 30
- list_reagents = list("lube" = 30)
+ list_reagents = list(/datum/reagent/lube = 30)
//COMBAT CLOWN SHOES
//Clown shoes with combat stats and noslip. Of course they still squeak.
@@ -166,7 +166,7 @@
customfoodfilling = FALSE
seed = null
tastes = list("explosives" = 10)
- list_reagents = list("vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1)
/obj/item/grown/bananapeel/bombanana
desc = "A peel from a banana. Why is it beeping?"
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index d5b41a02371..9cd5d66499f 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -17,10 +17,10 @@
var/list/available_chems
var/controls_inside = FALSE
var/list/possible_chems = list(
- list("epinephrine", "morphine", "salbutamol", "bicaridine", "kelotane"),
- list("oculine","inacusiate"),
- list("antitoxin", "mutadone", "mannitol", "pen_acid"),
- list("omnizine")
+ list(/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/morphine, /datum/reagent/medicine/salbutamol, /datum/reagent/medicine/bicaridine, /datum/reagent/medicine/kelotane),
+ list(/datum/reagent/medicine/oculine,/datum/reagent/medicine/inacusiate),
+ list(/datum/reagent/medicine/antitoxin, /datum/reagent/medicine/mutadone, /datum/reagent/medicine/mannitol, /datum/reagent/medicine/pen_acid),
+ list(/datum/reagent/medicine/omnizine)
)
var/list/chem_buttons //Used when emagged to scramble which chem is used, eg: antitoxin -> morphine
var/scrambled_chems = FALSE //Are chem buttons scrambled? used as a warning
@@ -168,7 +168,7 @@
data["chems"] = list()
for(var/chem in available_chems)
var/datum/reagent/R = GLOB.chemical_reagents_list[chem]
- data["chems"] += list(list("name" = R.name, "id" = R.id, "allowed" = chem_allowed(chem)))
+ data["chems"] += list(list("name" = R.name, "id" = ckey(R.name), "allowed" = chem_allowed(chem)))
data["occupant"] = list()
var/mob/living/mob_occupant = occupant
@@ -218,7 +218,7 @@
var/chem = params["chem"]
if(!is_operational() || !mob_occupant)
return
- if(mob_occupant.health < min_health && chem != "epinephrine")
+ if(mob_occupant.health < min_health && chem != /datum/reagent/medicine/epinephrine)
return
if(inject_chem(chem, usr))
. = TRUE
@@ -241,7 +241,7 @@
if(!mob_occupant || !mob_occupant.reagents)
return
var/amount = mob_occupant.reagents.get_reagent_amount(chem) + 10 <= 20 * efficiency
- var/occ_health = mob_occupant.health > min_health || chem == "epinephrine"
+ var/occ_health = mob_occupant.health > min_health || chem == /datum/reagent/medicine/epinephrine
return amount && occ_health
/obj/machinery/sleeper/proc/reset_chem_buttons()
@@ -276,7 +276,7 @@
desc = "A large cryogenics unit built from brass. Its surface is pleasantly cool the touch."
icon_state = "sleeper_clockwork"
enter_message = "You hear the gentle hum and click of machinery, and are lulled into a sense of peace."
- possible_chems = list(list("epinephrine", "salbutamol", "bicaridine", "kelotane", "oculine", "inacusiate", "mannitol"))
+ possible_chems = list(list(/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/salbutamol, /datum/reagent/medicine/bicaridine, /datum/reagent/medicine/kelotane, /datum/reagent/medicine/oculine, /datum/reagent/medicine/inacusiate, /datum/reagent/medicine/mannitol))
/obj/machinery/sleeper/clockwork/process()
if(occupant && isliving(occupant))
diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm
index 005c7307373..ec79100552e 100644
--- a/code/game/machinery/limbgrower.dm
+++ b/code/game/machinery/limbgrower.dm
@@ -87,7 +87,7 @@
selected_category = href_list["category"]
if(href_list["disposeI"]) //Get rid of a reagent incase you add the wrong one by mistake
- reagents.del_reagent(href_list["disposeI"])
+ reagents.del_reagent(text2path(href_list["disposeI"]))
if(href_list["make"])
@@ -98,10 +98,10 @@
return
- var/synth_cost = being_built.reagents_list["synthflesh"]*prod_coeff
+ var/synth_cost = being_built.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff
var/power = max(2000, synth_cost/5)
- if(reagents.has_reagent("synthflesh", being_built.reagents_list["synthflesh"]*prod_coeff))
+ if(reagents.has_reagent(/datum/reagent/medicine/synthflesh, being_built.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff))
busy = TRUE
use_power(power)
flick("limbgrower_fill",src)
@@ -115,8 +115,8 @@
return
/obj/machinery/limbgrower/proc/build_item()
- if(reagents.has_reagent("synthflesh", being_built.reagents_list["synthflesh"]*prod_coeff)) //sanity check, if this happens we are in big trouble
- reagents.remove_reagent("synthflesh",being_built.reagents_list["synthflesh"]*prod_coeff)
+ if(reagents.has_reagent(/datum/reagent/medicine/synthflesh, being_built.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff)) //sanity check, if this happens we are in big trouble
+ reagents.remove_reagent(/datum/reagent/medicine/synthflesh,being_built.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff)
var/buildpath = being_built.build_path
if(ispath(buildpath, /obj/item/bodypart)) //This feels like spatgheti code, but i need to initilise a limb somehow
build_limb(buildpath)
@@ -201,7 +201,7 @@
for(var/datum/reagent/R in reagents.reagent_list)
dat += "[R.name]: [R.volume]"
- dat += "Purge
"
+ dat += "Purge
"
dat += ""
return dat
@@ -211,12 +211,12 @@
return dat
/obj/machinery/limbgrower/proc/can_build(datum/design/D)
- return (reagents.has_reagent("synthflesh", D.reagents_list["synthflesh"]*prod_coeff)) //Return whether the machine has enough synthflesh to produce the design
+ return (reagents.has_reagent(/datum/reagent/medicine/synthflesh, D.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff)) //Return whether the machine has enough synthflesh to produce the design
/obj/machinery/limbgrower/proc/get_design_cost(datum/design/D)
var/dat
- if(D.reagents_list["synthflesh"])
- dat += "[D.reagents_list["synthflesh"] * prod_coeff] Synthetic flesh "
+ if(D.reagents_list[/datum/reagent/medicine/synthflesh])
+ dat += "[D.reagents_list[/datum/reagent/medicine/synthflesh] * prod_coeff] Synthetic flesh "
return dat
/obj/machinery/limbgrower/emag_act(mob/user)
diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm
index 21db291f39e..bab12662959 100644
--- a/code/game/mecha/equipment/tools/medical_tools.dm
+++ b/code/game/mecha/equipment/tools/medical_tools.dm
@@ -193,11 +193,11 @@
if(!R || !patient || !SG || !(SG in chassis.equipment))
return 0
var/to_inject = min(R.volume, inject_amount)
- if(to_inject && patient.reagents.get_reagent_amount(R.id) + to_inject <= inject_amount*2)
+ if(to_inject && patient.reagents.get_reagent_amount(R.type) + to_inject <= inject_amount*2)
occupant_message("Injecting [patient] with [to_inject] units of [R.name].")
log_message("Injecting [patient] with [to_inject] units of [R.name].", LOG_MECHA)
log_combat(chassis.occupant, patient, "injected", "[name] ([R] - [to_inject] units)")
- SG.reagents.trans_id_to(patient,R.id,to_inject)
+ SG.reagents.trans_id_to(patient,R.type,to_inject)
update_equip_info()
return
@@ -232,8 +232,8 @@
M.AdjustParalyzed(-80)
M.AdjustImmobilized(-80)
M.AdjustUnconscious(-80)
- if(M.reagents.get_reagent_amount("epinephrine") < 5)
- M.reagents.add_reagent("epinephrine", 5)
+ if(M.reagents.get_reagent_amount(/datum/reagent/medicine/epinephrine) < 5)
+ M.reagents.add_reagent(/datum/reagent/medicine/epinephrine, 5)
chassis.use_power(energy_drain)
update_equip_info()
@@ -263,7 +263,7 @@
. = ..()
create_reagents(max_volume, NO_REACT)
syringes = new
- known_reagents = list("epinephrine"="Epinephrine","charcoal"="Charcoal")
+ known_reagents = list(/datum/reagent/medicine/epinephrine="Epinephrine",/datum/reagent/medicine/charcoal="Charcoal")
processed_reagents = new
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/detach()
@@ -329,8 +329,7 @@
if(M.can_inject(null, 1))
if(mechsyringe.reagents)
for(var/datum/reagent/A in mechsyringe.reagents.reagent_list)
- R += A.id + " ("
- R += num2text(A.volume) + "),"
+ R += "[A.name] ([num2text(A.volume)]"
mechsyringe.icon_state = initial(mechsyringe.icon_state)
mechsyringe.icon = initial(mechsyringe.icon)
mechsyringe.reagents.reaction(M, INJECT)
@@ -443,7 +442,7 @@
var/output
for(var/datum/reagent/R in reagents.reagent_list)
if(R.volume > 0)
- output += "[R]: [round(R.volume,0.001)] - Purge Reagent
"
+ output += "[R]: [round(R.volume,0.001)] - Purge Reagent
"
if(output)
output += "Total: [round(reagents.total_volume,0.001)]/[reagents.maximum_volume] - Purge All"
return output || "None"
@@ -479,7 +478,7 @@
return 0
occupant_message("Analyzing reagents...")
for(var/datum/reagent/R in A.reagents.reagent_list)
- if(R.can_synth && add_known_reagent(R.id,R.name))
+ if(R.can_synth && add_known_reagent(R.type,R.name))
occupant_message("Reagent analyzed, identified as [R.name] and added to database.")
send_byjax(chassis.occupant,"msyringegun.browser","reagents_form",get_reagents_form())
occupant_message("Analyzis complete.")
diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm
index dc74659289e..15b55f67230 100644
--- a/code/game/mecha/equipment/tools/work_tools.dm
+++ b/code/game/mecha/equipment/tools/work_tools.dm
@@ -177,7 +177,7 @@
/obj/item/mecha_parts/mecha_equipment/extinguisher/Initialize()
. = ..()
create_reagents(1000)
- reagents.add_reagent("water", 1000)
+ reagents.add_reagent(/datum/reagent/water, 1000)
/obj/item/mecha_parts/mecha_equipment/extinguisher/action(atom/target) //copypasted from extinguisher. TODO: Rewrite from scratch.
if(!action_checks(target) || get_dist(chassis, target)>3)
diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm
index 477e03b028b..2bb531e9795 100644
--- a/code/game/mecha/mecha_defense.dm
+++ b/code/game/mecha/mecha_defense.dm
@@ -266,10 +266,10 @@
/obj/mecha/proc/mech_toxin_damage(mob/living/target)
playsound(src, 'sound/effects/spray2.ogg', 50, 1)
if(target.reagents)
- if(target.reagents.get_reagent_amount("cryptobiolin") + force < force*2)
- target.reagents.add_reagent("cryptobiolin", force/2)
- if(target.reagents.get_reagent_amount("toxin") + force < force*2)
- target.reagents.add_reagent("toxin", force/2.5)
+ if(target.reagents.get_reagent_amount(/datum/reagent/cryptobiolin) + force < force*2)
+ target.reagents.add_reagent(/datum/reagent/cryptobiolin, force/2)
+ if(target.reagents.get_reagent_amount(/datum/reagent/toxin) + force < force*2)
+ target.reagents.add_reagent(/datum/reagent/toxin, force/2.5)
/obj/mecha/mech_melee_attack(obj/mecha/M)
diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm
index aa7d0a2f137..304a849385a 100644
--- a/code/game/objects/effects/decals/cleanable/humans.dm
+++ b/code/game/objects/effects/decals/cleanable/humans.dm
@@ -57,7 +57,7 @@
/obj/effect/decal/cleanable/blood/gibs/Initialize(mapload, list/datum/disease/diseases)
. = ..()
- reagents.add_reagent("liquidgibs", 5)
+ reagents.add_reagent(/datum/reagent/liquidgibs, 5)
if(already_rotting)
start_rotting(rename=FALSE)
else
diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm
index d5ad5157007..7e7909be5c9 100644
--- a/code/game/objects/effects/decals/cleanable/misc.dm
+++ b/code/game/objects/effects/decals/cleanable/misc.dm
@@ -13,7 +13,7 @@
/obj/effect/decal/cleanable/ash/Initialize()
. = ..()
- reagents.add_reagent("ash", 30)
+ reagents.add_reagent(/datum/reagent/ash, 30)
pixel_x = rand(-5, 5)
pixel_y = rand(-5, 5)
@@ -27,7 +27,7 @@
/obj/effect/decal/cleanable/ash/large/Initialize()
. = ..()
- reagents.add_reagent("ash", 30) //double the amount of ash.
+ reagents.add_reagent(/datum/reagent/ash, 30) //double the amount of ash.
/obj/effect/decal/cleanable/glass
name = "tiny shards"
@@ -84,7 +84,7 @@
/obj/effect/decal/cleanable/greenglow/filled/Initialize()
. = ..()
- reagents.add_reagent(pick("uranium", "radium"), 5)
+ reagents.add_reagent(pick(/datum/reagent/uranium, /datum/reagent/uranium/radium), 5)
/obj/effect/decal/cleanable/cobweb
name = "cobweb"
@@ -132,7 +132,7 @@
var/datum/reagent/consumable/nutri_check = R
if(nutri_check.nutriment_factor >0)
H.adjust_nutrition(nutri_check.nutriment_factor * nutri_check.volume)
- reagents.remove_reagent(nutri_check.id,nutri_check.volume)
+ reagents.remove_reagent(nutri_check.type,nutri_check.volume)
reagents.trans_to(H, reagents.total_volume, transfered_by = user)
qdel(src)
diff --git a/code/game/objects/effects/decals/cleanable/robots.dm b/code/game/objects/effects/decals/cleanable/robots.dm
index d04623a3d51..67997d98702 100644
--- a/code/game/objects/effects/decals/cleanable/robots.dm
+++ b/code/game/objects/effects/decals/cleanable/robots.dm
@@ -52,7 +52,7 @@
/obj/effect/decal/cleanable/oil/Initialize()
. = ..()
- reagents.add_reagent("oil", 30)
+ reagents.add_reagent(/datum/reagent/oil, 30)
/obj/effect/decal/cleanable/oil/attackby(obj/item/I, mob/living/user)
var/attacked_by_hot_thing = I.is_hot()
diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm
index cea0558c25e..effca9f5f87 100644
--- a/code/game/objects/effects/effect_system/effects_foam.dm
+++ b/code/game/objects/effects/effect_system/effects_foam.dm
@@ -54,7 +54,7 @@
var/obj/effect/decal/cleanable/plasma/P = (locate(/obj/effect/decal/cleanable/plasma) in get_turf(src))
if(!P)
P = new(loc)
- P.reagents.add_reagent("stable_plasma", absorbed_plasma)
+ P.reagents.add_reagent(/datum/reagent/stable_plasma, absorbed_plasma)
flick("[icon_state]-disolve", src)
QDEL_IN(src, 5)
diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm
index 00ac8fa4afc..9dd74da4050 100644
--- a/code/game/objects/effects/mines.dm
+++ b/code/game/objects/effects/mines.dm
@@ -136,7 +136,7 @@
victim.put_in_hands(chainsaw, forced = TRUE)
chainsaw.attack_self(victim)
chainsaw.wield(victim)
- victim.reagents.add_reagent("adminordrazine",25)
+ victim.reagents.add_reagent(/datum/reagent/medicine/adminordrazine,25)
to_chat(victim, "KILL, KILL, KILL! YOU HAVE NO ALLIES ANYMORE, KILL THEM ALL!")
victim.client.color = pure_red
diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm
index a02de979e7c..fdf580fb6c7 100644
--- a/code/game/objects/effects/misc.dm
+++ b/code/game/objects/effects/misc.dm
@@ -41,7 +41,7 @@
layer = FLY_LAYER
/obj/effect/supplypod_selector
- icon_state = "supplypod_selector"
+ icon_state = "supplypod_selector"
layer = FLY_LAYER
//Makes a tile fully lit no matter what
diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm
index d3833487623..f96c96e9d56 100644
--- a/code/game/objects/effects/spiders.dm
+++ b/code/game/objects/effects/spiders.dm
@@ -55,7 +55,7 @@
var/amount_grown = 0
var/player_spiders = 0
var/directive = "" //Message from the mother
- var/poison_type = "toxin"
+ var/poison_type = /datum/reagent/toxin
var/poison_per_bite = 5
var/list/faction = list("spiders")
diff --git a/code/game/objects/items/RSF.dm b/code/game/objects/items/RSF.dm
index 416a20dd647..233b11944cc 100644
--- a/code/game/objects/items/RSF.dm
+++ b/code/game/objects/items/RSF.dm
@@ -173,7 +173,7 @@ RSF
to_chat(user, "Fabricating Cookie..")
var/obj/item/reagent_containers/food/snacks/cookie/S = new /obj/item/reagent_containers/food/snacks/cookie(T)
if(toxin)
- S.reagents.add_reagent("chloralhydrate", 10)
+ S.reagents.add_reagent(/datum/reagent/toxin/chloralhydrate, 10)
if (iscyborg(user))
var/mob/living/silicon/robot/R = user
R.cell.charge -= 100
diff --git a/code/game/objects/items/airlock_painter.dm b/code/game/objects/items/airlock_painter.dm
index afb2b220765..7b6664e03fc 100644
--- a/code/game/objects/items/airlock_painter.dm
+++ b/code/game/objects/items/airlock_painter.dm
@@ -68,7 +68,7 @@
// make some colorful reagent, and apply it to the lungs
L.create_reagents(10)
- L.reagents.add_reagent("colorful_reagent", 10)
+ L.reagents.add_reagent(/datum/reagent/colorful_reagent, 10)
L.reagents.reaction(L, TOUCH, 1)
// TODO maybe add some colorful vomit?
@@ -81,7 +81,7 @@
return (TOXLOSS|OXYLOSS)
else if(can_use(user) && !L)
user.visible_message("[user] is spraying toner on [user.p_them()]self from [src]! It looks like [user.p_theyre()] trying to commit suicide.")
- user.reagents.add_reagent("colorful_reagent", 1)
+ user.reagents.add_reagent(/datum/reagent/colorful_reagent, 1)
user.reagents.reaction(user, TOUCH, 1)
return TOXLOSS
diff --git a/code/game/objects/items/apc_frame.dm b/code/game/objects/items/apc_frame.dm
index a0863d61246..6bf90b42191 100644
--- a/code/game/objects/items/apc_frame.dm
+++ b/code/game/objects/items/apc_frame.dm
@@ -120,4 +120,4 @@
flags_1 = CONDUCT_1
w_class = WEIGHT_CLASS_SMALL
materials = list(MAT_METAL=50, MAT_GLASS=50)
- grind_results = list("iron" = 10, "silicon" = 10)
+ grind_results = list(/datum/reagent/iron = 10, /datum/reagent/silicon = 10)
diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm
index 606ddb7df7c..8b667caeb60 100644
--- a/code/game/objects/items/cigs_lighters.dm
+++ b/code/game/objects/items/cigs_lighters.dm
@@ -25,7 +25,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
var/smoketime = 5 // 10 seconds
w_class = WEIGHT_CLASS_TINY
heat = 1000
- grind_results = list("phosphorus" = 2)
+ grind_results = list(/datum/reagent/phosphorus = 2)
/obj/item/match/process()
smoketime--
@@ -119,7 +119,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
var/lastHolder = null
var/smoketime = 180 // 1 is 2 seconds, so a single cigarette will last 6 minutes.
var/chem_volume = 30
- var/list/list_reagents = list("nicotine" = 15)
+ var/list/list_reagents = list(/datum/reagent/drug/nicotine = 15)
/obj/item/clothing/mask/cigarette/suicide_act(mob/user)
user.visible_message("[user] is huffing [src] as quickly as [user.p_they()] can! It looks like [user.p_theyre()] trying to give [user.p_them()]self cancer.")
@@ -174,15 +174,15 @@ CIGARETTE PACKETS ARE IN FANCY.DM
hitsound = 'sound/items/welder.ogg'
damtype = "fire"
force = 4
- if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire
+ if(reagents.get_reagent_amount(/datum/reagent/toxin/plasma)) // the plasma explodes when exposed to fire
var/datum/effect_system/reagents_explosion/e = new()
- e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0)
+ e.set_up(round(reagents.get_reagent_amount(/datum/reagent/toxin/plasma) / 2.5, 1), get_turf(src), 0, 0)
e.start()
qdel(src)
return
- if(reagents.get_reagent_amount("welding_fuel")) // the fuel explodes, too, but much less violently
+ if(reagents.get_reagent_amount(/datum/reagent/fuel)) // the fuel explodes, too, but much less violently
var/datum/effect_system/reagents_explosion/e = new()
- e.set_up(round(reagents.get_reagent_amount("welding_fuel") / 5, 1), get_turf(src), 0, 0)
+ e.set_up(round(reagents.get_reagent_amount(/datum/reagent/fuel) / 5, 1), get_turf(src), 0, 0)
e.start()
qdel(src)
return
@@ -291,29 +291,29 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/cigarette/uplift
desc = "An Uplift Smooth brand cigarette."
- list_reagents = list("nicotine" = 13, "menthol" = 5)
+ list_reagents = list(/datum/reagent/drug/nicotine = 13, /datum/reagent/consumable/menthol = 5)
/obj/item/clothing/mask/cigarette/robust
desc = "A Robust brand cigarette."
/obj/item/clothing/mask/cigarette/robustgold
desc = "A Robust Gold brand cigarette."
- list_reagents = list("nicotine" = 15, "gold" = 3) // Just enough to taste a hint of expensive metal.
+ list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/gold = 3) // Just enough to taste a hint of expensive metal.
/obj/item/clothing/mask/cigarette/carp
desc = "A Carp Classic brand cigarette."
/obj/item/clothing/mask/cigarette/syndicate
desc = "An unknown brand cigarette."
- list_reagents = list("nicotine" = 15, "omnizine" = 15)
+ list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/medicine/omnizine = 15)
/obj/item/clothing/mask/cigarette/shadyjims
desc = "A Shady Jim's Super Slims cigarette."
- list_reagents = list("nicotine" = 15, "lipolicide" = 4, "ammonia" = 2, "plantbgone" = 1, "toxin" = 1.5)
+ list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/toxin/lipolicide = 4, /datum/reagent/ammonia = 2, /datum/reagent/toxin/plantbgone = 1, /datum/reagent/toxin = 1.5)
/obj/item/clothing/mask/cigarette/xeno
desc = "A Xeno Filtered brand cigarette."
- list_reagents = list ("nicotine" = 20, "regen_jelly" = 15, "krokodil" = 4)
+ list_reagents = list (/datum/reagent/drug/nicotine = 20, /datum/reagent/medicine/regen_jelly = 15, /datum/reagent/drug/krokodil = 4)
// Rollies.
@@ -336,17 +336,17 @@ CIGARETTE PACKETS ARE IN FANCY.DM
pixel_y = rand(-5, 5)
/obj/item/clothing/mask/cigarette/rollie/nicotine
- list_reagents = list("nicotine" = 15)
+ list_reagents = list(/datum/reagent/drug/nicotine = 15)
/obj/item/clothing/mask/cigarette/rollie/trippy
- list_reagents = list("nicotine" = 15, "mushroomhallucinogen" = 35)
+ list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/drug/mushroomhallucinogen = 35)
starts_lit = TRUE
/obj/item/clothing/mask/cigarette/rollie/cannabis
- list_reagents = list("space_drugs" = 15, "lipolicide" = 35)
+ list_reagents = list(/datum/reagent/drug/space_drugs = 15, /datum/reagent/toxin/lipolicide = 35)
/obj/item/clothing/mask/cigarette/rollie/mindbreaker
- list_reagents = list("mindbreaker" = 35, "lipolicide" = 15)
+ list_reagents = list(/datum/reagent/toxin/mindbreaker = 35, /datum/reagent/toxin/lipolicide = 15)
/obj/item/cigbutt/roach
name = "roach"
@@ -373,7 +373,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
item_state = "cigaroff"
smoketime = 300 // 11 minutes
chem_volume = 40
- list_reagents = list("nicotine" = 25)
+ list_reagents = list(/datum/reagent/drug/nicotine = 25)
/obj/item/clothing/mask/cigarette/cigar/cohiba
name = "\improper Cohiba Robusto cigar"
@@ -383,7 +383,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_off = "cigar2off"
smoketime = 600 // 20 minutes
chem_volume = 80
- list_reagents =list("nicotine" = 40)
+ list_reagents =list(/datum/reagent/drug/nicotine = 40)
/obj/item/clothing/mask/cigarette/cigar/havana
name = "premium Havanian cigar"
@@ -393,7 +393,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_off = "cigar2off"
smoketime = 900 // 30 minutes
chem_volume = 50
- list_reagents =list("nicotine" = 15)
+ list_reagents =list(/datum/reagent/drug/nicotine = 15)
/obj/item/cigbutt
name = "cigarette butt"
@@ -402,7 +402,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_state = "cigbutt"
w_class = WEIGHT_CLASS_TINY
throwforce = 0
- grind_results = list("carbon" = 2)
+ grind_results = list(/datum/reagent/carbon = 2)
/obj/item/cigbutt/cigarbutt
name = "cigar butt"
@@ -531,7 +531,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
heat = 1500
resistance_flags = FIRE_PROOF
light_color = LIGHT_COLOR_FIRE
- grind_results = list("iron" = 1, "welding_fuel" = 5, "oil" = 5)
+ grind_results = list(/datum/reagent/iron = 1, /datum/reagent/fuel = 5, /datum/reagent/oil = 5)
/obj/item/lighter/Initialize()
. = ..()
@@ -698,7 +698,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
heat = 3000 //Blue flame!
light_color = LIGHT_COLOR_CYAN
overlay_state = "slime"
- grind_results = list("iron" = 1, "welding_fuel" = 5, "pyroxadone" = 5)
+ grind_results = list(/datum/reagent/iron = 1, /datum/reagent/fuel = 5, /datum/reagent/medicine/pyroxadone = 5)
///////////
@@ -752,7 +752,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/vape/Initialize(mapload, param_color)
. = ..()
create_reagents(chem_volume, NO_REACT)
- reagents.add_reagent("nicotine", 50)
+ reagents.add_reagent(/datum/reagent/drug/nicotine, 50)
if(!icon_state)
if(!param_color)
param_color = pick("red","blue","black","white","green","purple","yellow","orange")
@@ -841,14 +841,14 @@ CIGARETTE PACKETS ARE IN FANCY.DM
reagents.reaction(C, INGEST, fraction)
if(!reagents.trans_to(C, REAGENTS_METABOLISM))
reagents.remove_any(REAGENTS_METABOLISM)
- if(reagents.get_reagent_amount("welding_fuel"))
+ if(reagents.get_reagent_amount(/datum/reagent/fuel))
//HOT STUFF
C.fire_stacks = 2
C.IgniteMob()
- if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire
+ if(reagents.get_reagent_amount(/datum/reagent/toxin/plasma)) // the plasma explodes when exposed to fire
var/datum/effect_system/reagents_explosion/e = new()
- e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0)
+ e.set_up(round(reagents.get_reagent_amount(/datum/reagent/toxin/plasma) / 2.5, 1), get_turf(src), 0, 0)
e.start()
qdel(src)
return
diff --git a/code/game/objects/items/circuitboards/circuitboard.dm b/code/game/objects/items/circuitboards/circuitboard.dm
index 26c13263d2b..53f9a2a92bd 100644
--- a/code/game/objects/items/circuitboards/circuitboard.dm
+++ b/code/game/objects/items/circuitboards/circuitboard.dm
@@ -12,7 +12,7 @@
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
materials = list(MAT_GLASS=1000)
w_class = WEIGHT_CLASS_SMALL
- grind_results = list("silicon" = 20)
+ grind_results = list(/datum/reagent/silicon = 20)
var/build_path = null
/obj/item/circuitboard/proc/apply_default_parts(obj/machinery/M)
diff --git a/code/game/objects/items/clown_items.dm b/code/game/objects/items/clown_items.dm
index 83e71939028..d1a0d219fca 100644
--- a/code/game/objects/items/clown_items.dm
+++ b/code/game/objects/items/clown_items.dm
@@ -23,7 +23,7 @@
throwforce = 0
throw_speed = 3
throw_range = 7
- grind_results = list("lye" = 10)
+ grind_results = list(/datum/reagent/lye = 10)
var/cleanspeed = 35 //slower than mop
force_string = "robust... against germs"
var/uses = 100
@@ -53,7 +53,7 @@
/obj/item/soap/nanotrasen
desc = "A heavy duty bar of Nanotrasen brand soap. Smells of plasma."
- grind_results = list("plasma" = 10, "lye" = 10)
+ grind_results = list(/datum/reagent/toxin/plasma = 10, /datum/reagent/lye = 10)
icon_state = "soapnt"
cleanspeed = 28 //janitor gets this
uses = 300
@@ -206,4 +206,4 @@
name = "Canned Laughter"
desc = "Just looking at this makes you want to giggle."
icon_state = "laughter"
- list_reagents = list("laughter" = 50)
+ list_reagents = list(/datum/reagent/consumable/laughter = 50)
diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm
index c8694187fef..7e01903be20 100644
--- a/code/game/objects/items/crayons.dm
+++ b/code/game/objects/items/crayons.dm
@@ -62,7 +62,7 @@
var/edible = TRUE // That doesn't mean eating it is a good idea
- var/list/reagent_contents = list("nutriment" = 1)
+ var/list/reagent_contents = list(/datum/reagent/consumable/nutriment = 1)
// If the user can toggle the colour, a la vanilla spraycan
var/can_change_colour = FALSE
@@ -427,63 +427,63 @@
icon_state = "crayonred"
paint_color = "#DA0000"
item_color = "red"
- reagent_contents = list("nutriment" = 1, "redcrayonpowder" = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/red = 1)
/obj/item/toy/crayon/orange
icon_state = "crayonorange"
paint_color = "#FF9300"
item_color = "orange"
- reagent_contents = list("nutriment" = 1, "orangecrayonpowder" = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/orange = 1)
/obj/item/toy/crayon/yellow
icon_state = "crayonyellow"
paint_color = "#FFF200"
item_color = "yellow"
- reagent_contents = list("nutriment" = 1, "yellowcrayonpowder" = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/yellow = 1)
/obj/item/toy/crayon/green
icon_state = "crayongreen"
paint_color = "#A8E61D"
item_color = "green"
- reagent_contents = list("nutriment" = 1, "greencrayonpowder" = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/green = 1)
/obj/item/toy/crayon/blue
icon_state = "crayonblue"
paint_color = "#00B7EF"
item_color = "blue"
- reagent_contents = list("nutriment" = 1, "bluecrayonpowder" = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/blue = 1)
/obj/item/toy/crayon/purple
icon_state = "crayonpurple"
paint_color = "#DA00FF"
item_color = "purple"
- reagent_contents = list("nutriment" = 1, "purplecrayonpowder" = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/purple = 1)
/obj/item/toy/crayon/black
icon_state = "crayonblack"
paint_color = "#1C1C1C" //Not completely black because total black looks bad. So Mostly Black.
item_color = "black"
- reagent_contents = list("nutriment" = 1, "blackcrayonpowder" = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/black = 1)
/obj/item/toy/crayon/white
icon_state = "crayonwhite"
paint_color = "#FFFFFF"
item_color = "white"
- reagent_contents = list("nutriment" = 1, "whitecrayonpowder" = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/white = 1)
/obj/item/toy/crayon/mime
icon_state = "crayonmime"
desc = "A very sad-looking crayon."
paint_color = "#FFFFFF"
item_color = "mime"
- reagent_contents = list("nutriment" = 1, "invisiblecrayonpowder" = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/invisible = 1)
charges = -1
/obj/item/toy/crayon/rainbow
icon_state = "crayonrainbow"
paint_color = "#FFF000"
item_color = "rainbow"
- reagent_contents = list("nutriment" = 1, "colorful_reagent" = 1)
+ reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent = 1)
drawtype = RANDOM_ANY // just the default starter.
charges = -1
@@ -562,7 +562,7 @@
self_contained = FALSE // Don't disappear when they're empty
can_change_colour = TRUE
- reagent_contents = list("welding_fuel" = 1, "ethanol" = 1)
+ reagent_contents = list(/datum/reagent/fuel = 1, /datum/reagent/consumable/ethanol = 1)
pre_noise = TRUE
post_noise = FALSE
@@ -713,7 +713,7 @@
volume_multiplier = 25
charges = 100
- reagent_contents = list("clf3" = 1)
+ reagent_contents = list(/datum/reagent/clf3 = 1)
actually_paints = FALSE
paint_color = "#000000"
@@ -725,7 +725,7 @@
icon_uncapped = "clowncan2"
use_overlays = FALSE
- reagent_contents = list("lube" = 1, "banana" = 1)
+ reagent_contents = list(/datum/reagent/lube = 1, /datum/reagent/consumable/banana = 1)
volume_multiplier = 5
/obj/item/toy/crayon/spraycan/lubecan/isValidSurface(surface)
@@ -744,7 +744,7 @@
pre_noise = FALSE
post_noise = FALSE
- reagent_contents = list("nothing" = 1, "mutetoxin" = 1)
+ reagent_contents = list(/datum/reagent/consumable/nothing = 1, /datum/reagent/toxin/mutetoxin = 1)
#undef RANDOM_GRAFFITI
#undef RANDOM_LETTER
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index c43f17dc41f..bbe91852b54 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -260,7 +260,7 @@
var/produce_heat = 1500
heat = 1000
light_color = LIGHT_COLOR_FLARE
- grind_results = list("sulfur" = 15)
+ grind_results = list(/datum/reagent/sulfur = 15)
/obj/item/flashlight/flare/Initialize()
. = ..()
@@ -429,7 +429,7 @@
color = LIGHT_COLOR_GREEN
icon_state = "glowstick"
item_state = "glowstick"
- grind_results = list("phenol" = 15, "hydrogen" = 10, "oxygen" = 5) //Meth-in-a-stick
+ grind_results = list(/datum/reagent/phenol = 15, /datum/reagent/hydrogen = 10, /datum/reagent/oxygen = 5) //Meth-in-a-stick
var/fuel = 0
/obj/item/flashlight/glowstick/Initialize()
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index dafc40aaf67..e24e774dc5d 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -322,7 +322,7 @@ GENE SCANNER
to_chat(user, "Subject is bleeding!")
var/blood_percent = round((C.blood_volume / BLOOD_VOLUME_NORMAL)*100)
var/blood_type = C.dna.blood_type
- if(blood_id != "blood")//special blood substance
+ if(blood_id != /datum/reagent/blood)//special blood substance
var/datum/reagent/R = GLOB.chemical_reagents_list[blood_id]
if(R)
blood_type = R.name
@@ -398,7 +398,7 @@ GENE SCANNER
throw_range = 7
tool_behaviour = TOOL_ANALYZER
materials = list(MAT_METAL=30, MAT_GLASS=20)
- grind_results = list("mercury" = 5, "iron" = 5, "silicon" = 5)
+ grind_results = list(/datum/reagent/mercury = 5, /datum/reagent/iron = 5, /datum/reagent/silicon = 5)
var/cooldown = FALSE
var/cooldown_time = 250
var/accuracy // 0 is the best accuracy.
diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm
index 315bcea5505..1c0e012be98 100644
--- a/code/game/objects/items/extinguisher.dm
+++ b/code/game/objects/items/extinguisher.dm
@@ -17,7 +17,7 @@
resistance_flags = FIRE_PROOF
var/max_water = 50
var/last_use = 1
- var/chem = "water"
+ var/chem = /datum/reagent/water
var/safety = TRUE
var/refilling = FALSE
var/tanktype = /obj/structure/reagent_dispensers/watertank
@@ -55,7 +55,7 @@
icon_state = "foam_extinguisher0"
//item_state = "foam_extinguisher" needs sprite
dog_fashion = null
- chem = "firefighting_foam"
+ chem = /datum/reagent/firefighting_foam
tanktype = /obj/structure/reagent_dispensers/foamtank
sprite_name = "foam_extinguisher"
precision = TRUE
diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm
index 8e3ce9b75d8..427d6b2c9a2 100644
--- a/code/game/objects/items/grenades/chem_grenade.dm
+++ b/code/game/objects/items/grenades/chem_grenade.dm
@@ -336,9 +336,9 @@
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
- B1.reagents.add_reagent("aluminium", 30)
- B2.reagents.add_reagent("foaming_agent", 10)
- B2.reagents.add_reagent("facid", 10)
+ B1.reagents.add_reagent(/datum/reagent/aluminium, 30)
+ B2.reagents.add_reagent(/datum/reagent/foaming_agent, 10)
+ B2.reagents.add_reagent(/datum/reagent/toxin/acid/fluacid, 10)
beakers += B1
beakers += B2
@@ -354,9 +354,9 @@
var/obj/item/reagent_containers/glass/beaker/large/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
- B1.reagents.add_reagent("aluminium", 75)
- B2.reagents.add_reagent("smart_foaming_agent", 25)
- B2.reagents.add_reagent("facid", 25)
+ B1.reagents.add_reagent(/datum/reagent/aluminium, 75)
+ B2.reagents.add_reagent(/datum/reagent/smart_foaming_agent, 25)
+ B2.reagents.add_reagent(/datum/reagent/toxin/acid/fluacid, 25)
beakers += B1
beakers += B2
@@ -372,9 +372,9 @@
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
- B1.reagents.add_reagent("phosphorus", 25)
- B2.reagents.add_reagent("stable_plasma", 25)
- B2.reagents.add_reagent("sacid", 25)
+ B1.reagents.add_reagent(/datum/reagent/phosphorus, 25)
+ B2.reagents.add_reagent(/datum/reagent/stable_plasma, 25)
+ B2.reagents.add_reagent(/datum/reagent/toxin/acid, 25)
beakers += B1
beakers += B2
@@ -390,10 +390,10 @@
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
- B1.reagents.add_reagent("plantbgone", 25)
- B1.reagents.add_reagent("potassium", 25)
- B2.reagents.add_reagent("phosphorus", 25)
- B2.reagents.add_reagent("sugar", 25)
+ B1.reagents.add_reagent(/datum/reagent/toxin/plantbgone, 25)
+ B1.reagents.add_reagent(/datum/reagent/potassium, 25)
+ B2.reagents.add_reagent(/datum/reagent/phosphorus, 25)
+ B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 25)
beakers += B1
beakers += B2
@@ -409,9 +409,9 @@
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
- B1.reagents.add_reagent("fluorosurfactant", 40)
- B2.reagents.add_reagent("water", 40)
- B2.reagents.add_reagent("cleaner", 10)
+ B1.reagents.add_reagent(/datum/reagent/fluorosurfactant, 40)
+ B2.reagents.add_reagent(/datum/reagent/water, 40)
+ B2.reagents.add_reagent(/datum/reagent/space_cleaner, 10)
beakers += B1
beakers += B2
@@ -427,9 +427,9 @@
var/obj/item/reagent_containers/glass/beaker/large/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/large/B2 = new(src)
- B1.reagents.add_reagent("fluorosurfactant", 40)
- B2.reagents.add_reagent("water", 40)
- B2.reagents.add_reagent("ez_clean", 60) //ensures a t h i c c distribution
+ B1.reagents.add_reagent(/datum/reagent/fluorosurfactant, 40)
+ B2.reagents.add_reagent(/datum/reagent/water, 40)
+ B2.reagents.add_reagent(/datum/reagent/space_cleaner/ez_clean, 60) //ensures a t h i c c distribution
beakers += B1
beakers += B2
@@ -446,10 +446,10 @@
var/obj/item/reagent_containers/glass/beaker/large/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/large/B2 = new(src)
- B1.reagents.add_reagent("condensedcapsaicin", 60)
- B1.reagents.add_reagent("potassium", 40)
- B2.reagents.add_reagent("phosphorus", 40)
- B2.reagents.add_reagent("sugar", 40)
+ B1.reagents.add_reagent(/datum/reagent/consumable/condensedcapsaicin, 60)
+ B1.reagents.add_reagent(/datum/reagent/potassium, 40)
+ B2.reagents.add_reagent(/datum/reagent/phosphorus, 40)
+ B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 40)
beakers += B1
beakers += B2
@@ -465,11 +465,11 @@
var/obj/item/reagent_containers/glass/beaker/bluespace/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/bluespace/B2 = new(src)
- B1.reagents.add_reagent("facid", 290)
- B1.reagents.add_reagent("potassium", 10)
- B2.reagents.add_reagent("phosphorus", 10)
- B2.reagents.add_reagent("sugar", 10)
- B2.reagents.add_reagent("facid", 280)
+ B1.reagents.add_reagent(/datum/reagent/toxin/acid/fluacid, 290)
+ B1.reagents.add_reagent(/datum/reagent/potassium, 10)
+ B2.reagents.add_reagent(/datum/reagent/phosphorus, 10)
+ B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 10)
+ B2.reagents.add_reagent(/datum/reagent/toxin/acid/fluacid, 280)
beakers += B1
beakers += B2
@@ -485,10 +485,10 @@
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
- B1.reagents.add_reagent("colorful_reagent", 25)
- B1.reagents.add_reagent("potassium", 25)
- B2.reagents.add_reagent("phosphorus", 25)
- B2.reagents.add_reagent("sugar", 25)
+ B1.reagents.add_reagent(/datum/reagent/colorful_reagent, 25)
+ B1.reagents.add_reagent(/datum/reagent/potassium, 25)
+ B2.reagents.add_reagent(/datum/reagent/phosphorus, 25)
+ B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 25)
beakers += B1
beakers += B2
@@ -497,7 +497,7 @@
name = "generic glitter grenade"
desc = "You shouldn't see this description."
stage = READY
- var/glitter_type = "glitter"
+ var/glitter_type = /datum/reagent/glitter
/obj/item/grenade/chem_grenade/glitter/Initialize()
. = ..()
@@ -505,9 +505,9 @@
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
B1.reagents.add_reagent(glitter_type, 25)
- B1.reagents.add_reagent("potassium", 25)
- B2.reagents.add_reagent("phosphorus", 25)
- B2.reagents.add_reagent("sugar", 25)
+ B1.reagents.add_reagent(/datum/reagent/potassium, 25)
+ B2.reagents.add_reagent(/datum/reagent/phosphorus, 25)
+ B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 25)
beakers += B1
beakers += B2
@@ -515,17 +515,17 @@
/obj/item/grenade/chem_grenade/glitter/pink
name = "pink glitter bomb"
desc = "For that HOT glittery look."
- glitter_type = "pink_glitter"
+ glitter_type = /datum/reagent/glitter/pink
/obj/item/grenade/chem_grenade/glitter/blue
name = "blue glitter bomb"
desc = "For that COOL glittery look."
- glitter_type = "blue_glitter"
+ glitter_type = /datum/reagent/glitter/blue
/obj/item/grenade/chem_grenade/glitter/white
name = "white glitter bomb"
desc = "For that somnolent glittery look."
- glitter_type = "white_glitter"
+ glitter_type = /datum/reagent/glitter/white
/obj/item/grenade/chem_grenade/clf3
name = "clf3 grenade"
@@ -537,10 +537,10 @@
var/obj/item/reagent_containers/glass/beaker/bluespace/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/bluespace/B2 = new(src)
- B1.reagents.add_reagent("fluorosurfactant", 250)
- B1.reagents.add_reagent("clf3", 50)
- B2.reagents.add_reagent("water", 250)
- B2.reagents.add_reagent("clf3", 50)
+ B1.reagents.add_reagent(/datum/reagent/fluorosurfactant, 250)
+ B1.reagents.add_reagent(/datum/reagent/clf3, 50)
+ B2.reagents.add_reagent(/datum/reagent/water, 250)
+ B2.reagents.add_reagent(/datum/reagent/clf3, 50)
beakers += B1
beakers += B2
@@ -555,13 +555,13 @@
var/obj/item/reagent_containers/glass/beaker/bluespace/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/bluespace/B2 = new(src)
- B1.reagents.add_reagent("cryptobiolin", 75)
- B1.reagents.add_reagent("water", 50)
- B1.reagents.add_reagent("mutetoxin", 50)
- B1.reagents.add_reagent("spore", 75)
- B1.reagents.add_reagent("itching_powder", 50)
- B2.reagents.add_reagent("fluorosurfactant", 150)
- B2.reagents.add_reagent("mutagen", 150)
+ B1.reagents.add_reagent(/datum/reagent/cryptobiolin, 75)
+ B1.reagents.add_reagent(/datum/reagent/water, 50)
+ B1.reagents.add_reagent(/datum/reagent/toxin/mutetoxin, 50)
+ B1.reagents.add_reagent(/datum/reagent/toxin/spore, 75)
+ B1.reagents.add_reagent(/datum/reagent/toxin/itching_powder, 50)
+ B2.reagents.add_reagent(/datum/reagent/fluorosurfactant, 150)
+ B2.reagents.add_reagent(/datum/reagent/toxin/mutagen, 150)
beakers += B1
beakers += B2
@@ -575,11 +575,11 @@
var/obj/item/reagent_containers/glass/beaker/bluespace/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/bluespace/B2 = new(src)
- B1.reagents.add_reagent("potassium", 50)
- B1.reagents.add_reagent("phosphorus", 50)
- B1.reagents.add_reagent("fungalspores", 200)
- B2.reagents.add_reagent("blood", 250)
- B2.reagents.add_reagent("sugar", 50)
+ B1.reagents.add_reagent(/datum/reagent/potassium, 50)
+ B1.reagents.add_reagent(/datum/reagent/phosphorus, 50)
+ B1.reagents.add_reagent(/datum/reagent/fungalspores, 200)
+ B2.reagents.add_reagent(/datum/reagent/blood, 250)
+ B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 50)
beakers += B1
beakers += B2
@@ -595,8 +595,8 @@
var/obj/item/reagent_containers/glass/beaker/large/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/large/B2 = new(src)
- B1.reagents.add_reagent("potassium", 100)
- B2.reagents.add_reagent("holywater", 100)
+ B1.reagents.add_reagent(/datum/reagent/potassium, 100)
+ B2.reagents.add_reagent(/datum/reagent/water/holywater, 100)
beakers += B1
beakers += B2
diff --git a/code/game/objects/items/grenades/clusterbuster.dm b/code/game/objects/items/grenades/clusterbuster.dm
index 9947e38af95..920640145d7 100644
--- a/code/game/objects/items/grenades/clusterbuster.dm
+++ b/code/game/objects/items/grenades/clusterbuster.dm
@@ -94,11 +94,11 @@
var/chem = pick(slime_chems)
var/amount = 5
if(chem == "lesser plasma") //In the rare case we get another rainbow.
- chem = "plasma"
+ chem = /datum/reagent/toxin/plasma
amount = 4
if(chem == "holy water and uranium")
- chem = "uranium"
- reagents.add_reagent("holywater")
+ chem = /datum/reagent/uranium
+ reagents.add_reagent(/datum/reagent/water/holywater)
reagents.add_reagent(chem,amount)
/obj/effect/payload_spawner/random_slime/spawn_payload(type, numspawned)
diff --git a/code/game/objects/items/hot_potato.dm b/code/game/objects/items/hot_potato.dm
index ed4a3ae1267..41711842cc6 100644
--- a/code/game/objects/items/hot_potato.dm
+++ b/code/game/objects/items/hot_potato.dm
@@ -77,7 +77,7 @@
L.SetImmobilized(0)
L.SetParalyzed(0)
L.SetUnconscious(0)
- L.reagents.add_reagent("muscle_stimulant", CLAMP(5 - L.reagents.get_reagent_amount("muscle_stimulant"), 0, 5)) //If you don't have legs or get bola'd, tough luck!
+ L.reagents.add_reagent(/datum/reagent/medicine/muscle_stimulant, CLAMP(5 - L.reagents.get_reagent_amount(/datum/reagent/medicine/muscle_stimulant), 0, 5)) //If you don't have legs or get bola'd, tough luck!
colorize(L)
/obj/item/hot_potato/examine(mob/user)
diff --git a/code/game/objects/items/implants/implant_misc.dm b/code/game/objects/items/implants/implant_misc.dm
index 20383c6713b..a2653e359dd 100644
--- a/code/game/objects/items/implants/implant_misc.dm
+++ b/code/game/objects/items/implants/implant_misc.dm
@@ -43,9 +43,9 @@
imp_in.set_resting(FALSE)
imp_in.update_mobility()
- imp_in.reagents.add_reagent("synaptizine", 10)
- imp_in.reagents.add_reagent("omnizine", 10)
- imp_in.reagents.add_reagent("stimulants", 10)
+ imp_in.reagents.add_reagent(/datum/reagent/medicine/synaptizine, 10)
+ imp_in.reagents.add_reagent(/datum/reagent/medicine/omnizine, 10)
+ imp_in.reagents.add_reagent(/datum/reagent/medicine/stimulants, 10)
if(!uses)
qdel(src)
diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm
index 9b71dcb8959..b8cdf03c52b 100644
--- a/code/game/objects/items/kitchen.dm
+++ b/code/game/objects/items/kitchen.dm
@@ -41,10 +41,10 @@
if(forkload)
if(M == user)
M.visible_message("[user] eats a delicious forkful of omelette!")
- M.reagents.add_reagent(forkload.id, 1)
+ M.reagents.add_reagent(forkload.type, 1)
else
M.visible_message("[user] feeds [M] a delicious forkful of omelette!")
- M.reagents.add_reagent(forkload.id, 1)
+ M.reagents.add_reagent(forkload.type, 1)
icon_state = "fork"
forkload = null
diff --git a/code/game/objects/items/mop.dm b/code/game/objects/items/mop.dm
index 2b6b3e2f084..0a4b5fa21bc 100644
--- a/code/game/objects/items/mop.dm
+++ b/code/game/objects/items/mop.dm
@@ -25,7 +25,7 @@
/obj/item/mop/proc/clean(turf/A)
- if(reagents.has_reagent("water", 1) || reagents.has_reagent("holywater", 1) || reagents.has_reagent("vodka", 1) || reagents.has_reagent("cleaner", 1))
+ if(reagents.has_reagent(/datum/reagent/water, 1) || reagents.has_reagent(/datum/reagent/water/holywater, 1) || reagents.has_reagent(/datum/reagent/consumable/ethanol/vodka, 1) || reagents.has_reagent(/datum/reagent/space_cleaner, 1))
SEND_SIGNAL(A, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_MEDIUM)
for(var/obj/effect/O in A)
if(is_cleanable(O))
@@ -89,7 +89,7 @@
mopspeed = 8
var/refill_enabled = TRUE //Self-refill toggle for when a janitor decides to mop with something other than water.
var/refill_rate = 1 //Rate per process() tick mop refills itself
- var/refill_reagent = "water" //Determins what reagent to use for refilling, just in case someone wanted to make a HOLY MOP OF PURGING
+ var/refill_reagent = /datum/reagent/water //Determins what reagent to use for refilling, just in case someone wanted to make a HOLY MOP OF PURGING
/obj/item/mop/advanced/New()
..()
diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm
index 40ea0c28517..30335817668 100644
--- a/code/game/objects/items/religion.dm
+++ b/code/game/objects/items/religion.dm
@@ -116,7 +116,7 @@
/obj/item/banner/medical/special_inspiration(mob/living/carbon/human/H)
H.adjustToxLoss(-15)
H.setOxyLoss(0)
- H.reagents.add_reagent("inaprovaline", 5)
+ H.reagents.add_reagent(/datum/reagent/medicine/inaprovaline, 5)
/obj/item/banner/science
name = "sciencia banner"
diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index f8de45585fd..193121608e3 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -396,7 +396,7 @@
if(DISPENSE_ICECREAM_MODE)
L = new /obj/item/reagent_containers/food/snacks/icecream(T)
var/obj/item/reagent_containers/food/snacks/icecream/I = L
- I.add_ice_cream("vanilla")
+ I.add_ice_cream(/datum/reagent/consumable/vanilla)
I.desc = "Eat the ice cream."
var/into_hands = FALSE
diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm
index da96fe33fb9..4035365dfdd 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -426,9 +426,9 @@
name = "medical cyborg expanded hypospray"
desc = "An upgrade to the Medical module's hypospray, allowing it \
to treat a wider range of conditions and problems."
- additional_reagents = list("mannitol", "oculine", "inacusiate",
- "mutadone", "haloperidol", "oxandrolone", "sal_acid", "rezadone",
- "pen_acid")
+ additional_reagents = list(/datum/reagent/medicine/mannitol, /datum/reagent/medicine/oculine, /datum/reagent/medicine/inacusiate,
+ /datum/reagent/medicine/mutadone, /datum/reagent/medicine/haloperidol, /datum/reagent/medicine/oxandrolone, /datum/reagent/medicine/sal_acid, /datum/reagent/medicine/rezadone,
+ /datum/reagent/medicine/pen_acid)
/obj/item/borg/upgrade/piercing_hypospray
name = "cyborg piercing hypospray"
diff --git a/code/game/objects/items/stacks/bscrystal.dm b/code/game/objects/items/stacks/bscrystal.dm
index 2d494ca186b..acfc6100d22 100644
--- a/code/game/objects/items/stacks/bscrystal.dm
+++ b/code/game/objects/items/stacks/bscrystal.dm
@@ -10,7 +10,7 @@
points = 50
var/blink_range = 8 // The teleport range when crushed/thrown at someone.
refined_type = /obj/item/stack/sheet/bluespace_crystal
- grind_results = list("bluespace" = 20)
+ grind_results = list(/datum/reagent/bluespace = 20)
/obj/item/stack/ore/bluespace_crystal/refined
name = "refined bluespace crystal"
@@ -53,7 +53,7 @@
blink_range = 4 // Not as good as the organic stuff!
points = 0 //nice try
refined_type = null
- grind_results = list("bluespace" = 10, "silicon" = 20)
+ grind_results = list(/datum/reagent/bluespace = 10, /datum/reagent/silicon = 20)
//Polycrystals, aka stacks
/obj/item/stack/sheet/bluespace_crystal
@@ -66,7 +66,7 @@
materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT)
attack_verb = list("bluespace polybashed", "bluespace polybattered", "bluespace polybludgeoned", "bluespace polythrashed", "bluespace polysmashed")
novariants = TRUE
- grind_results = list("bluespace" = 20)
+ grind_results = list(/datum/reagent/bluespace = 20)
point_value = 30
var/crystal_type = /obj/item/stack/ore/bluespace_crystal/refined
diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index efb5bdb278c..81f8ae176e3 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -111,7 +111,7 @@
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
heal_brute = 40
self_delay = 20
- grind_results = list("styptic_powder" = 10)
+ grind_results = list(/datum/reagent/medicine/styptic_powder = 10)
/obj/item/stack/medical/bruise_pack/suicide_act(mob/user)
user.visible_message("[user] is bludgeoning [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
@@ -166,7 +166,7 @@
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
heal_burn = 40
self_delay = 20
- grind_results = list("silver_sulfadiazine" = 10)
+ grind_results = list(/datum/reagent/medicine/silver_sulfadiazine = 10)
/obj/item/stack/medical/ointment/suicide_act(mob/living/user)
user.visible_message("[user] is squeezing \the [src] into [user.p_their()] mouth! [user.p_do(TRUE)]n't [user.p_they()] know that stuff is toxic?")
diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm
index 074e74c8c80..a553d4ac7c2 100644
--- a/code/game/objects/items/stacks/sheets/glass.dm
+++ b/code/game/objects/items/stacks/sheets/glass.dm
@@ -23,7 +23,7 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 100)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/glass
- grind_results = list("silicon" = 20)
+ grind_results = list(/datum/reagent/silicon = 20)
point_value = 1
/obj/item/stack/sheet/glass/suicide_act(mob/living/carbon/user)
@@ -87,7 +87,7 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 75, "acid" = 100)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/plasmaglass
- grind_results = list("silicon" = 20, "plasma" = 10)
+ grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10)
/obj/item/stack/sheet/plasmaglass/fifty
amount = 50
@@ -138,7 +138,7 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 100)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/rglass
- grind_results = list("silicon" = 20, "iron" = 10)
+ grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/iron = 10)
point_value = 4
/obj/item/stack/sheet/rglass/attackby(obj/item/W, mob/user, params)
@@ -181,7 +181,7 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \
armor = list("melee" = 20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/plasmarglass
- grind_results = list("silicon" = 20, "plasma" = 10, "iron" = 10)
+ grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10, /datum/reagent/iron = 10)
point_value = 23
/obj/item/stack/sheet/plasmarglass/Initialize(mapload, new_amount, merge = TRUE)
diff --git a/code/game/objects/items/stacks/sheets/light.dm b/code/game/objects/items/stacks/sheets/light.dm
index c2c6015747e..c42cfbe571b 100644
--- a/code/game/objects/items/stacks/sheets/light.dm
+++ b/code/game/objects/items/stacks/sheets/light.dm
@@ -11,7 +11,7 @@
throw_range = 7
flags_1 = CONDUCT_1
max_amount = 60
- grind_results = list("silicon" = 20, "copper" = 5)
+ grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/copper = 5)
/obj/item/stack/light_w/attackby(obj/item/O, mob/user, params)
if(istype(O, /obj/item/stack/sheet/metal))
diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm
index 5a5a9ceb363..48dbd240104 100644
--- a/code/game/objects/items/stacks/sheets/mineral.dm
+++ b/code/game/objects/items/stacks/sheets/mineral.dm
@@ -105,7 +105,7 @@ GLOBAL_LIST_INIT(sandbag_recipes, list ( \
sheettype = "diamond"
materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT)
novariants = TRUE
- grind_results = list("carbon" = 20)
+ grind_results = list(/datum/reagent/carbon = 20)
point_value = 25
merge_type = /obj/item/stack/sheet/mineral/diamond
@@ -132,7 +132,7 @@ GLOBAL_LIST_INIT(diamond_recipes, list ( \
sheettype = "uranium"
materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT)
novariants = TRUE
- grind_results = list("uranium" = 20)
+ grind_results = list(/datum/reagent/uranium = 20)
point_value = 20
merge_type = /obj/item/stack/sheet/mineral/uranium
@@ -159,7 +159,7 @@ GLOBAL_LIST_INIT(uranium_recipes, list ( \
resistance_flags = FLAMMABLE
max_integrity = 100
materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT)
- grind_results = list("plasma" = 20)
+ grind_results = list(/datum/reagent/toxin/plasma = 20)
point_value = 20
merge_type = /obj/item/stack/sheet/mineral/plasma
@@ -200,7 +200,7 @@ GLOBAL_LIST_INIT(plasma_recipes, list ( \
singular_name = "gold bar"
sheettype = "gold"
materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT)
- grind_results = list("gold" = 20)
+ grind_results = list(/datum/reagent/gold = 20)
point_value = 20
merge_type = /obj/item/stack/sheet/mineral/gold
@@ -229,7 +229,7 @@ GLOBAL_LIST_INIT(gold_recipes, list ( \
singular_name = "silver bar"
sheettype = "silver"
materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT)
- grind_results = list("silver" = 20)
+ grind_results = list(/datum/reagent/silver = 20)
point_value = 20
merge_type = /obj/item/stack/sheet/mineral/silver
@@ -258,7 +258,7 @@ GLOBAL_LIST_INIT(silver_recipes, list ( \
sheettype = "bananium"
materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT)
novariants = TRUE
- grind_results = list("banana" = 20)
+ grind_results = list(/datum/reagent/consumable/banana = 20)
point_value = 50
merge_type = /obj/item/stack/sheet/mineral/bananium
@@ -338,7 +338,7 @@ GLOBAL_LIST_INIT(plastitanium_recipes, list ( \
singular_name = "snow block"
force = 1
throwforce = 2
- grind_results = list("ice" = 20)
+ grind_results = list(/datum/reagent/consumable/ice = 20)
merge_type = /obj/item/stack/sheet/mineral/snow
GLOBAL_LIST_INIT(snow_recipes, list ( \
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 1c12163eaa0..68aedbe4c0c 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -103,7 +103,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
flags_1 = CONDUCT_1
resistance_flags = FIRE_PROOF
merge_type = /obj/item/stack/sheet/metal
- grind_results = list("iron" = 20)
+ grind_results = list(/datum/reagent/iron = 20)
point_value = 2
/obj/item/stack/sheet/metal/ratvar_act()
@@ -165,7 +165,7 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 80)
resistance_flags = FIRE_PROOF
merge_type = /obj/item/stack/sheet/plasteel
- grind_results = list("iron" = 20, "plasma" = 20)
+ grind_results = list(/datum/reagent/iron = 20, /datum/reagent/toxin/plasma = 20)
point_value = 23
/obj/item/stack/sheet/plasteel/Initialize(mapload, new_amount, merge = TRUE)
@@ -228,7 +228,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \
resistance_flags = FLAMMABLE
merge_type = /obj/item/stack/sheet/mineral/wood
novariants = TRUE
- grind_results = list("carbon" = 20)
+ grind_results = list(/datum/reagent/carbon = 20)
/obj/item/stack/sheet/mineral/wood/Initialize(mapload, new_amount, merge = TRUE)
recipes = GLOB.wood_recipes
@@ -395,7 +395,7 @@ GLOBAL_LIST_INIT(runed_metal_recipes, list ( \
sheettype = "runed"
merge_type = /obj/item/stack/sheet/runed_metal
novariants = TRUE
- grind_results = list("iron" = 5, "blood" = 15)
+ grind_results = list(/datum/reagent/iron = 5, /datum/reagent/blood = 15)
/obj/item/stack/sheet/runed_metal/ratvar_act()
new /obj/item/stack/tile/brass(loc, amount)
@@ -462,7 +462,7 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \
throw_range = 3
turf_type = /turf/open/floor/clockwork
novariants = FALSE
- grind_results = list("iron" = 5, "teslium" = 15)
+ grind_results = list(/datum/reagent/iron = 5, /datum/reagent/teslium = 15)
merge_type = /obj/item/stack/tile/brass
/obj/item/stack/tile/brass/narsie_act()
@@ -512,7 +512,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \
throw_range = 3
turf_type = /turf/open/floor/bronze
novariants = FALSE
- grind_results = list("iron" = 5, "copper" = 3) //we have no "tin" reagent so this is the closest thing
+ grind_results = list(/datum/reagent/iron = 5, /datum/reagent/copper = 3) //we have no "tin" reagent so this is the closest thing
merge_type = /obj/item/stack/tile/bronze
/obj/item/stack/tile/bronze/attack_self(mob/living/user)
@@ -565,7 +565,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \
w_class = WEIGHT_CLASS_NORMAL
throw_speed = 1
throw_range = 3
- grind_results = list("carbon" = 10)
+ grind_results = list(/datum/reagent/carbon = 10)
merge_type = /obj/item/stack/sheet/bone
GLOBAL_LIST_INIT(plastic_recipes, list(
diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm
index b24a6dfde4d..7b114bf53d5 100644
--- a/code/game/objects/items/storage/book.dm
+++ b/code/game/objects/items/storage/book.dm
@@ -165,16 +165,16 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning",
for(var/obj/effect/rune/R in orange(2,user))
R.invisibility = 0
if(user.mind && (user.mind.isholy))
- if(A.reagents && A.reagents.has_reagent("water")) // blesses all the water in the holder
+ if(A.reagents && A.reagents.has_reagent(/datum/reagent/water)) // blesses all the water in the holder
to_chat(user, "You bless [A].")
- var/water2holy = A.reagents.get_reagent_amount("water")
- A.reagents.del_reagent("water")
- A.reagents.add_reagent("holywater",water2holy)
- if(A.reagents && A.reagents.has_reagent("unholywater")) // yeah yeah, copy pasted code - sue me
+ var/water2holy = A.reagents.get_reagent_amount(/datum/reagent/water)
+ A.reagents.del_reagent(/datum/reagent/water)
+ A.reagents.add_reagent(/datum/reagent/water/holywater,water2holy)
+ if(A.reagents && A.reagents.has_reagent(/datum/reagent/fuel/unholywater)) // yeah yeah, copy pasted code - sue me
to_chat(user, "You purify [A].")
- var/unholy2clean = A.reagents.get_reagent_amount("unholywater")
- A.reagents.del_reagent("unholywater")
- A.reagents.add_reagent("holywater",unholy2clean)
+ var/unholy2clean = A.reagents.get_reagent_amount(/datum/reagent/fuel/unholywater)
+ A.reagents.del_reagent(/datum/reagent/fuel/unholywater)
+ A.reagents.add_reagent(/datum/reagent/water/holywater,unholy2clean)
if(istype(A, /obj/item/storage/book/bible) && !istype(A, /obj/item/storage/book/bible/syndicate))
to_chat(user, "You purify [A], conforming it to your belief.")
var/obj/item/storage/book/bible/B = A
diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm
index 4e975ccb7cb..76e00b98b66 100644
--- a/code/game/objects/items/tanks/watertank.dm
+++ b/code/game/objects/items/tanks/watertank.dm
@@ -149,7 +149,7 @@
/obj/item/watertank/janitor/Initialize()
. = ..()
- reagents.add_reagent("cleaner", 500)
+ reagents.add_reagent(/datum/reagent/space_cleaner, 500)
/obj/item/reagent_containers/spray/mister/janitor
name = "janitor spray nozzle"
@@ -185,7 +185,7 @@
/obj/item/watertank/atmos/Initialize()
. = ..()
- reagents.add_reagent("water", 200)
+ reagents.add_reagent(/datum/reagent/water, 200)
/obj/item/watertank/atmos/make_noz()
return new /obj/item/extinguisher/mini/nozzle(src)
@@ -437,13 +437,13 @@
/obj/item/watertank/op/Initialize()
. = ..()
- reagents.add_reagent("mutagen",350)
- reagents.add_reagent("napalm",125)
- reagents.add_reagent("welding_fuel",125)
- reagents.add_reagent("clf3",300)
- reagents.add_reagent("cryptobiolin",350)
- reagents.add_reagent("plasma",250)
- reagents.add_reagent("condensedcapsaicin",500)
+ reagents.add_reagent(/datum/reagent/toxin/mutagen,350)
+ reagents.add_reagent(/datum/reagent/napalm,125)
+ reagents.add_reagent(/datum/reagent/fuel,125)
+ reagents.add_reagent(/datum/reagent/clf3,300)
+ reagents.add_reagent(/datum/reagent/cryptobiolin,350)
+ reagents.add_reagent(/datum/reagent/toxin/plasma,250)
+ reagents.add_reagent(/datum/reagent/consumable/condensedcapsaicin,500)
/obj/item/reagent_containers/spray/mister/op
desc = "A mister nozzle attached to several extended water tanks. It suspiciously has a compressor in the system and is labelled entirely in New Cyrillic."
diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm
index 8dcf434c47f..88861e5fb0f 100644
--- a/code/game/objects/items/tools/weldingtool.dm
+++ b/code/game/objects/items/tools/weldingtool.dm
@@ -37,7 +37,7 @@
/obj/item/weldingtool/Initialize()
. = ..()
create_reagents(max_fuel)
- reagents.add_reagent("welding_fuel", max_fuel)
+ reagents.add_reagent(/datum/reagent/fuel, max_fuel)
update_icon()
@@ -97,7 +97,7 @@
/obj/item/weldingtool/proc/explode()
var/turf/T = get_turf(loc)
- var/plasmaAmount = reagents.get_reagent_amount("plasma")
+ var/plasmaAmount = reagents.get_reagent_amount(/datum/reagent/toxin/plasma)
dyn_explosion(T, plasmaAmount/5)//20 plasma in a standard welder has a 4 power explosion. no breaches, but enough to kill/dismember holder
qdel(src)
@@ -142,7 +142,7 @@
/obj/item/weldingtool/attack_self(mob/user)
- if(src.reagents.has_reagent("plasma"))
+ if(src.reagents.has_reagent(/datum/reagent/toxin/plasma))
message_admins("[ADMIN_LOOKUPFLW(user)] activated a rigged welder at [AREACOORD(user)].")
explode()
switched_on(user)
@@ -154,7 +154,7 @@
// Returns the amount of fuel in the welder
/obj/item/weldingtool/proc/get_fuel()
- return reagents.get_reagent_amount("welding_fuel")
+ return reagents.get_reagent_amount(/datum/reagent/fuel)
// Uses fuel from the welding tool.
@@ -165,7 +165,7 @@
if(used)
burned_fuel_for = 0
if(get_fuel() >= used)
- reagents.remove_reagent("welding_fuel", used)
+ reagents.remove_reagent(/datum/reagent/fuel, used)
check_fuel()
return TRUE
else
@@ -336,7 +336,7 @@
/obj/item/weldingtool/abductor/process()
if(get_fuel() <= max_fuel)
- reagents.add_reagent("welding_fuel", 1)
+ reagents.add_reagent(/datum/reagent/fuel, 1)
..()
/obj/item/weldingtool/hugetank
@@ -373,6 +373,6 @@
..()
if(get_fuel() < max_fuel && nextrefueltick < world.time)
nextrefueltick = world.time + 10
- reagents.add_reagent("welding_fuel", 1)
+ reagents.add_reagent(/datum/reagent/fuel, 1)
#undef WELDER_FUEL_BURN_INTERVAL
diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm
index b618829a121..063601887cc 100644
--- a/code/game/objects/items/trash.dm
+++ b/code/game/objects/items/trash.dm
@@ -70,7 +70,7 @@
name = "crushed can"
icon_state = "cola"
resistance_flags = NONE
- grind_results = list("aluminium" = 10)
+ grind_results = list(/datum/reagent/aluminium = 10)
/obj/item/trash/can/Initialize()
. = ..()
@@ -85,7 +85,7 @@
icon = 'icons/obj/mining.dmi'
icon_state = "slag"
desc = "Someone's gotten on the naughty list."
- grind_results = list("carbon" = 20)
+ grind_results = list(/datum/reagent/carbon = 20)
/obj/item/trash/coal/burn()
visible_message("[src] fuses into a diamond! Someone wasn't so naughty after all...")
diff --git a/code/game/objects/structures/divine.dm b/code/game/objects/structures/divine.dm
index 7587a8ad5d1..5ce34d4476f 100644
--- a/code/game/objects/structures/divine.dm
+++ b/code/game/objects/structures/divine.dm
@@ -39,7 +39,7 @@
return
last_process = world.time
to_chat(user, "The water feels warm and soothing as you touch it. The fountain immediately dries up shortly afterwards.")
- user.reagents.add_reagent("godblood",20)
+ user.reagents.add_reagent(/datum/reagent/medicine/omnizine/godblood,20)
update_icon()
addtimer(CALLBACK(src, .proc/update_icon), time_between_uses)
diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm
index 6053fd2ba8b..e9540a92c1c 100644
--- a/code/game/objects/structures/shower.dm
+++ b/code/game/objects/structures/shower.dm
@@ -12,7 +12,7 @@
var/on = FALSE
var/current_temperature = SHOWER_NORMAL
var/datum/looping_sound/showering/soundloop
- var/reagent_id = "water"
+ var/reagent_id = /datum/reagent/water
var/reaction_volume = 200
/obj/machinery/shower/Initialize()
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index 319d24b1b5c..799e324231e 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -101,7 +101,7 @@
if (!open)
return
var/obj/item/reagent_containers/RG = I
- RG.reagents.add_reagent("water", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this))
+ RG.reagents.add_reagent(/datum/reagent/water, min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this))
to_chat(user, "You fill [RG] from [src]. Gross.")
else
return ..()
@@ -199,7 +199,7 @@
icon = 'icons/obj/items_and_weapons.dmi'
icon_state = "urinalcake"
w_class = WEIGHT_CLASS_TINY
- list_reagents = list("chlorine" = 3, "ammonia" = 1)
+ list_reagents = list(/datum/reagent/chlorine = 3, /datum/reagent/ammonia = 1)
foodtype = TOXIC | GROSS
/obj/item/reagent_containers/food/snacks/urinalcake/attack_self(mob/living/user)
@@ -222,7 +222,7 @@
desc = "A sink used for washing one's hands and face."
anchored = TRUE
var/busy = FALSE //Something's being washed at the moment
- var/dispensedreagent = "water" // for whenever plumbing happens
+ var/dispensedreagent = /datum/reagent/water // for whenever plumbing happens
/obj/structure/sink/attack_hand(mob/living/user)
. = ..()
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index 90d167ce6c8..4ec46cdc814 100755
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -549,7 +549,7 @@
if(istype(R, /datum/reagent/consumable))
var/datum/reagent/consumable/nutri_check = R
if(nutri_check.nutriment_factor >0)
- M.reagents.remove_reagent(R.id,R.volume)
+ M.reagents.remove_reagent(R.type,R.volume)
//Whatever happens after high temperature fire dies out or thermite reaction works.
//Should return new turf
diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
index 2c11cdfb26b..d18f0550152 100644
--- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm
+++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
@@ -757,7 +757,7 @@ Congratulations! You are now trained for invasive xenobiology research!"}
icon_state = "bed"
can_buckle = 1
- var/static/list/injected_reagents = list("corazone")
+ var/static/list/injected_reagents = list(/datum/reagent/medicine/corazone)
/obj/structure/table/optable/abductor/Crossed(atom/movable/AM)
. = ..()
diff --git a/code/modules/antagonists/abductor/equipment/gland.dm b/code/modules/antagonists/abductor/equipment/gland.dm
index ebf18f4f47e..de46c3de812 100644
--- a/code/modules/antagonists/abductor/equipment/gland.dm
+++ b/code/modules/antagonists/abductor/equipment/gland.dm
@@ -319,15 +319,8 @@
/obj/item/organ/heart/gland/chem/Initialize()
. = ..()
- for(var/X in subtypesof(/datum/reagent/drug))
- var/datum/reagent/R = X
- possible_reagents += initial(R.id)
- for(var/X in subtypesof(/datum/reagent/medicine))
- var/datum/reagent/R = X
- possible_reagents += initial(R.id)
- for(var/X in typesof(/datum/reagent/toxin))
- var/datum/reagent/R = X
- possible_reagents += initial(R.id)
+ for(var/R in subtypesof(/datum/reagent/drug) + subtypesof(/datum/reagent/medicine) + typesof(/datum/reagent/toxin))
+ possible_reagents += R
/obj/item/organ/heart/gland/chem/activate()
var/chem_to_add = pick(possible_reagents)
diff --git a/code/modules/antagonists/blob/blob_mobs.dm b/code/modules/antagonists/blob/blob_mobs.dm
index 92599e90441..8e75c403add 100644
--- a/code/modules/antagonists/blob/blob_mobs.dm
+++ b/code/modules/antagonists/blob/blob_mobs.dm
@@ -147,7 +147,7 @@
if(overmind && overmind.blobstrain)
overmind.blobstrain.on_sporedeath(src)
else
- reagents.add_reagent("spore", 10)
+ reagents.add_reagent(/datum/reagent/toxin/spore, 10)
// Attach the smoke spreader and setup/start it.
S.attach(location)
diff --git a/code/modules/antagonists/blob/blobstrains/_reagent.dm b/code/modules/antagonists/blob/blobstrains/_reagent.dm
index f688cee8474..f47c3b3378a 100644
--- a/code/modules/antagonists/blob/blobstrains/_reagent.dm
+++ b/code/modules/antagonists/blob/blobstrains/_reagent.dm
@@ -16,7 +16,7 @@
reagent.reaction_mob(L, VAPOR, 20, 0, mob_protection, overmind)//this will do between 10 and 20 damage(reduced by mob protection), depending on chemical, plus 4 from base brute damage.
/datum/blobstrain/reagent/on_sporedeath(mob/living/spore)
- spore.reagents.add_reagent(reagent.id, 10)
+ spore.reagents.add_reagent(reagent.type, 10)
// These can only be applied by blobs. They are what (reagent) blobs are made out of.
/datum/reagent/blob
diff --git a/code/modules/antagonists/blob/blobstrains/blazing_oil.dm b/code/modules/antagonists/blob/blobstrains/blazing_oil.dm
index 7f934afdf6c..97b974e28fd 100644
--- a/code/modules/antagonists/blob/blobstrains/blazing_oil.dm
+++ b/code/modules/antagonists/blob/blobstrains/blazing_oil.dm
@@ -28,7 +28,6 @@
/datum/reagent/blob/blazing_oil
name = "Blazing Oil"
- id = "blazing_oil"
taste_description = "burning oil"
color = "#B68D00"
diff --git a/code/modules/antagonists/blob/blobstrains/cryogenic_poison.dm b/code/modules/antagonists/blob/blobstrains/cryogenic_poison.dm
index 74910b8060e..b019146f0bc 100644
--- a/code/modules/antagonists/blob/blobstrains/cryogenic_poison.dm
+++ b/code/modules/antagonists/blob/blobstrains/cryogenic_poison.dm
@@ -12,7 +12,6 @@
/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."
color = "#8BA6E9"
taste_description = "brain freeze"
@@ -20,9 +19,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)
diff --git a/code/modules/antagonists/blob/blobstrains/electromagnetic_web.dm b/code/modules/antagonists/blob/blobstrains/electromagnetic_web.dm
index e970588e6ab..0e665603c9b 100644
--- a/code/modules/antagonists/blob/blobstrains/electromagnetic_web.dm
+++ b/code/modules/antagonists/blob/blobstrains/electromagnetic_web.dm
@@ -22,7 +22,6 @@
/datum/reagent/blob/electromagnetic_web
name = "Electromagnetic Web"
- id = "electromagnetic_web"
taste_description = "pop rocks"
color = "#83ECEC"
diff --git a/code/modules/antagonists/blob/blobstrains/energized_jelly.dm b/code/modules/antagonists/blob/blobstrains/energized_jelly.dm
index 8393e8fae75..66ce3c303d9 100644
--- a/code/modules/antagonists/blob/blobstrains/energized_jelly.dm
+++ b/code/modules/antagonists/blob/blobstrains/energized_jelly.dm
@@ -23,7 +23,6 @@
/datum/reagent/blob/energized_jelly
name = "Energized Jelly"
- id = "energized_jelly"
taste_description = "gelatin"
color = "#EFD65A"
diff --git a/code/modules/antagonists/blob/blobstrains/explosive_lattice.dm b/code/modules/antagonists/blob/blobstrains/explosive_lattice.dm
index 5d64ecf5c35..f8fd2e2f0df 100644
--- a/code/modules/antagonists/blob/blobstrains/explosive_lattice.dm
+++ b/code/modules/antagonists/blob/blobstrains/explosive_lattice.dm
@@ -20,7 +20,6 @@
/datum/reagent/blob/explosive_lattice
name = "Explosive Lattice"
- id = "explosive_lattice"
taste_description = "the bomb"
color = "#8B2500"
diff --git a/code/modules/antagonists/blob/blobstrains/networked_fibers.dm b/code/modules/antagonists/blob/blobstrains/networked_fibers.dm
index d2af3d9eec1..fac3470c7a0 100644
--- a/code/modules/antagonists/blob/blobstrains/networked_fibers.dm
+++ b/code/modules/antagonists/blob/blobstrains/networked_fibers.dm
@@ -28,7 +28,6 @@
//does massive brute and burn damage, but can only expand manually
/datum/reagent/blob/networked_fibers
name = "Networked Fibers"
- id = "networked_fibers"
taste_description = "efficiency"
color = "#CDC0B0"
diff --git a/code/modules/antagonists/blob/blobstrains/pressurized_slime.dm b/code/modules/antagonists/blob/blobstrains/pressurized_slime.dm
index ef97ddd2fe4..6a984e66a23 100644
--- a/code/modules/antagonists/blob/blobstrains/pressurized_slime.dm
+++ b/code/modules/antagonists/blob/blobstrains/pressurized_slime.dm
@@ -34,7 +34,6 @@
/datum/reagent/blob/pressurized_slime
name = "Pressurized Slime"
- id = "pressurized_slime"
taste_description = "a sponge"
color = "#AAAABB"
diff --git a/code/modules/antagonists/blob/blobstrains/reactive_spines.dm b/code/modules/antagonists/blob/blobstrains/reactive_spines.dm
index b36c44efea5..fca56d14022 100644
--- a/code/modules/antagonists/blob/blobstrains/reactive_spines.dm
+++ b/code/modules/antagonists/blob/blobstrains/reactive_spines.dm
@@ -21,7 +21,6 @@
/datum/reagent/blob/reactive_spines
name = "Reactive Spines"
- id = "reactive_spines"
taste_description = "rock"
color = "#9ACD32"
diff --git a/code/modules/antagonists/blob/blobstrains/regenerative_materia.dm b/code/modules/antagonists/blob/blobstrains/regenerative_materia.dm
index 13f4e2d7db8..4e363c89d33 100644
--- a/code/modules/antagonists/blob/blobstrains/regenerative_materia.dm
+++ b/code/modules/antagonists/blob/blobstrains/regenerative_materia.dm
@@ -10,7 +10,6 @@
/datum/reagent/blob/regenerative_materia
name = "Regenerative Materia"
- id = "regenerative_materia"
taste_description = "heaven"
color = "#C8A5DC"
@@ -18,8 +17,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)
diff --git a/code/modules/antagonists/blob/blobstrains/replicating_foam.dm b/code/modules/antagonists/blob/blobstrains/replicating_foam.dm
index 8839167efb8..57868963472 100644
--- a/code/modules/antagonists/blob/blobstrains/replicating_foam.dm
+++ b/code/modules/antagonists/blob/blobstrains/replicating_foam.dm
@@ -27,7 +27,6 @@
/datum/reagent/blob/replicating_foam
name = "Replicating Foam"
- id = "replicating_foam"
taste_description = "duplication"
color = "#7B5A57"
diff --git a/code/modules/antagonists/blob/blobstrains/shifting_fragments.dm b/code/modules/antagonists/blob/blobstrains/shifting_fragments.dm
index 63a55e1831b..d06357f8363 100644
--- a/code/modules/antagonists/blob/blobstrains/shifting_fragments.dm
+++ b/code/modules/antagonists/blob/blobstrains/shifting_fragments.dm
@@ -29,7 +29,6 @@
/datum/reagent/blob/shifting_fragments
name = "Shifting Fragments"
- id = "shifting_fragments"
color = "#C8963C"
/datum/reagent/blob/shifting_fragments/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
diff --git a/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm b/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm
index e38d1644fa0..7f500bbe291 100644
--- a/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm
+++ b/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm
@@ -26,7 +26,6 @@
/datum/reagent/blob/synchronous_mesh
name = "Synchronous Mesh"
- id = "synchronous_mesh"
taste_description = "toxic mold"
color = "#65ADA2"
diff --git a/code/modules/antagonists/blob/blobstrains/zombifying_pods.dm b/code/modules/antagonists/blob/blobstrains/zombifying_pods.dm
index 6f04a6a79ac..b2bb9d51157 100644
--- a/code/modules/antagonists/blob/blobstrains/zombifying_pods.dm
+++ b/code/modules/antagonists/blob/blobstrains/zombifying_pods.dm
@@ -29,7 +29,6 @@
/datum/reagent/blob/zombifying_pods
name = "Zombifying Pods"
- id = "zombifying_pods"
color = "#E88D5D"
/datum/reagent/blob/zombifying_pods/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
diff --git a/code/modules/antagonists/changeling/powers/adrenaline.dm b/code/modules/antagonists/changeling/powers/adrenaline.dm
index bacdaf3aab2..bd2ef82134b 100644
--- a/code/modules/antagonists/changeling/powers/adrenaline.dm
+++ b/code/modules/antagonists/changeling/powers/adrenaline.dm
@@ -18,7 +18,7 @@
user.SetKnockdown(0)
user.SetImmobilized(0)
user.SetParalyzed(0)
- user.reagents.add_reagent("changelingadrenaline", 10)
- user.reagents.add_reagent("changelinghaste", 2) //For a really quick burst of speed
+ user.reagents.add_reagent(/datum/reagent/medicine/changelingadrenaline, 10)
+ user.reagents.add_reagent(/datum/reagent/medicine/changelinghaste, 2) //For a really quick burst of speed
user.adjustStaminaLoss(-75)
return TRUE
diff --git a/code/modules/antagonists/changeling/powers/linglink.dm b/code/modules/antagonists/changeling/powers/linglink.dm
index 28edff65594..3f15bab46f9 100644
--- a/code/modules/antagonists/changeling/powers/linglink.dm
+++ b/code/modules/antagonists/changeling/powers/linglink.dm
@@ -57,7 +57,7 @@
target.mind.linglink = 1
target.say("[MODE_TOKEN_CHANGELING] AAAAARRRRGGGGGHHHHH!!")
to_chat(target, "You can now communicate in the changeling hivemind, say \"[MODE_TOKEN_CHANGELING] message\" to communicate!")
- target.reagents.add_reagent("salbutamol", 40) // So they don't choke to death while you interrogate them
+ target.reagents.add_reagent(/datum/reagent/medicine/salbutamol, 40) // So they don't choke to death while you interrogate them
sleep(1800)
SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("[name]", "[i]"))
if(!do_mob(user, target, 20))
diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm
index 9e7927323e9..96427b602c2 100644
--- a/code/modules/antagonists/changeling/powers/mutations.dm
+++ b/code/modules/antagonists/changeling/powers/mutations.dm
@@ -486,7 +486,7 @@
/obj/item/clothing/suit/space/changeling/process()
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
- H.reagents.add_reagent("salbutamol", REAGENTS_METABOLISM)
+ H.reagents.add_reagent(/datum/reagent/medicine/salbutamol, REAGENTS_METABOLISM)
/obj/item/clothing/head/helmet/space/changeling
name = "flesh mass"
diff --git a/code/modules/antagonists/changeling/powers/panacea.dm b/code/modules/antagonists/changeling/powers/panacea.dm
index 7b0b41603fd..2da5a5d8eed 100644
--- a/code/modules/antagonists/changeling/powers/panacea.dm
+++ b/code/modules/antagonists/changeling/powers/panacea.dm
@@ -26,10 +26,10 @@
C.vomit(0, toxic = TRUE)
O.forceMove(get_turf(user))
- user.reagents.add_reagent("mutadone", 10)
- user.reagents.add_reagent("pen_acid", 20)
- user.reagents.add_reagent("antihol", 10)
- user.reagents.add_reagent("mannitol", 25)
+ user.reagents.add_reagent(/datum/reagent/medicine/mutadone, 10)
+ user.reagents.add_reagent(/datum/reagent/medicine/pen_acid, 20)
+ user.reagents.add_reagent(/datum/reagent/medicine/antihol, 10)
+ user.reagents.add_reagent(/datum/reagent/medicine/mannitol, 25)
if(isliving(user))
var/mob/living/L = user
diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm
index dc848b92fdc..660d5754929 100644
--- a/code/modules/antagonists/changeling/powers/tiny_prick.dm
+++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm
@@ -247,5 +247,5 @@
/datum/action/changeling/sting/cryo/sting_action(mob/user, mob/target)
log_combat(user, target, "stung", "cryo sting")
if(target.reagents)
- target.reagents.add_reagent("frostoil", 30)
+ target.reagents.add_reagent(/datum/reagent/consumable/frostoil, 30)
return TRUE
diff --git a/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm b/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm
index d5bcee8eddb..a1482c81878 100644
--- a/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm
+++ b/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm
@@ -99,7 +99,7 @@
var/burndamage = L.getFireLoss()
var/oxydamage = L.getOxyLoss()
var/totaldamage = brutedamage + burndamage + oxydamage
- if(!totaldamage && (!L.reagents || !L.reagents.has_reagent("holywater")))
+ if(!totaldamage && (!L.reagents || !L.reagents.has_reagent(/datum/reagent/water/holywater)))
to_chat(ranged_ability_user, "\"[L] is unhurt and untainted.\"")
return TRUE
@@ -107,7 +107,7 @@
to_chat(ranged_ability_user, "You bathe [L == ranged_ability_user ? "yourself":"[L]"] in Inath-neq's power!")
var/targetturf = get_turf(L)
- var/has_holy_water = (L.reagents && L.reagents.has_reagent("holywater"))
+ var/has_holy_water = (L.reagents && L.reagents.has_reagent(/datum/reagent/water/holywater))
var/healseverity = max(round(totaldamage*0.05, 1), 1) //shows the general severity of the damage you just healed, 1 glow per 20
for(var/i in 1 to healseverity)
new /obj/effect/temp_visual/heal(targetturf, "#1E8CE1")
@@ -128,7 +128,7 @@
playsound(targetturf, 'sound/magic/staff_healing.ogg', 50, 1)
if(has_holy_water)
- L.reagents.remove_reagent("holywater", 1000)
+ L.reagents.remove_reagent(/datum/reagent/water/holywater, 1000)
remove_ranged_ability()
diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm
index 13e5eb641cd..6b3ddde1c4f 100644
--- a/code/modules/antagonists/cult/blood_magic.dm
+++ b/code/modules/antagonists/cult/blood_magic.dm
@@ -747,7 +747,7 @@
var/turf/T = get_turf(target)
if(T)
for(var/obj/effect/decal/cleanable/blood/B in view(T, 2))
- if(B.blood_state == "blood")
+ if(B.blood_state == BLOOD_STATE_HUMAN)
if(B.bloodiness == 100) //Bonus for "pristine" bloodpools, also to prevent cheese with footprint spam
temp += 30
else
@@ -757,9 +757,9 @@
for(var/obj/effect/decal/cleanable/trail_holder/TH in view(T, 2))
qdel(TH)
var/obj/item/clothing/shoes/shoecheck = user.shoes
- if(shoecheck && shoecheck.bloody_shoes["blood"])
- temp += shoecheck.bloody_shoes["blood"]/20
- shoecheck.bloody_shoes["blood"] = 0
+ if(shoecheck && shoecheck.bloody_shoes[/datum/reagent/blood])
+ temp += shoecheck.bloody_shoes[/datum/reagent/blood]/20
+ shoecheck.bloody_shoes[/datum/reagent/blood] = 0
if(temp)
user.Beam(T,icon_state="drainbeam",time=15)
new /obj/effect/temp_visual/cult/sparks(get_turf(user))
@@ -815,4 +815,3 @@
else
to_chat(user, "You need a free hand for this rite!")
qdel(rite)
-
diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm
index 823a8b33ebd..ff868752dab 100644
--- a/code/modules/antagonists/cult/cult_items.dm
+++ b/code/modules/antagonists/cult/cult_items.dm
@@ -486,7 +486,7 @@
icon = 'icons/obj/drinks.dmi'
icon_state = "holyflask"
color = "#333333"
- list_reagents = list("unholywater" = 50)
+ list_reagents = list(/datum/reagent/fuel/unholywater = 50)
/obj/item/shuttle_curse
name = "cursed orb"
@@ -785,7 +785,7 @@
if(ishuman(target))
var/mob/living/carbon/human/H = target
if(H.stat != DEAD)
- H.reagents.add_reagent("unholywater", 4)
+ H.reagents.add_reagent(/datum/reagent/fuel/unholywater, 4)
if(isshade(target) || isconstruct(target))
var/mob/living/simple_animal/M = target
if(M.health+5 < M.maxHealth)
@@ -889,7 +889,7 @@
if(ishuman(target))
var/mob/living/carbon/human/H = target
if(H.stat != DEAD)
- H.reagents.add_reagent("unholywater", 7)
+ H.reagents.add_reagent(/datum/reagent/fuel/unholywater, 7)
if(isshade(target) || isconstruct(target))
var/mob/living/simple_animal/M = target
if(M.health+15 < M.maxHealth)
diff --git a/code/modules/antagonists/cult/ritual.dm b/code/modules/antagonists/cult/ritual.dm
index 69941f582d2..389e8e0cd65 100644
--- a/code/modules/antagonists/cult/ritual.dm
+++ b/code/modules/antagonists/cult/ritual.dm
@@ -24,11 +24,11 @@ This file contains the cult dagger and rune list code
/obj/item/melee/cultblade/dagger/attack(mob/living/M, mob/living/user)
if(iscultist(M))
- if(M.reagents && M.reagents.has_reagent("holywater")) //allows cultists to be rescued from the clutches of ordained religion
+ if(M.reagents && M.reagents.has_reagent(/datum/reagent/water/holywater)) //allows cultists to be rescued from the clutches of ordained religion
to_chat(user, "You remove the taint from [M]." )
- var/holy2unholy = M.reagents.get_reagent_amount("holywater")
- M.reagents.del_reagent("holywater")
- M.reagents.add_reagent("unholywater",holy2unholy)
+ var/holy2unholy = M.reagents.get_reagent_amount(/datum/reagent/water/holywater)
+ M.reagents.del_reagent(/datum/reagent/water/holywater)
+ M.reagents.add_reagent(/datum/reagent/fuel/unholywater,holy2unholy)
log_combat(user, M, "smacked", src, " removing the holy water from them")
return FALSE
. = ..()
diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm
index b0e692d2c52..db9ca2832fc 100644
--- a/code/modules/antagonists/devil/devil.dm
+++ b/code/modules/antagonists/devil/devil.dm
@@ -391,7 +391,7 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
if(BANISH_FORMALDYHIDE)
if(iscarbon(body))
var/mob/living/carbon/H = body
- return H.reagents.has_reagent("formaldehyde")
+ return H.reagents.has_reagent(/datum/reagent/toxin/formaldehyde)
return 0
if(BANISH_RUNES)
if(body)
diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
index c90971feb30..b8b2ee99f60 100644
--- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
+++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
@@ -519,7 +519,7 @@
/obj/machinery/nuclearbomb/beer/proc/fizzbuzz()
var/datum/reagents/R = new/datum/reagents(1000)
R.my_atom = src
- R.add_reagent("beer", 100)
+ R.add_reagent(/datum/reagent/consumable/ethanol/beer, 100)
var/datum/effect_system/foam_spread/foam = new
foam.set_up(200, get_turf(src), R)
diff --git a/code/modules/antagonists/revenant/revenant_abilities.dm b/code/modules/antagonists/revenant/revenant_abilities.dm
index 01c46486408..496041ac93a 100644
--- a/code/modules/antagonists/revenant/revenant_abilities.dm
+++ b/code/modules/antagonists/revenant/revenant_abilities.dm
@@ -355,7 +355,7 @@
to_chat(H, "You feel [pick("suddenly sick", "a surge of nausea", "like your skin is wrong")].")
else
if(mob.reagents)
- mob.reagents.add_reagent("plasma", 5)
+ mob.reagents.add_reagent(/datum/reagent/toxin/plasma, 5)
else
mob.adjustToxLoss(5)
for(var/obj/structure/spacevine/vine in T) //Fucking with botanists, the ability.
diff --git a/code/modules/antagonists/revenant/revenant_blight.dm b/code/modules/antagonists/revenant/revenant_blight.dm
index 5b89da2e875..36d0a2ef4d0 100644
--- a/code/modules/antagonists/revenant/revenant_blight.dm
+++ b/code/modules/antagonists/revenant/revenant_blight.dm
@@ -5,7 +5,7 @@
spread_flags = DISEASE_SPREAD_NON_CONTAGIOUS
cure_text = "Holy water or extensive rest."
spread_text = "A burst of unholy energy"
- cures = list("holywater")
+ cures = list(/datum/reagent/water/holywater)
cure_chance = 50 //higher chance to cure, because revenants are assholes
agent = "Unholy Forces"
viable_mobtypes = list(/mob/living/carbon/human)
diff --git a/code/modules/cargo/bounties/reagent.dm b/code/modules/cargo/bounties/reagent.dm
index 7a34b65d9ba..d2a0084ebec 100644
--- a/code/modules/cargo/bounties/reagent.dm
+++ b/code/modules/cargo/bounties/reagent.dm
@@ -12,7 +12,7 @@
/datum/bounty/reagent/applies_to(obj/O)
if(!istype(O, /obj/item/reagent_containers))
return FALSE
- if(!O.reagents || !O.reagents.has_reagent(wanted_reagent.id))
+ if(!O.reagents || !O.reagents.has_reagent(wanted_reagent.type))
return FALSE
if(O.flags_1 & HOLOGRAM_1)
return FALSE
@@ -21,7 +21,7 @@
/datum/bounty/reagent/ship(obj/O)
if(!applies_to(O))
return
- shipped_volume += O.reagents.get_reagent_amount(wanted_reagent.id)
+ shipped_volume += O.reagents.get_reagent_amount(wanted_reagent.type)
if(shipped_volume > required_volume)
shipped_volume = required_volume
@@ -29,7 +29,7 @@
if(!istype(other_bounty, /datum/bounty/reagent))
return TRUE
var/datum/bounty/reagent/R = other_bounty
- return wanted_reagent.id != R.wanted_reagent.id
+ return wanted_reagent.type != R.wanted_reagent.type
/datum/bounty/reagent/simple_drink
name = "Simple Drink"
@@ -113,7 +113,7 @@
/datum/reagent/consumable/ethanol/peppermint_patty,\
/datum/reagent/consumable/ethanol/aloe,\
/datum/reagent/consumable/pumpkin_latte)
-
+
var/reagent_type = pick(possible_reagents)
wanted_reagent = new reagent_type
name = wanted_reagent.name
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index eb30b530cd6..d32d556abe2 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -62,7 +62,7 @@
/obj/item/reagent_containers/food/snacks/clothing
name = "temporary moth clothing snack item"
desc = "If you're reading this it means I messed up. This is related to moths eating clothes and I didn't know a better way to do it than making a new food object."
- list_reagents = list("nutriment" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1)
tastes = list("dust" = 1, "lint" = 1)
foodtype = CLOTH
diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm
index 370f483c9c2..cc9cff7f53a 100644
--- a/code/modules/clothing/outfits/standard.dm
+++ b/code/modules/clothing/outfits/standard.dm
@@ -53,7 +53,7 @@
return
var/obj/item/reagent_containers/glass/bucket/bucket = H.get_item_for_held_index(1)
- bucket.reagents.add_reagent("water",70)
+ bucket.reagents.add_reagent(/datum/reagent/water,70)
/datum/outfit/laser_tag
name = "Laser Tag Red"
diff --git a/code/modules/events/holiday/vday.dm b/code/modules/events/holiday/vday.dm
index 8b27e92a8c1..8cc709dcfeb 100644
--- a/code/modules/events/holiday/vday.dm
+++ b/code/modules/events/holiday/vday.dm
@@ -96,7 +96,7 @@
icon = 'icons/obj/holiday_misc.dmi'
icon_state = "candyheart"
desc = "A heart-shaped candy that reads: "
- list_reagents = list("sugar" = 2)
+ list_reagents = list(/datum/reagent/consumable/sugar = 2)
junkiness = 5
/obj/item/reagent_containers/food/snacks/candyheart/Initialize()
diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm
index 8d82bea0211..e5c4bd8844c 100644
--- a/code/modules/events/vent_clog.dm
+++ b/code/modules/events/vent_clog.dm
@@ -13,9 +13,9 @@
var/list/vents = list()
var/randomProbability = 1
var/reagentsAmount = 100
- var/list/saferChems = list("water","carbon","flour","cleaner","nutriment","condensedcapsaicin","mushroomhallucinogen","lube","pink_glitter","cryptobiolin",
- "plantbgone","blood","charcoal","space_drugs","morphine","holywater","ethanol","hot_coco","sacid","mindbreaker","rotatium","bluespace",
- "pax","laughter","concentrated_barbers_aid","colorful_reagent","dizzysolution","tiresolution","sodiumchloride","beer","hair_dye","sugar","white_glitter","growthserum")
+ var/list/saferChems = list(/datum/reagent/water,/datum/reagent/carbon,/datum/reagent/consumable/flour,/datum/reagent/space_cleaner,/datum/reagent/consumable/nutriment,/datum/reagent/consumable/condensedcapsaicin,/datum/reagent/drug/mushroomhallucinogen,/datum/reagent/lube,/datum/reagent/glitter/pink,/datum/reagent/cryptobiolin,
+ /datum/reagent/toxin/plantbgone,/datum/reagent/blood,/datum/reagent/medicine/charcoal,/datum/reagent/drug/space_drugs,/datum/reagent/medicine/morphine,/datum/reagent/water/holywater,/datum/reagent/consumable/ethanol,/datum/reagent/consumable/hot_coco,/datum/reagent/toxin/acid,/datum/reagent/toxin/mindbreaker,/datum/reagent/toxin/rotatium,/datum/reagent/bluespace,
+ /datum/reagent/pax,/datum/reagent/consumable/laughter,/datum/reagent/concentrated_barbers_aid,/datum/reagent/colorful_reagent,/datum/reagent/peaceborg/confuse,/datum/reagent/peaceborg/tire,/datum/reagent/consumable/sodiumchloride,/datum/reagent/consumable/ethanol/beer,/datum/reagent/hair_dye,/datum/reagent/consumable/sugar,/datum/reagent/glitter/white,/datum/reagent/growthserum)
//needs to be chemid unit checked at some point
/datum/round_event/vent_clog/announce()
@@ -95,7 +95,7 @@
if(vent && vent.loc)
var/datum/reagents/R = new/datum/reagents(1000)
R.my_atom = vent
- R.add_reagent("beer", reagentsAmount)
+ R.add_reagent(/datum/reagent/consumable/ethanol/beer, reagentsAmount)
var/datum/effect_system/foam_spread/foam = new
foam.set_up(200, get_turf(vent), R)
diff --git a/code/modules/events/wizard/invincible.dm b/code/modules/events/wizard/invincible.dm
index 209bdd26c1c..6ba9b44ee16 100644
--- a/code/modules/events/wizard/invincible.dm
+++ b/code/modules/events/wizard/invincible.dm
@@ -8,5 +8,5 @@
/datum/round_event/wizard/invincible/start()
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
- H.reagents.add_reagent("adminordrazine", 40) //100 ticks of absolute invinciblity (barring gibs)
+ H.reagents.add_reagent(/datum/reagent/medicine/adminordrazine, 40) //100 ticks of absolute invinciblity (barring gibs)
to_chat(H, "You feel invincible, nothing can hurt you!")
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm
index 9ea41deafbb..deeb31b0bb0 100644
--- a/code/modules/food_and_drinks/drinks/drinks.dm
+++ b/code/modules/food_and_drinks/drinks/drinks.dm
@@ -201,7 +201,7 @@
name = "robust coffee"
desc = "Careful, the beverage you're about to enjoy is extremely hot."
icon_state = "coffee"
- list_reagents = list("coffee" = 30)
+ list_reagents = list(/datum/reagent/consumable/coffee = 30)
spillable = TRUE
resistance_flags = FREEZE_PROOF
isGlass = FALSE
@@ -211,14 +211,14 @@
desc = "Careful, cold ice, do not chew."
custom_price = 5
icon_state = "coffee"
- list_reagents = list("ice" = 30)
+ list_reagents = list(/datum/reagent/consumable/ice = 30)
spillable = TRUE
isGlass = FALSE
/obj/item/reagent_containers/food/drinks/ice/prison
name = "dirty ice cup"
desc = "Either Nanotrasen's water supply is contaminated, or this machine actually vends lemon, chocolate, and cherry snow cones."
- list_reagents = list("ice" = 25, "liquidgibs" = 5)
+ list_reagents = list(/datum/reagent/consumable/ice = 25, /datum/reagent/liquidgibs = 5)
/obj/item/reagent_containers/food/drinks/mug/ // parent type is literally just so empty mug sprites are a thing
name = "mug"
@@ -236,12 +236,12 @@
/obj/item/reagent_containers/food/drinks/mug/tea
name = "Duke Purple tea"
desc = "An insult to Duke Purple is an insult to the Space Queen! Any proper gentleman will fight you, if you sully this tea."
- list_reagents = list("tea" = 30)
+ list_reagents = list(/datum/reagent/consumable/tea = 30)
/obj/item/reagent_containers/food/drinks/mug/coco
name = "Dutch hot coco"
desc = "Made in Space South America."
- list_reagents = list("hot_coco" = 15, "sugar" = 5)
+ list_reagents = list(/datum/reagent/consumable/hot_coco = 15, /datum/reagent/consumable/sugar = 5)
foodtype = SUGAR
resistance_flags = FREEZE_PROOF
custom_price = 42
@@ -251,7 +251,7 @@
name = "cup ramen"
desc = "Just add 5ml of water, self heats! A taste that reminds you of your school years. Now new with salty flavour!"
icon_state = "ramen"
- list_reagents = list("dry_ramen" = 15, "sodiumchloride" = 3)
+ list_reagents = list(/datum/reagent/consumable/dry_ramen = 15, /datum/reagent/consumable/sodiumchloride = 3)
foodtype = GRAIN
isGlass = FALSE
custom_price = 38
@@ -260,20 +260,20 @@
name = "space beer"
desc = "Beer. In space."
icon_state = "beer"
- list_reagents = list("beer" = 30)
+ list_reagents = list(/datum/reagent/consumable/ethanol/beer = 30)
foodtype = GRAIN | ALCOHOL
/obj/item/reagent_containers/food/drinks/beer/light
name = "Carp Lite"
desc = "Brewed with \"Pure Ice Asteroid Spring Water\"."
- list_reagents = list("light_beer" = 30)
+ list_reagents = list(/datum/reagent/consumable/ethanol/beer/light = 30)
/obj/item/reagent_containers/food/drinks/ale
name = "Magm-Ale"
desc = "A true dorf's drink of choice."
icon_state = "alebottle"
item_state = "beer"
- list_reagents = list("ale" = 30)
+ list_reagents = list(/datum/reagent/consumable/ethanol/ale = 30)
foodtype = GRAIN | ALCOHOL
/obj/item/reagent_containers/food/drinks/sillycup
@@ -317,32 +317,32 @@
/obj/item/reagent_containers/food/drinks/sillycup/smallcarton/on_reagent_change(changetype)
if (reagents.reagent_list.len)
switch(reagents.get_master_reagent_id())
- if("orangejuice")
+ if(/datum/reagent/consumable/orangejuice)
icon_state = "orangebox"
name = "orange juice box"
desc = "A great source of vitamins. Stay healthy!"
foodtype = FRUIT
- if("milk")
+ if(/datum/reagent/consumable/milk)
icon_state = "milkbox"
name = "carton of milk"
desc = "An excellent source of calcium for growing space explorers."
foodtype = DAIRY
- if("applejuice")
+ if(/datum/reagent/consumable/applejuice)
icon_state = "juicebox"
name = "apple juice box"
desc = "Sweet apple juice. Don't be late for school!"
foodtype = FRUIT
- if("grapejuice")
+ if(/datum/reagent/consumable/grapejuice)
icon_state = "grapebox"
name = "grape juice box"
desc = "Tasty grape juice in a fun little container. Non-alcoholic!"
foodtype = FRUIT
- if("chocolate_milk")
+ if(/datum/reagent/consumable/milk/chocolate_milk)
icon_state = "chocolatebox"
name = "carton of chocolate milk"
desc = "Milk for cool kids!"
foodtype = SUGAR
- if("eggnog")
+ if(/datum/reagent/consumable/ethanol/eggnog)
icon_state = "nog2"
name = "carton of eggnog"
desc = "For enjoying the most wonderful time of the year."
@@ -387,7 +387,7 @@
name = "detective's flask"
desc = "The detective's only true friend."
icon_state = "detflask"
- list_reagents = list("whiskey" = 30)
+ list_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 30)
/obj/item/reagent_containers/food/drinks/britcup
name = "cup"
@@ -463,27 +463,27 @@
name = "Space Cola"
desc = "Cola. in space."
icon_state = "cola"
- list_reagents = list("cola" = 30)
+ list_reagents = list(/datum/reagent/consumable/space_cola = 30)
foodtype = SUGAR
/obj/item/reagent_containers/food/drinks/soda_cans/tonic
name = "T-Borg's tonic water"
desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
icon_state = "tonic"
- list_reagents = list("tonic" = 50)
+ list_reagents = list(/datum/reagent/consumable/tonic = 50)
foodtype = ALCOHOL
/obj/item/reagent_containers/food/drinks/soda_cans/sodawater
name = "soda water"
desc = "A can of soda water. Why not make a scotch and soda?"
icon_state = "sodawater"
- list_reagents = list("sodawater" = 50)
+ list_reagents = list(/datum/reagent/consumable/sodawater = 50)
/obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime
name = "orange soda"
desc = "You wanted ORANGE. It gave you Lemon Lime."
icon_state = "lemon-lime"
- list_reagents = list("lemon_lime" = 30)
+ list_reagents = list(/datum/reagent/consumable/lemon_lime = 30)
foodtype = FRUIT
/obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime/Initialize()
@@ -494,59 +494,59 @@
name = "Space-Up!"
desc = "Tastes like a hull breach in your mouth."
icon_state = "space-up"
- list_reagents = list("space_up" = 30)
+ list_reagents = list(/datum/reagent/consumable/space_up = 30)
foodtype = SUGAR | JUNKFOOD
/obj/item/reagent_containers/food/drinks/soda_cans/starkist
name = "Star-kist"
desc = "The taste of a star in liquid form. And, a bit of tuna...?"
icon_state = "starkist"
- list_reagents = list("cola" = 15, "orangejuice" = 15)
+ list_reagents = list(/datum/reagent/consumable/space_cola = 15, /datum/reagent/consumable/orangejuice = 15)
foodtype = SUGAR | FRUIT | JUNKFOOD
/obj/item/reagent_containers/food/drinks/soda_cans/space_mountain_wind
name = "Space Mountain Wind"
desc = "Blows right through you like a space wind."
icon_state = "space_mountain_wind"
- list_reagents = list("spacemountainwind" = 30)
+ list_reagents = list(/datum/reagent/consumable/spacemountainwind = 30)
foodtype = SUGAR | JUNKFOOD
/obj/item/reagent_containers/food/drinks/soda_cans/thirteenloko
name = "Thirteen Loko"
desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkenness, or even death. Please Drink Responsibly."
icon_state = "thirteen_loko"
- list_reagents = list("thirteenloko" = 30)
+ list_reagents = list(/datum/reagent/consumable/ethanol/thirteenloko = 30)
foodtype = SUGAR | JUNKFOOD
/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb
name = "Dr. Gibb"
desc = "A delicious mixture of 42 different flavors."
icon_state = "dr_gibb"
- list_reagents = list("dr_gibb" = 30)
+ list_reagents = list(/datum/reagent/consumable/dr_gibb = 30)
foodtype = SUGAR | JUNKFOOD
/obj/item/reagent_containers/food/drinks/soda_cans/pwr_game
name = "Pwr Game"
desc = "The only drink with the PWR that true gamers crave."
icon_state = "purple_can"
- list_reagents = list("pwr_game" = 30)
+ list_reagents = list(/datum/reagent/consumable/pwr_game = 30)
/obj/item/reagent_containers/food/drinks/soda_cans/shamblers
name = "Shambler's juice"
desc = "~Shake me up some of that Shambler's Juice!~"
icon_state = "shamblers"
- list_reagents = list("shamblers" = 30)
+ list_reagents = list(/datum/reagent/consumable/shamblers = 30)
foodtype = SUGAR | JUNKFOOD
/obj/item/reagent_containers/food/drinks/soda_cans/grey_bull
name = "Grey Bull"
desc = "Grey Bull, it gives you gloves!"
icon_state = "energy_drink"
- list_reagents = list("grey_bull" = 20)
+ list_reagents = list(/datum/reagent/consumable/grey_bull = 20)
foodtype = SUGAR | JUNKFOOD
/obj/item/reagent_containers/food/drinks/soda_cans/air
name = "canned air"
desc = "There is no air shortage. Do not drink."
icon_state = "air"
- list_reagents = list("nitrogen" = 24, "oxygen" = 6)
+ list_reagents = list(/datum/reagent/nitrogen = 24, /datum/reagent/oxygen = 6)
diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
index b5f5aeb22a6..9175ee7a4b1 100644
--- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
@@ -142,99 +142,99 @@
name = "Griffeater gin"
desc = "A bottle of high quality gin, produced in the New London Space Station."
icon_state = "ginbottle"
- list_reagents = list("gin" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/gin = 100)
/obj/item/reagent_containers/food/drinks/bottle/whiskey
name = "Uncle Git's special reserve"
desc = "A premium single-malt whiskey, gently matured inside the tunnels of a nuclear shelter. TUNNEL WHISKEY RULES."
icon_state = "whiskeybottle"
- list_reagents = list("whiskey" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 100)
/obj/item/reagent_containers/food/drinks/bottle/vodka
name = "Tunguska triple distilled"
desc = "Aah, vodka. Prime choice of drink AND fuel by Russians worldwide."
icon_state = "vodkabottle"
- list_reagents = list("vodka" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/vodka = 100)
/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka
name = "Badminka vodka"
desc = "The label's written in Cyrillic. All you can make out is the name and a word that looks vaguely like 'Vodka'."
icon_state = "badminka"
- list_reagents = list("vodka" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/vodka = 100)
/obj/item/reagent_containers/food/drinks/bottle/tequila
name = "Caccavo guaranteed quality tequila"
desc = "Made from premium petroleum distillates, pure thalidomide and other fine quality ingredients!"
icon_state = "tequilabottle"
- list_reagents = list("tequila" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/tequila = 100)
/obj/item/reagent_containers/food/drinks/bottle/bottleofnothing
name = "bottle of nothing"
desc = "A bottle filled with nothing."
icon_state = "bottleofnothing"
- list_reagents = list("nothing" = 100)
+ list_reagents = list(/datum/reagent/consumable/nothing = 100)
foodtype = NONE
/obj/item/reagent_containers/food/drinks/bottle/patron
name = "Wrapp Artiste Patron"
desc = "Silver laced tequila, served in space night clubs across the galaxy."
icon_state = "patronbottle"
- list_reagents = list("patron" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/patron = 100)
/obj/item/reagent_containers/food/drinks/bottle/rum
name = "Captain Pete's Cuban spiced rum"
desc = "This isn't just rum, oh no. It's practically GRIFF in a bottle."
icon_state = "rumbottle"
- list_reagents = list("rum" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/rum = 100)
/obj/item/reagent_containers/food/drinks/bottle/holywater
name = "flask of holy water"
desc = "A flask of the chaplain's holy water."
icon_state = "holyflask"
- list_reagents = list("holywater" = 100)
+ list_reagents = list(/datum/reagent/water/holywater = 100)
foodtype = NONE
/obj/item/reagent_containers/food/drinks/bottle/holywater/hell
desc = "A flask of holy water...it's been sitting in the Necropolis a while though."
- list_reagents = list("hell_water" = 100)
+ list_reagents = list(/datum/reagent/hellwater = 100)
/obj/item/reagent_containers/food/drinks/bottle/vermouth
name = "Goldeneye vermouth"
desc = "Sweet, sweet dryness~"
icon_state = "vermouthbottle"
- list_reagents = list("vermouth" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/vermouth = 100)
/obj/item/reagent_containers/food/drinks/bottle/kahlua
name = "Robert Robust's coffee liqueur"
desc = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936, HONK."
icon_state = "kahluabottle"
- list_reagents = list("kahlua" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/kahlua = 100)
foodtype = VEGETABLES
/obj/item/reagent_containers/food/drinks/bottle/goldschlager
name = "College Girl goldschlager"
desc = "Because they are the only ones who will drink 100 proof cinnamon schnapps."
icon_state = "goldschlagerbottle"
- list_reagents = list("goldschlager" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/goldschlager = 100)
/obj/item/reagent_containers/food/drinks/bottle/cognac
name = "Chateau de Baton premium cognac"
desc = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. You might as well not scream 'SHITCURITY' this time."
icon_state = "cognacbottle"
- list_reagents = list("cognac" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/cognac = 100)
/obj/item/reagent_containers/food/drinks/bottle/wine
name = "Doublebeard's bearded special wine"
desc = "A faint aura of unease and asspainery surrounds the bottle."
icon_state = "winebottle"
- list_reagents = list("wine" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/wine = 100)
foodtype = FRUIT | ALCOHOL
/obj/item/reagent_containers/food/drinks/bottle/absinthe
name = "extra-strong absinthe"
desc = "An strong alcoholic drink brewed and distributed by"
icon_state = "absinthebottle"
- list_reagents = list("absinthe" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/absinthe = 100)
/obj/item/reagent_containers/food/drinks/bottle/absinthe/Initialize()
. = ..()
@@ -287,7 +287,7 @@
name = "bottle of lizard wine"
desc = "An alcoholic beverage from Space China, made by infusing lizard tails in ethanol. Inexplicably popular among command staff."
icon_state = "lizardwine"
- list_reagents = list("lizardwine" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/lizardwine = 100)
foodtype = FRUIT | ALCOHOL
/obj/item/reagent_containers/food/drinks/bottle/hcider
@@ -295,19 +295,19 @@
desc = "Apple juice for adults."
icon_state = "hcider"
volume = 50
- list_reagents = list("hcider" = 50)
+ list_reagents = list(/datum/reagent/consumable/ethanol/hcider = 50)
/obj/item/reagent_containers/food/drinks/bottle/grappa
name = "Phillipes well-aged Grappa"
desc = "Bottle of Grappa."
icon_state = "grappabottle"
- list_reagents = list("grappa" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/grappa = 100)
/obj/item/reagent_containers/food/drinks/bottle/sake
name = "Ryo's traditional sake"
desc = "Sweet as can be, and burns like fire going down."
icon_state = "sakebottle"
- list_reagents = list("sake" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/sake = 100)
/obj/item/reagent_containers/food/drinks/bottle/sake/Initialize()
. = ..()
@@ -324,7 +324,7 @@
name = "Fernet Bronca"
desc = "A bottle of pure Fernet Bronca, produced in Cordoba Space Station"
icon_state = "fernetbottle"
- list_reagents = list("fernet" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/fernet = 100)
//////////////////////////JUICES AND STUFF ///////////////////////
@@ -337,7 +337,7 @@
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
isGlass = FALSE
- list_reagents = list("orangejuice" = 100)
+ list_reagents = list(/datum/reagent/consumable/orangejuice = 100)
foodtype = FRUIT
/obj/item/reagent_containers/food/drinks/bottle/cream
@@ -349,7 +349,7 @@
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
isGlass = FALSE
- list_reagents = list("cream" = 100)
+ list_reagents = list(/datum/reagent/consumable/cream = 100)
foodtype = DAIRY
/obj/item/reagent_containers/food/drinks/bottle/tomatojuice
@@ -361,7 +361,7 @@
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
isGlass = FALSE
- list_reagents = list("tomatojuice" = 100)
+ list_reagents = list(/datum/reagent/consumable/tomatojuice = 100)
foodtype = VEGETABLES
/obj/item/reagent_containers/food/drinks/bottle/limejuice
@@ -373,7 +373,7 @@
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
isGlass = FALSE
- list_reagents = list("limejuice" = 100)
+ list_reagents = list(/datum/reagent/consumable/limejuice = 100)
foodtype = FRUIT
/obj/item/reagent_containers/food/drinks/bottle/menthol
@@ -385,7 +385,7 @@
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
isGlass = FALSE
- list_reagents = list("menthol" = 100)
+ list_reagents = list(/datum/reagent/consumable/menthol = 100)
/obj/item/reagent_containers/food/drinks/bottle/grenadine
name = "Jester Grenadine"
@@ -393,7 +393,7 @@
custom_price = 10
icon_state = "grenadine"
isGlass = TRUE
- list_reagents = list("grenadine" = 100)
+ list_reagents = list(/datum/reagent/consumable/grenadine = 100)
foodtype = FRUIT
/obj/item/reagent_containers/food/drinks/bottle/applejack
@@ -402,7 +402,7 @@
custom_price = 10
icon_state = "applejack_bottle"
isGlass = TRUE
- list_reagents = list("applejack" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/applejack = 100)
foodtype = FRUIT
/obj/item/reagent_containers/food/drinks/bottle/champagne
@@ -411,13 +411,13 @@
custom_premium_price = 200
icon_state = "champagne_bottle"
isGlass = TRUE
- list_reagents = list("champagne" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/champagne = 100)
/obj/item/reagent_containers/food/drinks/bottle/blazaam
name = "Ginbad's Blazaam"
desc = "You feel like you should give the bottle a good rub before opening."
icon_state = "blazaambottle"
- list_reagents = list("blazaam" = 100)
+ list_reagents = list(/datum/reagent/consumable/ethanol/blazaam = 100)
/obj/item/reagent_containers/food/drinks/bottle/trappist
name = "Mont de Requin Trappistes Bleu"
@@ -425,7 +425,7 @@
custom_premium_price = 50
icon_state = "trappistbottle"
volume = 50
- list_reagents = list("trappist" = 50)
+ list_reagents = list(/datum/reagent/consumable/ethanol/trappist = 50)
////////////////////////// MOLOTOV ///////////////////////
diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm
index c364722e115..c3b5739a7ce 100644
--- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm
@@ -83,15 +83,15 @@
/obj/item/reagent_containers/food/drinks/drinkingglass/filled/soda
name = "Soda Water"
- list_reagents = list("sodawater" = 50)
+ list_reagents = list(/datum/reagent/consumable/sodawater = 50)
/obj/item/reagent_containers/food/drinks/drinkingglass/filled/cola
name = "Space Cola"
- list_reagents = list("cola" = 50)
+ list_reagents = list(/datum/reagent/consumable/space_cola = 50)
/obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola
name = "Nuka Cola"
- list_reagents = list("nuka_cola" = 50)
+ list_reagents = list(/datum/reagent/consumable/nuka_cola = 50)
/obj/item/reagent_containers/food/drinks/drinkingglass/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/reagent_containers/food/snacks/egg)) //breaking eggs
@@ -101,7 +101,7 @@
to_chat(user, "[src] is full.")
else
to_chat(user, "You break [E] in [src].")
- reagents.add_reagent("eggyolk", 5)
+ reagents.add_reagent(/datum/reagent/consumable/eggyolk, 5)
qdel(E)
return
else
diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm
index 8039e208853..382d3197cbd 100644
--- a/code/modules/food_and_drinks/food/condiment.dm
+++ b/code/modules/food_and_drinks/food/condiment.dm
@@ -13,20 +13,25 @@
reagent_flags = OPENCONTAINER
possible_transfer_amounts = list(1, 5, 10, 15, 20, 25, 30, 50)
volume = 50
- //Possible_states has the reagent id as key and a list of, in order, the icon_state, the name and the desc as values. Used in the on_reagent_change(changetype) to change names, descs and sprites.
+ //Possible_states has the reagent type as key and a list of, in order, the icon_state, the name and the desc as values. Used in the on_reagent_change(changetype) to change names, descs and sprites.
var/list/possible_states = list(
- "ketchup" = list("ketchup", "ketchup bottle", "You feel more American already."),
- "capsaicin" = list("hotsauce", "hotsauce bottle", "You can almost TASTE the stomach ulcers now!"),
- "enzyme" = list("enzyme", "universal enzyme bottle", "Used in cooking various dishes"),
- "soysauce" = list("soysauce", "soy sauce bottle", "A salty soy-based flavoring"),
- "frostoil" = list("coldsauce", "coldsauce bottle", "Leaves the tongue numb in its passage"),
- "sodiumchloride" = list("saltshakersmall", "salt shaker", "Salt. From space oceans, presumably"),
- "blackpepper" = list("peppermillsmall", "pepper mill", "Often used to flavor food or make people sneeze"),
- "cornoil" = list("oliveoil", "corn oil bottle", "A delicious oil used in cooking. Made from corn"),
- "sugar" = list("emptycondiment", "sugar bottle", "Tasty spacey sugar!"),
- "mayonnaise" = list("mayonnaise", "mayonnaise jar", "An oily condiment made from egg yolks."))
+ /datum/reagent/consumable/ketchup = list("ketchup", "ketchup bottle", "You feel more American already."),
+ /datum/reagent/consumable/capsaicin = list("hotsauce", "hotsauce bottle", "You can almost TASTE the stomach ulcers now!"),
+ /datum/reagent/consumable/enzyme = list("enzyme", "universal enzyme bottle", "Used in cooking various dishes"),
+ /datum/reagent/consumable/soysauce = list("soysauce", "soy sauce bottle", "A salty soy-based flavoring"),
+ /datum/reagent/consumable/frostoil = list("coldsauce", "coldsauce bottle", "Leaves the tongue numb in its passage"),
+ /datum/reagent/consumable/sodiumchloride = list("saltshakersmall", "salt shaker", "Salt. From space oceans, presumably"),
+ /datum/reagent/consumable/blackpepper = list("peppermillsmall", "pepper mill", "Often used to flavor food or make people sneeze"),
+ /datum/reagent/consumable/cornoil = list("oliveoil", "corn oil bottle", "A delicious oil used in cooking. Made from corn"),
+ /datum/reagent/consumable/sugar = list("emptycondiment", "sugar bottle", "Tasty spacey sugar!"),
+ /datum/reagent/consumable/mayonnaise = list("mayonnaise", "mayonnaise jar", "An oily condiment made from egg yolks."),
+ )
var/originalname = "condiment" //Can't use initial(name) for this. This stores the name set by condimasters.
+/obj/item/reagent_containers/food/condiment/Initialize()
+ . = ..()
+ possible_states = typelist("possible_states", possible_states)
+
/obj/item/reagent_containers/food/condiment/suicide_act(mob/living/carbon/user)
user.visible_message("[user] is trying to eat the entire [src]! It looks like [user.p_they()] forgot how food works!")
return OXYLOSS
@@ -114,12 +119,12 @@
name = "universal enzyme"
desc = "Used in cooking various dishes."
icon_state = "enzyme"
- list_reagents = list("enzyme" = 50)
+ list_reagents = list(/datum/reagent/consumable/enzyme = 50)
/obj/item/reagent_containers/food/condiment/sugar
name = "sugar bottle"
desc = "Tasty spacey sugar!"
- list_reagents = list("sugar" = 50)
+ list_reagents = list(/datum/reagent/consumable/sugar = 50)
/obj/item/reagent_containers/food/condiment/saltshaker //Separate from above since it's a small shaker rather then
name = "salt shaker" // a large one.
@@ -128,7 +133,7 @@
possible_transfer_amounts = list(1,20) //for clown turning the lid off
amount_per_transfer_from_this = 1
volume = 20
- list_reagents = list("sodiumchloride" = 20)
+ list_reagents = list(/datum/reagent/consumable/sodiumchloride = 20)
possible_states = list()
/obj/item/reagent_containers/food/condiment/saltshaker/on_reagent_change(changetype)
@@ -151,11 +156,11 @@
if(!proximity)
return
if(isturf(target))
- if(!reagents.has_reagent("sodiumchloride", 2))
+ if(!reagents.has_reagent(/datum/reagent/consumable/sodiumchloride, 2))
to_chat(user, "You don't have enough salt to make a pile!")
return
user.visible_message("[user] shakes some salt onto [target].", "You shake some salt onto [target].")
- reagents.remove_reagent("sodiumchloride", 2)
+ reagents.remove_reagent(/datum/reagent/consumable/sodiumchloride, 2)
new/obj/effect/decal/cleanable/food/salt(target)
return
@@ -166,7 +171,7 @@
possible_transfer_amounts = list(1,20) //for clown turning the lid off
amount_per_transfer_from_this = 1
volume = 20
- list_reagents = list("blackpepper" = 20)
+ list_reagents = list(/datum/reagent/consumable/blackpepper = 20)
possible_states = list()
/obj/item/reagent_containers/food/condiment/peppermill/on_reagent_change(changetype)
@@ -182,7 +187,7 @@
item_state = "carton"
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
- list_reagents = list("milk" = 50)
+ list_reagents = list(/datum/reagent/consumable/milk = 50)
possible_states = list()
/obj/item/reagent_containers/food/condiment/flour
@@ -190,7 +195,7 @@
desc = "A big bag of flour. Good for baking!"
icon_state = "flour"
item_state = "flour"
- list_reagents = list("flour" = 30)
+ list_reagents = list(/datum/reagent/consumable/flour = 30)
possible_states = list()
/obj/item/reagent_containers/food/condiment/soymilk
@@ -200,7 +205,7 @@
item_state = "carton"
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
- list_reagents = list("soymilk" = 50)
+ list_reagents = list(/datum/reagent/consumable/soymilk = 50)
possible_states = list()
/obj/item/reagent_containers/food/condiment/rice
@@ -208,21 +213,21 @@
desc = "A big bag of rice. Good for cooking!"
icon_state = "rice"
item_state = "flour"
- list_reagents = list("rice" = 30)
+ list_reagents = list(/datum/reagent/consumable/rice = 30)
possible_states = list()
/obj/item/reagent_containers/food/condiment/soysauce
name = "soy sauce"
desc = "A salty soy-based flavoring."
icon_state = "soysauce"
- list_reagents = list("soysauce" = 50)
+ list_reagents = list(/datum/reagent/consumable/soysauce = 50)
possible_states = list()
/obj/item/reagent_containers/food/condiment/mayonnaise
name = "mayonnaise"
desc = "An oily condiment made from egg yolks."
icon_state = "mayonnaise"
- list_reagents = list("mayonnaise" = 50)
+ list_reagents = list(/datum/reagent/consumable/mayonnaise = 50)
possible_states = list()
@@ -236,7 +241,17 @@
volume = 10
amount_per_transfer_from_this = 10
possible_transfer_amounts = list()
- possible_states = list("ketchup" = list("condi_ketchup", "Ketchup", "You feel more American already."), "capsaicin" = list("condi_hotsauce", "Hotsauce", "You can almost TASTE the stomach ulcers now!"), "soysauce" = list("condi_soysauce", "Soy Sauce", "A salty soy-based flavoring"), "frostoil" = list("condi_frostoil", "Coldsauce", "Leaves the tongue numb in it's passage"), "sodiumchloride" = list("condi_salt", "Salt Shaker", "Salt. From space oceans, presumably"), "blackpepper" = list("condi_pepper", "Pepper Mill", "Often used to flavor food or make people sneeze"), "cornoil" = list("condi_cornoil", "Corn Oil", "A delicious oil used in cooking. Made from corn"), "sugar" = list("condi_sugar", "Sugar", "Tasty spacey sugar!"), "astrotame" = list("condi_astrotame", "Astrotame", "The sweetness of a thousand sugars but none of the calories."))
+ possible_states = list(
+ /datum/reagent/consumable/ketchup = list("condi_ketchup", "Ketchup", "You feel more American already."),
+ /datum/reagent/consumable/capsaicin = list("condi_hotsauce", "Hotsauce", "You can almost TASTE the stomach ulcers now!"),
+ /datum/reagent/consumable/soysauce = list("condi_soysauce", "Soy Sauce", "A salty soy-based flavoring"),
+ /datum/reagent/consumable/frostoil = list("condi_frostoil", "Coldsauce", "Leaves the tongue numb in it's passage"),
+ /datum/reagent/consumable/sodiumchloride = list("condi_salt", "Salt Shaker", "Salt. From space oceans, presumably"),
+ /datum/reagent/consumable/blackpepper = list("condi_pepper", "Pepper Mill", "Often used to flavor food or make people sneeze"),
+ /datum/reagent/consumable/cornoil = list("condi_cornoil", "Corn Oil", "A delicious oil used in cooking. Made from corn"),
+ /datum/reagent/consumable/sugar = list("condi_sugar", "Sugar", "Tasty spacey sugar!"),
+ /datum/reagent/consumable/astrotame = list("condi_astrotame", "Astrotame", "The sweetness of a thousand sugars but none of the calories."),
+ )
/obj/item/reagent_containers/food/condiment/pack/attack(mob/M, mob/user, def_zone) //Can't feed these to people directly.
return
@@ -279,15 +294,15 @@
/obj/item/reagent_containers/food/condiment/pack/ketchup
name = "ketchup pack"
originalname = "ketchup"
- list_reagents = list("ketchup" = 10)
+ list_reagents = list(/datum/reagent/consumable/ketchup = 10)
//Hot sauce
/obj/item/reagent_containers/food/condiment/pack/hotsauce
name = "hotsauce pack"
originalname = "hotsauce"
- list_reagents = list("capsaicin" = 10)
+ list_reagents = list(/datum/reagent/consumable/capsaicin = 10)
/obj/item/reagent_containers/food/condiment/pack/astrotame
name = "astrotame pack"
originalname = "astrotame"
- list_reagents = list("astrotame" = 5)
\ No newline at end of file
+ list_reagents = list(/datum/reagent/consumable/astrotame = 5)
diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm
index fafc0cabe93..c593227733f 100644
--- a/code/modules/food_and_drinks/food/customizables.dm
+++ b/code/modules/food_and_drinks/food/customizables.dm
@@ -187,7 +187,7 @@
desc = "Delicious food on a stick."
ingredients_placement = INGREDIENTS_LINE
trash = /obj/item/stack/rods
- list_reagents = list("nutriment" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1)
ingMax = 6
icon_state = "rod"
@@ -302,7 +302,7 @@
else if(contents.len >= 20)
to_chat(user, "You can't add more ingredients to [src]!")
else
- if(reagents.has_reagent("water", 10)) //are we starting a soup or a salad?
+ if(reagents.has_reagent(/datum/reagent/water, 10)) //are we starting a soup or a salad?
var/obj/item/reagent_containers/food/snacks/customizable/A = new/obj/item/reagent_containers/food/snacks/customizable/soup(get_turf(src))
A.initialize_custom_food(src, S, user)
else
diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm
index 70946652ab4..d3c78afca5f 100644
--- a/code/modules/food_and_drinks/food/snacks.dm
+++ b/code/modules/food_and_drinks/food/snacks.dm
@@ -21,8 +21,8 @@ Here is an example of the new formatting for anyone who wants to add more food i
icon_state = "xburger" //Refers to an icon in food.dmi
/obj/item/reagent_containers/food/snacks/xenoburger/Initialize() //Don't mess with this. | nO I WILL MESS WITH THIS
. = ..() //Same here.
- reagents.add_reagent("xenomicrobes", 10) //This is what is in the food item. you may copy/paste
- reagents.add_reagent("nutriment", 2) //this line of code for all the contents.
+ reagents.add_reagent(/datum/reagent/xenomicrobes, 10) //This is what is in the food item. you may copy/paste
+ reagents.add_reagent(/datum/reagent/consumable/nutriment, 2) //this line of code for all the contents.
bitesize = 3 //This is the amount each bite consumes.
```
@@ -60,7 +60,7 @@ All foods are distributed among various categories. Use common sense.
if(list_reagents)
for(var/rid in list_reagents)
var/amount = list_reagents[rid]
- if(rid == "nutriment" || rid == "vitamin")
+ if(rid == /datum/reagent/consumable/nutriment || rid == /datum/reagent/consumable/nutriment/vitamin)
reagents.add_reagent(rid, amount, tastes.Copy())
else
reagents.add_reagent(rid, amount)
@@ -206,7 +206,7 @@ All foods are distributed among various categories. Use common sense.
if(bonus_reagents && bonus_reagents.len)
for(var/r_id in bonus_reagents)
var/amount = bonus_reagents[r_id]
- if(r_id == "nutriment" || r_id == "vitamin")
+ if(r_id == /datum/reagent/consumable/nutriment || r_id == /datum/reagent/consumable/nutriment/vitamin)
reagents.add_reagent(r_id, amount, tastes)
else
reagents.add_reagent(r_id, amount)
@@ -285,7 +285,7 @@ All foods are distributed among various categories. Use common sense.
if(S.bonus_reagents && S.bonus_reagents.len)
for(var/r_id in S.bonus_reagents)
var/amount = S.bonus_reagents[r_id] * cooking_efficiency
- if(r_id == "nutriment" || r_id == "vitamin")
+ if(r_id == /datum/reagent/consumable/nutriment || r_id == /datum/reagent/consumable/nutriment/vitamin)
S.reagents.add_reagent(r_id, amount, tastes)
else
S.reagents.add_reagent(r_id, amount)
diff --git a/code/modules/food_and_drinks/food/snacks/dough.dm b/code/modules/food_and_drinks/food/snacks/dough.dm
index 6ae8836b284..e071fb3df72 100644
--- a/code/modules/food_and_drinks/food/snacks/dough.dm
+++ b/code/modules/food_and_drinks/food/snacks/dough.dm
@@ -8,7 +8,7 @@
icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "dough"
cooked_type = /obj/item/reagent_containers/food/snacks/store/bread/plain
- list_reagents = list("nutriment" = 6)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6)
w_class = WEIGHT_CLASS_NORMAL
tastes = list("dough" = 1)
foodtype = GRAIN
@@ -36,7 +36,7 @@
slice_path = /obj/item/reagent_containers/food/snacks/doughslice
slices_num = 3
cooked_type = /obj/item/reagent_containers/food/snacks/pizzabread
- list_reagents = list("nutriment" = 6)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6)
w_class = WEIGHT_CLASS_NORMAL
tastes = list("dough" = 1)
foodtype = GRAIN
@@ -47,7 +47,7 @@
icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "pizzabread"
custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/pizza
- list_reagents = list("nutriment" = 7)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 7)
w_class = WEIGHT_CLASS_NORMAL
tastes = list("bread" = 1)
foodtype = GRAIN
@@ -69,7 +69,7 @@
desc = "A base for any self-respecting burger."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "bun"
- list_reagents = list("nutriment" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1)
custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/burger
filling_color = "#CD853F"
tastes = list("bun" = 1) // the bun tastes of bun.
@@ -81,7 +81,7 @@
icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "cakebatter"
cooked_type = /obj/item/reagent_containers/food/snacks/store/cake/plain
- list_reagents = list("nutriment" = 9)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 9)
w_class = WEIGHT_CLASS_NORMAL
tastes = list("batter" = 1)
foodtype = GRAIN | DAIRY
@@ -106,7 +106,7 @@
slice_path = /obj/item/reagent_containers/food/snacks/rawpastrybase
slices_num = 3
cooked_type = /obj/item/reagent_containers/food/snacks/pie/plain
- list_reagents = list("nutriment" = 9)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 9)
w_class = WEIGHT_CLASS_NORMAL
tastes = list("dough" = 1)
foodtype = GRAIN | DAIRY
@@ -118,7 +118,7 @@
icon_state = "rawpastrybase"
cooked_type = /obj/item/reagent_containers/food/snacks/pastrybase
filling_color = "#CD853F"
- list_reagents = list("nutriment" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1)
tastes = list("raw pastry" = 1)
foodtype = GRAIN | DAIRY
@@ -127,7 +127,7 @@
desc = "A base for any self-respecting pastry."
icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "pastrybase"
- list_reagents = list("nutriment" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1)
filling_color = "#CD853F"
tastes = list("pastry" = 1)
foodtype = GRAIN | DAIRY
diff --git a/code/modules/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm
index ce74cf62bc4..0362b873df6 100644
--- a/code/modules/food_and_drinks/food/snacks/meat.dm
+++ b/code/modules/food_and_drinks/food/snacks/meat.dm
@@ -8,7 +8,7 @@
icon_state = "meat"
dried_type = /obj/item/reagent_containers/food/snacks/sosjerky/healthy
bitesize = 3
- list_reagents = list("nutriment" = 3, "cooking_oil" = 2) //Meat has fats that a food processor can process into cooking oil
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/cooking_oil = 2) //Meat has fats that a food processor can process into cooking oil
cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/plain
slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/plain
slices_num = 3
@@ -61,7 +61,7 @@
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime
icon_state = "slimemeat"
desc = "Because jello wasn't offensive enough to vegans."
- list_reagents = list("nutriment" = 3, "slimejelly" = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/toxin/slimejelly = 3)
filling_color = "#00FFFF"
tastes = list("slime" = 1, "jelly" = 1)
foodtype = MEAT | RAW | TOXIC
@@ -69,7 +69,7 @@
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/golem
icon_state = "golemmeat"
desc = "Edible rocks, welcome to the future."
- list_reagents = list("nutriment" = 3, "iron" = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/iron = 3)
filling_color = "#A9A9A9"
tastes = list("rock" = 1)
foodtype = MEAT | RAW | GROSS
@@ -104,7 +104,7 @@
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/fly
icon_state = "flymeat"
desc = "Nothing says tasty like maggot filled radioactive mutant flesh."
- list_reagents = list("nutriment" = 3, "uranium" = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/uranium = 3)
tastes = list("maggots" = 1, "the inside of a reactor" = 1)
foodtype = MEAT | RAW | GROSS
@@ -136,7 +136,7 @@
icon_state = "etherealmeat"
desc = "So shiny you feel like ingesting it might make you shine too"
filling_color = "#97ee63"
- list_reagents = list("liquidelectricity" = 3)
+ list_reagents = list(/datum/reagent/consumable/liquidelectricity = 3)
tastes = list("pure electrictiy" = 2, "meat" = 1)
foodtype = RAW | MEAT | TOXIC
@@ -177,7 +177,7 @@
name = "killer tomato meat"
desc = "A slice from a huge tomato."
icon_state = "tomatomeat"
- list_reagents = list("nutriment" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2)
filling_color = "#FF0000"
cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/killertomato
slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/killertomato
@@ -188,7 +188,7 @@
name = "bear meat"
desc = "A very manly slab of meat."
icon_state = "bearmeat"
- list_reagents = list("nutriment" = 12, "morphine" = 5, "vitamin" = 2, "cooking_oil" = 6)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 12, /datum/reagent/medicine/morphine = 5, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/cooking_oil = 6)
filling_color = "#FFB6C1"
cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/bear
slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/bear
@@ -200,7 +200,7 @@
name = "xeno meat"
desc = "A slab of meat."
icon_state = "xenomeat"
- list_reagents = list("nutriment" = 3, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1)
bitesize = 4
filling_color = "#32CD32"
cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/xeno
@@ -212,7 +212,7 @@
name = "spider meat"
desc = "A slab of spider meat."
icon_state = "spidermeat"
- list_reagents = list("nutriment" = 3, "toxin" = 3, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/toxin = 3, /datum/reagent/consumable/nutriment/vitamin = 1)
filling_color = "#7CFC00"
cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/spider
slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/spider
@@ -223,7 +223,7 @@
/obj/item/reagent_containers/food/snacks/meat/slab/goliath
name = "goliath meat"
desc = "A slab of goliath meat. It's not very edible now, but it cooks great in lava."
- list_reagents = list("nutriment" = 3, "toxin" = 5, "cooking_oil" = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/toxin = 5, /datum/reagent/consumable/cooking_oil = 3)
icon_state = "goliathmeat"
tastes = list("meat" = 1)
foodtype = RAW | MEAT | TOXIC
@@ -236,7 +236,7 @@
/obj/item/reagent_containers/food/snacks/meat/slab/meatwheat
name = "meatwheat clump"
desc = "This doesn't look like meat, but your standards aren't that high to begin with."
- list_reagents = list("nutriment" = 3, "vitamin" = 2, "blood" = 5, "cooking_oil" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/blood = 5, /datum/reagent/consumable/cooking_oil = 1)
filling_color = rgb(150, 0, 0)
icon_state = "meatwheat_clump"
bitesize = 4
@@ -246,7 +246,7 @@
/obj/item/reagent_containers/food/snacks/meat/slab/gorilla
name = "gorilla meat"
desc = "Much meatier than monkey meat."
- list_reagents = list("nutriment" = 5, "vitamin" = 1, "cooking_oil" = 5) //Plenty of fat!
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/consumable/cooking_oil = 5) //Plenty of fat!
/obj/item/reagent_containers/food/snacks/meat/rawbacon
name = "raw piece of bacon"
@@ -254,7 +254,7 @@
icon_state = "bacon"
cooked_type = /obj/item/reagent_containers/food/snacks/meat/bacon
bitesize = 2
- list_reagents = list("nutriment" = 1, "cooking_oil" = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/cooking_oil = 3)
filling_color = "#B22222"
tastes = list("bacon" = 1)
foodtype = RAW | MEAT
@@ -263,8 +263,8 @@
name = "piece of bacon"
desc = "A delicious piece of bacon."
icon_state = "baconcooked"
- list_reagents = list("nutriment" = 2)
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1, "cooking_oil" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/consumable/cooking_oil = 2)
filling_color = "#854817"
tastes = list("bacon" = 1)
foodtype = MEAT
@@ -272,7 +272,7 @@
/obj/item/reagent_containers/food/snacks/meat/slab/gondola
name = "gondola meat"
desc = "According to legends of old, consuming raw gondola flesh grants one inner peace."
- list_reagents = list("nutriment" = 3, "tranquility" = 5, "cooking_oil" = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/tranquility = 5, /datum/reagent/consumable/cooking_oil = 3)
tastes = list("meat" = 4, "tranquility" = 1)
filling_color = "#9A6750"
cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/gondola
@@ -282,7 +282,7 @@
/obj/item/reagent_containers/food/snacks/meat/slab/penguin
name = "penguin meat"
desc = "A slab of penguin meat."
- list_reagents = list("nutriment" = 2, "cooking_oil" = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/cooking_oil = 3)
cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/penguin
slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/penguin
filling_color = "#B22222"
@@ -295,8 +295,8 @@
name = "steak"
desc = "A piece of hot spicy meat."
icon_state = "meatsteak"
- list_reagents = list("nutriment" = 5)
- bonus_reagents = list("nutriment" = 2, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1)
trash = /obj/item/trash/plate
filling_color = "#B22222"
foodtype = MEAT
@@ -353,7 +353,7 @@
icon_state = "rawcutlet"
cooked_type = /obj/item/reagent_containers/food/snacks/meat/cutlet/plain
bitesize = 2
- list_reagents = list("nutriment" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1)
filling_color = "#B22222"
tastes = list("meat" = 1)
var/meat_type = "meat"
@@ -417,8 +417,8 @@
desc = "A cooked meat cutlet."
icon_state = "cutlet"
bitesize = 2
- list_reagents = list("nutriment" = 2)
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
filling_color = "#B22222"
tastes = list("meat" = 1)
foodtype = MEAT
diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm
index 02dd5edfd94..82b89556f80 100644
--- a/code/modules/food_and_drinks/food/snacks_bread.dm
+++ b/code/modules/food_and_drinks/food/snacks_bread.dm
@@ -12,7 +12,7 @@
bitesize = 2
custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/sandwich
filling_color = "#FFA500"
- list_reagents = list("nutriment" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2)
slot_flags = ITEM_SLOT_HEAD
customfoodfilling = 0 //to avoid infinite bread-ception
foodtype = GRAIN
@@ -21,8 +21,8 @@
name = "bread"
desc = "Some plain old earthen bread."
icon_state = "bread"
- bonus_reagents = list("nutriment" = 7)
- list_reagents = list("nutriment" = 10)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 7)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 10)
custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/bread
slice_path = /obj/item/reagent_containers/food/snacks/breadslice/plain
tastes = list("bread" = 10)
@@ -40,8 +40,8 @@
desc = "The culinary base of every self-respecting eloquen/tg/entleman."
icon_state = "meatbread"
slice_path = /obj/item/reagent_containers/food/snacks/breadslice/meat
- bonus_reagents = list("nutriment" = 5, "vitamin" = 10)
- list_reagents = list("nutriment" = 30, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 10)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("bread" = 10, "meat" = 10)
foodtype = GRAIN | MEAT
@@ -56,8 +56,8 @@
desc = "The culinary base of every self-respecting eloquen/tg/entleman. Extra Heretical."
icon_state = "xenomeatbread"
slice_path = /obj/item/reagent_containers/food/snacks/breadslice/xenomeat
- bonus_reagents = list("nutriment" = 5, "vitamin" = 10)
- list_reagents = list("nutriment" = 30, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 10)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("bread" = 10, "acid" = 10)
foodtype = GRAIN | MEAT
@@ -66,7 +66,7 @@
desc = "A slice of delicious meatbread. Extra Heretical."
icon_state = "xenobreadslice"
filling_color = "#32CD32"
- list_reagents = list("nutriment" = 6, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1)
foodtype = GRAIN | MEAT
/obj/item/reagent_containers/food/snacks/store/bread/spidermeat
@@ -74,8 +74,8 @@
desc = "Reassuringly green meatloaf made from spider meat."
icon_state = "spidermeatbread"
slice_path = /obj/item/reagent_containers/food/snacks/breadslice/spidermeat
- bonus_reagents = list("nutriment" = 5, "vitamin" = 10)
- list_reagents = list("nutriment" = 30, "toxin" = 15, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 10)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/toxin = 15, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("bread" = 10, "cobwebs" = 5)
foodtype = GRAIN | MEAT | TOXIC
@@ -84,7 +84,7 @@
desc = "A slice of meatloaf made from an animal that most likely still wants you dead."
icon_state = "xenobreadslice"
filling_color = "#7CFC00"
- list_reagents = list("nutriment" = 6, "toxin" = 3, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/toxin = 3, /datum/reagent/consumable/nutriment/vitamin = 1)
foodtype = GRAIN | MEAT | TOXIC
/obj/item/reagent_containers/food/snacks/store/bread/banana
@@ -92,8 +92,8 @@
desc = "A heavenly and filling treat."
icon_state = "bananabread"
slice_path = /obj/item/reagent_containers/food/snacks/breadslice/banana
- bonus_reagents = list("nutriment" = 5, "banana" = 20)
- list_reagents = list("nutriment" = 20, "banana" = 20)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/banana = 20)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/banana = 20)
tastes = list("bread" = 10) // bananjuice will also flavour
foodtype = GRAIN | FRUIT
@@ -103,7 +103,7 @@
desc = "A slice of delicious banana bread."
icon_state = "bananabreadslice"
filling_color = "#FFD700"
- list_reagents = list("nutriment" = 4, "banana" = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/banana = 4)
foodtype = GRAIN | FRUIT
/obj/item/reagent_containers/food/snacks/store/bread/tofu
@@ -111,8 +111,8 @@
desc = "Like meatbread but for vegetarians. Not guaranteed to give superpowers."
icon_state = "tofubread"
slice_path = /obj/item/reagent_containers/food/snacks/breadslice/tofu
- bonus_reagents = list("nutriment" = 5, "vitamin" = 10)
- list_reagents = list("nutriment" = 20, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 10)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("bread" = 10, "tofu" = 10)
foodtype = GRAIN | VEGETABLES
@@ -121,7 +121,7 @@
desc = "A slice of delicious tofubread."
icon_state = "tofubreadslice"
filling_color = "#FF8C00"
- list_reagents = list("nutriment" = 4, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 1)
foodtype = GRAIN | VEGETABLES
/obj/item/reagent_containers/food/snacks/store/bread/creamcheese
@@ -129,8 +129,8 @@
desc = "Yum yum yum!"
icon_state = "creamcheesebread"
slice_path = /obj/item/reagent_containers/food/snacks/breadslice/creamcheese
- bonus_reagents = list("nutriment" = 5, "vitamin" = 5)
- list_reagents = list("nutriment" = 20, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("bread" = 10, "cheese" = 10)
foodtype = GRAIN | DAIRY
@@ -139,7 +139,7 @@
desc = "A slice of yum!"
icon_state = "creamcheesebreadslice"
filling_color = "#FF8C00"
- list_reagents = list("nutriment" = 4, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 1)
foodtype = GRAIN | DAIRY
/obj/item/reagent_containers/food/snacks/store/bread/mimana
@@ -147,8 +147,8 @@
desc = "Best eaten in silence."
icon_state = "mimanabread"
slice_path = /obj/item/reagent_containers/food/snacks/breadslice/mimana
- bonus_reagents = list("nutriment" = 5, "vitamin" = 5)
- list_reagents = list("nutriment" = 20, "mutetoxin" = 5, "nothing" = 5, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/toxin/mutetoxin = 5, /datum/reagent/consumable/nothing = 5, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("bread" = 10, "silence" = 10)
foodtype = GRAIN | FRUIT
@@ -157,7 +157,7 @@
desc = "A slice of silence!"
icon_state = "mimanabreadslice"
filling_color = "#C0C0C0"
- list_reagents = list("nutriment" = 2, "mutetoxin" = 1, "nothing" = 1, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/toxin/mutetoxin = 1, /datum/reagent/consumable/nothing = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
foodtype = GRAIN | FRUIT
/obj/item/reagent_containers/food/snacks/breadslice/custom
@@ -172,8 +172,8 @@
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "baguette"
item_state = "baguette"
- bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
- list_reagents = list("nutriment" = 6, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1)
bitesize = 3
w_class = WEIGHT_CLASS_NORMAL
slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_BELT
@@ -186,8 +186,8 @@
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "garlicbread"
item_state = "garlicbread"
- bonus_reagents = list("nutriment" = 5, "vitamin" = 2)
- list_reagents = list("nutriment" = 5, "vitamin" = 4, "garlic" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 4, /datum/reagent/consumable/garlic = 2)
bitesize = 3
tastes = list("bread" = 1, "garlic" = 1, "butter" = 1)
foodtype = GRAIN
@@ -263,8 +263,8 @@
icon_state = "butteredtoast"
bitesize = 3
filling_color = "#FFA500"
- list_reagents = list("nutriment" = 4)
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("butter" = 1, "toast" = 1)
/obj/item/reagent_containers/food/snacks/butterbiscuit
@@ -273,8 +273,8 @@
icon = 'icons/obj/food/food.dmi'
icon_state = "butterbiscuit"
filling_color = "#F0E68C"
- list_reagents = list("nutriment" = 5)
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("butter" = 1, "biscuit" = 1)
/obj/item/reagent_containers/food/snacks/butterdog
@@ -284,8 +284,8 @@
icon_state = "butterdog"
bitesize = 1
filling_color = "#F1F49A"
- list_reagents = list("nutriment" = 5)
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("butter", "exotic butter")
/obj/item/reagent_containers/food/snacks/butterdog/ComponentInitialize()
diff --git a/code/modules/food_and_drinks/food/snacks_burgers.dm b/code/modules/food_and_drinks/food/snacks_burgers.dm
index d5153638bf1..83ffc7937e0 100644
--- a/code/modules/food_and_drinks/food/snacks_burgers.dm
+++ b/code/modules/food_and_drinks/food/snacks_burgers.dm
@@ -3,14 +3,14 @@
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "hburger"
bitesize = 3
- list_reagents = list("nutriment" = 6, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("bun" = 4)
foodtype = GRAIN | MEAT
/obj/item/reagent_containers/food/snacks/burger/plain
name = "burger"
desc = "The cornerstone of every nutritious breakfast."
- bonus_reagents = list("vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1)
foodtype = GRAIN | MEAT
/obj/item/reagent_containers/food/snacks/burger/plain/Initialize()
@@ -31,7 +31,7 @@
var/subjectjob = null
name = "human burger"
desc = "A bloody burger."
- bonus_reagents = list("vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 4)
foodtype = MEAT | GRAIN | GROSS
/obj/item/reagent_containers/food/snacks/burger/human/CheckParts(list/parts_list)
@@ -50,13 +50,13 @@
/obj/item/reagent_containers/food/snacks/burger/corgi
name = "corgi burger"
desc = "You monster."
- bonus_reagents = list("vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1)
foodtype = GRAIN | MEAT | GROSS
/obj/item/reagent_containers/food/snacks/burger/appendix
name = "appendix burger"
desc = "Tastes like appendicitis."
- bonus_reagents = list("nutriment" = 6, "vitamin" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 6)
icon_state = "appendixburger"
tastes = list("bun" = 4, "grass" = 2)
foodtype = GRAIN | MEAT | GROSS
@@ -65,7 +65,7 @@
name = "fillet -o- carp sandwich"
desc = "Almost like a carp is yelling somewhere... Give me back that fillet -o- carp, give me that carp."
icon_state = "fishburger"
- bonus_reagents = list("nutriment" = 2, "vitamin" = 3)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 3)
tastes = list("bun" = 4, "fish" = 4)
foodtype = GRAIN | MEAT
@@ -73,7 +73,7 @@
name = "tofu burger"
desc = "What.. is that meat?"
icon_state = "tofuburger"
- bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("bun" = 4, "tofu" = 4)
foodtype = GRAIN | VEGETABLES
@@ -81,8 +81,8 @@
name = "roburger"
desc = "The lettuce is the only organic component. Beep."
icon_state = "roburger"
- bonus_reagents = list("nutriment" = 2, "nanomachines" = 2, "vitamin" = 5)
- list_reagents = list("nutriment" = 6, "nanomachines" = 5, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/nanomachines = 2, /datum/reagent/consumable/nutriment/vitamin = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/nanomachines = 5, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("bun" = 4, "lettuce" = 2, "sludge" = 1)
foodtype = GRAIN | TOXIC
@@ -91,8 +91,8 @@
desc = "This massive patty looks like poison. Beep."
icon_state = "roburger"
volume = 120
- bonus_reagents = list("nutriment" = 5, "nanomachines" = 70, "vitamin" = 10)
- list_reagents = list("nutriment" = 6, "nanomachines" = 70, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/nanomachines = 70, /datum/reagent/consumable/nutriment/vitamin = 10)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/nanomachines = 70, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("bun" = 4, "lettuce" = 2, "sludge" = 1)
foodtype = GRAIN | TOXIC
@@ -100,7 +100,7 @@
name = "xenoburger"
desc = "Smells caustic. Tastes like heresy."
icon_state = "xburger"
- bonus_reagents = list("nutriment" = 2, "vitamin" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 6)
tastes = list("bun" = 4, "acid" = 4)
foodtype = GRAIN | MEAT
@@ -108,29 +108,29 @@
name = "bearger"
desc = "Best served rawr."
icon_state = "bearger"
- bonus_reagents = list("nutriment" = 3, "vitamin" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 6)
foodtype = GRAIN | MEAT
/obj/item/reagent_containers/food/snacks/burger/clown
name = "clown burger"
desc = "This tastes funny..."
icon_state = "clownburger"
- bonus_reagents = list("nutriment" = 4, "vitamin" = 6, "banana" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/consumable/banana = 6)
foodtype = GRAIN | FRUIT
/obj/item/reagent_containers/food/snacks/burger/mime
name = "mime burger"
desc = "Its taste defies language."
icon_state = "mimeburger"
- bonus_reagents = list("nutriment" = 4, "vitamin" = 6, "nothing" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/consumable/nothing = 6)
foodtype = GRAIN
/obj/item/reagent_containers/food/snacks/burger/brain
name = "brainburger"
desc = "A strange looking burger. It looks almost sentient."
icon_state = "brainburger"
- bonus_reagents = list("nutriment" = 6, "mannitol" = 6, "vitamin" = 5)
- list_reagents = list("nutriment" = 6, "mannitol" = 5, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/medicine/mannitol = 6, /datum/reagent/consumable/nutriment/vitamin = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/medicine/mannitol = 5, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("bun" = 4, "brains" = 2)
foodtype = GRAIN | MEAT | GROSS
@@ -138,7 +138,7 @@
name = "ghost burger"
desc = "Too Spooky!"
alpha = 125
- bonus_reagents = list("nutriment" = 5, "vitamin" = 12)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 12)
tastes = list("bun" = 4, "ectoplasm" = 2)
foodtype = GRAIN
@@ -147,7 +147,7 @@
desc = "Perfect for hiding the fact it's burnt to a crisp."
icon_state = "cburger"
color = "#DA0000FF"
- bonus_reagents = list("redcrayonpowder" = 10, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/red = 10, /datum/reagent/consumable/nutriment/vitamin = 5)
foodtype = GRAIN | MEAT
/obj/item/reagent_containers/food/snacks/burger/orange
@@ -155,7 +155,7 @@
desc = "Contains 0% juice."
icon_state = "cburger"
color = "#FF9300FF"
- bonus_reagents = list("orangecrayonpowder" = 10, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/orange = 10, /datum/reagent/consumable/nutriment/vitamin = 5)
foodtype = GRAIN | MEAT
/obj/item/reagent_containers/food/snacks/burger/yellow
@@ -163,7 +163,7 @@
desc = "Bright to the last bite."
icon_state = "cburger"
color = "#FFF200FF"
- bonus_reagents = list("yellowcrayonpowder" = 10, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/yellow = 10, /datum/reagent/consumable/nutriment/vitamin = 5)
foodtype = GRAIN | MEAT
/obj/item/reagent_containers/food/snacks/burger/green
@@ -171,7 +171,7 @@
desc = "It's not tainted meat, it's painted meat!"
icon_state = "cburger"
color = "#A8E61DFF"
- bonus_reagents = list("greencrayonpowder" = 10, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/green = 10, /datum/reagent/consumable/nutriment/vitamin = 5)
foodtype = GRAIN | MEAT
/obj/item/reagent_containers/food/snacks/burger/blue
@@ -179,7 +179,7 @@
desc = "Is this blue rare?"
icon_state = "cburger"
color = "#00B7EFFF"
- bonus_reagents = list("bluecrayonpowder" = 10, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/blue = 10, /datum/reagent/consumable/nutriment/vitamin = 5)
foodtype = GRAIN | MEAT
/obj/item/reagent_containers/food/snacks/burger/purple
@@ -187,7 +187,7 @@
desc = "Regal and low class at the same time."
icon_state = "cburger"
color = "#DA00FFFF"
- bonus_reagents = list("purplecrayonpowder" = 10, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/purple = 10, /datum/reagent/consumable/nutriment/vitamin = 5)
foodtype = GRAIN | MEAT
/obj/item/reagent_containers/food/snacks/burger/black
@@ -195,7 +195,7 @@
desc = "This is overcooked."
icon_state = "cburger"
color = "#1C1C1C"
- bonus_reagents = list("blackcrayonpowder" = 10, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/black = 10, /datum/reagent/consumable/nutriment/vitamin = 5)
foodtype = GRAIN | MEAT
/obj/item/reagent_containers/food/snacks/burger/white
@@ -203,14 +203,14 @@
desc = "Delicous Titanium!"
icon_state = "cburger"
color = "#FFFFFF"
- bonus_reagents = list("whitecrayonpowder" = 10, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/white = 10, /datum/reagent/consumable/nutriment/vitamin = 5)
foodtype = GRAIN | MEAT
/obj/item/reagent_containers/food/snacks/burger/spell
name = "spell burger"
desc = "This is absolutely Ei Nath."
icon_state = "spellburger"
- bonus_reagents = list("nutriment" = 6, "vitamin" = 10)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 10)
tastes = list("bun" = 4, "magic" = 2)
foodtype = GRAIN | MEAT
@@ -218,8 +218,8 @@
name = "big bite burger"
desc = "Forget the Big Mac. THIS is the future!"
icon_state = "bigbiteburger"
- bonus_reagents = list("vitamin" = 6)
- list_reagents = list("nutriment" = 10, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 6)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 2)
w_class = WEIGHT_CLASS_NORMAL
foodtype = GRAIN | MEAT
@@ -231,21 +231,21 @@
foodtype = GRAIN | MEAT
/obj/item/reagent_containers/food/snacks/burger/jelly/slime
- bonus_reagents = list("slimejelly" = 5, "vitamin" = 5)
- list_reagents = list("nutriment" = 6, "slimejelly" = 5, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/toxin/slimejelly = 5, /datum/reagent/consumable/nutriment/vitamin = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/toxin/slimejelly = 5, /datum/reagent/consumable/nutriment/vitamin = 1)
foodtype = GRAIN | TOXIC
/obj/item/reagent_containers/food/snacks/burger/jelly/cherry
- bonus_reagents = list("cherryjelly" = 5, "vitamin" = 5)
- list_reagents = list("nutriment" = 6, "cherryjelly" = 5, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/cherryjelly = 5, /datum/reagent/consumable/nutriment/vitamin = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/cherryjelly = 5, /datum/reagent/consumable/nutriment/vitamin = 1)
foodtype = GRAIN | FRUIT
/obj/item/reagent_containers/food/snacks/burger/superbite
name = "super bite burger"
desc = "This is a mountain of a burger. FOOD!"
icon_state = "superbiteburger"
- bonus_reagents = list("vitamin" = 10)
- list_reagents = list("nutriment" = 40, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 10)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 40, /datum/reagent/consumable/nutriment/vitamin = 5)
w_class = WEIGHT_CLASS_NORMAL
bitesize = 7
volume = 100
@@ -256,29 +256,29 @@
name = "five alarm burger"
desc = "HOT! HOT!"
icon_state = "fivealarmburger"
- bonus_reagents = list("nutriment" = 2, "vitamin" = 5)
- list_reagents = list("nutriment" = 6, "capsaicin" = 5, "condensedcapsaicin" = 5, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/capsaicin = 5, /datum/reagent/consumable/condensedcapsaicin = 5, /datum/reagent/consumable/nutriment/vitamin = 1)
foodtype = GRAIN | MEAT
/obj/item/reagent_containers/food/snacks/burger/rat
name = "rat burger"
desc = "Pretty much what you'd expect..."
icon_state = "ratburger"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
foodtype = GRAIN | MEAT | GROSS
/obj/item/reagent_containers/food/snacks/burger/baseball
name = "home run baseball burger"
desc = "It's still warm. The steam coming off of it looks like baseball."
icon_state = "baseball"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
foodtype = GRAIN | GROSS
/obj/item/reagent_containers/food/snacks/burger/baconburger
name = "bacon burger"
desc = "The perfect combination of all things American."
icon_state = "baconburger"
- bonus_reagents = list("nutriment" = 8, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("bun" = 4, "bacon" = 2)
foodtype = GRAIN | MEAT
@@ -286,6 +286,6 @@
name = "empowered burger"
desc = "It's shockingly good, if you live off of electricity that is."
icon_state = "empoweredburger"
- list_reagents = list("nutriment" = 8, "liquidelectricity" = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/liquidelectricity = 5)
tastes = list("bun" = 2, "pure electricity" = 4)
foodtype = GRAIN | TOXIC
diff --git a/code/modules/food_and_drinks/food/snacks_cake.dm b/code/modules/food_and_drinks/food/snacks_cake.dm
index 781b021d05f..222215e4364 100644
--- a/code/modules/food_and_drinks/food/snacks_cake.dm
+++ b/code/modules/food_and_drinks/food/snacks_cake.dm
@@ -4,14 +4,14 @@
slices_num = 5
bitesize = 3
volume = 80
- list_reagents = list("nutriment" = 20, "vitamin" = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("cake" = 1)
foodtype = GRAIN | DAIRY
/obj/item/reagent_containers/food/snacks/cakeslice
icon = 'icons/obj/food/piecake.dmi'
trash = /obj/item/trash/plate
- list_reagents = list("nutriment" = 4, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 1)
customfoodfilling = 0 //to avoid infinite cake-ception
tastes = list("cake" = 1)
foodtype = GRAIN | DAIRY
@@ -21,7 +21,7 @@
desc = "A plain cake, not a lie."
icon_state = "plaincake"
custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/cake
- bonus_reagents = list("nutriment" = 10, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("vanilla" = 1, "sweetness" = 2,"cake" = 5)
foodtype = GRAIN | DAIRY | SUGAR
@@ -40,8 +40,8 @@
icon_state = "carrotcake"
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/carrot
slices_num = 5
- bonus_reagents = list("nutriment" = 3, "oculine" = 5, "vitamin" = 10)
- list_reagents = list("nutriment" = 20, "oculine" = 10, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/medicine/oculine = 5, /datum/reagent/consumable/nutriment/vitamin = 10)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/medicine/oculine = 10, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("cake" = 5, "sweetness" = 2, "carrot" = 1)
foodtype = GRAIN | DAIRY | VEGETABLES | SUGAR
@@ -50,7 +50,7 @@
desc = "Carrotty slice of Carrot Cake, carrots are good for your eyes! Also not a lie."
icon_state = "carrotcake_slice"
filling_color = "#FFA500"
- list_reagents = list("nutriment" = 4, "oculine" = 2, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/medicine/oculine = 2, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("cake" = 5, "sweetness" = 2, "carrot" = 1)
foodtype = GRAIN | DAIRY | VEGETABLES | SUGAR
@@ -61,8 +61,8 @@
icon_state = "braincake"
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/brain
slices_num = 5
- bonus_reagents = list("nutriment" = 5, "mannitol" = 10, "vitamin" = 10)
- list_reagents = list("nutriment" = 20, "mannitol" = 10, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/medicine/mannitol = 10, /datum/reagent/consumable/nutriment/vitamin = 10)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/medicine/mannitol = 10, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("cake" = 5, "sweetness" = 2, "brains" = 1)
foodtype = GRAIN | DAIRY | MEAT | GROSS | SUGAR
@@ -72,7 +72,7 @@
desc = "Lemme tell you something about prions. THEY'RE DELICIOUS."
icon_state = "braincakeslice"
filling_color = "#FF69B4"
- list_reagents = list("nutriment" = 4, "mannitol" = 2, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/medicine/mannitol = 2, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("cake" = 5, "sweetness" = 2, "brains" = 1)
foodtype = GRAIN | DAIRY | MEAT | GROSS | SUGAR
@@ -82,7 +82,7 @@
icon_state = "cheesecake"
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/cheese
slices_num = 5
- bonus_reagents = list("vitamin" = 10)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 10)
tastes = list("cake" = 4, "cream cheese" = 3)
foodtype = GRAIN | DAIRY
@@ -102,7 +102,7 @@
icon_state = "orangecake"
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/orange
slices_num = 5
- bonus_reagents = list("nutriment" = 3, "vitamin" = 10)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 10)
tastes = list("cake" = 5, "sweetness" = 2, "oranges" = 2)
foodtype = GRAIN | DAIRY | FRUIT | SUGAR
@@ -120,7 +120,7 @@
icon_state = "limecake"
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/lime
slices_num = 5
- bonus_reagents = list("nutriment" = 3, "vitamin" = 10)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 10)
tastes = list("cake" = 5, "sweetness" = 2, "unbearable sourness" = 2)
foodtype = GRAIN | DAIRY | FRUIT | SUGAR
@@ -139,7 +139,7 @@
icon_state = "lemoncake"
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/lemon
slices_num = 5
- bonus_reagents = list("nutriment" = 3, "vitamin" = 10)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 10)
tastes = list("cake" = 5, "sweetness" = 2, "sourness" = 2)
foodtype = GRAIN | DAIRY | FRUIT | SUGAR
@@ -159,7 +159,7 @@
icon_state = "chocolatecake"
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/chocolate
slices_num = 5
- bonus_reagents = list("nutriment" = 3, "vitamin" = 10)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 10)
tastes = list("cake" = 5, "sweetness" = 1, "chocolate" = 4)
foodtype = GRAIN | DAIRY | JUNKFOOD | SUGAR
@@ -179,8 +179,8 @@
icon_state = "birthdaycake"
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/birthday
slices_num = 5
- bonus_reagents = list("nutriment" = 7, "sprinkles" = 10, "vitamin" = 5)
- list_reagents = list("nutriment" = 20, "sprinkles" = 10, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/sprinkles = 10, /datum/reagent/consumable/nutriment/vitamin = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/sprinkles = 10, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("cake" = 5, "sweetness" = 1)
foodtype = GRAIN | DAIRY | JUNKFOOD | SUGAR
@@ -189,7 +189,7 @@
desc = "A slice of your birthday."
icon_state = "birthdaycakeslice"
filling_color = "#DC143C"
- list_reagents = list("nutriment" = 4, "sprinkles" = 2, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sprinkles = 2, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("cake" = 5, "sweetness" = 1)
foodtype = GRAIN | DAIRY | JUNKFOOD | SUGAR
@@ -200,7 +200,7 @@
icon_state = "applecake"
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/apple
slices_num = 5
- bonus_reagents = list("nutriment" = 3, "vitamin" = 10)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 10)
tastes = list("cake" = 5, "sweetness" = 1, "apple" = 1)
foodtype = GRAIN | DAIRY | FRUIT | SUGAR
@@ -223,7 +223,7 @@
desc = "A cake made of slimes. Probably not electrified."
icon_state = "slimecake"
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/slimecake
- bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3)
tastes = list("cake" = 5, "sweetness" = 1, "slime" = 1)
foodtype = GRAIN | DAIRY | SUGAR
@@ -240,7 +240,7 @@
desc = "A hollow cake with real pumpkin."
icon_state = "pumpkinspicecake"
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/pumpkinspice
- bonus_reagents = list("nutriment" = 3, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("cake" = 5, "sweetness" = 1, "pumpkin" = 1)
foodtype = GRAIN | DAIRY | VEGETABLES | SUGAR
diff --git a/code/modules/food_and_drinks/food/snacks_egg.dm b/code/modules/food_and_drinks/food/snacks_egg.dm
index cc6d796fb32..76120013ab1 100644
--- a/code/modules/food_and_drinks/food/snacks_egg.dm
+++ b/code/modules/food_and_drinks/food/snacks_egg.dm
@@ -5,8 +5,8 @@
name = "chocolate egg"
desc = "Such, sweet, fattening food."
icon_state = "chocolateegg"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
- list_reagents = list("nutriment" = 4, "sugar" = 2, "cocoa" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sugar = 2, /datum/reagent/consumable/coco = 2)
filling_color = "#A0522D"
tastes = list("chocolate" = 4, "sweetness" = 1)
foodtype = JUNKFOOD | SUGAR
@@ -15,7 +15,7 @@
name = "egg"
desc = "An egg!"
icon_state = "egg"
- list_reagents = list("eggyolk" = 5)
+ list_reagents = list(/datum/reagent/consumable/eggyolk = 5)
cooked_type = /obj/item/reagent_containers/food/snacks/boiledegg
filling_color = "#F0E68C"
foodtype = MEAT
@@ -89,10 +89,10 @@
name = "fried egg"
desc = "A fried egg, with a touch of salt and pepper."
icon_state = "friedegg"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
bitesize = 1
filling_color = "#FFFFF0"
- list_reagents = list("nutriment" = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3)
tastes = list("egg" = 4, "salt" = 1, "pepper" = 1)
foodtype = MEAT | FRIED
@@ -100,9 +100,9 @@
name = "boiled egg"
desc = "A hard boiled egg."
icon_state = "egg"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
filling_color = "#FFFFF0"
- list_reagents = list("nutriment" = 2, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("egg" = 1)
foodtype = MEAT
@@ -111,8 +111,8 @@
desc = "That's all you can say!"
icon_state = "omelette"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
- list_reagents = list("nutriment" = 8, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1)
bitesize = 1
w_class = WEIGHT_CLASS_NORMAL
tastes = list("egg" = 1, "cheese" = 1)
@@ -129,7 +129,7 @@
"You take a piece of omelette with your fork.")
var/datum/reagent/R = pick(reagents.reagent_list)
- reagents.remove_reagent(R.id, 1)
+ reagents.remove_reagent(R.type, 1)
F.forkload = R
if(reagents.total_volume <= 0)
qdel(src)
@@ -140,10 +140,10 @@
name = "eggs benedict"
desc = "There is only one egg on this, how rude."
icon_state = "benedict"
- bonus_reagents = list("vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 4)
trash = /obj/item/trash/plate
w_class = WEIGHT_CLASS_NORMAL
- list_reagents = list("nutriment" = 6, "vitamin" = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("egg" = 1, "bacon" = 1, "bun" = 1)
foodtype = MEAT
diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm
index 5d08068367d..fb498a8010b 100644
--- a/code/modules/food_and_drinks/food/snacks_meat.dm
+++ b/code/modules/food_and_drinks/food/snacks_meat.dm
@@ -8,10 +8,10 @@
desc = "A grifftastic sandwich that burns your tongue and then leaves it numb!"
icon_state = "cubancarp"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4)
bitesize = 3
filling_color = "#CD853F"
- list_reagents = list("nutriment" = 6, "capsaicin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/capsaicin = 1)
tastes = list("fish" = 4, "batter" = 1, "hot peppers" = 1)
foodtype = MEAT
@@ -19,7 +19,7 @@
name = "carp fillet"
desc = "A fillet of spess carp meat."
icon_state = "fishfillet"
- list_reagents = list("nutriment" = 3, "carpotoxin" = 2, "vitamin" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/toxin/carpotoxin = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
bitesize = 6
filling_color = "#FA8072"
tastes = list("fish" = 1)
@@ -37,8 +37,8 @@
name = "fish fingers"
desc = "A finger of fish."
icon_state = "fishfingers"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
- list_reagents = list("nutriment" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4)
bitesize = 1
filling_color = "#CD853F"
tastes = list("fish" = 1, "breadcrumbs" = 1)
@@ -48,8 +48,8 @@
name = "fish and chips"
desc = "I do say so myself chap."
icon_state = "fishandchips"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
- list_reagents = list("nutriment" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6)
filling_color = "#FA8072"
tastes = list("fish" = 1, "chips" = 1)
foodtype = MEAT | VEGETABLES | FRIED
@@ -60,7 +60,7 @@
name = "tofu"
desc = "We all love tofu."
icon_state = "tofu"
- list_reagents = list("nutriment" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2)
filling_color = "#F0E68C"
tastes = list("tofu" = 1)
foodtype = VEGETABLES
@@ -75,7 +75,7 @@
name = "spider leg"
desc = "A still twitching leg of a giant spider... you don't really want to eat this, do you?"
icon_state = "spiderleg"
- list_reagents = list("nutriment" = 2, "toxin" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/toxin = 2)
cooked_type = /obj/item/reagent_containers/food/snacks/boiledspiderleg
filling_color = "#000000"
tastes = list("cobwebs" = 1)
@@ -86,8 +86,8 @@
desc = "Now you can feel like a real tourist vacationing in Ireland."
icon_state = "cornedbeef"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
- list_reagents = list("nutriment" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5)
tastes = list("meat" = 1, "cabbage" = 1)
foodtype = MEAT | VEGETABLES
@@ -96,8 +96,8 @@
desc = "Because eating bear wasn't manly enough."
icon_state = "bearsteak"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 2, "vitamin" = 6)
- list_reagents = list("nutriment" = 2, "vitamin" = 5, "manlydorf" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 6)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/consumable/ethanol/manly_dorf = 5)
tastes = list("meat" = 1, "salmon" = 1)
foodtype = MEAT | ALCOHOL
@@ -105,7 +105,7 @@
name = "faggot"
desc = "A great meal all round. Not a cord of wood."
icon_state = "faggot"
- list_reagents = list("nutriment" = 4, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 1)
filling_color = "#800000"
tastes = list("meat" = 1)
foodtype = MEAT
@@ -115,8 +115,8 @@
desc = "A piece of mixed, long meat."
icon_state = "sausage"
filling_color = "#CD5C5C"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
- list_reagents = list("nutriment" = 6, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("meat" = 1)
foodtype = MEAT
var/roasted = FALSE
@@ -129,35 +129,35 @@
trash = /obj/item/stack/rods
icon_state = "kebab"
w_class = WEIGHT_CLASS_NORMAL
- list_reagents = list("nutriment" = 8)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 8)
tastes = list("meat" = 3, "metal" = 1)
foodtype = MEAT
/obj/item/reagent_containers/food/snacks/kebab/human
name = "human-kebab"
desc = "A human meat, on a stick."
- bonus_reagents = list("nutriment" = 1, "vitamin" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 6)
tastes = list("tender meat" = 3, "metal" = 1)
foodtype = MEAT | GROSS
/obj/item/reagent_containers/food/snacks/kebab/monkey
name = "meat-kebab"
desc = "Delicious meat, on a stick."
- bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("meat" = 3, "metal" = 1)
foodtype = MEAT
/obj/item/reagent_containers/food/snacks/kebab/tofu
name = "tofu-kebab"
desc = "Vegan meat, on a stick."
- bonus_reagents = list("nutriment" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1)
tastes = list("tofu" = 3, "metal" = 1)
foodtype = VEGETABLES
/obj/item/reagent_containers/food/snacks/kebab/tail
name = "lizard-tail kebab"
desc = "Severed lizard tail on a stick."
- bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("meat" = 8, "metal" = 4, "scales" = 1)
foodtype = MEAT
@@ -165,7 +165,7 @@
name = "raw khinkali"
desc = "One hundred khinkalis? Do I look like a pig?"
icon_state = "khinkali"
- list_reagents = list("nutriment" = 1, "vitamin" = 1, "garlic" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/consumable/garlic = 1)
cooked_type = /obj/item/reagent_containers/food/snacks/khinkali
tastes = list("meat" = 1, "onions" = 1, "garlic" = 1)
foodtype = MEAT
@@ -174,7 +174,7 @@
name = "khinkali"
desc = "One hundred khinkalis? Do I look like a pig?"
icon_state = "khinkali"
- list_reagents = list("nutriment" = 5, "vitamin" = 2, "garlic" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/garlic = 1)
bitesize = 3
filling_color = "#F0F0F0"
tastes = list("meat" = 1, "onions" = 1, "garlic" = 1)
@@ -185,7 +185,7 @@
desc = "Just add water!"
icon_state = "monkeycube"
bitesize = 12
- list_reagents = list("nutriment" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2)
filling_color = "#CD853F"
tastes = list("the jungle" = 1, "bananas" = 1)
foodtype = MEAT | SUGAR
@@ -211,7 +211,7 @@
name = "gorilla cube"
desc = "A Waffle Co. brand gorilla cube. Now with extra molecules!"
bitesize = 20
- list_reagents = list("nutriment" = 15)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 15)
tastes = list("the jungle" = 1, "bananas" = 1, "jimmies" = 1)
spawned_mob = /mob/living/simple_animal/hostile/gorilla
@@ -219,10 +219,10 @@
name = "enchiladas"
desc = "Viva La Mexico!"
icon_state = "enchiladas"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
bitesize = 4
filling_color = "#FFA07A"
- list_reagents = list("nutriment" = 8, "capsaicin" = 6)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/capsaicin = 6)
tastes = list("hot peppers" = 1, "meat" = 3, "cheese" = 1, "sour cream" = 1)
foodtype = MEAT
@@ -231,8 +231,8 @@
desc = "Even non-vegetarians will LOVE this!"
icon_state = "stewedsoymeat"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 1)
- list_reagents = list("nutriment" = 8)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 8)
filling_color = "#D2691E"
tastes = list("soy" = 1, "vegetables" = 1)
foodtype = VEGETABLES
@@ -246,8 +246,8 @@
desc = "A giant spider's leg that's still twitching after being cooked. Gross!"
icon_state = "spiderlegcooked"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 1, "capsaicin" = 2, "vitamin" = 2)
- list_reagents = list("nutriment" = 3, "capsaicin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/capsaicin = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/capsaicin = 2)
filling_color = "#000000"
tastes = list("hot peppers" = 1, "cobwebs" = 1)
foodtype = MEAT
@@ -257,8 +257,8 @@
desc = "Would you eat them on a train? Would you eat them on a plane? Would you eat them on a state of the art corporate deathtrap floating through space?"
icon_state = "spidereggsham"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
- list_reagents = list("nutriment" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6)
bitesize = 4
filling_color = "#7FFF00"
tastes = list("meat" = 1, "the colour green" = 1)
@@ -268,8 +268,8 @@
name = "carp sashimi"
desc = "Celebrate surviving attack from hostile alien lifeforms by hospitalising yourself."
icon_state = "sashimi"
- bonus_reagents = list("nutriment" = 1, "capsaicin" = 4, "vitamin" = 4)
- list_reagents = list("nutriment" = 6, "capsaicin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/capsaicin = 4, /datum/reagent/consumable/nutriment/vitamin = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/capsaicin = 5)
filling_color = "#FA8072"
tastes = list("fish" = 1, "hot peppers" = 1)
foodtype = MEAT | TOXIC
@@ -277,8 +277,8 @@
/obj/item/reagent_containers/food/snacks/nugget
name = "chicken nugget"
filling_color = "#B22222"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
- list_reagents = list("nutriment" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2)
tastes = list("\"chicken\"" = 1)
foodtype = MEAT
@@ -292,8 +292,8 @@
name = "pig in a blanket"
desc = "A tiny sausage wrapped in a flakey, buttery roll. Free this pig from its blanket prison by eating it."
icon_state = "pigblanket"
- list_reagents = list("nutriment" = 6, "vitamin" = 1)
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
filling_color = "#800000"
tastes = list("meat" = 1, "butter" = 1)
@@ -302,7 +302,7 @@
desc = "Not so delicious rat meat, on a stick."
icon_state = "ratkebab"
w_class = WEIGHT_CLASS_NORMAL
- list_reagents = list("nutriment" = 6, "vitamin" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("rat meat" = 1, "metal" = 1)
foodtype = MEAT | GROSS
@@ -310,4 +310,4 @@
name = "double rat-kebab"
icon_state = "doubleratkebab"
tastes = list("rat meat" = 2, "metal" = 1)
- bonus_reagents = list("nutriment" = 6, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2)
diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm
index 7f2d3e6317c..3640558f0a5 100644
--- a/code/modules/food_and_drinks/food/snacks_other.dm
+++ b/code/modules/food_and_drinks/food/snacks_other.dm
@@ -7,7 +7,7 @@
icon_state = "cheesewheel"
slice_path = /obj/item/reagent_containers/food/snacks/cheesewedge
slices_num = 5
- list_reagents = list("nutriment" = 15, "vitamin" = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 15, /datum/reagent/consumable/nutriment/vitamin = 5)
w_class = WEIGHT_CLASS_NORMAL
tastes = list("cheese" = 1)
foodtype = DAIRY
@@ -17,7 +17,7 @@
desc = "A wedge of delicious Cheddar. The cheese wheel it was cut from can't have gone far."
icon_state = "cheesewedge"
filling_color = "#FFD700"
- list_reagents = list("nutriment" = 3, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("cheese" = 1)
foodtype = DAIRY
@@ -28,13 +28,13 @@
filling_color = "#FF1493"
tastes = list("watermelon" = 1)
foodtype = FRUIT
- juice_results = list("watermelonjuice" = 5)
+ juice_results = list(/datum/reagent/consumable/watermelonjuice = 5)
/obj/item/reagent_containers/food/snacks/candy_corn
name = "candy corn"
desc = "It's a handful of candy corn. Can be stored in a detective's hat."
icon_state = "candy_corn"
- list_reagents = list("nutriment" = 4, "sugar" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sugar = 2)
filling_color = "#FF8C00"
tastes = list("candy corn" = 1)
foodtype = JUNKFOOD | SUGAR
@@ -51,7 +51,7 @@
name = "chocolate bar"
desc = "Such, sweet, fattening food."
icon_state = "chocolatebar"
- list_reagents = list("nutriment" = 2, "sugar" = 2, "cocoa" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/sugar = 2, /datum/reagent/consumable/coco = 2)
filling_color = "#A0522D"
tastes = list("chocolate" = 1)
foodtype = JUNKFOOD | SUGAR
@@ -60,7 +60,7 @@
name = "huge mushroom slice"
desc = "A slice from a huge mushroom."
icon_state = "hugemushroomslice"
- list_reagents = list("nutriment" = 3, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("mushroom" = 1)
foodtype = VEGETABLES
@@ -69,7 +69,7 @@
desc = "Now let's find some cinema."
icon_state = "popcorn"
trash = /obj/item/trash/popcorn
- list_reagents = list("nutriment" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2)
bitesize = 0.1 //this snack is supposed to be eating during looooong time. And this it not dinner food! --rastaf0
filling_color = "#FFEFD5"
tastes = list("popcorn" = 3, "butter" = 1)
@@ -83,8 +83,8 @@
name = "loaded baked potato"
desc = "Totally baked."
icon_state = "loadedbakedpotato"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
- list_reagents = list("nutriment" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6)
filling_color = "#D2B48C"
tastes = list("potato" = 1)
foodtype = VEGETABLES | DAIRY
@@ -94,7 +94,7 @@
desc = "AKA: French Fries, Freedom Fries, etc."
icon_state = "fries"
trash = /obj/item/trash/plate
- list_reagents = list("nutriment" = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4)
filling_color = "#FFD700"
tastes = list("fries" = 3, "salt" = 1)
foodtype = VEGETABLES | GRAIN | FRIED
@@ -103,7 +103,7 @@
name = "tator tot"
desc = "A large fried potato nugget that may or may not try to valid you."
icon_state = "tatortot"
- list_reagents = list("nutriment" = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4)
filling_color = "FFD700"
tastes = list("potato" = 3, "valids" = 1)
foodtype = FRIED | VEGETABLES
@@ -113,7 +113,7 @@
desc = "Dope from a soy."
icon_state = "soydope"
trash = /obj/item/trash/plate
- list_reagents = list("nutriment" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2)
filling_color = "#DEB887"
tastes = list("soy" = 1)
foodtype = VEGETABLES
@@ -123,8 +123,8 @@
desc = "Fries. Covered in cheese. Duh."
icon_state = "cheesyfries"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
- list_reagents = list("nutriment" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6)
filling_color = "#FFD700"
tastes = list("fries" = 3, "cheese" = 1)
foodtype = VEGETABLES | GRAIN
@@ -133,7 +133,7 @@
name = "burned mess"
desc = "Someone should be demoted from cook for this."
icon_state = "badrecipe"
- list_reagents = list("bad_food" = 30)
+ list_reagents = list(/datum/reagent/toxin/bad_food = 30)
filling_color = "#8B4513"
foodtype = GROSS
@@ -142,7 +142,7 @@
desc = "Tasty fries from fresh Carrots."
icon_state = "carrotfries"
trash = /obj/item/trash/plate
- list_reagents = list("nutriment" = 3, "oculine" = 3, "vitamin" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/medicine/oculine = 3, /datum/reagent/consumable/nutriment/vitamin = 2)
filling_color = "#FFA500"
tastes = list("carrots" = 3, "salt" = 1)
foodtype = VEGETABLES
@@ -152,8 +152,8 @@
desc = "An apple coated in sugary sweetness."
icon_state = "candiedapple"
bitesize = 3
- bonus_reagents = list("nutriment" = 2, "sugar" = 3)
- list_reagents = list("nutriment" = 3, "sugar" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/sugar = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 2)
filling_color = "#FF4500"
tastes = list("apple" = 2, "sweetness" = 2)
foodtype = JUNKFOOD | FRUIT | SUGAR
@@ -164,7 +164,7 @@
icon_state = "mint"
bitesize = 1
trash = /obj/item/trash/plate
- list_reagents = list("minttoxin" = 2)
+ list_reagents = list(/datum/reagent/toxin/minttoxin = 2)
filling_color = "#800000"
foodtype = TOXIC | SUGAR
@@ -172,8 +172,8 @@
name = "egg wrap"
desc = "The precursor to Pigs in a Blanket."
icon_state = "eggwrap"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
- list_reagents = list("nutriment" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5)
filling_color = "#F0E68C"
tastes = list("egg" = 1)
foodtype = MEAT | GRAIN
@@ -182,8 +182,8 @@
name = "tin of beans"
desc = "Musical fruit in a slightly less musical container."
icon_state = "beans"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
- list_reagents = list("nutriment" = 10)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 10)
filling_color = "#B22222"
tastes = list("beans" = 1)
foodtype = VEGETABLES
@@ -192,7 +192,7 @@
name = "spider eggs"
desc = "A cluster of juicy spider eggs. A great side dish for when you care not for your health."
icon_state = "spidereggs"
- list_reagents = list("nutriment" = 2, "toxin" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/toxin = 2)
filling_color = "#008000"
tastes = list("cobwebs" = 1)
foodtype = MEAT | TOXIC
@@ -201,7 +201,7 @@
name = "spiderling"
desc = "It's slightly twitching in your hand. Ew..."
icon_state = "spiderling"
- list_reagents = list("nutriment" = 1, "toxin" = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/toxin = 4)
filling_color = "#00800"
tastes = list("cobwebs" = 1, "guts" = 2)
foodtype = MEAT | TOXIC
@@ -210,7 +210,7 @@
name = "spider lollipop"
desc = "Still gross, but at least it has a mountain of sugar on it."
icon_state = "spiderlollipop"
- list_reagents = list("nutriment" = 1, "toxin" = 1, "iron" = 10, "sugar" = 5, "omnizine" = 2) //lollipop, but vitamins = toxins
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/toxin = 1, /datum/reagent/iron = 10, /datum/reagent/consumable/sugar = 5, /datum/reagent/medicine/omnizine = 2) //lollipop, but vitamins = toxins
filling_color = "#00800"
tastes = list("cobwebs" = 1, "sugar" = 2)
foodtype = JUNKFOOD | SUGAR
@@ -219,8 +219,8 @@
name = "chocolate coin"
desc = "A completely edible but nonflippable festive coin."
icon_state = "chococoin"
- bonus_reagents = list("nutriment" = 1, "sugar" = 1)
- list_reagents = list("nutriment" = 3, "cocoa" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/coco = 1)
filling_color = "#A0522D"
tastes = list("chocolate" = 1)
foodtype = JUNKFOOD | SUGAR
@@ -229,8 +229,8 @@
name = "fudge dice"
desc = "A little cube of chocolate that tends to have a less intense taste if you eat too many at once."
icon_state = "chocodice"
- bonus_reagents = list("nutriment" = 1, "sugar" = 1)
- list_reagents = list("nutriment" = 3, "cocoa" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/coco = 1)
filling_color = "#A0522D"
trash = /obj/item/dice/fudge
tastes = list("fudge" = 1)
@@ -240,8 +240,8 @@
name = "chocolate orange"
desc = "A festive chocolate orange."
icon_state = "chocoorange"
- bonus_reagents = list("nutriment" = 1, "sugar" = 1)
- list_reagents = list("nutriment" = 3, "sugar" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 1)
filling_color = "#A0522D"
tastes = list("chocolate" = 3, "oranges" = 1)
foodtype = JUNKFOOD | SUGAR
@@ -251,8 +251,8 @@
desc = "The only good recipe for eggplant."
icon_state = "eggplantparm"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
- list_reagents = list("nutriment" = 6, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2)
filling_color = "#BA55D3"
tastes = list("eggplant" = 3, "cheese" = 1)
foodtype = VEGETABLES | DAIRY
@@ -262,7 +262,7 @@
desc = "The base for all your burritos."
icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "tortilla"
- list_reagents = list("nutriment" = 3, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1)
filling_color = "#FFEFD5"
tastes = list("tortilla" = 1)
foodtype = GRAIN
@@ -271,8 +271,8 @@
name = "burrito"
desc = "Tortilla wrapped goodness."
icon_state = "burrito"
- bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
- list_reagents = list("nutriment" = 4, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 1)
filling_color = "#FFEFD5"
tastes = list("torilla" = 2, "meat" = 3)
foodtype = GRAIN | MEAT
@@ -281,8 +281,8 @@
name = "cheesy burrito"
desc = "It's a burrito filled with cheese."
icon_state = "cheesyburrito"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
- list_reagents = list("nutriment" = 4, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2)
filling_color = "#FFD800"
tastes = list("torilla" = 2, "meat" = 3, "cheese" = 1)
foodtype = GRAIN | MEAT | DAIRY
@@ -291,8 +291,8 @@
name = "carne asada burrito"
desc = "The best burrito for meat lovers."
icon_state = "carneburrito"
- bonus_reagents = list("nutriment" = 2, "vitamin" = 1)
- list_reagents = list("nutriment" = 5, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1)
filling_color = "#A0522D"
tastes = list("torilla" = 2, "meat" = 4)
foodtype = GRAIN | MEAT
@@ -301,8 +301,8 @@
name = "fuego plasma burrito"
desc = "A super spicy burrito."
icon_state = "fuegoburrito"
- bonus_reagents = list("nutriment" = 2, "vitamin" = 3)
- list_reagents = list("nutriment" = 4, "capsaicin" = 5, "vitamin" = 3)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/capsaicin = 5, /datum/reagent/consumable/nutriment/vitamin = 3)
filling_color = "#FF2000"
tastes = list("torilla" = 2, "meat" = 3, "hot peppers" = 1)
foodtype = GRAIN | MEAT
@@ -312,7 +312,7 @@
desc = "Made with roasted sweet potatoes!"
icon_state = "yakiimo"
trash = /obj/item/trash/plate
- list_reagents = list("nutriment" = 5, "vitamin" = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 4)
filling_color = "#8B1105"
tastes = list("sweet potato" = 1)
foodtype = GRAIN | VEGETABLES | SUGAR
@@ -322,7 +322,7 @@
desc = "Sweet and crunchy."
icon_state = "roastparsnip"
trash = /obj/item/trash/plate
- list_reagents = list("nutriment" = 3, "vitamin" = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 4)
filling_color = "#FF5500"
tastes = list("parsnip" = 1)
foodtype = VEGETABLES
@@ -331,8 +331,8 @@
name = "melon fruit bowl"
desc = "For people who wants edible fruit bowls."
icon_state = "melonfruitbowl"
- bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
- list_reagents = list("nutriment" = 6, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 4)
filling_color = "#FF5500"
w_class = WEIGHT_CLASS_NORMAL
tastes = list("melon" = 1)
@@ -342,8 +342,8 @@
name = "space freezy"
desc = "The best icecream in space."
icon_state = "spacefreezy"
- bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
- list_reagents = list("nutriment" = 6, "bluecherryjelly" = 5, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/bluecherryjelly = 5, /datum/reagent/consumable/nutriment/vitamin = 4)
filling_color = "#87CEFA"
tastes = list("blue cherries" = 2, "ice cream" = 2)
foodtype = FRUIT | DAIRY
@@ -352,8 +352,8 @@
name = "sundae"
desc = "A classic dessert."
icon_state = "sundae"
- bonus_reagents = list("nutriment" = 2, "vitamin" = 1)
- list_reagents = list("nutriment" = 6, "banana" = 5, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/banana = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
filling_color = "#FFFACD"
tastes = list("ice cream" = 1, "banana" = 1)
foodtype = FRUIT | DAIRY | SUGAR
@@ -362,8 +362,8 @@
name = "honkdae"
desc = "The clown's favorite dessert."
icon_state = "honkdae"
- bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
- list_reagents = list("nutriment" = 6, "banana" = 10, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/banana = 10, /datum/reagent/consumable/nutriment/vitamin = 4)
filling_color = "#FFFACD"
tastes = list("ice cream" = 1, "banana" = 1, "a bad joke" = 1)
foodtype = FRUIT | DAIRY | SUGAR
@@ -372,8 +372,8 @@
name = "nachos"
desc = "Chips from Space Mexico."
icon_state = "nachos"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
- list_reagents = list("nutriment" = 6, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2)
filling_color = "#F4A460"
tastes = list("nachos" = 1)
foodtype = VEGETABLES | FRIED
@@ -382,8 +382,8 @@
name = "cheesy nachos"
desc = "The delicious combination of nachos and melting cheese."
icon_state = "cheesynachos"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
- list_reagents = list("nutriment" = 6, "vitamin" = 3)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 3)
filling_color = "#FFD700"
tastes = list("nachos" = 2, "cheese" = 1)
foodtype = VEGETABLES | FRIED | DAIRY
@@ -392,8 +392,8 @@
name = "Cuban nachos"
desc = "That's some dangerously spicy nachos."
icon_state = "cubannachos"
- bonus_reagents = list("nutriment" = 2, "vitamin" = 3)
- list_reagents = list("nutriment" = 7, "capsaicin" = 8, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/capsaicin = 8, /datum/reagent/consumable/nutriment/vitamin = 4)
filling_color = "#DC143C"
tastes = list("nachos" = 2, "hot pepper" = 1)
foodtype = VEGETABLES | FRIED | DAIRY
@@ -402,8 +402,8 @@
name = "melon keg"
desc = "Who knew vodka was a fruit?"
icon_state = "melonkeg"
- bonus_reagents = list("nutriment" = 3, "vitamin" = 3)
- list_reagents = list("nutriment" = 9, "vodka" = 15, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 9, /datum/reagent/consumable/ethanol/vodka = 15, /datum/reagent/consumable/nutriment/vitamin = 4)
filling_color = "#FFD700"
volume = 80
bitesize = 5
@@ -414,8 +414,8 @@
name = "honey nut bar"
desc = "Oats and nuts compressed together into a bar, held together with a honey glaze."
icon_state = "honeybar"
- bonus_reagents = list("nutriment" = 2, "honey" = 2, "vitamin" = 2)
- list_reagents = list("nutriment" = 5, "honey" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/honey = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/honey = 5)
filling_color = "#F2CE91"
tastes = list("oats" = 3, "nuts" = 2, "honey" = 1)
foodtype = FRUIT | SUGAR
@@ -424,8 +424,8 @@
name = "stuffed legion"
desc = "The former skull of a damned human, filled with goliath meat. It has a decorative lava pool made of ketchup and hotsauce."
icon_state = "stuffed_legion"
- bonus_reagents = list("vitamin" = 3, "capsaicin" = 1, "tricordrazine" = 5)
- list_reagents = list("nutriment" = 5, "vitamin" = 5, "capsaicin" = 2, "tricordrazine" = 10)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 3, /datum/reagent/consumable/capsaicin = 1, /datum/reagent/medicine/tricordrazine = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/consumable/capsaicin = 2, /datum/reagent/medicine/tricordrazine = 10)
tastes = list("death" = 2, "rock" = 1, "meat" = 1, "hot peppers" = 1)
foodtype = MEAT
@@ -434,8 +434,8 @@
name = "Powercrepe"
desc = "With great power, comes great crepes. It looks like a pancake filled with jelly but packs quite a punch."
icon_state = "powercrepe"
- bonus_reagents = list("nutriment" = 5, "vitamin" = 3, "iron" = 10)
- list_reagents = list("nutriment" = 10, "vitamin" = 5, "cherryjelly" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 3, /datum/reagent/iron = 10)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/consumable/cherryjelly = 5)
force = 20
throwforce = 10
block_chance = 50
@@ -450,7 +450,7 @@
desc = "A delicious lollipop. Makes for a great Valentine's present."
icon = 'icons/obj/lollipop.dmi'
icon_state = "lollipop_stick"
- list_reagents = list("nutriment" = 1, "vitamin" = 1, "iron" = 10, "sugar" = 5, "omnizine" = 2) //Honk
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/iron = 10, /datum/reagent/consumable/sugar = 5, /datum/reagent/medicine/omnizine = 2) //Honk
var/mutable_appearance/head
var/headcolor = rgb(0, 0, 0)
tastes = list("candy" = 1)
@@ -492,7 +492,7 @@
desc = "A colorful, sugary gumball."
icon = 'icons/obj/lollipop.dmi'
icon_state = "gumball"
- list_reagents = list("sugar" = 5, "bicaridine" = 2, "kelotane" = 2) //Kek
+ list_reagents = list(/datum/reagent/consumable/sugar = 5, /datum/reagent/medicine/bicaridine = 2, /datum/reagent/medicine/kelotane = 2) //Kek
tastes = list("candy")
foodtype = JUNKFOOD
@@ -519,8 +519,8 @@
name = "taco"
desc = "A traditional taco with meat, cheese, and lettuce."
icon_state = "taco"
- bonus_reagents = list("nutriment" = 3, "vitamin" = 2)
- list_reagents = list("nutriment" = 4, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2)
filling_color = "F0D830"
tastes = list("taco" = 4, "meat" = 2, "cheese" = 2, "lettuce" = 1)
foodtype = MEAT | DAIRY | GRAIN | VEGETABLES
@@ -528,8 +528,8 @@
/obj/item/reagent_containers/food/snacks/taco/plain
desc = "A traditional taco with meat and cheese, minus the rabbit food."
icon_state = "taco_plain"
- bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
- list_reagents = list("nutriment" = 3, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("taco" = 4, "meat" = 2, "cheese" = 2)
foodtype = MEAT | DAIRY | GRAIN
@@ -537,8 +537,8 @@
name = "Bran Requests Cereal"
desc = "A dry cereal that satiates your requests for bran. Tastes uniquely like raisins and salt."
icon_state = "bran_requests"
- list_reagents = list("nutriment" = 3, "vitamin" = 2, "sodiumchloride" = 5)
- bonus_reagents = list("sodiumchloride" = 10)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/sodiumchloride = 5)
+ bonus_reagents = list(/datum/reagent/consumable/sodiumchloride = 10)
tastes = list("bran" = 4, "raisins" = 3, "salt" = 1)
foodtype = GRAIN | FRUIT
@@ -546,7 +546,7 @@
name = "stick of butter"
desc = "A stick of delicious, golden, fatty goodness."
icon_state = "butter"
- list_reagents = list("nutriment" = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5)
filling_color = "#FFD700"
tastes = list("butter" = 1)
foodtype = DAIRY
@@ -555,7 +555,7 @@
name = "onion rings"
desc = "Onion slices coated in batter."
icon_state = "onionrings"
- list_reagents = list("nutriment" = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3)
filling_color = "#C0C9A0"
gender = PLURAL
tastes = list("batter" = 3, "onion" = 1)
@@ -573,7 +573,7 @@
name = "chocolate"
desc = "A tiny and sweet chocolate."
icon_state = "tiny_chocolate"
- list_reagents = list("nutriment" = 1, "sugar" = 1, "cocoa" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/coco = 1)
filling_color = "#A0522D"
tastes = list("chocolate" = 1)
foodtype = JUNKFOOD | SUGAR
@@ -582,7 +582,7 @@
name = "Canned Peaches"
desc = "Just a nice can of ripe peaches swimming in their own juices."
icon_state = "peachcan"
- list_reagents = list("peachjuice" = 20, "sugar" = 8, "nutriment" = 2)
+ list_reagents = list(/datum/reagent/consumable/peachjuice = 20, /datum/reagent/consumable/sugar = 8, /datum/reagent/consumable/nutriment = 2)
filling_color = "#ffdf26"
w_class = WEIGHT_CLASS_NORMAL
tastes = list("peaches" = 7, "tin" = 1)
diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm
index 8fd9792e009..080c1c53b77 100644
--- a/code/modules/food_and_drinks/food/snacks_pastry.dm
+++ b/code/modules/food_and_drinks/food/snacks_pastry.dm
@@ -7,8 +7,8 @@
desc = "Goes great with robust coffee."
icon_state = "donut1"
bitesize = 5
- bonus_reagents = list("sugar" = 1)
- list_reagents = list("nutriment" = 3, "sprinkles" = 1, "sugar" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/sugar = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/sugar = 2)
filling_color = "#D2691E"
tastes = list("donut" = 1)
foodtype = JUNKFOOD | GRAIN | FRIED | SUGAR
@@ -27,7 +27,7 @@
is_frosted = TRUE
name = "frosted [name]"
icon_state = frosted_icon //delish~!
- reagents.add_reagent("sprinkles", 1)
+ reagents.add_reagent(/datum/reagent/consumable/sprinkles, 1)
filling_color = "#FF69B4"
return TRUE
@@ -53,7 +53,7 @@
/obj/item/reagent_containers/food/snacks/donut/chaos/Initialize()
. = ..()
- extra_reagent = pick("nutriment", "capsaicin", "frostoil", "krokodil", "plasma", "cocoa", "slimejelly", "banana", "berryjuice", "omnizine")
+ extra_reagent = pick(/datum/reagent/consumable/nutriment, /datum/reagent/consumable/capsaicin, /datum/reagent/consumable/frostoil, /datum/reagent/drug/krokodil, /datum/reagent/toxin/plasma, /datum/reagent/consumable/coco, /datum/reagent/toxin/slimejelly, /datum/reagent/consumable/banana, /datum/reagent/consumable/berryjuice, /datum/reagent/medicine/omnizine)
reagents.add_reagent("[extra_reagent]", 3)
/obj/item/reagent_containers/food/snacks/donut/jelly
@@ -61,8 +61,8 @@
desc = "You jelly?"
icon_state = "jdonut1"
frosted_icon = "jdonut2"
- bonus_reagents = list("sugar" = 1, "vitamin" = 1)
- extra_reagent = "berryjuice"
+ bonus_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
+ extra_reagent = /datum/reagent/consumable/berryjuice
tastes = list("jelly" = 1, "donut" = 3)
foodtype = JUNKFOOD | GRAIN | FRIED | FRUIT | SUGAR
@@ -75,19 +75,19 @@
name = "jelly donut"
desc = "You jelly?"
icon_state = "jdonut1"
- extra_reagent = "slimejelly"
+ extra_reagent = /datum/reagent/toxin/slimejelly
foodtype = JUNKFOOD | GRAIN | FRIED | TOXIC | SUGAR
/obj/item/reagent_containers/food/snacks/donut/jelly/cherryjelly
name = "jelly donut"
desc = "You jelly?"
icon_state = "jdonut1"
- extra_reagent = "cherryjelly"
+ extra_reagent = /datum/reagent/consumable/cherryjelly
foodtype = JUNKFOOD | GRAIN | FRIED | FRUIT
/obj/item/reagent_containers/food/snacks/donut/meat
- bonus_reagents = list("ketchup" = 1)
- list_reagents = list("nutriment" = 3, "ketchup" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/ketchup = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/ketchup = 2)
tastes = list("meat" = 1)
foodtype = JUNKFOOD | MEAT | GROSS | FRIED
@@ -98,8 +98,8 @@
name = "muffin"
desc = "A delicious and spongy little cake."
icon_state = "muffin"
- bonus_reagents = list("vitamin" = 1)
- list_reagents = list("nutriment" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6)
filling_color = "#F4A460"
tastes = list("muffin" = 1)
foodtype = GRAIN | SUGAR
@@ -123,8 +123,8 @@
name = "chawanmushi"
desc = "A legendary egg custard that makes friends out of enemies. Probably too hot for a cat to eat."
icon_state = "chawanmushi"
- bonus_reagents = list("vitamin" = 1)
- list_reagents = list("nutriment" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5)
filling_color = "#FFE4E1"
tastes = list("custard" = 1)
foodtype = GRAIN | MEAT | VEGETABLES
@@ -136,8 +136,8 @@
desc = "Mmm, waffles."
icon_state = "waffles"
trash = /obj/item/trash/waffles
- bonus_reagents = list("vitamin" = 1)
- list_reagents = list("nutriment" = 8, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1)
filling_color = "#D2691E"
tastes = list("waffles" = 1)
foodtype = GRAIN | SUGAR
@@ -147,8 +147,8 @@
desc = "Not made of people. Honest." //Totally people.
icon_state = "soylent_green"
trash = /obj/item/trash/waffles
- bonus_reagents = list("vitamin" = 1)
- list_reagents = list("nutriment" = 10, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 1)
filling_color = "#9ACD32"
tastes = list("waffles" = 7, "people" = 1)
foodtype = GRAIN | GROSS | MEAT
@@ -158,8 +158,8 @@
desc = "Not made of people. Honest." //Actually honest for once.
icon_state = "soylent_yellow"
trash = /obj/item/trash/waffles
- bonus_reagents = list("vitamin" = 1)
- list_reagents = list("nutriment" = 10, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 1)
filling_color = "#9ACD32"
tastes = list("waffles" = 7, "the colour green" = 1)
foodtype = GRAIN
@@ -170,8 +170,8 @@
icon_state = "rofflewaffles"
trash = /obj/item/trash/waffles
bitesize = 4
- bonus_reagents = list("vitamin" = 2)
- list_reagents = list("nutriment" = 8, "mushroomhallucinogen" = 2, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/drug/mushroomhallucinogen = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
filling_color = "#00BFFF"
tastes = list("waffle" = 1, "mushrooms" = 1)
foodtype = GRAIN | VEGETABLES | TOXIC | SUGAR
@@ -183,8 +183,8 @@
desc = "COOKIE!!!"
icon_state = "COOKIE!!!"
bitesize = 1
- bonus_reagents = list("nutriment" = 1)
- list_reagents = list("nutriment" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1)
filling_color = "#F0E68C"
tastes = list("cookie" = 1)
foodtype = GRAIN | SUGAR
@@ -193,7 +193,7 @@
name = "\improper Donk-pocket"
desc = "The food of choice for the seasoned traitor."
icon_state = "donkpocket"
- list_reagents = list("nutriment" = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4)
cooked_type = /obj/item/reagent_containers/food/snacks/donkpocket/warm
filling_color = "#CD853F"
tastes = list("meat" = 2, "dough" = 2, "laziness" = 1)
@@ -202,8 +202,8 @@
/obj/item/reagent_containers/food/snacks/donkpocket/warm
name = "warm Donk-pocket"
desc = "The heated food of choice for the seasoned traitor."
- bonus_reagents = list("omnizine" = 3)
- list_reagents = list("nutriment" = 4, "omnizine" = 3)
+ bonus_reagents = list(/datum/reagent/medicine/omnizine = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/medicine/omnizine = 3)
cooked_type = null
tastes = list("meat" = 2, "dough" = 2, "laziness" = 1)
foodtype = GRAIN
@@ -212,7 +212,7 @@
name = "\improper Dank-pocket"
desc = "The food of choice for the seasoned botanist."
icon_state = "dankpocket"
- list_reagents = list("lipolicide" = 3, "space_drugs" = 3, "nutriment" = 4)
+ list_reagents = list(/datum/reagent/toxin/lipolicide = 3, /datum/reagent/drug/space_drugs = 3, /datum/reagent/consumable/nutriment = 4)
filling_color = "#00FF00"
tastes = list("meat" = 2, "dough" = 2)
foodtype = GRAIN | VEGETABLES
@@ -221,8 +221,8 @@
name = "fortune cookie"
desc = "A true prophecy in each cookie!"
icon_state = "fortune_cookie"
- bonus_reagents = list("nutriment" = 2)
- list_reagents = list("nutriment" = 3)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3)
filling_color = "#F4A460"
tastes = list("cookie" = 1)
foodtype = GRAIN | SUGAR
@@ -231,8 +231,8 @@
name = "poppy pretzel"
desc = "It's all twisted up!"
icon_state = "poppypretzel"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
- list_reagents = list("nutriment" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5)
filling_color = "#F0E68C"
tastes = list("pretzel" = 1)
foodtype = GRAIN | SUGAR
@@ -241,8 +241,8 @@
name = "plump helmet biscuit"
desc = "This is a finely-prepared plump helmet biscuit. The ingredients are exceptionally minced plump helmet, and well-minced dwarven wheat flour."
icon_state = "phelmbiscuit"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
- list_reagents = list("nutriment" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5)
filling_color = "#F0E68C"
tastes = list("mushroom" = 1, "biscuit" = 1)
foodtype = GRAIN | VEGETABLES
@@ -252,18 +252,18 @@
if(fey)
name = "exceptional plump helmet biscuit"
desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!"
- bonus_reagents = list("omnizine" = 5, "nutriment" = 1, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/medicine/omnizine = 5, /datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
. = ..()
if(fey)
- reagents.add_reagent("omnizine", 5)
+ reagents.add_reagent(/datum/reagent/medicine/omnizine, 5)
/obj/item/reagent_containers/food/snacks/cracker
name = "cracker"
desc = "It's a salted cracker."
icon_state = "cracker"
bitesize = 1
- bonus_reagents = list("nutriment" = 1)
- list_reagents = list("nutriment" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1)
filling_color = "#F0E68C"
tastes = list("cracker" = 1)
foodtype = GRAIN
@@ -273,8 +273,8 @@
desc = "Fresh footlong ready to go down on."
icon_state = "hotdog"
bitesize = 3
- bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
- list_reagents = list("nutriment" = 6, "ketchup" = 3, "vitamin" = 3)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/ketchup = 3, /datum/reagent/consumable/nutriment/vitamin = 3)
filling_color = "#8B0000"
tastes = list("bun" = 3, "meat" = 2)
foodtype = GRAIN | MEAT | VEGETABLES
@@ -283,8 +283,8 @@
name = "meat bun"
desc = "Has the potential to not be Dog."
icon_state = "meatbun"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
- list_reagents = list("nutriment" = 6, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2)
filling_color = "#8B0000"
tastes = list("bun" = 3, "meat" = 2)
foodtype = GRAIN | MEAT | VEGETABLES
@@ -293,7 +293,7 @@
name = "khachapuri"
desc = "Bread with egg and cheese?"
icon_state = "khachapuri"
- list_reagents = list("nutriment" = 12, "vitamin" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 12, /datum/reagent/consumable/nutriment/vitamin = 2)
filling_color = "#FFFF4D"
tastes = list("bread" = 1, "egg" = 1, "cheese" = 1)
foodtype = GRAIN | MEAT | DAIRY
@@ -303,8 +303,8 @@
name = "sugar cookie"
desc = "Just like your little sister used to make."
icon_state = "sugarcookie"
- bonus_reagents = list("nutriment" = 1, "sugar" = 3)
- list_reagents = list("nutriment" = 3, "sugar" = 3)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3)
filling_color = "#CD853F"
tastes = list("sweetness" = 1)
foodtype = GRAIN | JUNKFOOD | SUGAR
@@ -313,8 +313,8 @@
name = "chocolate cornet"
desc = "Which side's the head, the fat end or the thin end?"
icon_state = "chococornet"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
- list_reagents = list("nutriment" = 5, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1)
filling_color = "#FFE4C4"
tastes = list("biscuit" = 3, "chocolate" = 1)
foodtype = GRAIN | JUNKFOOD
@@ -323,8 +323,8 @@
name = "oatmeal cookie"
desc = "The best of both cookie and oat."
icon_state = "oatmealcookie"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
- list_reagents = list("nutriment" = 5, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1)
filling_color = "#D2691E"
tastes = list("cookie" = 2, "oat" = 1)
foodtype = GRAIN
@@ -333,8 +333,8 @@
name = "raisin cookie"
desc = "Why would you put raisins on a cookie?"
icon_state = "raisincookie"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
- list_reagents = list("nutriment" = 5, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1)
filling_color = "#F0E68C"
tastes = list("cookie" = 1, "raisins" = 1)
foodtype = GRAIN | FRUIT
@@ -343,8 +343,8 @@
name = "cherry cupcake"
desc = "A sweet cupcake with cherry bits."
icon_state = "cherrycupcake"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
- list_reagents = list("nutriment" = 5, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1)
filling_color = "#F0E68C"
tastes = list("cake" = 3, "cherry" = 1)
foodtype = GRAIN | FRUIT | SUGAR
@@ -353,8 +353,8 @@
name = "blue cherry cupcake"
desc = "Blue cherries inside a delicious cupcake."
icon_state = "bluecherrycupcake"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
- list_reagents = list("nutriment" = 5, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1)
filling_color = "#F0E68C"
tastes = list("cake" = 3, "blue cherry" = 1)
foodtype = GRAIN | FRUIT | SUGAR
@@ -363,8 +363,8 @@
name = "honey bun"
desc = "A sticky pastry bun glazed with honey."
icon_state = "honeybun"
- bonus_reagents = list("nutriment" = 1, "honey" = 1)
- list_reagents = list("nutriment" = 5, "honey" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/honey = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/honey = 5)
filling_color = "#F2CE91"
tastes = list("pastry" = 1, "sweetness" = 1)
foodtype = GRAIN
@@ -376,8 +376,8 @@
desc = "A fluffy pancake. The softer, superior relative of the waffle."
icon_state = "pancakes_1"
item_state = "pancakes"
- bonus_reagents = list("vitamin" = 1)
- list_reagents = list("nutriment" = 4, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 1)
filling_color = "#D2691E"
tastes = list("pancakes" = 1)
foodtype = GRAIN | SUGAR
@@ -387,8 +387,8 @@
desc = "A fluffy and delicious blueberry pancake."
icon_state = "bbpancakes_1"
item_state = "bbpancakes"
- bonus_reagents = list("vitamin" = 2)
- list_reagents = list("nutriment" = 6, "vitamin" = 3)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 3)
tastes = list("pancakes" = 1, "blueberries" = 1)
/obj/item/reagent_containers/food/snacks/pancakes/chocolatechip
@@ -396,8 +396,8 @@
desc = "A fluffy and delicious chocolate chip pancake."
icon_state = "ccpancakes_1"
item_state = "ccpancakes"
- bonus_reagents = list("vitamin" = 2)
- list_reagents = list("nutriment" = 6, "vitamin" = 3)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 3)
tastes = list("pancakes" = 1, "chocolate" = 1)
/obj/item/reagent_containers/food/snacks/pancakes/Initialize()
diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm
index 285361b0451..ce0a6f8d970 100644
--- a/code/modules/food_and_drinks/food/snacks_pie.dm
+++ b/code/modules/food_and_drinks/food/snacks_pie.dm
@@ -5,7 +5,7 @@
bitesize = 3
w_class = WEIGHT_CLASS_NORMAL
volume = 80
- list_reagents = list("nutriment" = 10, "vitamin" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("pie" = 1)
foodtype = GRAIN
@@ -14,7 +14,7 @@
desc = "A simple pie, still delicious."
icon_state = "pie"
custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/pie
- bonus_reagents = list("nutriment" = 8, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("pie" = 1)
foodtype = GRAIN
@@ -23,8 +23,8 @@
desc = "Just like back home, on clown planet! HONK!"
icon_state = "pie"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
- list_reagents = list("nutriment" = 6, "banana" = 5, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/banana = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("pie" = 1)
foodtype = GRAIN | DAIRY | SUGAR
var/stunning = TRUE
@@ -66,8 +66,8 @@
name = "berry clafoutis"
desc = "No black birds, this is a good sign."
icon_state = "berryclafoutis"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
- list_reagents = list("nutriment" = 10, "berryjuice" = 5, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/berryjuice = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("pie" = 1, "blackberries" = 1)
foodtype = GRAIN | FRUIT | SUGAR
@@ -75,8 +75,8 @@
name = "beary pie"
desc = "No brown bears, this is a good sign."
icon_state = "bearypie"
- bonus_reagents = list("nutriment" = 2, "vitamin" = 3)
- list_reagents = list("nutriment" = 2, "vitamin" = 3)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 3)
tastes = list("pie" = 1, "meat" = 1, "salmon" = 1)
foodtype = GRAIN | SUGAR
@@ -84,7 +84,7 @@
name = "meat-pie"
icon_state = "meatpie"
desc = "An old barber recipe, very delicious!"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("pie" = 1, "meat" = 1)
foodtype = GRAIN | MEAT
@@ -93,7 +93,7 @@
name = "tofu-pie"
icon_state = "meatpie"
desc = "A delicious tofu pie."
- bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("pie" = 1, "tofu" = 1)
foodtype = GRAIN
@@ -103,8 +103,8 @@
desc = "Sweet and tasty poison pie."
icon_state = "amanita_pie"
bitesize = 4
- bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
- list_reagents = list("nutriment" = 6, "amatoxin" = 3, "mushroomhallucinogen" = 1, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/toxin/amatoxin = 3, /datum/reagent/drug/mushroomhallucinogen = 1, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("pie" = 1, "mushroom" = 1)
foodtype = GRAIN | VEGETABLES | TOXIC | GROSS
@@ -113,7 +113,7 @@
name = "plump pie"
desc = "I bet you love stuff made out of plump helmets!"
icon_state = "plump_pie"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("pie" = 1, "mushroom" = 1)
foodtype = GRAIN | VEGETABLES
@@ -124,9 +124,9 @@
if(fey)
name = "exceptional plump pie"
desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!"
- bonus_reagents = list("nutriment" = 1, "omnizine" = 5, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/medicine/omnizine = 5, /datum/reagent/consumable/nutriment/vitamin = 4)
if(fey)
- reagents.add_reagent("omnizine", 5)
+ reagents.add_reagent(/datum/reagent/medicine/omnizine, 5)
/obj/item/reagent_containers/food/snacks/pie/xemeatpie
@@ -134,7 +134,7 @@
icon_state = "xenomeatpie"
desc = "A delicious meatpie. Probably heretical."
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("pie" = 1, "meat" = 1, "acid" = 1)
foodtype = GRAIN | MEAT
@@ -143,7 +143,7 @@
name = "apple pie"
desc = "A pie containing sweet sweet love...or apple."
icon_state = "applepie"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3)
tastes = list("pie" = 1, "apple" = 1)
foodtype = GRAIN | FRUIT | SUGAR
@@ -153,7 +153,7 @@
name = "cherry pie"
desc = "Taste so good, make a grown man cry."
icon_state = "cherrypie"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("pie" = 7, "Nicole Paige Brooks" = 2)
foodtype = GRAIN | FRUIT | SUGAR
@@ -164,7 +164,7 @@
icon_state = "pumpkinpie"
slice_path = /obj/item/reagent_containers/food/snacks/pumpkinpieslice
slices_num = 5
- bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("pie" = 1, "pumpkin" = 1)
foodtype = GRAIN | VEGETABLES
@@ -175,7 +175,7 @@
icon_state = "pumpkinpieslice"
trash = /obj/item/trash/plate
filling_color = "#FFA500"
- list_reagents = list("nutriment" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2)
tastes = list("pie" = 1, "pumpkin" = 1)
foodtype = GRAIN | VEGETABLES
@@ -183,8 +183,8 @@
name = "golden apple streusel tart"
desc = "A tasty dessert that won't make it through a metal detector."
icon_state = "gappletart"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
- list_reagents = list("nutriment" = 8, "gold" = 5, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/gold = 5, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("pie" = 1, "apple" = 1, "expensive metal" = 1)
foodtype = GRAIN | FRUIT | SUGAR
@@ -192,8 +192,8 @@
name = "grape tart"
desc = "A tasty dessert that reminds you of the wine you didn't make."
icon_state = "grapetart"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
- list_reagents = list("nutriment" = 4, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("pie" = 1, "grape" = 1)
foodtype = GRAIN | FRUIT | SUGAR
@@ -203,7 +203,7 @@
icon_state = "blumpkinpie"
slice_path = /obj/item/reagent_containers/food/snacks/blumpkinpieslice
slices_num = 5
- bonus_reagents = list("nutriment" = 3, "vitamin" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 6)
tastes = list("pie" = 1, "a mouthful of pool water" = 1)
foodtype = GRAIN | VEGETABLES
@@ -214,7 +214,7 @@
icon_state = "blumpkinpieslice"
trash = /obj/item/trash/plate
filling_color = "#1E90FF"
- list_reagents = list("nutriment" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2)
tastes = list("pie" = 1, "a mouthful of pool water" = 1)
foodtype = GRAIN | VEGETABLES
@@ -224,7 +224,7 @@
icon_state = "dulcedebatata"
slice_path = /obj/item/reagent_containers/food/snacks/dulcedebatataslice
slices_num = 5
- bonus_reagents = list("nutriment" = 4, "vitamin" = 8)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 8)
tastes = list("jelly" = 1, "sweet potato" = 1)
foodtype = GRAIN | VEGETABLES | SUGAR
@@ -235,7 +235,7 @@
icon_state = "dulcedebatataslice"
trash = /obj/item/trash/plate
filling_color = "#8B4513"
- list_reagents = list("nutriment" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2)
tastes = list("jelly" = 1, "sweet potato" = 1)
foodtype = GRAIN | VEGETABLES | SUGAR
@@ -243,6 +243,6 @@
name = "frosty pie"
desc = "Tastes like blue and cold."
icon_state = "frostypie"
- bonus_reagents = list("nutriment" = 4, "vitamin" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 6)
tastes = list("mint" = 1, "pie" = 1)
foodtype = GRAIN | FRUIT | SUGAR
diff --git a/code/modules/food_and_drinks/food/snacks_pizza.dm b/code/modules/food_and_drinks/food/snacks_pizza.dm
index e6d04cfc456..cb2ea093ca3 100644
--- a/code/modules/food_and_drinks/food/snacks_pizza.dm
+++ b/code/modules/food_and_drinks/food/snacks_pizza.dm
@@ -6,13 +6,13 @@
w_class = WEIGHT_CLASS_NORMAL
slices_num = 6
volume = 80
- list_reagents = list("nutriment" = 30, "tomatojuice" = 6, "vitamin" = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/consumable/tomatojuice = 6, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1)
foodtype = GRAIN | DAIRY | VEGETABLES
/obj/item/reagent_containers/food/snacks/pizzaslice
icon = 'icons/obj/food/pizzaspaghetti.dmi'
- list_reagents = list("nutriment" = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5)
foodtype = GRAIN | DAIRY | VEGETABLES
/obj/item/reagent_containers/food/snacks/pizza/margherita
@@ -20,12 +20,12 @@
desc = "The most cheezy pizza in galaxy."
icon_state = "pizzamargherita"
slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/margherita
- bonus_reagents = list("nutriment" = 5, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1)
foodtype = GRAIN | VEGETABLES
/obj/item/reagent_containers/food/snacks/pizza/margherita/robo/Initialize()
- bonus_reagents += list("nanomachines" = 70)
+ bonus_reagents += list(/datum/reagent/nanomachines = 70)
return ..()
/obj/item/reagent_containers/food/snacks/pizzaslice/margherita
@@ -41,8 +41,8 @@
desc = "Greasy pizza with delicious meat."
icon_state = "meatpizza"
slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/meat
- bonus_reagents = list("nutriment" = 5, "vitamin" = 8)
- list_reagents = list("nutriment" = 30, "tomatojuice" = 6, "vitamin" = 8)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 8)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/consumable/tomatojuice = 6, /datum/reagent/consumable/nutriment/vitamin = 8)
tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1)
foodtype = GRAIN | VEGETABLES| DAIRY | MEAT
@@ -59,8 +59,8 @@
desc = "Very special pizza."
icon_state = "mushroompizza"
slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/mushroom
- bonus_reagents = list("nutriment" = 5, "vitamin" = 5)
- list_reagents = list("nutriment" = 30, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "mushroom" = 1)
foodtype = GRAIN | VEGETABLES | DAIRY
@@ -77,8 +77,8 @@
desc = "No one of Tomatos Sapiens were harmed during making this pizza."
icon_state = "vegetablepizza"
slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/vegetable
- bonus_reagents = list("nutriment" = 5, "vitamin" = 5)
- list_reagents = list("nutriment" = 25, "tomatojuice" = 6, "oculine" = 12, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 25, /datum/reagent/consumable/tomatojuice = 6, /datum/reagent/medicine/oculine = 12, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("crust" = 1, "tomato" = 2, "cheese" = 1, "carrot" = 1)
foodtype = GRAIN | VEGETABLES | DAIRY
@@ -95,8 +95,8 @@
desc = "Who thought this would be a good idea?"
icon_state = "donkpocketpizza"
slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/donkpocket
- bonus_reagents = list("nutriment" = 5, "vitamin" = 5)
- list_reagents = list("nutriment" = 25, "tomatojuice" = 6, "omnizine" = 10, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 25, /datum/reagent/consumable/tomatojuice = 6, /datum/reagent/medicine/omnizine = 10, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1, "laziness" = 1)
foodtype = GRAIN | VEGETABLES | DAIRY | MEAT | JUNKFOOD
@@ -113,8 +113,8 @@
desc = "The hippie's pizza of choice."
icon_state = "dankpizza"
slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/dank
- bonus_reagents = list("nutriment" = 2, "vitamin" = 6)
- list_reagents = list("nutriment" = 25, "doctorsdelight" = 5, "tomatojuice" = 6, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 6)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 25, /datum/reagent/consumable/doctor_delight = 5, /datum/reagent/consumable/tomatojuice = 6, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1)
foodtype = GRAIN | VEGETABLES | FRUIT | DAIRY
@@ -131,7 +131,7 @@
desc = "You can really smell the sassiness."
icon_state = "sassysagepizza"
slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/sassysage
- bonus_reagents = list("nutriment" = 6, "vitamin" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 6)
tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1)
foodtype = GRAIN | VEGETABLES | DAIRY
@@ -148,7 +148,7 @@
desc = "The pizza equivalent of Einstein's riddle."
icon_state = "pineapplepizza"
slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/pineapple
- bonus_reagents = list("nutriment" = 6, "vitamin" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 6)
tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pineapple" = 2, "ham" = 2)
foodtype = GRAIN | VEGETABLES | DAIRY | MEAT | FRUIT | PINEAPPLE
@@ -165,7 +165,7 @@
desc = "Hello, you've reached Arnold's pizza shop. I'm not here now, I'm out killing pepperoni."
icon_state = "arnoldpizza"
slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/arnold
- bonus_reagents = list("nutriment" = 30, "vitamin" = 6, "iron" = 10, "omnizine" = 30)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/iron = 10, /datum/reagent/medicine/omnizine = 30)
tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pepperoni" = 2, "9 millimeter bullets" = 2)
/obj/item/reagent_containers/food/snacks/proc/try_break_off(mob/living/M, mob/living/user) //maybe i give you a pizza maybe i break off your arm
diff --git a/code/modules/food_and_drinks/food/snacks_salad.dm b/code/modules/food_and_drinks/food/snacks_salad.dm
index ec58737c02e..4de2500b144 100644
--- a/code/modules/food_and_drinks/food/snacks_salad.dm
+++ b/code/modules/food_and_drinks/food/snacks_salad.dm
@@ -5,7 +5,7 @@
trash = /obj/item/reagent_containers/glass/bowl
bitesize = 3
w_class = WEIGHT_CLASS_NORMAL
- list_reagents = list("nutriment" = 7, "vitamin" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("leaves" = 1)
foodtype = VEGETABLES
@@ -17,8 +17,8 @@
name = "\improper Aesir salad"
desc = "Probably too incredible for mortal men to fully enjoy."
icon_state = "aesirsalad"
- bonus_reagents = list("omnizine" = 2, "vitamin" = 6)
- list_reagents = list("nutriment" = 8, "omnizine" = 8, "vitamin" = 6)
+ bonus_reagents = list(/datum/reagent/medicine/omnizine = 2, /datum/reagent/consumable/nutriment/vitamin = 6)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/medicine/omnizine = 8, /datum/reagent/consumable/nutriment/vitamin = 6)
tastes = list("leaves" = 1)
foodtype = VEGETABLES
@@ -26,8 +26,8 @@
name = "herb salad"
desc = "A tasty salad with apples on top."
icon_state = "herbsalad"
- bonus_reagents = list("vitamin" = 4)
- list_reagents = list("nutriment" = 8, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("leaves" = 1, "apple" = 1)
foodtype = VEGETABLES | FRUIT
@@ -35,8 +35,8 @@
name = "valid salad"
desc = "It's just an herb salad with meatballs and fried potato slices. Nothing suspicious about it."
icon_state = "validsalad"
- bonus_reagents = list("doctorsdelight" = 5, "vitamin" = 4)
- list_reagents = list("nutriment" = 8, "doctorsdelight" = 5, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/doctor_delight = 5, /datum/reagent/consumable/nutriment/vitamin = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/doctor_delight = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("leaves" = 1, "potato" = 1, "meat" = 1, "valids" = 1)
foodtype = VEGETABLES | MEAT | FRIED | JUNKFOOD | FRUIT
@@ -44,8 +44,8 @@
name = "oatmeal"
desc = "A nice bowl of oatmeal."
icon_state = "oatmeal"
- bonus_reagents = list("nutriment" = 4, "vitamin" = 4)
- list_reagents = list("nutriment" = 7, "milk" = 10, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/milk = 10, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("oats" = 1, "milk" = 1)
foodtype = DAIRY | GRAIN
@@ -53,7 +53,7 @@
name = "fruit salad"
desc = "Your standard fruit salad."
icon_state = "fruitsalad"
- bonus_reagents = list("nutriment" = 2, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("fruit" = 1)
foodtype = FRUIT
@@ -61,8 +61,8 @@
name = "jungle salad"
desc = "Exotic fruits in a bowl."
icon_state = "junglesalad"
- bonus_reagents = list("nutriment" = 4, "vitamin" = 4)
- list_reagents = list("nutriment" = 7, "banana" = 5, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/banana = 5, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("fruit" = 1, "the jungle" = 1)
foodtype = FRUIT
@@ -70,8 +70,8 @@
name = "citrus delight"
desc = "Citrus overload!"
icon_state = "citrusdelight"
- bonus_reagents = list("nutriment" = 4, "vitamin" = 4)
- list_reagents = list("nutriment" = 7, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("sourness" = 1, "leaves" = 1)
foodtype = FRUIT
@@ -80,7 +80,7 @@
desc = "A bowl of raw rice."
icon_state = "ricebowl"
cooked_type = /obj/item/reagent_containers/food/snacks/salad/boiledrice
- list_reagents = list("nutriment" = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4)
tastes = list("rice" = 1)
foodtype = GRAIN | RAW
@@ -88,8 +88,8 @@
name = "boiled rice"
desc = "A warm bowl of rice."
icon_state = "boiledrice"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
- list_reagents = list("nutriment" = 5, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("rice" = 1)
foodtype = GRAIN
@@ -97,7 +97,7 @@
name = "rice pudding"
desc = "Everybody loves rice pudding!"
icon_state = "ricepudding"
- bonus_reagents = list("nutriment" = 4, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("rice" = 1, "sweetness" = 1)
foodtype = GRAIN | DAIRY
@@ -105,7 +105,7 @@
name = "rice and pork"
desc = "Well, it looks like pork..."
icon_state = "riceporkbowl"
- bonus_reagents = list("nutriment" = 4, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("rice" = 1, "meat" = 1)
foodtype = GRAIN | MEAT
@@ -113,6 +113,6 @@
name = "egg bowl"
desc = "A bowl of rice with a fried egg."
icon_state = "eggbowl"
- bonus_reagents = list("nutriment" = 4, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("rice" = 1, "egg" = 1)
foodtype = GRAIN | MEAT //EGG = MEAT -NinjaNomNom 2017
diff --git a/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm
index de43e951a29..3fe809431ce 100644
--- a/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm
+++ b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm
@@ -4,8 +4,8 @@
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "sandwich"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
- list_reagents = list("nutriment" = 7, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/nutriment/vitamin = 1)
cooked_type = /obj/item/reagent_containers/food/snacks/toastedsandwich
tastes = list("meat" = 2, "cheese" = 1, "bread" = 2, "lettuce" = 1)
foodtype = GRAIN | VEGETABLES
@@ -16,8 +16,8 @@
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "toastedsandwich"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 1, "carbon" = 2)
- list_reagents = list("nutriment" = 6, "carbon" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/carbon = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/carbon = 2)
tastes = list("toast" = 1)
foodtype = GRAIN
@@ -27,8 +27,8 @@
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "toastedsandwich"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
- list_reagents = list("nutriment" = 6, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("toast" = 1, "cheese" = 1)
foodtype = GRAIN | DAIRY
@@ -43,13 +43,13 @@
foodtype = GRAIN
/obj/item/reagent_containers/food/snacks/jellysandwich/slime
- bonus_reagents = list("slimejelly" = 5, "vitamin" = 2)
- list_reagents = list("nutriment" = 2, "slimejelly" = 5, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/toxin/slimejelly = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/toxin/slimejelly = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
foodtype = GRAIN | TOXIC
/obj/item/reagent_containers/food/snacks/jellysandwich/cherry
- bonus_reagents = list("cherryjelly" = 5, "vitamin" = 2)
- list_reagents = list("nutriment" = 2, "cherryjelly" = 5, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/cherryjelly = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/cherryjelly = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
foodtype = GRAIN | FRUIT
/obj/item/reagent_containers/food/snacks/icecreamsandwich
@@ -57,8 +57,8 @@
desc = "Portable Ice-cream in its own packaging."
icon = 'icons/obj/food/food.dmi'
icon_state = "icecreamsandwich"
- bonus_reagents = list("nutriment" = 1, "ice" = 2)
- list_reagents = list("nutriment" = 2, "ice" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/ice = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/ice = 2)
tastes = list("ice cream" = 1)
foodtype = GRAIN | DAIRY
@@ -68,8 +68,8 @@
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "notasandwich"
trash = /obj/item/trash/plate
- bonus_reagents = list("vitamin" = 6)
- list_reagents = list("nutriment" = 6, "vitamin" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 6)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 6)
tastes = list("nothing suspicious" = 1)
foodtype = GRAIN | GROSS
@@ -84,13 +84,13 @@
foodtype = GRAIN
/obj/item/reagent_containers/food/snacks/jelliedtoast/cherry
- bonus_reagents = list("cherryjelly" = 5, "vitamin" = 2)
- list_reagents = list("nutriment" = 1, "cherryjelly" = 5, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/cherryjelly = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/cherryjelly = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
foodtype = GRAIN | FRUIT | SUGAR
/obj/item/reagent_containers/food/snacks/jelliedtoast/slime
- bonus_reagents = list("slimejelly" = 5, "vitamin" = 2)
- list_reagents = list("nutriment" = 1, "slimejelly" = 5, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/toxin/slimejelly = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/toxin/slimejelly = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
foodtype = GRAIN | TOXIC | SUGAR
/obj/item/reagent_containers/food/snacks/twobread
@@ -98,7 +98,7 @@
desc = "This seems awfully bitter."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "twobread"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
- list_reagents = list("nutriment" = 2, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("bread" = 2)
foodtype = GRAIN
diff --git a/code/modules/food_and_drinks/food/snacks_soup.dm b/code/modules/food_and_drinks/food/snacks_soup.dm
index 2bf00c4e08e..1002daf9e8f 100644
--- a/code/modules/food_and_drinks/food/snacks_soup.dm
+++ b/code/modules/food_and_drinks/food/snacks_soup.dm
@@ -4,7 +4,7 @@
trash = /obj/item/reagent_containers/glass/bowl
bitesize = 5
volume = 80
- list_reagents = list("nutriment" = 8, "water" = 5, "vitamin" = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/water = 5, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("tasteless soup" = 1)
foodtype = VEGETABLES
@@ -16,7 +16,7 @@
name = "wish soup"
desc = "I wish this was soup."
icon_state = "wishsoup"
- list_reagents = list("water" = 10)
+ list_reagents = list(/datum/reagent/water = 10)
tastes = list("wishes" = 1)
/obj/item/reagent_containers/food/snacks/soup/wish/Initialize()
@@ -24,17 +24,17 @@
var/wish_true = prob(25)
if(wish_true)
desc = "A wish come true!"
- bonus_reagents = list("nutriment" = 9, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 9, /datum/reagent/consumable/nutriment/vitamin = 1)
if(wish_true)
- reagents.add_reagent("nutriment", 9)
- reagents.add_reagent("vitamin", 1)
+ reagents.add_reagent(/datum/reagent/consumable/nutriment, 9)
+ reagents.add_reagent(/datum/reagent/consumable/nutriment/vitamin, 1)
foodtype = VEGETABLES
/obj/item/reagent_containers/food/snacks/soup/meatball
name = "meatball soup"
desc = "You've got balls kid, BALLS!"
icon_state = "meatballsoup"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("meat" = 1)
foodtype = MEAT
@@ -42,8 +42,8 @@
name = "slime soup"
desc = "If no water is available, you may substitute tears."
icon_state = "slimesoup"
- bonus_reagents = list("nutriment" = 1, "slimejelly" = 5, "vitamin" = 5)
- list_reagents = list("nutriment" = 5, "slimejelly" = 5, "water" = 5, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/toxin/slimejelly = 5, /datum/reagent/consumable/nutriment/vitamin = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/toxin/slimejelly = 5, /datum/reagent/water = 5, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("slime" = 1)
foodtype = TOXIC | SUGAR
@@ -51,8 +51,8 @@
name = "tomato soup"
desc = "Smells like copper."
icon_state = "tomatosoup"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 6)
- list_reagents = list("nutriment" = 2, "blood" = 10, "water" = 5, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 6)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/blood = 10, /datum/reagent/water = 5, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("iron" = 1)
foodtype = GROSS
@@ -61,8 +61,8 @@
desc = "A savory dish of alien wing wang in soy."
icon_state = "wingfangchu"
trash = /obj/item/reagent_containers/glass/bowl
- bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
- list_reagents = list("nutriment" = 6, "soysauce" = 5, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/soysauce = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("soy" = 1)
foodtype = MEAT
@@ -70,8 +70,8 @@
name = "clown's tears"
desc = "Not very funny."
icon_state = "clownstears"
- bonus_reagents = list("nutriment" = 1, "banana" = 5, "vitamin" = 8, "clownstears" = 10)
- list_reagents = list("nutriment" = 4, "banana" = 5, "water" = 5, "vitamin" = 8, "clownstears" = 10)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/banana = 5, /datum/reagent/consumable/nutriment/vitamin = 8, /datum/reagent/consumable/clownstears = 10)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/banana = 5, /datum/reagent/water = 5, /datum/reagent/consumable/nutriment/vitamin = 8, /datum/reagent/consumable/clownstears = 10)
tastes = list("a bad joke" = 1)
foodtype = FRUIT | SUGAR
@@ -79,7 +79,7 @@
name = "vegetable soup"
desc = "A true vegan meal."
icon_state = "vegetablesoup"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("vegetables" = 1)
foodtype = VEGETABLES
@@ -87,7 +87,7 @@
name = "nettle soup"
desc = "To think, the botanist would've beat you to death with one of these."
icon_state = "nettlesoup"
- bonus_reagents = list("nutriment" = 1, "omnizine" = 5, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/medicine/omnizine = 5, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("nettles" = 1)
foodtype = VEGETABLES
@@ -96,21 +96,21 @@
desc = "The mystery is, why aren't you eating it?"
icon_state = "mysterysoup"
var/extra_reagent = null
- list_reagents = list("nutriment" = 6)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6)
tastes = list("chaos" = 1)
/obj/item/reagent_containers/food/snacks/soup/mystery/Initialize()
. = ..()
- extra_reagent = pick("capsaicin", "frostoil", "omnizine", "banana", "blood", "slimejelly", "toxin", "banana", "carbon", "oculine")
- bonus_reagents = list("[extra_reagent]" = 5, "nutriment" = 6)
+ extra_reagent = pick(/datum/reagent/consumable/capsaicin, /datum/reagent/consumable/frostoil, /datum/reagent/medicine/omnizine, /datum/reagent/consumable/banana, /datum/reagent/blood, /datum/reagent/toxin/slimejelly, /datum/reagent/toxin, /datum/reagent/consumable/banana, /datum/reagent/carbon, /datum/reagent/medicine/oculine)
+ bonus_reagents = list("[extra_reagent]" = 5, /datum/reagent/consumable/nutriment = 6)
reagents.add_reagent("[extra_reagent]", 5)
/obj/item/reagent_containers/food/snacks/soup/hotchili
name = "hot chili"
desc = "A five alarm Texan Chili!"
icon_state = "hotchili"
- bonus_reagents = list("nutriment" = 1, "tomatojuice" = 2, "vitamin" = 2)
- list_reagents = list("nutriment" = 5, "capsaicin" = 1, "tomatojuice" = 2, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/tomatojuice = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/capsaicin = 1, /datum/reagent/consumable/tomatojuice = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("hot peppers" = 1)
foodtype = VEGETABLES
@@ -118,8 +118,8 @@
name = "cold chili"
desc = "This slush is barely a liquid!"
icon_state = "coldchili"
- bonus_reagents = list("nutriment" = 1, "tomatojuice" = 2, "vitamin" = 2)
- list_reagents = list("nutriment" = 5, "frostoil" = 1, "tomatojuice" = 2, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/tomatojuice = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/frostoil = 1, /datum/reagent/consumable/tomatojuice = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("tomato" = 1, "mint" = 1)
foodtype = VEGETABLES
@@ -127,8 +127,8 @@
name = "monkey's delight"
desc = "A delicious soup with dumplings and hunks of monkey meat simmered to perfection, in a broth that tastes faintly of bananas."
icon_state = "monkeysdelight"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
- list_reagents = list("nutriment" = 10, "banana" = 5, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/banana = 5, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("the jungle" = 1, "banana" = 1)
foodtype = FRUIT
@@ -136,8 +136,8 @@
name = "tomato soup"
desc = "Drinking this feels like being a vampire! A tomato vampire..."
icon_state = "tomatosoup"
- bonus_reagents = list("nutriment" = 1, "tomatojuice" = 10, "vitamin" = 3)
- list_reagents = list("nutriment" = 5, "tomatojuice" = 10, "vitamin" = 3)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/tomatojuice = 10, /datum/reagent/consumable/nutriment/vitamin = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/tomatojuice = 10, /datum/reagent/consumable/nutriment/vitamin = 3)
tastes = list("tomato" = 1)
foodtype = VEGETABLES
@@ -145,7 +145,7 @@
name = "eyeball soup"
desc = "It looks back at you..."
icon_state = "eyeballsoup"
- bonus_reagents = list("nutriment" = 1, "liquidgibs" = 3)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/liquidgibs = 3)
tastes = list("tomato" = 1, "squirming" = 1)
foodtype = MEAT | GROSS
@@ -153,7 +153,7 @@
name = "milosoup"
desc = "The universes best soup! Yum!!!"
icon_state = "milosoup"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3)
tastes = list("milo" = 1) // wtf is milo
foodtype = GROSS
@@ -161,8 +161,8 @@
name = "chantrelle soup"
desc = "A delicious and hearty mushroom soup."
icon_state = "mushroomsoup"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
- list_reagents = list("nutriment" = 8, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("mushroom" = 1)
foodtype = VEGETABLES
@@ -170,7 +170,7 @@
name = "beet soup"
desc = "Wait, how do you spell it again..?"
icon_state = "beetsoup"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5)
foodtype = VEGETABLES
/obj/item/reagent_containers/food/snacks/soup/beet/Initialize()
@@ -184,8 +184,8 @@
desc = "Jello gelatin, from Alfred Hubbard's cookbook."
icon_state = "spacylibertyduff"
bitesize = 3
- bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
- list_reagents = list("nutriment" = 6, "mushroomhallucinogen" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/drug/mushroomhallucinogen = 6)
tastes = list("jelly" = 1, "mushroom" = 1)
foodtype = VEGETABLES
@@ -194,8 +194,8 @@
desc = "Looks curiously toxic."
icon_state = "amanitajelly"
bitesize = 3
- bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
- list_reagents = list("nutriment" = 6, "mushroomhallucinogen" = 3, "amatoxin" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/drug/mushroomhallucinogen = 3, /datum/reagent/toxin/amatoxin = 6)
tastes = list("jelly" = 1, "mushroom" = 1)
foodtype = VEGETABLES | TOXIC
@@ -203,8 +203,8 @@
name = "stew"
desc = "A nice and warm stew. Healthy and strong."
icon_state = "stew"
- bonus_reagents = list("nutriment" = 1, "tomatojuice" = 5, "vitamin" = 5)
- list_reagents = list("nutriment" = 10, "oculine" = 5, "tomatojuice" = 5, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/tomatojuice = 5, /datum/reagent/consumable/nutriment/vitamin = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/medicine/oculine = 5, /datum/reagent/consumable/tomatojuice = 5, /datum/reagent/consumable/nutriment/vitamin = 5)
bitesize = 7
volume = 100
tastes = list("tomato" = 1, "carrot" = 1)
@@ -214,7 +214,7 @@
name = "sweet potato soup"
desc = "Delicious sweet potato in soup form."
icon_state = "sweetpotatosoup"
- bonus_reagents = list("nutriment" = 4, "vitamin" = 5)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 5)
tastes = list("sweet potato" = 1)
foodtype = VEGETABLES | SUGAR
@@ -222,6 +222,6 @@
name = "red beet soup"
desc = "Quite a delicacy."
icon_state = "redbeetsoup"
- bonus_reagents = list("nutriment" = 4, "vitamin" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 6)
tastes = list("beet" = 1)
foodtype = VEGETABLES
diff --git a/code/modules/food_and_drinks/food/snacks_spaghetti.dm b/code/modules/food_and_drinks/food/snacks_spaghetti.dm
index e14c9177ed0..b30703e9a84 100644
--- a/code/modules/food_and_drinks/food/snacks_spaghetti.dm
+++ b/code/modules/food_and_drinks/food/snacks_spaghetti.dm
@@ -4,7 +4,7 @@
desc = "Now that's a nic'e pasta!"
icon = 'icons/obj/food/pizzaspaghetti.dmi'
icon_state = "spaghetti"
- list_reagents = list("nutriment" = 1, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
cooked_type = /obj/item/reagent_containers/food/snacks/spaghetti/boiledspaghetti
filling_color = "#F0E68C"
tastes = list("pasta" = 1)
@@ -23,8 +23,8 @@
desc = "A plain dish of noodles, this needs more ingredients."
icon_state = "spaghettiboiled"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 2)
- list_reagents = list("nutriment" = 2, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1)
cooked_type = null
custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/pasta
@@ -34,8 +34,8 @@
icon_state = "pastatomato"
trash = /obj/item/trash/plate
bitesize = 4
- bonus_reagents = list("nutriment" = 1, "tomatojuice" = 10, "vitamin" = 4)
- list_reagents = list("nutriment" = 6, "tomatojuice" = 10, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/tomatojuice = 10, /datum/reagent/consumable/nutriment/vitamin = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/tomatojuice = 10, /datum/reagent/consumable/nutriment/vitamin = 4)
cooked_type = null
filling_color = "#DC143C"
tastes = list("pasta" = 1, "tomato" = 1)
@@ -47,8 +47,8 @@
icon_state = "copypasta"
trash = /obj/item/trash/plate
bitesize = 4
- bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
- list_reagents = list("nutriment" = 12, "tomatojuice" = 20, "vitamin" = 8)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 12, /datum/reagent/consumable/tomatojuice = 20, /datum/reagent/consumable/nutriment/vitamin = 8)
cooked_type = null
filling_color = "#DC143C"
tastes = list("pasta" = 1, "tomato" = 1)
@@ -59,8 +59,8 @@
desc = "Now that's a nic'e meatball!"
icon_state = "meatballspaghetti"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
- list_reagents = list("nutriment" = 8, "vitamin" = 4)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 4)
cooked_type = null
tastes = list("pasta" = 1, "tomato" = 1, "meat" = 1)
foodtype = GRAIN | MEAT
@@ -70,8 +70,8 @@
desc = "A lawyers favourite."
icon_state = "spesslaw"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 1, "vitamin" = 6)
- list_reagents = list("nutriment" = 8, "vitamin" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 6)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 6)
cooked_type = null
tastes = list("pasta" = 1, "tomato" = 1, "meat" = 1)
@@ -80,8 +80,8 @@
desc = "A nice mix of noodles and fried vegetables."
icon_state = "chowmein"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 3, "vitamin" = 4)
- list_reagents = list("nutriment" = 7, "vitamin" = 6)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/nutriment/vitamin = 6)
cooked_type = null
tastes = list("noodle" = 1, "tomato" = 1)
@@ -90,7 +90,7 @@
desc = "Nutritious, beefy and noodly."
icon_state = "beefnoodle"
trash = /obj/item/reagent_containers/glass/bowl
- bonus_reagents = list("nutriment" = 5, "vitamin" = 6, "liquidgibs" = 3)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/liquidgibs = 3)
cooked_type = null
tastes = list("noodle" = 1, "meat" = 1)
foodtype = GRAIN | MEAT
@@ -100,7 +100,7 @@
desc = "Noodles covered in savory butter. Simple and slippery, but delicious."
icon_state = "butternoodles"
trash = /obj/item/trash/plate
- bonus_reagents = list("nutriment" = 8, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1)
cooked_type = null
tastes = list("noodle" = 1, "butter" = 1)
foodtype = GRAIN | DAIRY
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/food/snacks_vend.dm b/code/modules/food_and_drinks/food/snacks_vend.dm
index 4e7dcecf376..41c41783a6a 100644
--- a/code/modules/food_and_drinks/food/snacks_vend.dm
+++ b/code/modules/food_and_drinks/food/snacks_vend.dm
@@ -7,7 +7,7 @@
desc = "Nougat love it or hate it."
icon_state = "candy"
trash = /obj/item/trash/candy
- list_reagents = list("nutriment" = 1, "sugar" = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 3)
junkiness = 25
filling_color = "#D2691E"
tastes = list("candy" = 1)
@@ -18,7 +18,7 @@
icon_state = "sosjerky"
desc = "Beef jerky made from the finest space cows."
trash = /obj/item/trash/sosjerky
- list_reagents = list("nutriment" = 1, "sugar" = 3, "sodiumchloride" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/sodiumchloride = 2)
junkiness = 25
filling_color = "#8B0000"
tastes = list("dried meat" = 1)
@@ -27,7 +27,7 @@
/obj/item/reagent_containers/food/snacks/sosjerky/healthy
name = "homemade beef jerky"
desc = "Homemade beef jerky made from the finest space cows."
- list_reagents = list("nutriment" = 3, "vitamin" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1)
junkiness = 0
/obj/item/reagent_containers/food/snacks/chips
@@ -36,7 +36,7 @@
icon_state = "chips"
trash = /obj/item/trash/chips
bitesize = 1
- list_reagents = list("nutriment" = 1, "sugar" = 3, "sodiumchloride" = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/sodiumchloride = 1)
junkiness = 20
filling_color = "#FFD700"
tastes = list("salt" = 1, "crisps" = 1)
@@ -47,7 +47,7 @@
icon_state = "4no_raisins"
desc = "Best raisins in the universe. Not sure why."
trash = /obj/item/trash/raisins
- list_reagents = list("nutriment" = 2, "sugar" = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/sugar = 4)
junkiness = 25
filling_color = "#8B0000"
tastes = list("dried raisins" = 1)
@@ -57,7 +57,7 @@
/obj/item/reagent_containers/food/snacks/no_raisin/healthy
name = "homemade raisins"
desc = "Homemade raisins, the best in all of spess."
- list_reagents = list("nutriment" = 3, "vitamin" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2)
junkiness = 0
foodtype = FRUIT
@@ -65,7 +65,7 @@
name = "space twinkie"
icon_state = "space_twinkie"
desc = "Guaranteed to survive longer than you will."
- list_reagents = list("sugar" = 4)
+ list_reagents = list(/datum/reagent/consumable/sugar = 4)
junkiness = 25
filling_color = "#FFD700"
foodtype = JUNKFOOD | GRAIN | SUGAR
@@ -76,7 +76,7 @@
desc = "Bite sized cheesie snacks that will honk all over your mouth."
icon_state = "cheesie_honkers"
trash = /obj/item/trash/cheesie
- list_reagents = list("nutriment" = 1, "sugar" = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/sugar = 3)
junkiness = 25
filling_color = "#FFD700"
tastes = list("cheese" = 5, "crisps" = 2)
@@ -88,7 +88,7 @@
icon_state = "syndi_cakes"
desc = "An extremely moist snack cake that tastes just as good after being nuked."
trash = /obj/item/trash/syndi_cakes
- list_reagents = list("nutriment" = 4, "doctorsdelight" = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/doctor_delight = 5)
filling_color = "#F5F5DC"
tastes = list("sweetness" = 3, "cake" = 1)
foodtype = GRAIN | FRUIT | VEGETABLES
@@ -98,7 +98,7 @@
icon_state = "energybar"
desc = "An energy bar with a lot of punch, you probably shouldn't eat this if you're not an Ethereal."
trash = /obj/item/trash/energybar
- list_reagents = list("nutriment" = 3, "liquidelectricity" = 3)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/liquidelectricity = 3)
filling_color = "#97ee63"
tastes = list("pure electricity" = 3, "fitness" = 2)
foodtype = TOXIC
diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm
index b0a22edb93d..30b2ff5abb2 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm
@@ -53,7 +53,7 @@ God bless America.
/obj/machinery/deepfryer/Initialize()
. = ..()
create_reagents(50, OPENCONTAINER)
- reagents.add_reagent("cooking_oil", 25)
+ reagents.add_reagent(/datum/reagent/consumable/cooking_oil, 25)
component_parts = list()
component_parts += new /obj/item/circuitboard/machine/deep_fryer(null)
component_parts += new /obj/item/stock_parts/micro_laser(null)
@@ -83,7 +83,7 @@ God bless America.
I.reagents.trans_to(src, I.reagents.total_volume, transfered_by = user)
qdel(I)
return
- if(!reagents.has_reagent("cooking_oil"))
+ if(!reagents.has_reagent(/datum/reagent/consumable/cooking_oil))
to_chat(user, "[src] has no cooking oil to fry with!")
return
if(I.resistance_flags & INDESTRUCTIBLE)
@@ -107,7 +107,7 @@ God bless America.
/obj/machinery/deepfryer/process()
..()
- var/datum/reagent/consumable/cooking_oil/C = reagents.has_reagent("cooking_oil")
+ var/datum/reagent/consumable/cooking_oil/C = reagents.has_reagent(/datum/reagent/consumable/cooking_oil)
if(!C)
return
reagents.chem_temp = C.fry_temperature
diff --git a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm
index 9c01eaa13cd..1843ad0991e 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm
@@ -35,16 +35,16 @@
dat += "Portion: [portion]
"
for(var/datum/reagent/R in reagents.reagent_list)
dat += "[R.name]: [R.volume] "
- dat += "Purge"
+ dat += "Purge"
if (glasses > 0)
- dat += "Pour in a glass"
- dat += "Add to the mixer
"
+ dat += "Pour in a glass"
+ dat += "Add to the mixer
"
dat += "
MIXER CONTENTS
STORED FOOD
"
for(var/V in stored_food)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
index 4341217fe59..5bd0d76ddb0 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
@@ -186,7 +186,7 @@
newmeat.name = "[sourcename] [newmeat.name]"
if(istype(newmeat))
newmeat.subjectname = sourcename
- newmeat.reagents.add_reagent ("nutriment", sourcenutriment / meat_produced) // Thehehe. Fat guys go first
+ newmeat.reagents.add_reagent (/datum/reagent/consumable/nutriment, sourcenutriment / meat_produced) // Thehehe. Fat guys go first
if(occupant_volume)
occupant.reagents.trans_to(newmeat, occupant_volume / meat_produced, remove_blacklisted = TRUE)
if(sourcejob)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
index 9ff68b5c06d..5cbc608fa87 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
@@ -17,31 +17,31 @@
max_integrity = 300
var/list/product_types = list()
var/dispense_flavour = ICECREAM_VANILLA
- var/flavour_name = "vanilla"
+ var/flavour_name = /datum/reagent/consumable/vanilla
var/static/list/icecream_vat_reagents = list(
- "milk" = 5,
- "flour" = 5,
- "sugar" = 5,
- "ice" = 5,
- "cocoa" = 5,
- "vanilla" = 5,
- "berryjuice" = 5,
- "singulo" = 5)
+ /datum/reagent/consumable/milk = 5,
+ /datum/reagent/consumable/flour = 5,
+ /datum/reagent/consumable/sugar = 5,
+ /datum/reagent/consumable/ice = 5,
+ /datum/reagent/consumable/coco = 5,
+ /datum/reagent/consumable/vanilla = 5,
+ /datum/reagent/consumable/berryjuice = 5,
+ /datum/reagent/consumable/ethanol/singulo = 5)
/obj/machinery/icecream_vat/proc/get_ingredient_list(type)
switch(type)
if(ICECREAM_CHOCOLATE)
- return list("milk", "ice", "cocoa")
+ return list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/coco)
if(ICECREAM_STRAWBERRY)
- return list("milk", "ice", "berryjuice")
+ return list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/berryjuice)
if(ICECREAM_BLUE)
- return list("milk", "ice", "singulo")
+ return list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/ethanol/singulo)
if(CONE_WAFFLE)
- return list("flour", "sugar")
+ return list(/datum/reagent/consumable/flour, /datum/reagent/consumable/sugar)
if(CONE_CHOC)
- return list("flour", "sugar", "cocoa")
+ return list(/datum/reagent/consumable/flour, /datum/reagent/consumable/sugar, /datum/reagent/consumable/coco)
else //ICECREAM_VANILLA
- return list("milk", "ice", "vanilla")
+ return list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/vanilla)
/obj/machinery/icecream_vat/proc/get_flavour_name(flavour_type)
@@ -57,7 +57,7 @@
if(CONE_CHOC)
return "chocolate"
else //ICECREAM_VANILLA
- return "vanilla"
+ return /datum/reagent/consumable/vanilla
/obj/machinery/icecream_vat/Initialize()
@@ -84,7 +84,7 @@
dat += "
VAT CONTENT"
for(var/datum/reagent/R in reagents.reagent_list)
dat += "[R.name]: [R.volume]"
- dat += "
Purge"
+ dat += "
Purge"
dat += "
Refresh Close"
var/datum/browser/popup = new(user, "icecreamvat","Icecream Vat", 700, 500, src)
@@ -100,7 +100,7 @@
product_types[dispense_flavour] -= 1
I.add_ice_cream(flavour_name)
if(I.reagents.total_volume < 10)
- I.reagents.add_reagent("sugar", 10 - I.reagents.total_volume)
+ I.reagents.add_reagent(/datum/reagent/consumable/sugar, 10 - I.reagents.total_volume)
else
to_chat(user, "
There is not enough ice cream left!")
else
@@ -179,16 +179,16 @@
/obj/item/reagent_containers/food/snacks/icecream/Initialize()
. = ..()
create_reagents(20)
- reagents.add_reagent("nutriment", 4)
+ reagents.add_reagent(/datum/reagent/consumable/nutriment, 4)
/obj/item/reagent_containers/food/snacks/icecream/proc/set_cone_type(var/cone_name)
cone_type = cone_name
icon_state = "icecream_cone_[cone_name]"
switch (cone_type)
if ("waffle")
- reagents.add_reagent("nutriment", 1)
+ reagents.add_reagent(/datum/reagent/consumable/nutriment, 1)
if ("chocolate")
- reagents.add_reagent("cocoa", 1) // chocolate ain't as nutritious kids
+ reagents.add_reagent(/datum/reagent/consumable/coco, 1) // chocolate ain't as nutritious kids
desc = "Delicious [cone_name] cone, but no ice cream."
@@ -197,20 +197,20 @@
name = "[flavour_name] icecream"
src.add_overlay("icecream_[flavour_name]")
switch (flavour_name) // adding the actual reagents advertised in the ingredient list
- if ("vanilla")
+ if (/datum/reagent/consumable/vanilla)
desc = "A delicious [cone_type] cone filled with vanilla ice cream. All the other ice creams take content from it."
if ("chocolate")
desc = "A delicious [cone_type] cone filled with chocolate ice cream. Surprisingly, made with real cocoa."
- reagents.add_reagent("cocoa", 2)
+ reagents.add_reagent(/datum/reagent/consumable/coco, 2)
if ("strawberry")
desc = "A delicious [cone_type] cone filled with strawberry ice cream. Definitely not made with real strawberries."
- reagents.add_reagent("berryjuice", 2)
+ reagents.add_reagent(/datum/reagent/consumable/berryjuice, 2)
if ("blue")
desc = "A delicious [cone_type] cone filled with blue ice cream. Made with real... blue?"
- reagents.add_reagent("singulo", 2)
+ reagents.add_reagent(/datum/reagent/consumable/ethanol/singulo, 2)
if ("mob")
desc = "A suspicious [cone_type] cone filled with bright red ice cream. That's probably not strawberry..."
- reagents.add_reagent("liquidgibs", 2)
+ reagents.add_reagent(/datum/reagent/liquidgibs, 2)
ice_creamed = 1
/obj/item/reagent_containers/food/snacks/icecream/proc/add_mob_flavor(var/mob/M)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
index 91014587180..a377540f0d6 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
@@ -136,8 +136,8 @@
if(istype(O, /obj/item/reagent_containers/spray))
var/obj/item/reagent_containers/spray/clean_spray = O
- if(clean_spray.reagents.has_reagent("cleaner", clean_spray.amount_per_transfer_from_this))
- clean_spray.reagents.remove_reagent("cleaner", clean_spray.amount_per_transfer_from_this,1)
+ if(clean_spray.reagents.has_reagent(/datum/reagent/space_cleaner, clean_spray.amount_per_transfer_from_this))
+ clean_spray.reagents.remove_reagent(/datum/reagent/space_cleaner, clean_spray.amount_per_transfer_from_this,1)
playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6)
user.visible_message("[user] has cleaned \the [src].", "
You clean \the [src].")
dirty = 0
diff --git a/code/modules/food_and_drinks/recipes/drinks_recipes.dm b/code/modules/food_and_drinks/recipes/drinks_recipes.dm
index fdd32766748..5d9a3e190b0 100644
--- a/code/modules/food_and_drinks/recipes/drinks_recipes.dm
+++ b/code/modules/food_and_drinks/recipes/drinks_recipes.dm
@@ -3,781 +3,781 @@
/datum/chemical_reaction/goldschlager
name = "Goldschlager"
- id = "goldschlager"
- results = list("goldschlager" = 10)
- required_reagents = list("vodka" = 10, "gold" = 1)
+ id = /datum/reagent/consumable/ethanol/goldschlager
+ results = list(/datum/reagent/consumable/ethanol/goldschlager = 10)
+ required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 10, /datum/reagent/gold = 1)
/datum/chemical_reaction/patron
name = "Patron"
- id = "patron"
- results = list("patron" = 10)
- required_reagents = list("tequila" = 10, "silver" = 1)
+ id = /datum/reagent/consumable/ethanol/patron
+ results = list(/datum/reagent/consumable/ethanol/patron = 10)
+ required_reagents = list(/datum/reagent/consumable/ethanol/tequila = 10, /datum/reagent/silver = 1)
/datum/chemical_reaction/bilk
name = "Bilk"
- id = "bilk"
- results = list("bilk" = 2)
- required_reagents = list("milk" = 1, "beer" = 1)
+ id = /datum/reagent/consumable/ethanol/bilk
+ results = list(/datum/reagent/consumable/ethanol/bilk = 2)
+ required_reagents = list(/datum/reagent/consumable/milk = 1, /datum/reagent/consumable/ethanol/beer = 1)
/datum/chemical_reaction/icetea
name = "Iced Tea"
- id = "icetea"
- results = list("icetea" = 4)
- required_reagents = list("ice" = 1, "tea" = 3)
+ id = /datum/reagent/consumable/icetea
+ results = list(/datum/reagent/consumable/icetea = 4)
+ required_reagents = list(/datum/reagent/consumable/ice = 1, /datum/reagent/consumable/tea = 3)
/datum/chemical_reaction/icecoffee
name = "Iced Coffee"
- id = "icecoffee"
- results = list("icecoffee" = 4)
- required_reagents = list("ice" = 1, "coffee" = 3)
+ id = /datum/reagent/consumable/icecoffee
+ results = list(/datum/reagent/consumable/icecoffee = 4)
+ required_reagents = list(/datum/reagent/consumable/ice = 1, /datum/reagent/consumable/coffee = 3)
/datum/chemical_reaction/nuka_cola
name = "Nuka Cola"
- id = "nuka_cola"
- results = list("nuka_cola" = 6)
- required_reagents = list("uranium" = 1, "cola" = 6)
+ id = /datum/reagent/consumable/nuka_cola
+ results = list(/datum/reagent/consumable/nuka_cola = 6)
+ required_reagents = list(/datum/reagent/uranium = 1, /datum/reagent/consumable/space_cola = 6)
/datum/chemical_reaction/moonshine
name = "Moonshine"
- id = "moonshine"
- results = list("moonshine" = 10)
- required_reagents = list("nutriment" = 5, "sugar" = 5)
- required_catalysts = list("enzyme" = 5)
+ id = /datum/reagent/consumable/ethanol/moonshine
+ results = list(/datum/reagent/consumable/ethanol/moonshine = 10)
+ required_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/sugar = 5)
+ required_catalysts = list(/datum/reagent/consumable/enzyme = 5)
/datum/chemical_reaction/wine
name = "Wine"
- id = "wine"
- results = list("wine" = 10)
- required_reagents = list("grapejuice" = 10)
- required_catalysts = list("enzyme" = 5)
+ id = /datum/reagent/consumable/ethanol/wine
+ results = list(/datum/reagent/consumable/ethanol/wine = 10)
+ required_reagents = list(/datum/reagent/consumable/grapejuice = 10)
+ required_catalysts = list(/datum/reagent/consumable/enzyme = 5)
/datum/chemical_reaction/spacebeer
name = "Space Beer"
id = "spacebeer"
- results = list("beer" = 10)
- required_reagents = list("flour" = 10)
- required_catalysts = list("enzyme" = 5)
+ results = list(/datum/reagent/consumable/ethanol/beer = 10)
+ required_reagents = list(/datum/reagent/consumable/flour = 10)
+ required_catalysts = list(/datum/reagent/consumable/enzyme = 5)
/datum/chemical_reaction/vodka
name = "Vodka"
- id = "vodka"
- results = list("vodka" = 10)
- required_reagents = list("potato" = 10)
- required_catalysts = list("enzyme" = 5)
+ id = /datum/reagent/consumable/ethanol/vodka
+ results = list(/datum/reagent/consumable/ethanol/vodka = 10)
+ required_reagents = list(/datum/reagent/consumable/potato_juice = 10)
+ required_catalysts = list(/datum/reagent/consumable/enzyme = 5)
/datum/chemical_reaction/kahlua
name = "Kahlua"
- id = "kahlua"
- results = list("kahlua" = 5)
- required_reagents = list("coffee" = 5, "sugar" = 5)
- required_catalysts = list("enzyme" = 5)
+ id = /datum/reagent/consumable/ethanol/kahlua
+ results = list(/datum/reagent/consumable/ethanol/kahlua = 5)
+ required_reagents = list(/datum/reagent/consumable/coffee = 5, /datum/reagent/consumable/sugar = 5)
+ required_catalysts = list(/datum/reagent/consumable/enzyme = 5)
/datum/chemical_reaction/gin_tonic
name = "Gin and Tonic"
- id = "gintonic"
- results = list("gintonic" = 3)
- required_reagents = list("gin" = 2, "tonic" = 1)
+ id = /datum/reagent/consumable/ethanol/gintonic
+ results = list(/datum/reagent/consumable/ethanol/gintonic = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/gin = 2, /datum/reagent/consumable/tonic = 1)
/datum/chemical_reaction/rum_coke
name = "Rum and Coke"
- id = "rumcoke"
- results = list("rumcoke" = 3)
- required_reagents = list("rum" = 2, "cola" = 1)
+ id = /datum/reagent/consumable/ethanol/rum_coke
+ results = list(/datum/reagent/consumable/ethanol/rum_coke = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/rum = 2, /datum/reagent/consumable/space_cola = 1)
/datum/chemical_reaction/cuba_libre
name = "Cuba Libre"
- id = "cubalibre"
- results = list("cubalibre" = 4)
- required_reagents = list("rumcoke" = 3, "limejuice" = 1)
+ id = /datum/reagent/consumable/ethanol/cuba_libre
+ results = list(/datum/reagent/consumable/ethanol/cuba_libre = 4)
+ required_reagents = list(/datum/reagent/consumable/ethanol/rum_coke = 3, /datum/reagent/consumable/limejuice = 1)
/datum/chemical_reaction/martini
name = "Classic Martini"
- id = "martini"
- results = list("martini" = 3)
- required_reagents = list("gin" = 2, "vermouth" = 1)
+ id = /datum/reagent/consumable/ethanol/martini
+ results = list(/datum/reagent/consumable/ethanol/martini = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/gin = 2, /datum/reagent/consumable/ethanol/vermouth = 1)
/datum/chemical_reaction/vodkamartini
name = "Vodka Martini"
- id = "vodkamartini"
- results = list("vodkamartini" = 3)
- required_reagents = list("vodka" = 2, "vermouth" = 1)
+ id = /datum/reagent/consumable/ethanol/vodkamartini
+ results = list(/datum/reagent/consumable/ethanol/vodkamartini = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 2, /datum/reagent/consumable/ethanol/vermouth = 1)
/datum/chemical_reaction/white_russian
name = "White Russian"
- id = "whiterussian"
- results = list("whiterussian" = 5)
- required_reagents = list("blackrussian" = 3, "cream" = 2)
+ id = /datum/reagent/consumable/ethanol/white_russian
+ results = list(/datum/reagent/consumable/ethanol/white_russian = 5)
+ required_reagents = list(/datum/reagent/consumable/ethanol/black_russian = 3, /datum/reagent/consumable/cream = 2)
/datum/chemical_reaction/whiskey_cola
name = "Whiskey Cola"
- id = "whiskeycola"
- results = list("whiskeycola" = 3)
- required_reagents = list("whiskey" = 2, "cola" = 1)
+ id = /datum/reagent/consumable/ethanol/whiskey_cola
+ results = list(/datum/reagent/consumable/ethanol/whiskey_cola = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 2, /datum/reagent/consumable/space_cola = 1)
/datum/chemical_reaction/screwdriver
name = "Screwdriver"
- id = "screwdrivercocktail"
- results = list("screwdrivercocktail" = 3)
- required_reagents = list("vodka" = 2, "orangejuice" = 1)
+ id = /datum/reagent/consumable/ethanol/screwdrivercocktail
+ results = list(/datum/reagent/consumable/ethanol/screwdrivercocktail = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 2, /datum/reagent/consumable/orangejuice = 1)
/datum/chemical_reaction/bloody_mary
name = "Bloody Mary"
- id = "bloodymary"
- results = list("bloodymary" = 4)
- required_reagents = list("vodka" = 1, "tomatojuice" = 2, "limejuice" = 1)
+ id = /datum/reagent/consumable/ethanol/bloody_mary
+ results = list(/datum/reagent/consumable/ethanol/bloody_mary = 4)
+ required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/tomatojuice = 2, /datum/reagent/consumable/limejuice = 1)
/datum/chemical_reaction/gargle_blaster
name = "Pan-Galactic Gargle Blaster"
- id = "gargleblaster"
- results = list("gargleblaster" = 5)
- required_reagents = list("vodka" = 1, "gin" = 1, "whiskey" = 1, "cognac" = 1, "limejuice" = 1)
+ id = /datum/reagent/consumable/ethanol/gargle_blaster
+ results = list(/datum/reagent/consumable/ethanol/gargle_blaster = 5)
+ required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/ethanol/gin = 1, /datum/reagent/consumable/ethanol/whiskey = 1, /datum/reagent/consumable/ethanol/cognac = 1, /datum/reagent/consumable/limejuice = 1)
/datum/chemical_reaction/brave_bull
name = "Brave Bull"
- id = "bravebull"
- results = list("bravebull" = 3)
- required_reagents = list("tequila" = 2, "kahlua" = 1)
+ id = /datum/reagent/consumable/ethanol/brave_bull
+ results = list(/datum/reagent/consumable/ethanol/brave_bull = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/tequila = 2, /datum/reagent/consumable/ethanol/kahlua = 1)
/datum/chemical_reaction/tequila_sunrise
name = "Tequila Sunrise"
- id = "tequilasunrise"
- results = list("tequilasunrise" = 5)
- required_reagents = list("tequila" = 2, "orangejuice" = 2, "grenadine" = 1)
+ id = /datum/reagent/consumable/ethanol/tequila_sunrise
+ results = list(/datum/reagent/consumable/ethanol/tequila_sunrise = 5)
+ required_reagents = list(/datum/reagent/consumable/ethanol/tequila = 2, /datum/reagent/consumable/orangejuice = 2, /datum/reagent/consumable/grenadine = 1)
/datum/chemical_reaction/toxins_special
name = "Toxins Special"
- id = "toxinsspecial"
- results = list("toxinsspecial" = 5)
- required_reagents = list("rum" = 2, "vermouth" = 1, "plasma" = 2)
+ id = /datum/chemical_reaction/toxins_special
+ results = list(/datum/chemical_reaction/toxins_special = 5)
+ required_reagents = list(/datum/reagent/consumable/ethanol/rum = 2, /datum/reagent/consumable/ethanol/vermouth = 1, /datum/reagent/toxin/plasma = 2)
/datum/chemical_reaction/beepsky_smash
name = "Beepksy Smash"
id = "beepksysmash"
- results = list("beepskysmash" = 5)
- required_reagents = list("limejuice" = 2, "quadruple_sec" = 2, "iron" = 1)
+ results = list(/datum/reagent/consumable/ethanol/beepsky_smash = 5)
+ required_reagents = list(/datum/reagent/consumable/limejuice = 2, /datum/reagent/consumable/ethanol/quadruple_sec = 2, /datum/reagent/iron = 1)
/datum/chemical_reaction/doctor_delight
name = "The Doctor's Delight"
id = "doctordelight"
- results = list("doctorsdelight" = 5)
- required_reagents = list("limejuice" = 1, "tomatojuice" = 1, "orangejuice" = 1, "cream" = 1, "cryoxadone" = 1)
+ results = list(/datum/reagent/consumable/doctor_delight = 5)
+ required_reagents = list(/datum/reagent/consumable/limejuice = 1, /datum/reagent/consumable/tomatojuice = 1, /datum/reagent/consumable/orangejuice = 1, /datum/reagent/consumable/cream = 1, /datum/reagent/medicine/cryoxadone = 1)
/datum/chemical_reaction/irish_cream
name = "Irish Cream"
- id = "irishcream"
- results = list("irishcream" = 3)
- required_reagents = list("whiskey" = 2, "cream" = 1)
+ id = /datum/reagent/consumable/ethanol/irish_cream
+ results = list(/datum/reagent/consumable/ethanol/irish_cream = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 2, /datum/reagent/consumable/cream = 1)
/datum/chemical_reaction/manly_dorf
name = "The Manly Dorf"
- id = "manlydorf"
- results = list("manlydorf" = 3)
- required_reagents = list ("beer" = 1, "ale" = 2)
+ id = /datum/reagent/consumable/ethanol/manly_dorf
+ results = list(/datum/reagent/consumable/ethanol/manly_dorf = 3)
+ required_reagents = list (/datum/reagent/consumable/ethanol/beer = 1, /datum/reagent/consumable/ethanol/ale = 2)
/datum/chemical_reaction/greenbeer
name = "Green Beer"
- id = "greenbeer"
- results = list("greenbeer" = 10)
- required_reagents = list("greencrayonpowder" = 1, "beer" = 10)
+ id = /datum/reagent/consumable/ethanol/beer/green
+ results = list(/datum/reagent/consumable/ethanol/beer/green = 10)
+ required_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/green = 1, /datum/reagent/consumable/ethanol/beer = 10)
/datum/chemical_reaction/hooch
name = "Hooch"
- id = "hooch"
- results = list("hooch" = 3)
- required_reagents = list ("ethanol" = 2, "welding_fuel" = 1)
- required_catalysts = list("enzyme" = 1)
+ id = /datum/reagent/consumable/ethanol/hooch
+ results = list(/datum/reagent/consumable/ethanol/hooch = 3)
+ required_reagents = list (/datum/reagent/consumable/ethanol = 2, /datum/reagent/fuel = 1)
+ required_catalysts = list(/datum/reagent/consumable/enzyme = 1)
/datum/chemical_reaction/irish_coffee
name = "Irish Coffee"
- id = "irishcoffee"
- results = list("irishcoffee" = 2)
- required_reagents = list("irishcream" = 1, "coffee" = 1)
+ id = /datum/reagent/consumable/ethanol/irishcoffee
+ results = list(/datum/reagent/consumable/ethanol/irishcoffee = 2)
+ required_reagents = list(/datum/reagent/consumable/ethanol/irish_cream = 1, /datum/reagent/consumable/coffee = 1)
/datum/chemical_reaction/b52
name = "B-52"
- id = "b52"
- results = list("b52" = 3)
- required_reagents = list("irishcream" = 1, "kahlua" = 1, "cognac" = 1)
+ id = /datum/reagent/consumable/ethanol/b52
+ results = list(/datum/reagent/consumable/ethanol/b52 = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/irish_cream = 1, /datum/reagent/consumable/ethanol/kahlua = 1, /datum/reagent/consumable/ethanol/cognac = 1)
/datum/chemical_reaction/atomicbomb
name = "Atomic Bomb"
- id = "atomicbomb"
- results = list("atomicbomb" = 10)
- required_reagents = list("b52" = 10, "uranium" = 1)
+ id = /datum/reagent/consumable/ethanol/atomicbomb
+ results = list(/datum/reagent/consumable/ethanol/atomicbomb = 10)
+ required_reagents = list(/datum/reagent/consumable/ethanol/b52 = 10, /datum/reagent/uranium = 1)
/datum/chemical_reaction/margarita
name = "Margarita"
- id = "margarita"
- results = list("margarita" = 3)
- required_reagents = list("tequila" = 2, "limejuice" = 1)
+ id = /datum/reagent/consumable/ethanol/margarita
+ results = list(/datum/reagent/consumable/ethanol/margarita = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/tequila = 2, /datum/reagent/consumable/limejuice = 1)
/datum/chemical_reaction/longislandicedtea
name = "Long Island Iced Tea"
- id = "longislandicedtea"
- results = list("longislandicedtea" = 4)
- required_reagents = list("vodka" = 1, "gin" = 1, "tequila" = 1, "cubalibre" = 1)
+ id = /datum/reagent/consumable/ethanol/longislandicedtea
+ results = list(/datum/reagent/consumable/ethanol/longislandicedtea = 4)
+ required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/ethanol/gin = 1, /datum/reagent/consumable/ethanol/tequila = 1, /datum/reagent/consumable/ethanol/cuba_libre = 1)
/datum/chemical_reaction/threemileisland
name = "Three Mile Island Iced Tea"
- id = "threemileisland"
- results = list("threemileisland" = 10)
- required_reagents = list("longislandicedtea" = 10, "uranium" = 1)
+ id = /datum/reagent/consumable/ethanol/threemileisland
+ results = list(/datum/reagent/consumable/ethanol/threemileisland = 10)
+ required_reagents = list(/datum/reagent/consumable/ethanol/longislandicedtea = 10, /datum/reagent/uranium = 1)
/datum/chemical_reaction/whiskeysoda
name = "Whiskey Soda"
- id = "whiskeysoda"
- results = list("whiskeysoda" = 3)
- required_reagents = list("whiskey" = 2, "sodawater" = 1)
+ id = /datum/reagent/consumable/ethanol/whiskeysoda
+ results = list(/datum/reagent/consumable/ethanol/whiskeysoda = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 2, /datum/reagent/consumable/sodawater = 1)
/datum/chemical_reaction/black_russian
name = "Black Russian"
- id = "blackrussian"
- results = list("blackrussian" = 5)
- required_reagents = list("vodka" = 3, "kahlua" = 2)
+ id = /datum/reagent/consumable/ethanol/black_russian
+ results = list(/datum/reagent/consumable/ethanol/black_russian = 5)
+ required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 3, /datum/reagent/consumable/ethanol/kahlua = 2)
/datum/chemical_reaction/manhattan
name = "Manhattan"
- id = "manhattan"
- results = list("manhattan" = 3)
- required_reagents = list("whiskey" = 2, "vermouth" = 1)
+ id = /datum/reagent/consumable/ethanol/manhattan
+ results = list(/datum/reagent/consumable/ethanol/manhattan = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 2, /datum/reagent/consumable/ethanol/vermouth = 1)
/datum/chemical_reaction/manhattan_proj
name = "Manhattan Project"
- id = "manhattan_proj"
- results = list("manhattan_proj" = 10)
- required_reagents = list("manhattan" = 10, "uranium" = 1)
+ id = /datum/reagent/consumable/ethanol/manhattan_proj
+ results = list(/datum/reagent/consumable/ethanol/manhattan_proj = 10)
+ required_reagents = list(/datum/reagent/consumable/ethanol/manhattan = 10, /datum/reagent/uranium = 1)
/datum/chemical_reaction/vodka_tonic
name = "Vodka and Tonic"
- id = "vodkatonic"
- results = list("vodkatonic" = 3)
- required_reagents = list("vodka" = 2, "tonic" = 1)
+ id = /datum/reagent/consumable/ethanol/vodkatonic
+ results = list(/datum/reagent/consumable/ethanol/vodkatonic = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 2, /datum/reagent/consumable/tonic = 1)
/datum/chemical_reaction/gin_fizz
name = "Gin Fizz"
- id = "ginfizz"
- results = list("ginfizz" = 4)
- required_reagents = list("gin" = 2, "sodawater" = 1, "limejuice" = 1)
+ id = /datum/reagent/consumable/ethanol/ginfizz
+ results = list(/datum/reagent/consumable/ethanol/ginfizz = 4)
+ required_reagents = list(/datum/reagent/consumable/ethanol/gin = 2, /datum/reagent/consumable/sodawater = 1, /datum/reagent/consumable/limejuice = 1)
/datum/chemical_reaction/bahama_mama
name = "Bahama mama"
- id = "bahama_mama"
- results = list("bahama_mama" = 6)
- required_reagents = list("rum" = 2, "orangejuice" = 2, "limejuice" = 1, "ice" = 1)
+ id = /datum/reagent/consumable/ethanol/bahama_mama
+ results = list(/datum/reagent/consumable/ethanol/bahama_mama = 6)
+ required_reagents = list(/datum/reagent/consumable/ethanol/rum = 2, /datum/reagent/consumable/orangejuice = 2, /datum/reagent/consumable/limejuice = 1, /datum/reagent/consumable/ice = 1)
/datum/chemical_reaction/singulo
name = "Singulo"
- id = "singulo"
- results = list("singulo" = 10)
- required_reagents = list("vodka" = 5, "radium" = 1, "wine" = 5)
+ id = /datum/reagent/consumable/ethanol/singulo
+ results = list(/datum/reagent/consumable/ethanol/singulo = 10)
+ required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 5, /datum/reagent/uranium/radium = 1, /datum/reagent/consumable/ethanol/wine = 5)
/datum/chemical_reaction/alliescocktail
name = "Allies Cocktail"
- id = "alliescocktail"
- results = list("alliescocktail" = 2)
- required_reagents = list("martini" = 1, "vodka" = 1)
+ id = /datum/reagent/consumable/ethanol/alliescocktail
+ results = list(/datum/reagent/consumable/ethanol/alliescocktail = 2)
+ required_reagents = list(/datum/reagent/consumable/ethanol/martini = 1, /datum/reagent/consumable/ethanol/vodka = 1)
/datum/chemical_reaction/demonsblood
name = "Demons Blood"
- id = "demonsblood"
- results = list("demonsblood" = 4)
- required_reagents = list("rum" = 1, "spacemountainwind" = 1, "blood" = 1, "dr_gibb" = 1)
+ id = /datum/reagent/consumable/ethanol/demonsblood
+ results = list(/datum/reagent/consumable/ethanol/demonsblood = 4)
+ required_reagents = list(/datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/consumable/spacemountainwind = 1, /datum/reagent/blood = 1, /datum/reagent/consumable/dr_gibb = 1)
/datum/chemical_reaction/booger
name = "Booger"
- id = "booger"
- results = list("booger" = 4)
- required_reagents = list("cream" = 1, "banana" = 1, "rum" = 1, "watermelonjuice" = 1)
+ id = /datum/reagent/consumable/ethanol/booger
+ results = list(/datum/reagent/consumable/ethanol/booger = 4)
+ required_reagents = list(/datum/reagent/consumable/cream = 1, /datum/reagent/consumable/banana = 1, /datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/consumable/watermelonjuice = 1)
/datum/chemical_reaction/antifreeze
name = "Anti-freeze"
- id = "antifreeze"
- results = list("antifreeze" = 4)
- required_reagents = list("vodka" = 2, "cream" = 1, "ice" = 1)
+ id = /datum/reagent/consumable/ethanol/antifreeze
+ results = list(/datum/reagent/consumable/ethanol/antifreeze = 4)
+ required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 2, /datum/reagent/consumable/cream = 1, /datum/reagent/consumable/ice = 1)
/datum/chemical_reaction/barefoot
name = "Barefoot"
- id = "barefoot"
- results = list("barefoot" = 3)
- required_reagents = list("berryjuice" = 1, "cream" = 1, "vermouth" = 1)
+ id = /datum/reagent/consumable/ethanol/barefoot
+ results = list(/datum/reagent/consumable/ethanol/barefoot = 3)
+ required_reagents = list(/datum/reagent/consumable/berryjuice = 1, /datum/reagent/consumable/cream = 1, /datum/reagent/consumable/ethanol/vermouth = 1)
////DRINKS THAT REQUIRED IMPROVED SPRITES BELOW:: -Agouri/////
/datum/chemical_reaction/sbiten
name = "Sbiten"
- id = "sbiten"
- results = list("sbiten" = 10)
- required_reagents = list("vodka" = 10, "capsaicin" = 1)
+ id = /datum/reagent/consumable/ethanol/sbiten
+ results = list(/datum/reagent/consumable/ethanol/sbiten = 10)
+ required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 10, /datum/reagent/consumable/capsaicin = 1)
/datum/chemical_reaction/red_mead
name = "Red Mead"
- id = "red_mead"
- results = list("red_mead" = 2)
- required_reagents = list("blood" = 1, "mead" = 1)
+ id = /datum/reagent/consumable/ethanol/red_mead
+ results = list(/datum/reagent/consumable/ethanol/red_mead = 2)
+ required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/consumable/ethanol/mead = 1)
/datum/chemical_reaction/mead
name = "Mead"
- id = "mead"
- results = list("mead" = 2)
- required_reagents = list("honey" = 2)
- required_catalysts = list("enzyme" = 5)
+ id = /datum/reagent/consumable/ethanol/mead
+ results = list(/datum/reagent/consumable/ethanol/mead = 2)
+ required_reagents = list(/datum/reagent/consumable/honey = 2)
+ required_catalysts = list(/datum/reagent/consumable/enzyme = 5)
/datum/chemical_reaction/iced_beer
name = "Iced Beer"
- id = "iced_beer"
- results = list("iced_beer" = 6)
- required_reagents = list("beer" = 5, "ice" = 1)
+ id = /datum/reagent/consumable/ethanol/iced_beer
+ results = list(/datum/reagent/consumable/ethanol/iced_beer = 6)
+ required_reagents = list(/datum/reagent/consumable/ethanol/beer = 5, /datum/reagent/consumable/ice = 1)
/datum/chemical_reaction/grog
name = "Grog"
- id = "grog"
- results = list("grog" = 2)
- required_reagents = list("rum" = 1, "water" = 1)
+ id = /datum/reagent/consumable/ethanol/grog
+ results = list(/datum/reagent/consumable/ethanol/grog = 2)
+ required_reagents = list(/datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/water = 1)
/datum/chemical_reaction/soy_latte
name = "Soy Latte"
- id = "soy_latte"
- results = list("soy_latte" = 2)
- required_reagents = list("coffee" = 1, "soymilk" = 1)
+ id = /datum/reagent/consumable/soy_latte
+ results = list(/datum/reagent/consumable/soy_latte = 2)
+ required_reagents = list(/datum/reagent/consumable/coffee = 1, /datum/reagent/consumable/soymilk = 1)
/datum/chemical_reaction/cafe_latte
name = "Cafe Latte"
- id = "cafe_latte"
- results = list("cafe_latte" = 2)
- required_reagents = list("coffee" = 1, "milk" = 1)
+ id = /datum/reagent/consumable/cafe_latte
+ results = list(/datum/reagent/consumable/cafe_latte = 2)
+ required_reagents = list(/datum/reagent/consumable/coffee = 1, /datum/reagent/consumable/milk = 1)
/datum/chemical_reaction/acidspit
name = "Acid Spit"
- id = "acidspit"
- results = list("acidspit" = 6)
- required_reagents = list("sacid" = 1, "wine" = 5)
+ id = /datum/reagent/consumable/ethanol/acid_spit
+ results = list(/datum/reagent/consumable/ethanol/acid_spit = 6)
+ required_reagents = list(/datum/reagent/toxin/acid = 1, /datum/reagent/consumable/ethanol/wine = 5)
/datum/chemical_reaction/amasec
name = "Amasec"
- id = "amasec"
- results = list("amasec" = 10)
- required_reagents = list("iron" = 1, "wine" = 5, "vodka" = 5)
+ id = /datum/reagent/consumable/ethanol/amasec
+ results = list(/datum/reagent/consumable/ethanol/amasec = 10)
+ required_reagents = list(/datum/reagent/iron = 1, /datum/reagent/consumable/ethanol/wine = 5, /datum/reagent/consumable/ethanol/vodka = 5)
/datum/chemical_reaction/changelingsting
name = "Changeling Sting"
- id = "changelingsting"
- results = list("changelingsting" = 5)
- required_reagents = list("screwdrivercocktail" = 1, "lemon_lime" = 2)
+ id = /datum/reagent/consumable/ethanol/changelingsting
+ results = list(/datum/reagent/consumable/ethanol/changelingsting = 5)
+ required_reagents = list(/datum/reagent/consumable/ethanol/screwdrivercocktail = 1, /datum/reagent/consumable/lemon_lime = 2)
/datum/chemical_reaction/aloe
name = "Aloe"
- id = "aloe"
- results = list("aloe" = 2)
- required_reagents = list("irishcream" = 1, "watermelonjuice" = 1)
+ id = /datum/reagent/consumable/ethanol/aloe
+ results = list(/datum/reagent/consumable/ethanol/aloe = 2)
+ required_reagents = list(/datum/reagent/consumable/ethanol/irish_cream = 1, /datum/reagent/consumable/watermelonjuice = 1)
/datum/chemical_reaction/andalusia
name = "Andalusia"
- id = "andalusia"
- results = list("andalusia" = 3)
- required_reagents = list("rum" = 1, "whiskey" = 1, "lemonjuice" = 1)
+ id = /datum/reagent/consumable/ethanol/andalusia
+ results = list(/datum/reagent/consumable/ethanol/andalusia = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/consumable/ethanol/whiskey = 1, /datum/reagent/consumable/lemonjuice = 1)
/datum/chemical_reaction/neurotoxin
name = "Neurotoxin"
- id = "neurotoxin"
- results = list("neurotoxin" = 2)
- required_reagents = list("gargleblaster" = 1, "morphine" = 1)
+ id = /datum/reagent/consumable/ethanol/neurotoxin
+ results = list(/datum/reagent/consumable/ethanol/neurotoxin = 2)
+ required_reagents = list(/datum/reagent/consumable/ethanol/gargle_blaster = 1, /datum/reagent/medicine/morphine = 1)
/datum/chemical_reaction/snowwhite
name = "Snow White"
- id = "snowwhite"
- results = list("snowwhite" = 2)
- required_reagents = list("beer" = 1, "lemon_lime" = 1)
+ id = /datum/reagent/consumable/ethanol/snowwhite
+ results = list(/datum/reagent/consumable/ethanol/snowwhite = 2)
+ required_reagents = list(/datum/reagent/consumable/ethanol/beer = 1, /datum/reagent/consumable/lemon_lime = 1)
/datum/chemical_reaction/irishcarbomb
name = "Irish Car Bomb"
- id = "irishcarbomb"
- results = list("irishcarbomb" = 2)
- required_reagents = list("ale" = 1, "irishcream" = 1)
+ id = /datum/reagent/consumable/ethanol/irishcarbomb
+ results = list(/datum/reagent/consumable/ethanol/irishcarbomb = 2)
+ required_reagents = list(/datum/reagent/consumable/ethanol/ale = 1, /datum/reagent/consumable/ethanol/irish_cream = 1)
/datum/chemical_reaction/syndicatebomb
name = "Syndicate Bomb"
- id = "syndicatebomb"
- results = list("syndicatebomb" = 2)
- required_reagents = list("beer" = 1, "whiskeycola" = 1)
+ id = /datum/reagent/consumable/ethanol/syndicatebomb
+ results = list(/datum/reagent/consumable/ethanol/syndicatebomb = 2)
+ required_reagents = list(/datum/reagent/consumable/ethanol/beer = 1, /datum/reagent/consumable/ethanol/whiskey_cola = 1)
/datum/chemical_reaction/erikasurprise
name = "Erika Surprise"
- id = "erikasurprise"
- results = list("erikasurprise" = 5)
- required_reagents = list("ale" = 1, "limejuice" = 1, "whiskey" = 1, "banana" = 1, "ice" = 1)
+ id = /datum/reagent/consumable/ethanol/erikasurprise
+ results = list(/datum/reagent/consumable/ethanol/erikasurprise = 5)
+ required_reagents = list(/datum/reagent/consumable/ethanol/ale = 1, /datum/reagent/consumable/limejuice = 1, /datum/reagent/consumable/ethanol/whiskey = 1, /datum/reagent/consumable/banana = 1, /datum/reagent/consumable/ice = 1)
/datum/chemical_reaction/devilskiss
name = "Devils Kiss"
- id = "devilskiss"
- results = list("devilskiss" = 3)
- required_reagents = list("blood" = 1, "kahlua" = 1, "rum" = 1)
+ id = /datum/reagent/consumable/ethanol/devilskiss
+ results = list(/datum/reagent/consumable/ethanol/devilskiss = 3)
+ required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/consumable/ethanol/kahlua = 1, /datum/reagent/consumable/ethanol/rum = 1)
/datum/chemical_reaction/hippiesdelight
name = "Hippies Delight"
- id = "hippiesdelight"
- results = list("hippiesdelight" = 2)
- required_reagents = list("mushroomhallucinogen" = 1, "gargleblaster" = 1)
+ id = /datum/reagent/consumable/ethanol/hippies_delight
+ results = list(/datum/reagent/consumable/ethanol/hippies_delight = 2)
+ required_reagents = list(/datum/reagent/drug/mushroomhallucinogen = 1, /datum/reagent/consumable/ethanol/gargle_blaster = 1)
/datum/chemical_reaction/bananahonk
name = "Banana Honk"
- id = "bananahonk"
- results = list("bananahonk" = 2)
- required_reagents = list("laughter" = 1, "cream" = 1)
+ id = /datum/reagent/consumable/ethanol/bananahonk
+ results = list(/datum/reagent/consumable/ethanol/bananahonk = 2)
+ required_reagents = list(/datum/reagent/consumable/laughter = 1, /datum/reagent/consumable/cream = 1)
/datum/chemical_reaction/silencer
name = "Silencer"
- id = "silencer"
- results = list("silencer" = 3)
- required_reagents = list("nothing" = 1, "cream" = 1, "sugar" = 1)
+ id = /datum/reagent/consumable/ethanol/silencer
+ results = list(/datum/reagent/consumable/ethanol/silencer = 3)
+ required_reagents = list(/datum/reagent/consumable/nothing = 1, /datum/reagent/consumable/cream = 1, /datum/reagent/consumable/sugar = 1)
/datum/chemical_reaction/driestmartini
name = "Driest Martini"
- id = "driestmartini"
- results = list("driestmartini" = 2)
- required_reagents = list("nothing" = 1, "gin" = 1)
+ id = /datum/reagent/consumable/ethanol/driestmartini
+ results = list(/datum/reagent/consumable/ethanol/driestmartini = 2)
+ required_reagents = list(/datum/reagent/consumable/nothing = 1, /datum/reagent/consumable/ethanol/gin = 1)
/datum/chemical_reaction/thirteenloko
name = "Thirteen Loko"
- id = "thirteenloko"
- results = list("thirteenloko" = 3)
- required_reagents = list("vodka" = 1, "coffee" = 1, "limejuice" = 1)
+ id = /datum/reagent/consumable/ethanol/thirteenloko
+ results = list(/datum/reagent/consumable/ethanol/thirteenloko = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/coffee = 1, /datum/reagent/consumable/limejuice = 1)
/datum/chemical_reaction/chocolatepudding
name = "Chocolate Pudding"
- id = "chocolatepudding"
- results = list("chocolatepudding" = 20)
- required_reagents = list("chocolate_milk" = 10, "eggyolk" = 5)
+ id = /datum/reagent/consumable/chocolatepudding
+ results = list(/datum/reagent/consumable/chocolatepudding = 20)
+ required_reagents = list(/datum/reagent/consumable/milk/chocolate_milk = 10, /datum/reagent/consumable/eggyolk = 5)
/datum/chemical_reaction/vanillapudding
name = "Vanilla Pudding"
- id = "vanillapudding"
- results = list("vanillapudding" = 20)
- required_reagents = list("vanilla" = 5, "milk" = 5, "eggyolk" = 5)
+ id = /datum/reagent/consumable/vanillapudding
+ results = list(/datum/reagent/consumable/vanillapudding = 20)
+ required_reagents = list(/datum/reagent/consumable/vanilla = 5, /datum/reagent/consumable/milk = 5, /datum/reagent/consumable/eggyolk = 5)
/datum/chemical_reaction/cherryshake
name = "Cherry Shake"
- id = "cherryshake"
- results = list("cherryshake" = 3)
- required_reagents = list("cherryjelly" = 1, "ice" = 1, "cream" = 1)
+ id = /datum/reagent/consumable/cherryshake
+ results = list(/datum/reagent/consumable/cherryshake = 3)
+ required_reagents = list(/datum/reagent/consumable/cherryjelly = 1, /datum/reagent/consumable/ice = 1, /datum/reagent/consumable/cream = 1)
/datum/chemical_reaction/bluecherryshake
name = "Blue Cherry Shake"
- id = "bluecherryshake"
- results = list("bluecherryshake" = 3)
- required_reagents = list("bluecherryjelly" = 1, "ice" = 1, "cream" = 1)
+ id = /datum/reagent/consumable/bluecherryshake
+ results = list(/datum/reagent/consumable/bluecherryshake = 3)
+ required_reagents = list(/datum/reagent/consumable/bluecherryjelly = 1, /datum/reagent/consumable/ice = 1, /datum/reagent/consumable/cream = 1)
/datum/chemical_reaction/drunkenblumpkin
name = "Drunken Blumpkin"
- id = "drunkenblumpkin"
- results = list("drunkenblumpkin" = 4)
- required_reagents = list("blumpkinjuice" = 1, "irishcream" = 2, "ice" = 1)
+ id = /datum/reagent/consumable/ethanol/drunkenblumpkin
+ results = list(/datum/reagent/consumable/ethanol/drunkenblumpkin = 4)
+ required_reagents = list(/datum/reagent/consumable/blumpkinjuice = 1, /datum/reagent/consumable/ethanol/irish_cream = 2, /datum/reagent/consumable/ice = 1)
/datum/chemical_reaction/pumpkin_latte
name = "Pumpkin space latte"
- id = "pumpkin_latte"
- results = list("pumpkin_latte" = 15)
- required_reagents = list("pumpkinjuice" = 5, "coffee" = 5, "cream" = 5)
+ id = /datum/reagent/consumable/pumpkin_latte
+ results = list(/datum/reagent/consumable/pumpkin_latte = 15)
+ required_reagents = list(/datum/reagent/consumable/pumpkinjuice = 5, /datum/reagent/consumable/coffee = 5, /datum/reagent/consumable/cream = 5)
/datum/chemical_reaction/gibbfloats
name = "Gibb Floats"
- id = "gibbfloats"
- results = list("gibbfloats" = 15)
- required_reagents = list("dr_gibb" = 5, "ice" = 5, "cream" = 5)
+ id = /datum/reagent/consumable/gibbfloats
+ results = list(/datum/reagent/consumable/gibbfloats = 15)
+ required_reagents = list(/datum/reagent/consumable/dr_gibb = 5, /datum/reagent/consumable/ice = 5, /datum/reagent/consumable/cream = 5)
/datum/chemical_reaction/triple_citrus
- name = "triple_citrus"
- id = "triple_citrus"
- results = list("triple_citrus" = 5)
- required_reagents = list("lemonjuice" = 1, "limejuice" = 1, "orangejuice" = 1)
+ name = /datum/reagent/consumable/triple_citrus
+ id = /datum/reagent/consumable/triple_citrus
+ results = list(/datum/reagent/consumable/triple_citrus = 5)
+ required_reagents = list(/datum/reagent/consumable/lemonjuice = 1, /datum/reagent/consumable/limejuice = 1, /datum/reagent/consumable/orangejuice = 1)
/datum/chemical_reaction/grape_soda
name = "grape soda"
- id = "grapesoda"
- results = list("grapesoda" = 2)
- required_reagents = list("grapejuice" = 1, "sodawater" = 1)
+ id = /datum/reagent/consumable/grape_soda
+ results = list(/datum/reagent/consumable/grape_soda = 2)
+ required_reagents = list(/datum/reagent/consumable/grapejuice = 1, /datum/reagent/consumable/sodawater = 1)
/datum/chemical_reaction/grappa
- name = "grappa"
- id = "grappa"
- results = list("grappa" = 10)
- required_reagents = list ("wine" = 10)
- required_catalysts = list ("enzyme" = 5)
+ name = /datum/reagent/consumable/ethanol/grappa
+ id = /datum/reagent/consumable/ethanol/grappa
+ results = list(/datum/reagent/consumable/ethanol/grappa = 10)
+ required_reagents = list (/datum/reagent/consumable/ethanol/wine = 10)
+ required_catalysts = list (/datum/reagent/consumable/enzyme = 5)
/datum/chemical_reaction/whiskey_sour
name = "Whiskey Sour"
- id = "whiskey_sour"
- results = list("whiskey_sour" = 3)
- required_reagents = list("whiskey" = 1, "lemonjuice" = 1, "sugar" = 1)
+ id = /datum/reagent/consumable/ethanol/whiskey_sour
+ results = list(/datum/reagent/consumable/ethanol/whiskey_sour = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 1, /datum/reagent/consumable/lemonjuice = 1, /datum/reagent/consumable/sugar = 1)
mix_message = "The mixture darkens to a rich gold hue."
/datum/chemical_reaction/fetching_fizz
name = "Fetching Fizz"
- id = "fetching_fizz"
- results = list("fetching_fizz" = 3)
- required_reagents = list("nuka_cola" = 1, "iron" = 1) //Manufacturable from only the mining station
+ id = /datum/reagent/consumable/ethanol/fetching_fizz
+ results = list(/datum/reagent/consumable/ethanol/fetching_fizz = 3)
+ required_reagents = list(/datum/reagent/consumable/nuka_cola = 1, /datum/reagent/iron = 1) //Manufacturable from only the mining station
mix_message = "The mixture slightly vibrates before settling."
/datum/chemical_reaction/hearty_punch
name = "Hearty Punch"
- id = "hearty_punch"
- results = list("hearty_punch" = 1) //Very little, for balance reasons
- required_reagents = list("bravebull" = 5, "syndicatebomb" = 5, "absinthe" = 5)
+ id = /datum/reagent/consumable/ethanol/hearty_punch
+ results = list(/datum/reagent/consumable/ethanol/hearty_punch = 1) //Very little, for balance reasons
+ required_reagents = list(/datum/reagent/consumable/ethanol/brave_bull = 5, /datum/reagent/consumable/ethanol/syndicatebomb = 5, /datum/reagent/consumable/ethanol/absinthe = 5)
mix_message = "The mixture darkens to a healthy crimson."
required_temp = 315 //Piping hot!
/datum/chemical_reaction/bacchus_blessing
name = "Bacchus' Blessing"
- id = "bacchus_blessing"
- results = list("bacchus_blessing" = 4)
- required_reagents = list("hooch" = 1, "absinthe" = 1, "manlydorf" = 1, "syndicatebomb" = 1)
+ id = /datum/reagent/consumable/ethanol/bacchus_blessing
+ results = list(/datum/reagent/consumable/ethanol/bacchus_blessing = 4)
+ required_reagents = list(/datum/reagent/consumable/ethanol/hooch = 1, /datum/reagent/consumable/ethanol/absinthe = 1, /datum/reagent/consumable/ethanol/manly_dorf = 1, /datum/reagent/consumable/ethanol/syndicatebomb = 1)
mix_message = "
The mixture turns to a sickening froth."
/datum/chemical_reaction/lemonade
name = "Lemonade"
- id = "lemonade"
- results = list("lemonade" = 5)
- required_reagents = list("lemonjuice" = 2, "water" = 2, "sugar" = 1, "ice" = 1)
+ id = /datum/reagent/consumable/lemonade
+ results = list(/datum/reagent/consumable/lemonade = 5)
+ required_reagents = list(/datum/reagent/consumable/lemonjuice = 2, /datum/reagent/water = 2, /datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/ice = 1)
mix_message = "You're suddenly reminded of home."
/datum/chemical_reaction/arnold_palmer
name = "Arnold Palmer"
- id = "arnold_palmer"
- results = list("arnold_palmer" = 2)
- required_reagents = list("tea" = 1, "lemonade" = 1)
+ id = /datum/reagent/consumable/tea/arnold_palmer
+ results = list(/datum/reagent/consumable/tea/arnold_palmer = 2)
+ required_reagents = list(/datum/reagent/consumable/tea = 1, /datum/reagent/consumable/lemonade = 1)
mix_message = "The smells of fresh green grass and sand traps waft through the air as the mixture turns a friendly yellow-orange."
/datum/chemical_reaction/chocolate_milk
name = "chocolate milk"
- id = "chocolate_milk"
- results = list("chocolate_milk" = 2)
- required_reagents = list("milk" = 1, "cocoa" = 1)
+ id = /datum/reagent/consumable/milk/chocolate_milk
+ results = list(/datum/reagent/consumable/milk/chocolate_milk = 2)
+ required_reagents = list(/datum/reagent/consumable/milk = 1, /datum/reagent/consumable/coco = 1)
mix_message = "The color changes as the mixture blends smoothly."
/datum/chemical_reaction/eggnog
- name = "eggnog"
- id = "eggnog"
- results = list("eggnog" = 15)
- required_reagents = list("rum" = 5, "cream" = 5, "eggyolk" = 5)
+ name = /datum/reagent/consumable/ethanol/eggnog
+ id = /datum/reagent/consumable/ethanol/eggnog
+ results = list(/datum/reagent/consumable/ethanol/eggnog = 15)
+ required_reagents = list(/datum/reagent/consumable/ethanol/rum = 5, /datum/reagent/consumable/cream = 5, /datum/reagent/consumable/eggyolk = 5)
/datum/chemical_reaction/narsour
name = "Nar'sour"
- id = "narsour"
- results = list("narsour" = 1)
- required_reagents = list("blood" = 1, "lemonjuice" = 1, "demonsblood" = 1)
+ id = /datum/reagent/consumable/ethanol/narsour
+ results = list(/datum/reagent/consumable/ethanol/narsour = 1)
+ required_reagents = list(/datum/reagent/blood = 1, /datum/reagent/consumable/lemonjuice = 1, /datum/reagent/consumable/ethanol/demonsblood = 1)
mix_message = "The mixture develops a sinister glow."
mix_sound = 'sound/effects/singlebeat.ogg'
/datum/chemical_reaction/quadruplesec
name = "Quadruple Sec"
- id = "quadruple_sec"
- results = list("quadruple_sec" = 15)
- required_reagents = list("triple_sec" = 5, "triple_citrus" = 5, "creme_de_menthe" = 5)
+ id = /datum/reagent/consumable/ethanol/quadruple_sec
+ results = list(/datum/reagent/consumable/ethanol/quadruple_sec = 15)
+ required_reagents = list(/datum/reagent/consumable/ethanol/triple_sec = 5, /datum/reagent/consumable/triple_citrus = 5, /datum/reagent/consumable/ethanol/creme_de_menthe = 5)
mix_message = "The snap of a taser emanates clearly from the mixture as it settles."
mix_sound = 'sound/weapons/taser.ogg'
/datum/chemical_reaction/grasshopper
name = "Grasshopper"
- id = "grasshopper"
- results = list("grasshopper" = 15)
- required_reagents = list("cream" = 5, "creme_de_menthe" = 5, "creme_de_cacao" = 5)
+ id = /datum/reagent/consumable/ethanol/grasshopper
+ results = list(/datum/reagent/consumable/ethanol/grasshopper = 15)
+ required_reagents = list(/datum/reagent/consumable/cream = 5, /datum/reagent/consumable/ethanol/creme_de_menthe = 5, /datum/reagent/consumable/ethanol/creme_de_cacao = 5)
mix_message = "A vibrant green bubbles forth as the mixture emulsifies."
/datum/chemical_reaction/stinger
name = "Stinger"
- id = "stinger"
- results = list("stinger" = 15)
- required_reagents = list("whiskey" = 10, "creme_de_menthe" = 5 )
+ id = /datum/reagent/consumable/ethanol/stinger
+ results = list(/datum/reagent/consumable/ethanol/stinger = 15)
+ required_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 10, /datum/reagent/consumable/ethanol/creme_de_menthe = 5 )
/datum/chemical_reaction/quintuplesec
name = "Quintuple Sec"
- id = "quintuple_sec"
- results = list("quintuple_sec" = 15)
- required_reagents = list("quadruple_sec" = 5, "clownstears" = 5, "syndicatebomb" = 5)
+ id = /datum/reagent/consumable/ethanol/quintuple_sec
+ results = list(/datum/reagent/consumable/ethanol/quintuple_sec = 15)
+ required_reagents = list(/datum/reagent/consumable/ethanol/quadruple_sec = 5, /datum/reagent/consumable/clownstears = 5, /datum/reagent/consumable/ethanol/syndicatebomb = 5)
mix_message = "Judgement is upon you."
mix_sound = 'sound/items/airhorn2.ogg'
/datum/chemical_reaction/bastion_bourbon
name = "Bastion Bourbon"
- id = "bastion_bourbon"
- results = list("bastion_bourbon" = 2)
- required_reagents = list("tea" = 1, "creme_de_menthe" = 1, "triple_citrus" = 1, "berryjuice" = 1) //herbal and minty, with a hint of citrus and berry
+ id = /datum/reagent/consumable/ethanol/bastion_bourbon
+ results = list(/datum/reagent/consumable/ethanol/bastion_bourbon = 2)
+ required_reagents = list(/datum/reagent/consumable/tea = 1, /datum/reagent/consumable/ethanol/creme_de_menthe = 1, /datum/reagent/consumable/triple_citrus = 1, /datum/reagent/consumable/berryjuice = 1) //herbal and minty, with a hint of citrus and berry
mix_message = "You catch an aroma of hot tea and fruits as the mix blends into a blue-green color."
/datum/chemical_reaction/squirt_cider
name = "Squirt Cider"
- id = "squirt_cider"
- results = list("squirt_cider" = 1)
- required_reagents = list("water" = 1, "tomatojuice" = 1, "nutriment" = 1)
+ id = /datum/reagent/consumable/ethanol/squirt_cider
+ results = list(/datum/reagent/consumable/ethanol/squirt_cider = 1)
+ required_reagents = list(/datum/reagent/water = 1, /datum/reagent/consumable/tomatojuice = 1, /datum/reagent/consumable/nutriment = 1)
mix_message = "The mix swirls and turns a bright red that reminds you of an apple's skin."
/datum/chemical_reaction/fringe_weaver
name = "Fringe Weaver"
- id = "fringe_weaver"
- results = list("fringe_weaver" = 10)
- required_reagents = list("ethanol" = 9, "sugar" = 1) //9 karmotrine, 1 adelhyde
+ id = /datum/reagent/consumable/ethanol/fringe_weaver
+ results = list(/datum/reagent/consumable/ethanol/fringe_weaver = 10)
+ required_reagents = list(/datum/reagent/consumable/ethanol = 9, /datum/reagent/consumable/sugar = 1) //9 karmotrine, 1 adelhyde
mix_message = "The mix turns a pleasant cream color and foams up."
/datum/chemical_reaction/sugar_rush
name = "Sugar Rush"
- id = "sugar_rush"
- results = list("sugar_rush" = 4)
- required_reagents = list("sugar" = 2, "lemonjuice" = 1, "wine" = 1) //2 adelhyde (sweet), 1 powdered delta (sour), 1 karmotrine (alcohol)
+ id = /datum/reagent/consumable/ethanol/sugar_rush
+ results = list(/datum/reagent/consumable/ethanol/sugar_rush = 4)
+ required_reagents = list(/datum/reagent/consumable/sugar = 2, /datum/reagent/consumable/lemonjuice = 1, /datum/reagent/consumable/ethanol/wine = 1) //2 adelhyde (sweet), 1 powdered delta (sour), 1 karmotrine (alcohol)
mix_message = "The mixture bubbles and brightens into a girly pink."
/datum/chemical_reaction/crevice_spike
name = "Crevice Spike"
- id = "crevice_spike"
- results = list("crevice_spike" = 6)
- required_reagents = list("limejuice" = 2, "capsaicin" = 4) //2 powdered delta (sour), 4 flanergide (spicy)
+ id = /datum/reagent/consumable/ethanol/crevice_spike
+ results = list(/datum/reagent/consumable/ethanol/crevice_spike = 6)
+ required_reagents = list(/datum/reagent/consumable/limejuice = 2, /datum/reagent/consumable/capsaicin = 4) //2 powdered delta (sour), 4 flanergide (spicy)
mix_message = "The mixture stings your eyes as it settles."
/datum/chemical_reaction/sake
- name = "sake"
- id = "sake"
- results = list("sake" = 10)
- required_reagents = list("rice" = 10)
- required_catalysts = list("enzyme" = 5)
+ name = /datum/reagent/consumable/ethanol/sake
+ id = /datum/reagent/consumable/ethanol/sake
+ results = list(/datum/reagent/consumable/ethanol/sake = 10)
+ required_reagents = list(/datum/reagent/consumable/rice = 10)
+ required_catalysts = list(/datum/reagent/consumable/enzyme = 5)
mix_message = "The rice grains ferment into a clear, sweet-smelling liquid."
/datum/chemical_reaction/peppermint_patty
name = "Peppermint Patty"
- id = "peppermint_patty"
- results = list("peppermint_patty" = 10)
- required_reagents = list("hot_coco" = 6, "creme_de_cacao" = 1, "creme_de_menthe" = 1, "vodka" = 1, "menthol" = 1)
+ id = /datum/reagent/consumable/ethanol/peppermint_patty
+ results = list(/datum/reagent/consumable/ethanol/peppermint_patty = 10)
+ required_reagents = list(/datum/reagent/consumable/hot_coco = 6, /datum/reagent/consumable/ethanol/creme_de_cacao = 1, /datum/reagent/consumable/ethanol/creme_de_menthe = 1, /datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/menthol = 1)
mix_message = "The coco turns mint green just as the strong scent hits your nose."
/datum/chemical_reaction/alexander
name = "Alexander"
- id = "alexander"
- results = list("alexander" = 3)
- required_reagents = list("cognac" = 1, "creme_de_cacao" = 1, "cream" = 1)
+ id = /datum/reagent/consumable/ethanol/alexander
+ results = list(/datum/reagent/consumable/ethanol/alexander = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/cognac = 1, /datum/reagent/consumable/ethanol/creme_de_cacao = 1, /datum/reagent/consumable/cream = 1)
/datum/chemical_reaction/sidecar
name = "Sidecar"
- id = "sidecar"
- results = list("sidecar" = 4)
- required_reagents = list("cognac" = 2, "triple_sec" = 1, "lemonjuice" = 1)
+ id = /datum/reagent/consumable/ethanol/sidecar
+ results = list(/datum/reagent/consumable/ethanol/sidecar = 4)
+ required_reagents = list(/datum/reagent/consumable/ethanol/cognac = 2, /datum/reagent/consumable/ethanol/triple_sec = 1, /datum/reagent/consumable/lemonjuice = 1)
/datum/chemical_reaction/between_the_sheets
name = "Between the Sheets"
- id = "between_the_sheets"
- results = list("between_the_sheets" = 5)
- required_reagents = list("rum" = 1, "sidecar" = 4)
+ id = /datum/reagent/consumable/ethanol/between_the_sheets
+ results = list(/datum/reagent/consumable/ethanol/between_the_sheets = 5)
+ required_reagents = list(/datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/consumable/ethanol/sidecar = 4)
/datum/chemical_reaction/kamikaze
name = "Kamikaze"
- id = "kamikaze"
- results = list("kamikaze" = 3)
- required_reagents = list("vodka" = 1, "triple_sec" = 1, "limejuice" = 1)
+ id = /datum/reagent/consumable/ethanol/kamikaze
+ results = list(/datum/reagent/consumable/ethanol/kamikaze = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 1, /datum/reagent/consumable/ethanol/triple_sec = 1, /datum/reagent/consumable/limejuice = 1)
/datum/chemical_reaction/mojito
name = "Mojito"
- id = "mojito"
- results = list("mojito" = 5)
- required_reagents = list("rum" = 1, "sugar" = 1, "limejuice" = 1, "sodawater" = 1, "menthol" = 1)
+ id = /datum/reagent/consumable/ethanol/mojito
+ results = list(/datum/reagent/consumable/ethanol/mojito = 5)
+ required_reagents = list(/datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/limejuice = 1, /datum/reagent/consumable/sodawater = 1, /datum/reagent/consumable/menthol = 1)
/datum/chemical_reaction/fernet_cola
name = "Fernet Cola"
- id = "fernet_cola"
- results = list("fernet_cola" = 2)
- required_reagents = list("fernet" = 1, "cola" = 1)
+ id = /datum/reagent/consumable/ethanol/fernet_cola
+ results = list(/datum/reagent/consumable/ethanol/fernet_cola = 2)
+ required_reagents = list(/datum/reagent/consumable/ethanol/fernet = 1, /datum/reagent/consumable/space_cola = 1)
/datum/chemical_reaction/fanciulli
name = "Fanciulli"
- id = "fanciulli"
- results = list("fanciulli" = 2)
- required_reagents = list("manhattan" = 1, "fernet" = 1)
+ id = /datum/reagent/consumable/ethanol/fanciulli
+ results = list(/datum/reagent/consumable/ethanol/fanciulli = 2)
+ required_reagents = list(/datum/reagent/consumable/ethanol/manhattan = 1, /datum/reagent/consumable/ethanol/fernet = 1)
/datum/chemical_reaction/branca_menta
name = "Branca Menta"
- id = "branca_menta"
- results = list("branca_menta" = 3)
- required_reagents = list("fernet" = 1, "creme_de_menthe" = 1, "ice" = 1)
+ id = /datum/reagent/consumable/ethanol/branca_menta
+ results = list(/datum/reagent/consumable/ethanol/branca_menta = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/fernet = 1, /datum/reagent/consumable/ethanol/creme_de_menthe = 1, /datum/reagent/consumable/ice = 1)
/datum/chemical_reaction/blank_paper
name = "Blank Paper"
- id = "blank_paper"
- results = list("blank_paper" = 3)
- required_reagents = list("silencer" = 1, "nothing" = 1, "nuka_cola" = 1)
+ id = /datum/reagent/consumable/ethanol/blank_paper
+ results = list(/datum/reagent/consumable/ethanol/blank_paper = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/silencer = 1, /datum/reagent/consumable/nothing = 1, /datum/reagent/consumable/nuka_cola = 1)
/datum/chemical_reaction/wizz_fizz
name = "Wizz Fizz"
- id = "wizz_fizz"
- results = list("wizz_fizz" = 3)
- required_reagents = list("triple_sec" = 1, "sodawater" = 1, "champagne" = 1)
+ id = /datum/reagent/consumable/ethanol/wizz_fizz
+ results = list(/datum/reagent/consumable/ethanol/wizz_fizz = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/triple_sec = 1, /datum/reagent/consumable/sodawater = 1, /datum/reagent/consumable/ethanol/champagne = 1)
mix_message = "The beverage starts to froth with an almost mystical zeal!"
mix_sound = 'sound/effects/bubbles2.ogg'
/datum/chemical_reaction/bug_spray
name = "Bug Spray"
- id = "bug_spray"
- results = list("bug_spray" = 5)
- required_reagents = list("triple_sec" = 2, "lemon_lime" = 1, "rum" = 2, "vodka" = 1)
+ id = /datum/reagent/consumable/ethanol/bug_spray
+ results = list(/datum/reagent/consumable/ethanol/bug_spray = 5)
+ required_reagents = list(/datum/reagent/consumable/ethanol/triple_sec = 2, /datum/reagent/consumable/lemon_lime = 1, /datum/reagent/consumable/ethanol/rum = 2, /datum/reagent/consumable/ethanol/vodka = 1)
mix_message = "The faint aroma of summer camping trips wafts through the air; but what's that buzzing noise?"
mix_sound = 'sound/creatures/bee.ogg'
/datum/chemical_reaction/jack_rose
name = "Jack Rose"
- id = "jack_rose"
- results = list("jack_rose" = 4)
- required_reagents = list("grenadine" = 1, "applejack" = 2, "limejuice" = 1)
+ id = /datum/reagent/consumable/ethanol/jack_rose
+ results = list(/datum/reagent/consumable/ethanol/jack_rose = 4)
+ required_reagents = list(/datum/reagent/consumable/grenadine = 1, /datum/reagent/consumable/ethanol/applejack = 2, /datum/reagent/consumable/limejuice = 1)
mix_message = "As the grenadine incorporates, the beverage takes on a mellow, red-orange glow."
/datum/chemical_reaction/turbo
name = "Turbo"
- id = "turbo"
- results = list("turbo" = 5)
- required_reagents = list("moonshine" = 2, "nitrous_oxide" = 1, "sugar_rush" = 1, "pwr_game" = 1)
+ id = /datum/reagent/consumable/ethanol/turbo
+ results = list(/datum/reagent/consumable/ethanol/turbo = 5)
+ required_reagents = list(/datum/reagent/consumable/ethanol/moonshine = 2, /datum/reagent/nitrous_oxide = 1, /datum/reagent/consumable/ethanol/sugar_rush = 1, /datum/reagent/consumable/pwr_game = 1)
/datum/chemical_reaction/old_timer
name = "Old Timer"
- id = "old_timer"
- results = list("old_timer" = 6)
- required_reagents = list("whiskeysoda" = 3, "parsnipjuice" = 2, "alexander" = 1)
+ id = /datum/reagent/consumable/ethanol/old_timer
+ results = list(/datum/reagent/consumable/ethanol/old_timer = 6)
+ required_reagents = list(/datum/reagent/consumable/ethanol/whiskeysoda = 3, /datum/reagent/consumable/parsnipjuice = 2, /datum/reagent/consumable/ethanol/alexander = 1)
/datum/chemical_reaction/rubberneck
name = "Rubberneck"
- id = "rubberneck"
- results = list("rubberneck" = 10)
- required_reagents = list("ethanol" = 4, "grey_bull" = 5, "astrotame" = 1)
+ id = /datum/reagent/consumable/ethanol/rubberneck
+ results = list(/datum/reagent/consumable/ethanol/rubberneck = 10)
+ required_reagents = list(/datum/reagent/consumable/ethanol = 4, /datum/reagent/consumable/grey_bull = 5, /datum/reagent/consumable/astrotame = 1)
/datum/chemical_reaction/duplex
name = "Duplex"
- id = "duplex"
- results = list("duplex" = 4)
- required_reagents = list("hcider" = 2, "applejuice" = 1, "berryjuice" = 1)
+ id = /datum/reagent/consumable/ethanol/duplex
+ results = list(/datum/reagent/consumable/ethanol/duplex = 4)
+ required_reagents = list(/datum/reagent/consumable/ethanol/hcider = 2, /datum/reagent/consumable/applejuice = 1, /datum/reagent/consumable/berryjuice = 1)
/datum/chemical_reaction/trappist
name = "Trappist"
- id = "trappist"
- results = list("trappist" = 5)
- required_reagents = list("ale" = 2, "holywater" = 2, "sugar" = 1)
+ id = /datum/reagent/consumable/ethanol/trappist
+ results = list(/datum/reagent/consumable/ethanol/trappist = 5)
+ required_reagents = list(/datum/reagent/consumable/ethanol/ale = 2, /datum/reagent/water/holywater = 2, /datum/reagent/consumable/sugar = 1)
/datum/chemical_reaction/cream_soda
name = "Cream Soda"
- id = "cream_soda"
- results = list("cream_soda" = 4)
- required_reagents = list("sugar" = 2, "sodawater" = 2, "vanilla" = 1)
+ id = /datum/reagent/consumable/cream_soda
+ results = list(/datum/reagent/consumable/cream_soda = 4)
+ required_reagents = list(/datum/reagent/consumable/sugar = 2, /datum/reagent/consumable/sodawater = 2, /datum/reagent/consumable/vanilla = 1)
/datum/chemical_reaction/blazaam
name = "Blazaam"
- id = "blazaam"
- results = list("blazaam" = 3)
- required_reagents = list("gin" = 2, "peachjuice" = 1, "bluespace" = 1)
+ id = /datum/reagent/consumable/ethanol/blazaam
+ results = list(/datum/reagent/consumable/ethanol/blazaam = 3)
+ required_reagents = list(/datum/reagent/consumable/ethanol/gin = 2, /datum/reagent/consumable/peachjuice = 1, /datum/reagent/bluespace = 1)
/datum/chemical_reaction/planet_cracker
name = "Planet Cracker"
- id = "planet_cracker"
- results = list("planet_cracker" = 4)
- required_reagents = list("champagne" = 2, "lizardwine" = 2, "eggyolk" = 1, "gold" = 1)
+ id = /datum/reagent/consumable/ethanol/planet_cracker
+ results = list(/datum/reagent/consumable/ethanol/planet_cracker = 4)
+ required_reagents = list(/datum/reagent/consumable/ethanol/champagne = 2, /datum/reagent/consumable/ethanol/lizardwine = 2, /datum/reagent/consumable/eggyolk = 1, /datum/reagent/gold = 1)
mix_message = "The liquid's color starts shifting as the nanogold is alternately corroded and redeposited."
/datum/chemical_reaction/red_queen
name = "Red Queen"
- id = "red_queen"
- results = list("red_queen" = 10)
- required_reagents = list("tea" = 6, "mercury" = 2, "blackpepper" = 1, "growthserum" = 1)
\ No newline at end of file
+ id = /datum/reagent/consumable/red_queen
+ results = list(/datum/reagent/consumable/red_queen = 10)
+ required_reagents = list(/datum/reagent/consumable/tea = 6, /datum/reagent/mercury = 2, /datum/reagent/consumable/blackpepper = 1, /datum/reagent/growthserum = 1)
diff --git a/code/modules/food_and_drinks/recipes/food_mixtures.dm b/code/modules/food_and_drinks/recipes/food_mixtures.dm
index d10286d21ad..923976f3487 100644
--- a/code/modules/food_and_drinks/recipes/food_mixtures.dm
+++ b/code/modules/food_and_drinks/recipes/food_mixtures.dm
@@ -11,8 +11,8 @@
/datum/chemical_reaction/tofu
name = "Tofu"
id = "tofu"
- required_reagents = list("soymilk" = 10)
- required_catalysts = list("enzyme" = 5)
+ required_reagents = list(/datum/reagent/consumable/soymilk = 10)
+ required_catalysts = list(/datum/reagent/consumable/enzyme = 5)
mob_react = FALSE
/datum/chemical_reaction/tofu/on_reaction(datum/reagents/holder, created_volume)
@@ -24,7 +24,7 @@
/datum/chemical_reaction/chocolate_bar
name = "Chocolate Bar"
id = "chocolate_bar"
- required_reagents = list("soymilk" = 2, "cocoa" = 2, "sugar" = 2)
+ required_reagents = list(/datum/reagent/consumable/soymilk = 2, /datum/reagent/consumable/coco = 2, /datum/reagent/consumable/sugar = 2)
/datum/chemical_reaction/chocolate_bar/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
@@ -36,7 +36,7 @@
/datum/chemical_reaction/chocolate_bar2
name = "Chocolate Bar"
id = "chocolate_bar"
- required_reagents = list("chocolate_milk" = 4, "sugar" = 2)
+ required_reagents = list(/datum/reagent/consumable/milk/chocolate_milk = 4, /datum/reagent/consumable/sugar = 2)
mob_react = FALSE
/datum/chemical_reaction/chocolate_bar2/on_reaction(datum/reagents/holder, created_volume)
@@ -47,40 +47,40 @@
/datum/chemical_reaction/hot_coco
name = "Hot Coco"
- id = "hot_coco"
- results = list("hot_coco" = 5)
- required_reagents = list("water" = 5, "cocoa" = 1)
+ id = /datum/reagent/consumable/hot_coco
+ results = list(/datum/reagent/consumable/hot_coco = 5)
+ required_reagents = list(/datum/reagent/water = 5, /datum/reagent/consumable/coco = 1)
/datum/chemical_reaction/coffee
name = "Coffee"
- id = "coffee"
- results = list("coffee" = 5)
- required_reagents = list("coffeepowder" = 1, "water" = 5)
+ id = /datum/reagent/consumable/coffee
+ results = list(/datum/reagent/consumable/coffee = 5)
+ required_reagents = list(/datum/reagent/toxin/coffeepowder = 1, /datum/reagent/water = 5)
/datum/chemical_reaction/tea
name = "Tea"
- id = "tea"
- results = list("tea" = 5)
- required_reagents = list("teapowder" = 1, "water" = 5)
+ id = /datum/reagent/consumable/tea
+ results = list(/datum/reagent/consumable/tea = 5)
+ required_reagents = list(/datum/reagent/toxin/teapowder = 1, /datum/reagent/water = 5)
/datum/chemical_reaction/soysauce
name = "Soy Sauce"
- id = "soysauce"
- results = list("soysauce" = 5)
- required_reagents = list("soymilk" = 4, "sacid" = 1)
+ id = /datum/reagent/consumable/soysauce
+ results = list(/datum/reagent/consumable/soysauce = 5)
+ required_reagents = list(/datum/reagent/consumable/soymilk = 4, /datum/reagent/toxin/acid = 1)
/datum/chemical_reaction/corn_syrup
- name = "corn_syrup"
- id = "corn_syrup"
- results = list("corn_syrup" = 5)
- required_reagents = list("corn_starch" = 1, "sacid" = 1)
+ name = /datum/reagent/consumable/corn_syrup
+ id = /datum/reagent/consumable/corn_syrup
+ results = list(/datum/reagent/consumable/corn_syrup = 5)
+ required_reagents = list(/datum/reagent/consumable/corn_starch = 1, /datum/reagent/toxin/acid = 1)
required_temp = 374
/datum/chemical_reaction/cheesewheel
name = "Cheesewheel"
id = "cheesewheel"
- required_reagents = list("milk" = 40)
- required_catalysts = list("enzyme" = 5)
+ required_reagents = list(/datum/reagent/consumable/milk = 40)
+ required_catalysts = list(/datum/reagent/consumable/enzyme = 5)
/datum/chemical_reaction/cheesewheel/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
@@ -90,7 +90,7 @@
/datum/chemical_reaction/synthmeat
name = "synthmeat"
id = "synthmeat"
- required_reagents = list("blood" = 5, "cryoxadone" = 1)
+ required_reagents = list(/datum/reagent/blood = 5, /datum/reagent/medicine/cryoxadone = 1)
mob_react = FALSE
/datum/chemical_reaction/synthmeat/on_reaction(datum/reagents/holder, created_volume)
@@ -100,20 +100,20 @@
/datum/chemical_reaction/hot_ramen
name = "Hot Ramen"
- id = "hot_ramen"
- results = list("hot_ramen" = 3)
- required_reagents = list("water" = 1, "dry_ramen" = 3)
+ id = /datum/reagent/consumable/hot_ramen
+ results = list(/datum/reagent/consumable/hot_ramen = 3)
+ required_reagents = list(/datum/reagent/water = 1, /datum/reagent/consumable/dry_ramen = 3)
/datum/chemical_reaction/hell_ramen
name = "Hell Ramen"
- id = "hell_ramen"
- results = list("hell_ramen" = 6)
- required_reagents = list("capsaicin" = 1, "hot_ramen" = 6)
+ id = /datum/reagent/consumable/hell_ramen
+ results = list(/datum/reagent/consumable/hell_ramen = 6)
+ required_reagents = list(/datum/reagent/consumable/capsaicin = 1, /datum/reagent/consumable/hot_ramen = 6)
/datum/chemical_reaction/imitationcarpmeat
name = "Imitation Carpmeat"
id = "imitationcarpmeat"
- required_reagents = list("carpotoxin" = 5)
+ required_reagents = list(/datum/reagent/toxin/carpotoxin = 5)
required_container = /obj/item/reagent_containers/food/snacks/tofu
mix_message = "The mixture becomes similar to carp meat."
@@ -126,7 +126,7 @@
/datum/chemical_reaction/dough
name = "Dough"
id = "dough"
- required_reagents = list("water" = 10, "flour" = 15)
+ required_reagents = list(/datum/reagent/water = 10, /datum/reagent/consumable/flour = 15)
mix_message = "The ingredients form a dough."
/datum/chemical_reaction/dough/on_reaction(datum/reagents/holder, created_volume)
@@ -137,7 +137,7 @@
/datum/chemical_reaction/cakebatter
name = "Cake Batter"
id = "cakebatter"
- required_reagents = list("eggyolk" = 15, "flour" = 15, "sugar" = 5)
+ required_reagents = list(/datum/reagent/consumable/eggyolk = 15, /datum/reagent/consumable/flour = 15, /datum/reagent/consumable/sugar = 5)
mix_message = "The ingredients form a cake batter."
/datum/chemical_reaction/cakebatter/on_reaction(datum/reagents/holder, created_volume)
@@ -147,12 +147,12 @@
/datum/chemical_reaction/cakebatter/vegan
id = "vegancakebatter"
- required_reagents = list("soymilk" = 15, "flour" = 15, "sugar" = 5)
+ required_reagents = list(/datum/reagent/consumable/soymilk = 15, /datum/reagent/consumable/flour = 15, /datum/reagent/consumable/sugar = 5)
/datum/chemical_reaction/ricebowl
name = "Rice Bowl"
id = "ricebowl"
- required_reagents = list("rice" = 10, "water" = 10)
+ required_reagents = list(/datum/reagent/consumable/rice = 10, /datum/reagent/water = 10)
required_container = /obj/item/reagent_containers/glass/bowl
mix_message = "The rice absorbs the water."
diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm
index 88026e1e1c9..d8ed7fd8d3e 100644
--- a/code/modules/holiday/easter.dm
+++ b/code/modules/holiday/easter.dm
@@ -163,7 +163,7 @@
icon_state = "briochecake"
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/brioche
slices_num = 6
- bonus_reagents = list("nutriment" = 10, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 2)
/obj/item/reagent_containers/food/snacks/cakeslice/brioche
name = "brioche cake slice"
@@ -184,10 +184,10 @@
name = "scotch egg"
desc = "A boiled egg wrapped in a delicious, seasoned meatball."
icon_state = "scotchegg"
- bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2)
bitesize = 3
filling_color = "#FFFFF0"
- list_reagents = list("nutriment" = 6)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6)
/datum/crafting_recipe/food/scotchegg
name = "Scotch egg"
@@ -204,8 +204,8 @@
name = "Mammi"
desc = "A bowl of mushy bread and milk. It reminds you, not too fondly, of a bowel movement."
icon_state = "mammi"
- bonus_reagents = list("nutriment" = 3, "vitamin" = 1)
- list_reagents = list("nutriment" = 8, "vitamin" = 1)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 1)
/datum/crafting_recipe/food/mammi
name = "Mammi"
@@ -221,8 +221,8 @@
name = "chocolate bunny"
desc = "Contains less than 10% real rabbit!"
icon_state = "chocolatebunny"
- bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
- list_reagents = list("nutriment" = 4, "sugar" = 2, "cocoa" = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sugar = 2, /datum/reagent/consumable/coco = 2)
filling_color = "#A0522D"
/datum/crafting_recipe/food/chocolatebunny
diff --git a/code/modules/holiday/halloween.dm b/code/modules/holiday/halloween.dm
index 91b778158ba..5b53499a8b3 100644
--- a/code/modules/holiday/halloween.dm
+++ b/code/modules/holiday/halloween.dm
@@ -6,14 +6,14 @@
//spooky recipes
/datum/recipe/sugarcookie/spookyskull
- reagents = list("flour" = 5, "sugar" = 5, "milk" = 5)
+ reagents = list(/datum/reagent/consumable/flour = 5, /datum/reagent/consumable/sugar = 5, /datum/reagent/consumable/milk = 5)
items = list(
/obj/item/reagent_containers/food/snacks/egg,
)
result = /obj/item/reagent_containers/food/snacks/sugarcookie/spookyskull
/datum/recipe/sugarcookie/spookycoffin
- reagents = list("flour" = 5, "sugar" = 5, "coffee" = 5)
+ reagents = list(/datum/reagent/consumable/flour = 5, /datum/reagent/consumable/sugar = 5, /datum/reagent/consumable/coffee = 5)
items = list(
/obj/item/reagent_containers/food/snacks/egg,
)
diff --git a/code/modules/hydroponics/beekeeping/beebox.dm b/code/modules/hydroponics/beekeeping/beebox.dm
index f70d23f307d..65163c2e12f 100644
--- a/code/modules/hydroponics/beekeeping/beebox.dm
+++ b/code/modules/hydroponics/beekeeping/beebox.dm
@@ -65,7 +65,7 @@
var/datum/reagent/R = null
if(random_reagent)
R = pick(subtypesof(/datum/reagent))
- R = GLOB.chemical_reagents_list[initial(R.id)]
+ R = GLOB.chemical_reagents_list[R]
queen_bee = new(src)
queen_bee.beehome = src
@@ -95,7 +95,7 @@
bee_resources = max(bee_resources-BEE_RESOURCE_HONEYCOMB_COST, 0)
var/obj/item/reagent_containers/honeycomb/HC = new(src)
if(queen_bee.beegent)
- HC.set_reagent(queen_bee.beegent.id)
+ HC.set_reagent(queen_bee.beegent.type)
honeycombs += HC
if(bees.len < get_max_bees())
diff --git a/code/modules/hydroponics/beekeeping/honeycomb.dm b/code/modules/hydroponics/beekeeping/honeycomb.dm
index e7faff02091..daa22c4f850 100644
--- a/code/modules/hydroponics/beekeeping/honeycomb.dm
+++ b/code/modules/hydroponics/beekeeping/honeycomb.dm
@@ -9,7 +9,7 @@
disease_amount = 0
volume = 10
amount_per_transfer_from_this = 0
- list_reagents = list("honey" = 5)
+ list_reagents = list(/datum/reagent/consumable/honey = 5)
grind_results = list()
var/honey_color = ""
@@ -22,7 +22,7 @@
/obj/item/reagent_containers/honeycomb/update_icon()
cut_overlays()
- var/mutable_appearance/honey_overlay = mutable_appearance(icon, "honey")
+ var/mutable_appearance/honey_overlay = mutable_appearance(icon, /datum/reagent/consumable/honey)
if(honey_color)
honey_overlay.icon_state = "greyscale_honey"
honey_overlay.color = honey_color
@@ -34,7 +34,7 @@
if(istype(R))
name = "honeycomb ([R.name])"
honey_color = R.color
- reagents.add_reagent(R.id,5)
+ reagents.add_reagent(R.type,5)
else
honey_color = ""
update_icon()
\ No newline at end of file
diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm
index e7d87c98e99..7f3eb296872 100644
--- a/code/modules/hydroponics/biogenerator.dm
+++ b/code/modules/hydroponics/biogenerator.dm
@@ -215,9 +215,9 @@
var/S = 0
for(var/obj/item/reagent_containers/food/snacks/grown/I in contents)
S += 5
- if(I.reagents.get_reagent_amount("nutriment") < 0.1)
+ if(I.reagents.get_reagent_amount(/datum/reagent/consumable/nutriment) < 0.1)
points += 1*productivity
- else points += I.reagents.get_reagent_amount("nutriment")*10*productivity
+ else points += I.reagents.get_reagent_amount(/datum/reagent/consumable/nutriment)*10*productivity
qdel(I)
if(S)
processing = TRUE
diff --git a/code/modules/hydroponics/fermenting_barrel.dm b/code/modules/hydroponics/fermenting_barrel.dm
index bc5f3d2ace8..33fbeb91d63 100644
--- a/code/modules/hydroponics/fermenting_barrel.dm
+++ b/code/modules/hydroponics/fermenting_barrel.dm
@@ -34,7 +34,7 @@
data["tastes"] = list(fruit.wine_flavor = 1)
else
data["tastes"] = list(fruit.tastes[1] = 1)
- reagents.add_reagent("fruit_wine", amount, data)
+ reagents.add_reagent(/datum/reagent/consumable/ethanol/fruit_wine, amount, data)
qdel(fruit)
playsound(src, 'sound/effects/bubbles.ogg', 50, TRUE)
diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm
index 1c81c3827ba..19d5128f9e1 100644
--- a/code/modules/hydroponics/grown.dm
+++ b/code/modules/hydroponics/grown.dm
@@ -145,20 +145,20 @@
return TRUE
/obj/item/reagent_containers/food/snacks/grown/on_grind()
- var/nutriment = reagents.get_reagent_amount("nutriment")
+ var/nutriment = reagents.get_reagent_amount(/datum/reagent/consumable/nutriment)
if(grind_results&&grind_results.len)
for(var/i in 1 to grind_results.len)
grind_results[grind_results[i]] = nutriment
- reagents.del_reagent("nutriment")
- reagents.del_reagent("vitamin")
+ reagents.del_reagent(/datum/reagent/consumable/nutriment)
+ reagents.del_reagent(/datum/reagent/consumable/nutriment/vitamin)
/obj/item/reagent_containers/food/snacks/grown/on_juice()
- var/nutriment = reagents.get_reagent_amount("nutriment")
+ var/nutriment = reagents.get_reagent_amount(/datum/reagent/consumable/nutriment)
if(juice_results&&juice_results.len)
for(var/i in 1 to juice_results.len)
juice_results[juice_results[i]] = nutriment
- reagents.del_reagent("nutriment")
- reagents.del_reagent("vitamin")
+ reagents.del_reagent(/datum/reagent/consumable/nutriment)
+ reagents.del_reagent(/datum/reagent/consumable/nutriment/vitamin)
// For item-containing growns such as eggy or gatfruit
/obj/item/reagent_containers/food/snacks/grown/shell/attack_self(mob/user)
diff --git a/code/modules/hydroponics/grown/ambrosia.dm b/code/modules/hydroponics/grown/ambrosia.dm
index a3b93db1ea2..e84025208a3 100644
--- a/code/modules/hydroponics/grown/ambrosia.dm
+++ b/code/modules/hydroponics/grown/ambrosia.dm
@@ -25,7 +25,7 @@
icon_dead = "ambrosia-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/ambrosia/deus)
- reagents_add = list("space_drugs" = 0.15, "bicaridine" = 0.1, "kelotane" = 0.1, "vitamin" = 0.04, "nutriment" = 0.05, "toxin" = 0.1)
+ reagents_add = list(/datum/reagent/drug/space_drugs = 0.15, /datum/reagent/medicine/bicaridine = 0.1, /datum/reagent/medicine/kelotane = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05, /datum/reagent/toxin = 0.1)
/obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris
seed = /obj/item/seeds/ambrosia
@@ -42,7 +42,7 @@
plantname = "Ambrosia Deus"
product = /obj/item/reagent_containers/food/snacks/grown/ambrosia/deus
mutatelist = list(/obj/item/seeds/ambrosia/gaia)
- reagents_add = list("omnizine" = 0.15, "synaptizine" = 0.15, "space_drugs" = 0.1, "vitamin" = 0.04, "nutriment" = 0.05)
+ reagents_add = list(/datum/reagent/medicine/omnizine = 0.15, /datum/reagent/medicine/synaptizine = 0.15, /datum/reagent/drug/space_drugs = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05)
rarity = 40
/obj/item/reagent_containers/food/snacks/grown/ambrosia/deus
@@ -62,7 +62,7 @@
plantname = "Ambrosia Gaia"
product = /obj/item/reagent_containers/food/snacks/grown/ambrosia/gaia
mutatelist = list(/obj/item/seeds/ambrosia/deus)
- reagents_add = list("earthsblood" = 0.05, "nutriment" = 0.06, "vitamin" = 0.05)
+ reagents_add = list(/datum/reagent/medicine/earthsblood = 0.05, /datum/reagent/consumable/nutriment = 0.06, /datum/reagent/consumable/nutriment/vitamin = 0.05)
rarity = 30 //These are some pretty good plants right here
genes = list()
weed_rate = 4
diff --git a/code/modules/hydroponics/grown/apple.dm b/code/modules/hydroponics/grown/apple.dm
index 007c0b24542..f8e58aee1b4 100644
--- a/code/modules/hydroponics/grown/apple.dm
+++ b/code/modules/hydroponics/grown/apple.dm
@@ -14,7 +14,7 @@
icon_dead = "apple-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/apple/gold)
- reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
/obj/item/reagent_containers/food/snacks/grown/apple
seed = /obj/item/seeds/apple
@@ -24,9 +24,9 @@
filling_color = "#FF4500"
bitesize = 100 // Always eat the apple in one bite
foodtype = FRUIT
- juice_results = list("applejuice" = 0)
+ juice_results = list(/datum/reagent/consumable/applejuice = 0)
tastes = list("apple" = 1)
- distill_reagent = "hcider"
+ distill_reagent = /datum/reagent/consumable/ethanol/hcider
// Gold Apple
/obj/item/seeds/apple/gold
@@ -39,7 +39,7 @@
maturation = 10
production = 10
mutatelist = list()
- reagents_add = list("gold" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/gold = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
rarity = 40 // Alchemy!
/obj/item/reagent_containers/food/snacks/grown/apple/gold
diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm
index daa2f7ee282..fe87f8dc400 100644
--- a/code/modules/hydroponics/grown/banana.dm
+++ b/code/modules/hydroponics/grown/banana.dm
@@ -12,7 +12,7 @@
icon_dead = "banana-dead"
genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/banana/mime, /obj/item/seeds/banana/bluespace)
- reagents_add = list("banana" = 0.1, "potassium" = 0.1, "vitamin" = 0.04, "nutriment" = 0.02)
+ reagents_add = list(/datum/reagent/consumable/banana = 0.1, /datum/reagent/potassium = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.02)
/obj/item/reagent_containers/food/snacks/grown/banana
seed = /obj/item/seeds/banana
@@ -24,8 +24,8 @@
filling_color = "#FFFF00"
bitesize = 5
foodtype = FRUIT
- juice_results = list("banana" = 0)
- distill_reagent = "bananahonk"
+ juice_results = list(/datum/reagent/consumable/banana = 0)
+ distill_reagent = /datum/reagent/consumable/ethanol/bananahonk
/obj/item/reagent_containers/food/snacks/grown/banana/suicide_act(mob/user)
user.visible_message("
[user] is aiming [src] at [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!")
@@ -33,7 +33,7 @@
sleep(25)
if(!user)
return (OXYLOSS)
- user.say("BANG!", forced = "banana")
+ user.say("BANG!", forced = /datum/reagent/consumable/banana)
sleep(25)
if(!user)
return (OXYLOSS)
@@ -70,7 +70,7 @@
product = /obj/item/reagent_containers/food/snacks/grown/banana/mime
growthstages = 4
mutatelist = list()
- reagents_add = list("nothing" = 0.1, "mutetoxin" = 0.1, "nutriment" = 0.02)
+ reagents_add = list(/datum/reagent/consumable/nothing = 0.1, /datum/reagent/toxin/mutetoxin = 0.1, /datum/reagent/consumable/nutriment = 0.02)
rarity = 15
/obj/item/reagent_containers/food/snacks/grown/banana/mime
@@ -80,7 +80,7 @@
icon_state = "mimana"
trash = /obj/item/grown/bananapeel/mimanapeel
filling_color = "#FFFFEE"
- distill_reagent = "silencer"
+ distill_reagent = /datum/reagent/consumable/ethanol/silencer
/obj/item/grown/bananapeel/mimanapeel
seed = /obj/item/seeds/banana/mime
@@ -100,7 +100,7 @@
product = /obj/item/reagent_containers/food/snacks/grown/banana/bluespace
mutatelist = list()
genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/teleport, /datum/plant_gene/trait/repeated_harvest)
- reagents_add = list("bluespace" = 0.2, "banana" = 0.1, "vitamin" = 0.04, "nutriment" = 0.02)
+ reagents_add = list(/datum/reagent/bluespace = 0.2, /datum/reagent/consumable/banana = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.02)
rarity = 30
/obj/item/reagent_containers/food/snacks/grown/banana/bluespace
diff --git a/code/modules/hydroponics/grown/beans.dm b/code/modules/hydroponics/grown/beans.dm
index 4338e3b0700..3e5fee411fa 100644
--- a/code/modules/hydroponics/grown/beans.dm
+++ b/code/modules/hydroponics/grown/beans.dm
@@ -15,7 +15,7 @@
icon_dead = "soybean-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/soya/koi)
- reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05, "cooking_oil" = 0.03) //Vegetable oil!
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05, /datum/reagent/consumable/cooking_oil = 0.03) //Vegetable oil!
/obj/item/reagent_containers/food/snacks/grown/soybeans
seed = /obj/item/seeds/soya
@@ -26,7 +26,7 @@
filling_color = "#F0E68C"
bitesize_mod = 2
foodtype = VEGETABLES
- grind_results = list("soymilk" = 0)
+ grind_results = list(/datum/reagent/consumable/soymilk = 0)
tastes = list("soy" = 1)
wine_power = 20
@@ -40,7 +40,7 @@
product = /obj/item/reagent_containers/food/snacks/grown/koibeans
potency = 10
mutatelist = list()
- reagents_add = list("carpotoxin" = 0.1, "vitamin" = 0.04, "nutriment" = 0.05)
+ reagents_add = list(/datum/reagent/toxin/carpotoxin = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05)
rarity = 20
/obj/item/reagent_containers/food/snacks/grown/koibeans
diff --git a/code/modules/hydroponics/grown/berries.dm b/code/modules/hydroponics/grown/berries.dm
index a7e55733e4e..46060897f5e 100644
--- a/code/modules/hydroponics/grown/berries.dm
+++ b/code/modules/hydroponics/grown/berries.dm
@@ -15,7 +15,7 @@
icon_dead = "berry-dead" // Same for the dead icon
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/berry/glow, /obj/item/seeds/berry/poison)
- reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
/obj/item/reagent_containers/food/snacks/grown/berries
seed = /obj/item/seeds/berry
@@ -26,9 +26,9 @@
filling_color = "#FF00FF"
bitesize_mod = 2
foodtype = FRUIT
- juice_results = list("berryjuice" = 0)
+ juice_results = list(/datum/reagent/consumable/berryjuice = 0)
tastes = list("berry" = 1)
- distill_reagent = "gin"
+ distill_reagent = /datum/reagent/consumable/ethanol/gin
// Poison Berries
/obj/item/seeds/berry/poison
@@ -39,7 +39,7 @@
plantname = "Poison-Berry Bush"
product = /obj/item/reagent_containers/food/snacks/grown/berries/poison
mutatelist = list(/obj/item/seeds/berry/death)
- reagents_add = list("cyanide" = 0.15, "tirizene" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/toxin/cyanide = 0.15, /datum/reagent/toxin/staminatoxin = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
rarity = 10 // Mildly poisonous berries are common in reality
/obj/item/reagent_containers/food/snacks/grown/berries/poison
@@ -49,7 +49,7 @@
icon_state = "poisonberrypile"
filling_color = "#C71585"
foodtype = FRUIT | TOXIC
- juice_results = list("poisonberryjuice" = 0)
+ juice_results = list(/datum/reagent/consumable/poisonberryjuice = 0)
tastes = list("poison-berry" = 1)
distill_reagent = null
wine_power = 35
@@ -65,7 +65,7 @@
lifespan = 30
potency = 50
mutatelist = list()
- reagents_add = list("coniine" = 0.08, "tirizene" = 0.1, "vitamin" = 0.04, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/toxin/coniine = 0.08, /datum/reagent/toxin/staminatoxin = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
rarity = 30
/obj/item/reagent_containers/food/snacks/grown/berries/death
@@ -91,7 +91,7 @@
endurance = 25
mutatelist = list()
genes = list(/datum/plant_gene/trait/glow/berry, /datum/plant_gene/trait/repeated_harvest)
- reagents_add = list("uranium" = 0.25, "iodine" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/uranium = 0.25, /datum/reagent/iodine = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
rarity = 20
/obj/item/reagent_containers/food/snacks/grown/berries/glow
@@ -123,7 +123,7 @@
icon_dead = "cherry-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/cherry/blue)
- reagents_add = list("nutriment" = 0.07, "sugar" = 0.07)
+ reagents_add = list(/datum/reagent/consumable/nutriment = 0.07, /datum/reagent/consumable/sugar = 0.07)
/obj/item/reagent_containers/food/snacks/grown/cherries
seed = /obj/item/seeds/cherry
@@ -134,7 +134,7 @@
filling_color = "#FF0000"
bitesize_mod = 2
foodtype = FRUIT
- grind_results = list("cherryjelly" = 0)
+ grind_results = list(/datum/reagent/consumable/cherryjelly = 0)
tastes = list("cherry" = 1)
wine_power = 30
@@ -147,7 +147,7 @@
plantname = "Blue Cherry Tree"
product = /obj/item/reagent_containers/food/snacks/grown/bluecherries
mutatelist = list()
- reagents_add = list("nutriment" = 0.07, "sugar" = 0.07)
+ reagents_add = list(/datum/reagent/consumable/nutriment = 0.07, /datum/reagent/consumable/sugar = 0.07)
rarity = 10
/obj/item/reagent_containers/food/snacks/grown/bluecherries
@@ -158,7 +158,7 @@
filling_color = "#6495ED"
bitesize_mod = 2
foodtype = FRUIT
- grind_results = list("bluecherryjelly" = 0)
+ grind_results = list(/datum/reagent/consumable/bluecherryjelly = 0)
tastes = list("blue cherry" = 1)
wine_power = 50
@@ -181,7 +181,7 @@
icon_dead = "grape-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/grape/green)
- reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1, "sugar" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1, /datum/reagent/consumable/sugar = 0.1)
/obj/item/reagent_containers/food/snacks/grown/grapes
seed = /obj/item/seeds/grape
@@ -192,9 +192,9 @@
filling_color = "#FF1493"
bitesize_mod = 2
foodtype = FRUIT
- juice_results = list("grapejuice" = 0)
+ juice_results = list(/datum/reagent/consumable/grapejuice = 0)
tastes = list("grape" = 1)
- distill_reagent = "wine"
+ distill_reagent = /datum/reagent/consumable/ethanol/wine
// Green Grapes
/obj/item/seeds/grape/green
@@ -204,7 +204,7 @@
species = "greengrape"
plantname = "Green-Grape Vine"
product = /obj/item/reagent_containers/food/snacks/grown/grapes/green
- reagents_add = list("kelotane" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1, "sugar" = 0.1)
+ reagents_add = list(/datum/reagent/medicine/kelotane = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1, /datum/reagent/consumable/sugar = 0.1)
// No rarity: technically it's a beneficial mutant, but it's not exactly "new"...
mutatelist = list()
@@ -214,4 +214,4 @@
icon_state = "greengrapes"
filling_color = "#7FFF00"
tastes = list("green grape" = 1)
- distill_reagent = "cognac"
+ distill_reagent = /datum/reagent/consumable/ethanol/cognac
diff --git a/code/modules/hydroponics/grown/cannabis.dm b/code/modules/hydroponics/grown/cannabis.dm
index 67c5e61dcf5..a7e571d7c1d 100644
--- a/code/modules/hydroponics/grown/cannabis.dm
+++ b/code/modules/hydroponics/grown/cannabis.dm
@@ -17,7 +17,7 @@
/obj/item/seeds/cannabis/death,
/obj/item/seeds/cannabis/white,
/obj/item/seeds/cannabis/ultimate)
- reagents_add = list("space_drugs" = 0.15, "lipolicide" = 0.35) // gives u the munchies
+ reagents_add = list(/datum/reagent/drug/space_drugs = 0.15, /datum/reagent/toxin/lipolicide = 0.35) // gives u the munchies
/obj/item/seeds/cannabis/rainbow
@@ -28,7 +28,7 @@
plantname = "Rainbow Weed"
product = /obj/item/reagent_containers/food/snacks/grown/cannabis/rainbow
mutatelist = list()
- reagents_add = list("mindbreaker" = 0.15, "lipolicide" = 0.35)
+ reagents_add = list(/datum/reagent/toxin/mindbreaker = 0.15, /datum/reagent/toxin/lipolicide = 0.35)
rarity = 40
/obj/item/seeds/cannabis/death
@@ -39,7 +39,7 @@
plantname = "Deathweed"
product = /obj/item/reagent_containers/food/snacks/grown/cannabis/death
mutatelist = list()
- reagents_add = list("cyanide" = 0.35, "space_drugs" = 0.15, "lipolicide" = 0.15)
+ reagents_add = list(/datum/reagent/toxin/cyanide = 0.35, /datum/reagent/drug/space_drugs = 0.15, /datum/reagent/toxin/lipolicide = 0.15)
rarity = 40
/obj/item/seeds/cannabis/white
@@ -50,7 +50,7 @@
plantname = "Lifeweed"
product = /obj/item/reagent_containers/food/snacks/grown/cannabis/white
mutatelist = list()
- reagents_add = list("omnizine" = 0.35, "space_drugs" = 0.15, "lipolicide" = 0.15)
+ reagents_add = list(/datum/reagent/medicine/omnizine = 0.35, /datum/reagent/drug/space_drugs = 0.15, /datum/reagent/toxin/lipolicide = 0.15)
rarity = 40
@@ -62,21 +62,21 @@
plantname = "Omega Weed"
product = /obj/item/reagent_containers/food/snacks/grown/cannabis/ultimate
mutatelist = list()
- reagents_add = list("space_drugs" = 0.3,
- "mindbreaker" = 0.3,
- "mercury" = 0.15,
- "lithium" = 0.15,
- "atropine" = 0.15,
- "haloperidol" = 0.15,
- "methamphetamine" = 0.15,
- "capsaicin" = 0.15,
- "barbers_aid" = 0.15,
- "bath_salts" = 0.15,
- "itching_powder" = 0.15,
- "crank" = 0.15,
- "krokodil" = 0.15,
- "histamine" = 0.15,
- "lipolicide" = 0.15)
+ reagents_add = list(/datum/reagent/drug/space_drugs = 0.3,
+ /datum/reagent/toxin/mindbreaker = 0.3,
+ /datum/reagent/mercury = 0.15,
+ /datum/reagent/lithium = 0.15,
+ /datum/reagent/medicine/atropine = 0.15,
+ /datum/reagent/medicine/haloperidol = 0.15,
+ /datum/reagent/drug/methamphetamine = 0.15,
+ /datum/reagent/consumable/capsaicin = 0.15,
+ /datum/reagent/barbers_aid = 0.15,
+ /datum/reagent/drug/bath_salts = 0.15,
+ /datum/reagent/toxin/itching_powder = 0.15,
+ /datum/reagent/drug/crank = 0.15,
+ /datum/reagent/drug/krokodil = 0.15,
+ /datum/reagent/toxin/histamine = 0.15,
+ /datum/reagent/toxin/lipolicide = 0.15)
rarity = 69
diff --git a/code/modules/hydroponics/grown/cereals.dm b/code/modules/hydroponics/grown/cereals.dm
index c53cd6718ac..f4520d7fcfb 100644
--- a/code/modules/hydroponics/grown/cereals.dm
+++ b/code/modules/hydroponics/grown/cereals.dm
@@ -11,7 +11,7 @@
potency = 15
icon_dead = "wheat-dead"
mutatelist = list(/obj/item/seeds/wheat/oat, /obj/item/seeds/wheat/meat)
- reagents_add = list("nutriment" = 0.04)
+ reagents_add = list(/datum/reagent/consumable/nutriment = 0.04)
/obj/item/reagent_containers/food/snacks/grown/wheat
seed = /obj/item/seeds/wheat
@@ -22,9 +22,9 @@
filling_color = "#F0E68C"
bitesize_mod = 2
foodtype = GRAIN
- grind_results = list("flour" = 0)
+ grind_results = list(/datum/reagent/consumable/flour = 0)
tastes = list("wheat" = 1)
- distill_reagent = "beer"
+ distill_reagent = /datum/reagent/consumable/ethanol/beer
// Oat
/obj/item/seeds/wheat/oat
@@ -45,16 +45,16 @@
filling_color = "#556B2F"
bitesize_mod = 2
foodtype = GRAIN
- grind_results = list("flour" = 0)
+ grind_results = list(/datum/reagent/consumable/flour = 0)
tastes = list("oat" = 1)
- distill_reagent = "ale"
+ distill_reagent = /datum/reagent/consumable/ethanol/ale
// Rice
/obj/item/seeds/wheat/rice
name = "pack of rice seeds"
desc = "These may, or may not, grow into rice."
icon_state = "seed-rice"
- species = "rice"
+ species = /datum/reagent/consumable/rice
plantname = "Rice Stalks"
product = /obj/item/reagent_containers/food/snacks/grown/rice
mutatelist = list()
@@ -69,9 +69,9 @@
filling_color = "#FAFAD2"
bitesize_mod = 2
foodtype = GRAIN
- grind_results = list("rice" = 0)
+ grind_results = list(/datum/reagent/consumable/rice = 0)
tastes = list("rice" = 1)
- distill_reagent = "sake"
+ distill_reagent = /datum/reagent/consumable/ethanol/sake
//Meatwheat - grows into synthetic meat
/obj/item/seeds/wheat/meat
@@ -92,7 +92,7 @@
bitesize_mod = 2
seed = /obj/item/seeds/wheat/meat
foodtype = MEAT | GRAIN
- grind_results = list("flour" = 0, "blood" = 0)
+ grind_results = list(/datum/reagent/consumable/flour = 0, /datum/reagent/blood = 0)
tastes = list("meatwheat" = 1)
can_distill = FALSE
diff --git a/code/modules/hydroponics/grown/chili.dm b/code/modules/hydroponics/grown/chili.dm
index 6325daacdcc..0522b5fd454 100644
--- a/code/modules/hydroponics/grown/chili.dm
+++ b/code/modules/hydroponics/grown/chili.dm
@@ -16,7 +16,7 @@
icon_dead = "chili-dead" // Same for the dead icon
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/chili/ice, /obj/item/seeds/chili/ghost)
- reagents_add = list("capsaicin" = 0.25, "vitamin" = 0.04, "nutriment" = 0.04)
+ reagents_add = list(/datum/reagent/consumable/capsaicin = 0.25, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.04)
/obj/item/reagent_containers/food/snacks/grown/chili
seed = /obj/item/seeds/chili
@@ -41,7 +41,7 @@
production = 4
rarity = 20
mutatelist = list()
- reagents_add = list("frostoil" = 0.25, "vitamin" = 0.02, "nutriment" = 0.02)
+ reagents_add = list(/datum/reagent/consumable/frostoil = 0.25, /datum/reagent/consumable/nutriment/vitamin = 0.02, /datum/reagent/consumable/nutriment = 0.02)
/obj/item/reagent_containers/food/snacks/grown/icepepper
seed = /obj/item/seeds/chili/ice
@@ -67,7 +67,7 @@
yield = 3
rarity = 20
mutatelist = list()
- reagents_add = list("condensedcapsaicin" = 0.3, "capsaicin" = 0.55, "nutriment" = 0.04)
+ reagents_add = list(/datum/reagent/consumable/condensedcapsaicin = 0.3, /datum/reagent/consumable/capsaicin = 0.55, /datum/reagent/consumable/nutriment = 0.04)
/obj/item/reagent_containers/food/snacks/grown/ghost_chili
seed = /obj/item/seeds/chili/ghost
diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm
index 6864de381a6..a02afba25d6 100644
--- a/code/modules/hydroponics/grown/citrus.dm
+++ b/code/modules/hydroponics/grown/citrus.dm
@@ -23,7 +23,7 @@
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/orange)
- reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/reagent_containers/food/snacks/grown/citrus/lime
seed = /obj/item/seeds/lime
@@ -31,7 +31,7 @@
desc = "It's so sour, your face will twist."
icon_state = "lime"
filling_color = "#00FF00"
- juice_results = list("limejuice" = 0)
+ juice_results = list(/datum/reagent/consumable/limejuice = 0)
// Orange
/obj/item/seeds/orange
@@ -50,7 +50,7 @@
icon_dead = "lime-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/lime, /obj/item/seeds/orange_3d)
- reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/reagent_containers/food/snacks/grown/citrus/orange
seed = /obj/item/seeds/orange
@@ -58,8 +58,8 @@
desc = "It's a tangy fruit."
icon_state = "orange"
filling_color = "#FFA500"
- juice_results = list("orangejuice" = 0)
- distill_reagent = "triple_sec"
+ juice_results = list(/datum/reagent/consumable/orangejuice = 0)
+ distill_reagent = /datum/reagent/consumable/ethanol/triple_sec
// Lemon
/obj/item/seeds/lemon
@@ -77,7 +77,7 @@
icon_dead = "lime-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/firelemon)
- reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/reagent_containers/food/snacks/grown/citrus/lemon
seed = /obj/item/seeds/lemon
@@ -85,7 +85,7 @@
desc = "When life gives you lemons, make lemonade."
icon_state = "lemon"
filling_color = "#FFD700"
- juice_results = list("lemonjuice" = 0)
+ juice_results = list(/datum/reagent/consumable/lemonjuice = 0)
// Combustible lemon
/obj/item/seeds/firelemon //combustible lemon is too long so firelemon
@@ -102,7 +102,7 @@
lifespan = 55
endurance = 45
yield = 4
- reagents_add = list("nutriment" = 0.05)
+ reagents_add = list(/datum/reagent/consumable/nutriment = 0.05)
/obj/item/reagent_containers/food/snacks/grown/firelemon
seed = /obj/item/seeds/firelemon
@@ -174,7 +174,7 @@
icon_grow = "lime-grow"
icon_dead = "lime-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
- reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/reagent_containers/food/snacks/grown/citrus/orange_3d
seed = /obj/item/seeds/orange
@@ -182,8 +182,8 @@
desc = "You can hardly wrap your head around this thing."
icon_state = "orang"
filling_color = "#FFA500"
- juice_results = list("orangejuice" = 0)
- distill_reagent = "triple_sec"
+ juice_results = list(/datum/reagent/consumable/orangejuice = 0)
+ distill_reagent = /datum/reagent/consumable/ethanol/triple_sec
tastes = list("polygons" = 1, "oranges" = 1)
/obj/item/reagent_containers/food/snacks/grown/citrus/orange_3d/pickup(mob/user)
diff --git a/code/modules/hydroponics/grown/cocoa_vanilla.dm b/code/modules/hydroponics/grown/cocoa_vanilla.dm
index ea1b9716bd1..e84a913c2da 100644
--- a/code/modules/hydroponics/grown/cocoa_vanilla.dm
+++ b/code/modules/hydroponics/grown/cocoa_vanilla.dm
@@ -16,7 +16,7 @@
icon_dead = "cocoapod-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/cocoapod/vanillapod)
- reagents_add = list("cocoa" = 0.25, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/coco = 0.25, /datum/reagent/consumable/nutriment = 0.1)
/obj/item/reagent_containers/food/snacks/grown/cocoapod
seed = /obj/item/seeds/cocoapod
@@ -27,7 +27,7 @@
bitesize_mod = 2
foodtype = FRUIT
tastes = list("cocoa" = 1)
- distill_reagent = "creme_de_cacao"
+ distill_reagent = /datum/reagent/consumable/ethanol/creme_de_cacao
// Vanilla Pod
/obj/item/seeds/cocoapod/vanillapod
@@ -39,7 +39,7 @@
product = /obj/item/reagent_containers/food/snacks/grown/vanillapod
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list()
- reagents_add = list("vanilla" = 0.25, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/vanilla = 0.25, /datum/reagent/consumable/nutriment = 0.1)
/obj/item/reagent_containers/food/snacks/grown/vanillapod
seed = /obj/item/seeds/cocoapod/vanillapod
@@ -49,4 +49,4 @@
filling_color = "#FFD700"
foodtype = FRUIT
tastes = list("vanilla" = 1)
- distill_reagent = "vanilla" //Takes longer, but you can get even more vanilla from it.
+ distill_reagent = /datum/reagent/consumable/vanilla //Takes longer, but you can get even more vanilla from it.
diff --git a/code/modules/hydroponics/grown/corn.dm b/code/modules/hydroponics/grown/corn.dm
index c259baaf2df..691cbb8344f 100644
--- a/code/modules/hydroponics/grown/corn.dm
+++ b/code/modules/hydroponics/grown/corn.dm
@@ -13,7 +13,7 @@
icon_grow = "corn-grow" // Uses one growth icons set for all the subtypes
icon_dead = "corn-dead" // Same for the dead icon
mutatelist = list(/obj/item/seeds/corn/snapcorn)
- reagents_add = list("cornoil" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/cornoil = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
/obj/item/reagent_containers/food/snacks/grown/corn
seed = /obj/item/seeds/corn
@@ -25,9 +25,9 @@
trash = /obj/item/grown/corncob
bitesize_mod = 2
foodtype = VEGETABLES
- juice_results = list("corn_starch" = 0)
+ juice_results = list(/datum/reagent/consumable/corn_starch = 0)
tastes = list("corn" = 1)
- distill_reagent = "whiskey"
+ distill_reagent = /datum/reagent/consumable/ethanol/whiskey
/obj/item/grown/corncob
name = "corn cob"
diff --git a/code/modules/hydroponics/grown/eggplant.dm b/code/modules/hydroponics/grown/eggplant.dm
index 7c01a68f0a7..f893ad9e57c 100644
--- a/code/modules/hydroponics/grown/eggplant.dm
+++ b/code/modules/hydroponics/grown/eggplant.dm
@@ -13,7 +13,7 @@
icon_dead = "eggplant-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/eggplant/eggy)
- reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
/obj/item/reagent_containers/food/snacks/grown/eggplant
seed = /obj/item/seeds/eggplant
@@ -36,7 +36,7 @@
lifespan = 75
production = 12
mutatelist = list()
- reagents_add = list("nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/nutriment = 0.1)
/obj/item/reagent_containers/food/snacks/grown/shell/eggy
seed = /obj/item/seeds/eggplant/eggy
@@ -47,4 +47,4 @@
filling_color = "#F8F8FF"
bitesize_mod = 2
foodtype = MEAT
- distill_reagent = "eggnog"
+ distill_reagent = /datum/reagent/consumable/ethanol/eggnog
diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm
index 4e1718f853e..cdb27cc4f9a 100644
--- a/code/modules/hydroponics/grown/flowers.dm
+++ b/code/modules/hydroponics/grown/flowers.dm
@@ -15,7 +15,7 @@
icon_grow = "poppy-grow"
icon_dead = "poppy-dead"
mutatelist = list(/obj/item/seeds/poppy/geranium, /obj/item/seeds/poppy/lily)
- reagents_add = list("bicaridine" = 0.2, "nutriment" = 0.05)
+ reagents_add = list(/datum/reagent/medicine/bicaridine = 0.2, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/reagent_containers/food/snacks/grown/poppy
seed = /obj/item/seeds/poppy
@@ -26,7 +26,7 @@
filling_color = "#FF6347"
bitesize_mod = 3
foodtype = VEGETABLES | GROSS
- distill_reagent = "vermouth"
+ distill_reagent = /datum/reagent/consumable/ethanol/vermouth
// Lily
/obj/item/seeds/poppy/lily
@@ -79,7 +79,7 @@
growthstages = 4
genes = list(/datum/plant_gene/trait/plant_type/weed_hardy)
growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi'
- reagents_add = list("nutriment" = 0.04)
+ reagents_add = list(/datum/reagent/consumable/nutriment = 0.04)
/obj/item/reagent_containers/food/snacks/grown/harebell
seed = /obj/item/seeds/harebell
@@ -89,7 +89,7 @@
slot_flags = ITEM_SLOT_HEAD
filling_color = "#E6E6FA"
bitesize_mod = 3
- distill_reagent = "vermouth"
+ distill_reagent = /datum/reagent/consumable/ethanol/vermouth
// Sunflower
/obj/item/seeds/sunflower
@@ -107,7 +107,7 @@
icon_grow = "sunflower-grow"
icon_dead = "sunflower-dead"
mutatelist = list(/obj/item/seeds/sunflower/moonflower, /obj/item/seeds/sunflower/novaflower)
- reagents_add = list("cornoil" = 0.08, "nutriment" = 0.04)
+ reagents_add = list(/datum/reagent/consumable/cornoil = 0.08, /datum/reagent/consumable/nutriment = 0.04)
/obj/item/grown/sunflower // FLOWER POWER!
seed = /obj/item/seeds/sunflower
@@ -141,7 +141,7 @@
icon_dead = "sunflower-dead"
product = /obj/item/reagent_containers/food/snacks/grown/moonflower
mutatelist = list()
- reagents_add = list("moonshine" = 0.2, "vitamin" = 0.02, "nutriment" = 0.02)
+ reagents_add = list(/datum/reagent/consumable/ethanol/moonshine = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.02, /datum/reagent/consumable/nutriment = 0.02)
rarity = 15
/obj/item/reagent_containers/food/snacks/grown/moonflower
@@ -152,7 +152,7 @@
slot_flags = ITEM_SLOT_HEAD
filling_color = "#E6E6FA"
bitesize_mod = 2
- distill_reagent = "absinthe" //It's made from flowers.
+ distill_reagent = /datum/reagent/consumable/ethanol/absinthe //It's made from flowers.
// Novaflower
/obj/item/seeds/sunflower/novaflower
@@ -165,7 +165,7 @@
icon_dead = "sunflower-dead"
product = /obj/item/grown/novaflower
mutatelist = list()
- reagents_add = list("condensedcapsaicin" = 0.25, "capsaicin" = 0.3, "nutriment" = 0)
+ reagents_add = list(/datum/reagent/consumable/condensedcapsaicin = 0.25, /datum/reagent/consumable/capsaicin = 0.3, /datum/reagent/consumable/nutriment = 0)
rarity = 20
/obj/item/grown/novaflower
@@ -183,7 +183,7 @@
throw_speed = 1
throw_range = 3
attack_verb = list("roasted", "scorched", "burned")
- grind_results = list("capsaicin" = 0, "condensedcapsaicin" = 0)
+ grind_results = list(/datum/reagent/consumable/capsaicin = 0, /datum/reagent/consumable/condensedcapsaicin = 0)
/obj/item/grown/novaflower/add_juice()
..()
diff --git a/code/modules/hydroponics/grown/garlic.dm b/code/modules/hydroponics/grown/garlic.dm
index 557a1476424..53d147f22b1 100644
--- a/code/modules/hydroponics/grown/garlic.dm
+++ b/code/modules/hydroponics/grown/garlic.dm
@@ -2,14 +2,14 @@
name = "pack of garlic seeds"
desc = "A packet of extremely pungent seeds."
icon_state = "seed-garlic"
- species = "garlic"
+ species = /datum/reagent/consumable/garlic
plantname = "Garlic Sprouts"
product = /obj/item/reagent_containers/food/snacks/grown/garlic
yield = 6
potency = 25
growthstages = 3
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
- reagents_add = list("garlic" = 0.15, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/garlic = 0.15, /datum/reagent/consumable/nutriment = 0.1)
/obj/item/reagent_containers/food/snacks/grown/garlic
seed = /obj/item/seeds/garlic
diff --git a/code/modules/hydroponics/grown/grass_carpet.dm b/code/modules/hydroponics/grown/grass_carpet.dm
index 1a1c2ac07fa..bbaccbc437d 100644
--- a/code/modules/hydroponics/grown/grass_carpet.dm
+++ b/code/modules/hydroponics/grown/grass_carpet.dm
@@ -16,7 +16,7 @@
icon_dead = "grass-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/grass/carpet)
- reagents_add = list("nutriment" = 0.02, "hydrogen" = 0.05)
+ reagents_add = list(/datum/reagent/consumable/nutriment = 0.02, /datum/reagent/hydrogen = 0.05)
/obj/item/reagent_containers/food/snacks/grown/grass
seed = /obj/item/seeds/grass
@@ -45,7 +45,7 @@
name = "pack of carpet seeds"
desc = "These seeds grow into stylish carpet samples."
icon_state = "seed-carpet"
- species = "carpet"
+ species = /datum/reagent/carpet
plantname = "Carpet"
product = /obj/item/reagent_containers/food/snacks/grown/grass/carpet
mutatelist = list()
diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm
index 6ceb69536dc..5f1fdcdaa92 100644
--- a/code/modules/hydroponics/grown/kudzu.dm
+++ b/code/modules/hydroponics/grown/kudzu.dm
@@ -14,7 +14,7 @@
growthstages = 4
rarity = 30
var/list/mutations = list()
- reagents_add = list("charcoal" = 0.04, "nutriment" = 0.02)
+ reagents_add = list(/datum/reagent/medicine/charcoal = 0.04, /datum/reagent/consumable/nutriment = 0.02)
/obj/item/seeds/kudzu/Copy()
var/obj/item/seeds/kudzu/S = ..()
@@ -58,7 +58,7 @@
/obj/item/seeds/kudzu/on_chem_reaction(datum/reagents/S)
var/list/temp_mut_list = list()
- if(S.has_reagent("sterilizine", 5))
+ if(S.has_reagent(/datum/reagent/space_cleaner/sterilizine, 5))
for(var/datum/spacevine_mutation/SM in mutations)
if(SM.quality == NEGATIVE)
temp_mut_list += SM
@@ -66,7 +66,7 @@
mutations.Remove(pick(temp_mut_list))
temp_mut_list.Cut()
- if(S.has_reagent("welding_fuel", 5))
+ if(S.has_reagent(/datum/reagent/fuel, 5))
for(var/datum/spacevine_mutation/SM in mutations)
if(SM.quality == POSITIVE)
temp_mut_list += SM
@@ -74,7 +74,7 @@
mutations.Remove(pick(temp_mut_list))
temp_mut_list.Cut()
- if(S.has_reagent("phenol", 5))
+ if(S.has_reagent(/datum/reagent/phenol, 5))
for(var/datum/spacevine_mutation/SM in mutations)
if(SM.quality == MINOR_NEGATIVE)
temp_mut_list += SM
@@ -82,16 +82,16 @@
mutations.Remove(pick(temp_mut_list))
temp_mut_list.Cut()
- if(S.has_reagent("blood", 15))
+ if(S.has_reagent(/datum/reagent/blood, 15))
adjust_production(rand(15, -5))
- if(S.has_reagent("amatoxin", 5))
+ if(S.has_reagent(/datum/reagent/toxin/amatoxin, 5))
adjust_production(rand(5, -15))
- if(S.has_reagent("plasma", 5))
+ if(S.has_reagent(/datum/reagent/toxin/plasma, 5))
adjust_potency(rand(5, -15))
- if(S.has_reagent("holywater", 10))
+ if(S.has_reagent(/datum/reagent/water/holywater, 10))
adjust_potency(rand(15, -5))
diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm
index 35dba21dc4d..3bebfb5cbd5 100644
--- a/code/modules/hydroponics/grown/melon.dm
+++ b/code/modules/hydroponics/grown/melon.dm
@@ -12,7 +12,7 @@
icon_dead = "watermelon-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/watermelon/holy)
- reagents_add = list("water" = 0.2, "vitamin" = 0.04, "nutriment" = 0.2)
+ reagents_add = list(/datum/reagent/water = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.2)
/obj/item/seeds/watermelon/suicide_act(mob/user)
user.visible_message("
[user] is swallowing [src]! It looks like [user.p_theyre()] trying to commit suicide!")
@@ -33,7 +33,7 @@
filling_color = "#008000"
bitesize_mod = 3
foodtype = FRUIT
- juice_results = list("watermelonjuice" = 0)
+ juice_results = list(/datum/reagent/consumable/watermelonjuice = 0)
wine_power = 40
// Holymelon
@@ -45,7 +45,7 @@
plantname = "Holy Melon Vines"
product = /obj/item/reagent_containers/food/snacks/grown/holymelon
mutatelist = list()
- reagents_add = list("holywater" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/water/holywater = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
rarity = 20
/obj/item/reagent_containers/food/snacks/grown/holymelon
diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm
index eb790c11c38..e13dbdbbff3 100644
--- a/code/modules/hydroponics/grown/misc.dm
+++ b/code/modules/hydroponics/grown/misc.dm
@@ -45,7 +45,7 @@
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/replicapod)
- reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
/obj/item/reagent_containers/food/snacks/grown/cabbage
seed = /obj/item/seeds/cabbage
@@ -71,7 +71,7 @@
maturation = 3
yield = 4
growthstages = 3
- reagents_add = list("sugar" = 0.25)
+ reagents_add = list(/datum/reagent/consumable/sugar = 0.25)
/obj/item/reagent_containers/food/snacks/grown/sugarcane
seed = /obj/item/seeds/sugarcane
@@ -81,7 +81,7 @@
filling_color = "#FFD700"
bitesize_mod = 2
foodtype = VEGETABLES | SUGAR
- distill_reagent = "rum"
+ distill_reagent = /datum/reagent/consumable/ethanol/rum
// Gatfruit
/obj/item/seeds/gatfruit
@@ -101,7 +101,7 @@
growthstages = 2
rarity = 60 // Obtainable only with xenobio+superluck.
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
- reagents_add = list("sulfur" = 0.1, "carbon" = 0.1, "nitrogen" = 0.07, "potassium" = 0.05)
+ reagents_add = list(/datum/reagent/sulfur = 0.1, /datum/reagent/carbon = 0.1, /datum/reagent/nitrogen = 0.07, /datum/reagent/potassium = 0.05)
/obj/item/reagent_containers/food/snacks/grown/shell/gatfruit
seed = /obj/item/seeds/gatfruit
@@ -123,7 +123,7 @@
plantname = "Cherry Bomb Tree"
product = /obj/item/reagent_containers/food/snacks/grown/cherry_bomb
mutatelist = list()
- reagents_add = list("nutriment" = 0.1, "sugar" = 0.1, "blackpowder" = 0.7)
+ reagents_add = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/consumable/sugar = 0.1, /datum/reagent/blackpowder = 0.7)
rarity = 60 //See above
/obj/item/reagent_containers/food/snacks/grown/cherry_bomb
diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm
index fe2beb896c5..f30e110b912 100644
--- a/code/modules/hydroponics/grown/mushrooms.dm
+++ b/code/modules/hydroponics/grown/mushrooms.dm
@@ -21,7 +21,7 @@
growthstages = 4
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
- reagents_add = list("morphine" = 0.35, "charcoal" = 0.35, "nutriment" = 0)
+ reagents_add = list(/datum/reagent/medicine/morphine = 0.35, /datum/reagent/medicine/charcoal = 0.35, /datum/reagent/consumable/nutriment = 0)
/obj/item/reagent_containers/food/snacks/grown/mushroom/reishi
seed = /obj/item/seeds/reishi
@@ -47,7 +47,7 @@
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
mutatelist = list(/obj/item/seeds/angel)
- reagents_add = list("mushroomhallucinogen" = 0.04, "amatoxin" = 0.35, "nutriment" = 0, "growthserum" = 0.1)
+ reagents_add = list(/datum/reagent/drug/mushroomhallucinogen = 0.04, /datum/reagent/toxin/amatoxin = 0.35, /datum/reagent/consumable/nutriment = 0, /datum/reagent/growthserum = 0.1)
/obj/item/reagent_containers/food/snacks/grown/mushroom/amanita
seed = /obj/item/seeds/amanita
@@ -73,7 +73,7 @@
growthstages = 3
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
- reagents_add = list("mushroomhallucinogen" = 0.04, "amatoxin" = 0.1, "nutriment" = 0, "amanitin" = 0.2)
+ reagents_add = list(/datum/reagent/drug/mushroomhallucinogen = 0.04, /datum/reagent/toxin/amatoxin = 0.1, /datum/reagent/consumable/nutriment = 0, /datum/reagent/toxin/amanitin = 0.2)
rarity = 30
/obj/item/reagent_containers/food/snacks/grown/mushroom/angel
@@ -99,7 +99,7 @@
growthstages = 3
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
- reagents_add = list("mushroomhallucinogen" = 0.25, "nutriment" = 0.02)
+ reagents_add = list(/datum/reagent/drug/mushroomhallucinogen = 0.25, /datum/reagent/consumable/nutriment = 0.02)
/obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap
seed = /obj/item/seeds/liberty
@@ -125,7 +125,7 @@
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
mutatelist = list(/obj/item/seeds/plump/walkingmushroom)
- reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
/obj/item/reagent_containers/food/snacks/grown/mushroom/plumphelmet
seed = /obj/item/seeds/plump
@@ -133,7 +133,7 @@
desc = "
Plumus Hellmus: Plump, soft and s-so inviting~"
icon_state = "plumphelmet"
filling_color = "#9370DB"
- distill_reagent = "manlydorf"
+ distill_reagent = /datum/reagent/consumable/ethanol/manly_dorf
// Walking Mushroom
/obj/item/seeds/plump/walkingmushroom
@@ -149,7 +149,7 @@
yield = 1
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
mutatelist = list()
- reagents_add = list("vitamin" = 0.05, "nutriment" = 0.15)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.05, /datum/reagent/consumable/nutriment = 0.15)
rarity = 30
/obj/item/reagent_containers/food/snacks/grown/mushroom/walkingmushroom
@@ -190,7 +190,7 @@
growthstages = 3
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
- reagents_add = list("nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/nutriment = 0.1)
/obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle
seed = /obj/item/seeds/chanter
@@ -219,7 +219,7 @@
genes = list(/datum/plant_gene/trait/glow, /datum/plant_gene/trait/plant_type/fungal_metabolism)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
mutatelist = list(/obj/item/seeds/glowshroom/glowcap, /obj/item/seeds/glowshroom/shadowshroom)
- reagents_add = list("radium" = 0.1, "phosphorus" = 0.1, "nutriment" = 0.04)
+ reagents_add = list(/datum/reagent/uranium/radium = 0.1, /datum/reagent/phosphorus = 0.1, /datum/reagent/consumable/nutriment = 0.04)
/obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom
seed = /obj/item/seeds/glowshroom
@@ -264,7 +264,7 @@
product = /obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom/glowcap
genes = list(/datum/plant_gene/trait/glow/red, /datum/plant_gene/trait/cell_charge, /datum/plant_gene/trait/plant_type/fungal_metabolism)
mutatelist = list()
- reagents_add = list("teslium" = 0.1, "nutriment" = 0.04)
+ reagents_add = list(/datum/reagent/teslium = 0.1, /datum/reagent/consumable/nutriment = 0.04)
rarity = 30
/obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom/glowcap
@@ -289,7 +289,7 @@
product = /obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom/shadowshroom
genes = list(/datum/plant_gene/trait/glow/shadow, /datum/plant_gene/trait/plant_type/fungal_metabolism)
mutatelist = list()
- reagents_add = list("radium" = 0.2, "nutriment" = 0.04)
+ reagents_add = list(/datum/reagent/uranium/radium = 0.2, /datum/reagent/consumable/nutriment = 0.04)
rarity = 30
/obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom/shadowshroom
@@ -321,7 +321,7 @@
potency = 15
growthstages = 3
rarity = 20
- reagents_add = list("nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/nutriment = 0.1)
resistance_flags = FIRE_PROOF
/obj/item/seeds/lavaland/polypore
diff --git a/code/modules/hydroponics/grown/nettle.dm b/code/modules/hydroponics/grown/nettle.dm
index b64bdce4ccc..7fe9d52fe50 100644
--- a/code/modules/hydroponics/grown/nettle.dm
+++ b/code/modules/hydroponics/grown/nettle.dm
@@ -11,7 +11,7 @@
growthstages = 5
genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/plant_type/weed_hardy)
mutatelist = list(/obj/item/seeds/nettle/death)
- reagents_add = list("sacid" = 0.5)
+ reagents_add = list(/datum/reagent/toxin/acid = 0.5)
/obj/item/seeds/nettle/death
name = "pack of death-nettle seeds"
@@ -25,7 +25,7 @@
yield = 2
genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/plant_type/weed_hardy, /datum/plant_gene/trait/stinging)
mutatelist = list()
- reagents_add = list("facid" = 0.5, "sacid" = 0.5)
+ reagents_add = list(/datum/reagent/toxin/acid/fluacid = 0.5, /datum/reagent/toxin/acid = 0.5)
rarity = 20
/obj/item/reagent_containers/food/snacks/grown/nettle // "snack"
diff --git a/code/modules/hydroponics/grown/onion.dm b/code/modules/hydroponics/grown/onion.dm
index 9cb8d1a63c6..2ebaa6d5e27 100644
--- a/code/modules/hydroponics/grown/onion.dm
+++ b/code/modules/hydroponics/grown/onion.dm
@@ -13,7 +13,7 @@
growthstages = 3
weed_chance = 3
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
- reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
mutatelist = list(/obj/item/seeds/onion/red)
/obj/item/reagent_containers/food/snacks/grown/onion
@@ -36,7 +36,7 @@
plantname = "Red Onion Sprouts"
weed_chance = 1
product = /obj/item/reagent_containers/food/snacks/grown/onion/red
- reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1, "tearjuice" = 0.05)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1, /datum/reagent/consumable/tearjuice = 0.05)
/obj/item/reagent_containers/food/snacks/grown/onion/red
seed = /obj/item/seeds/onion/red
@@ -61,7 +61,7 @@
name = "onion slices"
desc = "Rings, not for wearing."
icon_state = "onionslice"
- list_reagents = list("nutriment" = 5, "vitamin" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
filling_color = "#C0C9A0"
gender = PLURAL
cooked_type = /obj/item/reagent_containers/food/snacks/onionrings
@@ -71,4 +71,4 @@
desc = "They shine like exceptionally low quality amethyst."
icon_state = "onionslice_red"
filling_color = "#C29ACF"
- list_reagents = list("nutriment" = 5, "vitamin" = 2, "tearjuice" = 2.5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/tearjuice = 2.5)
diff --git a/code/modules/hydroponics/grown/pineapple.dm b/code/modules/hydroponics/grown/pineapple.dm
index e52c261217b..40b3a67573f 100644
--- a/code/modules/hydroponics/grown/pineapple.dm
+++ b/code/modules/hydroponics/grown/pineapple.dm
@@ -12,7 +12,7 @@
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/apple)
- reagents_add = list("vitamin" = 0.02, "nutriment" = 0.2, "water" = 0.04)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.02, /datum/reagent/consumable/nutriment = 0.2, /datum/reagent/water = 0.04)
/obj/item/reagent_containers/food/snacks/grown/pineapple
seed = /obj/item/seeds/pineapple
diff --git a/code/modules/hydroponics/grown/potato.dm b/code/modules/hydroponics/grown/potato.dm
index 15378b368e7..20f2a357b60 100644
--- a/code/modules/hydroponics/grown/potato.dm
+++ b/code/modules/hydroponics/grown/potato.dm
@@ -16,7 +16,7 @@
icon_dead = "potato-dead"
genes = list(/datum/plant_gene/trait/battery)
mutatelist = list(/obj/item/seeds/potato/sweet)
- reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
/obj/item/reagent_containers/food/snacks/grown/potato
seed = /obj/item/seeds/potato
@@ -26,8 +26,8 @@
filling_color = "#E9967A"
bitesize = 100
foodtype = VEGETABLES
- juice_results = list("potato" = 0)
- distill_reagent = "vodka"
+ juice_results = list(/datum/reagent/consumable/potato_juice = 0)
+ distill_reagent = /datum/reagent/consumable/ethanol/vodka
/obj/item/reagent_containers/food/snacks/grown/potato/wedges
name = "potato wedges"
@@ -57,11 +57,11 @@
plantname = "Sweet Potato Plants"
product = /obj/item/reagent_containers/food/snacks/grown/potato/sweet
mutatelist = list()
- reagents_add = list("vitamin" = 0.1, "sugar" = 0.1, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.1, /datum/reagent/consumable/sugar = 0.1, /datum/reagent/consumable/nutriment = 0.1)
/obj/item/reagent_containers/food/snacks/grown/potato/sweet
seed = /obj/item/seeds/potato/sweet
name = "sweet potato"
desc = "It's sweet."
icon_state = "sweetpotato"
- distill_reagent = "sbiten"
+ distill_reagent = /datum/reagent/consumable/ethanol/sbiten
diff --git a/code/modules/hydroponics/grown/pumpkin.dm b/code/modules/hydroponics/grown/pumpkin.dm
index 644dedff3d0..e26d1c1d2a1 100644
--- a/code/modules/hydroponics/grown/pumpkin.dm
+++ b/code/modules/hydroponics/grown/pumpkin.dm
@@ -14,7 +14,7 @@
icon_dead = "pumpkin-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/pumpkin/blumpkin)
- reagents_add = list("vitamin" = 0.04, "nutriment" = 0.2)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.2)
/obj/item/reagent_containers/food/snacks/grown/pumpkin
seed = /obj/item/seeds/pumpkin
@@ -24,7 +24,7 @@
filling_color = "#FFA500"
bitesize_mod = 2
foodtype = FRUIT
- juice_results = list("pumpkinjuice" = 0)
+ juice_results = list(/datum/reagent/consumable/pumpkinjuice = 0)
wine_power = 20
/obj/item/reagent_containers/food/snacks/grown/pumpkin/attackby(obj/item/W as obj, mob/user as mob, params)
@@ -45,7 +45,7 @@
plantname = "Blumpkin Vines"
product = /obj/item/reagent_containers/food/snacks/grown/blumpkin
mutatelist = list()
- reagents_add = list("ammonia" = 0.2, "chlorine" = 0.1, "nutriment" = 0.2)
+ reagents_add = list(/datum/reagent/ammonia = 0.2, /datum/reagent/chlorine = 0.1, /datum/reagent/consumable/nutriment = 0.2)
rarity = 20
/obj/item/reagent_containers/food/snacks/grown/blumpkin
@@ -56,5 +56,5 @@
filling_color = "#87CEFA"
bitesize_mod = 2
foodtype = FRUIT
- juice_results = list("blumpkinjuice" = 0)
+ juice_results = list(/datum/reagent/consumable/blumpkinjuice = 0)
wine_power = 50
diff --git a/code/modules/hydroponics/grown/rainbow_bunch.dm b/code/modules/hydroponics/grown/rainbow_bunch.dm
index c50de8d8c50..44e8ced977b 100644
--- a/code/modules/hydroponics/grown/rainbow_bunch.dm
+++ b/code/modules/hydroponics/grown/rainbow_bunch.dm
@@ -16,7 +16,7 @@
growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi'
icon_dead = "rainbowbunch-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
- reagents_add = list("nutriment" = 0.05)
+ reagents_add = list(/datum/reagent/consumable/nutriment = 0.05)
/obj/item/reagent_containers/food/snacks/grown/rainbow_flower
seed = /obj/item/seeds/rainbow_bunch
@@ -38,40 +38,40 @@
if(1)
item_color = "red"
color = "#DA0000"
- list_reagents = list("redcrayonpowder" = 3)
+ list_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/red = 3)
desc += " This one is in a bright red color."
if(2)
item_color = "orange"
color = "#FF9300"
- list_reagents = list("orangecrayonpowder" = 3)
+ list_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/orange = 3)
desc += " This one is in a citrus orange color."
if(3)
item_color = "yellow"
color = "#FFF200"
- list_reagents = list("yellowcrayonpowder" = 3)
+ list_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/yellow = 3)
desc += " This one is in a bright yellow color."
if(4)
item_color = "green"
color = "#A8E61D"
- list_reagents = list("greencrayonpowder" = 3)
+ list_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/green = 3)
desc += " This one is in a grassy green color."
if(5)
item_color = "blue"
color = "#00B7EF"
- list_reagents = list("bluecrayonpowder" = 3)
+ list_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/blue = 3)
desc += " This one is in a soothing blue color."
if(6)
item_color = "purple"
color = "#DA00FF"
- list_reagents = list("purplecrayonpowder" = 3)
+ list_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/purple = 3)
desc += " This one is in a vibrant purple color."
if(7)
item_color = "black"
color = "#1C1C1C"
- list_reagents = list("blackcrayonpowder" = 3)
+ list_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/black = 3)
desc += " This one is in a midnight black color."
if(8)
item_color = "white"
color = "#FFFFFF"
- list_reagents = list("whitecrayonpowder" = 3)
+ list_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/white = 3)
desc += " This one is in a pure white color."
diff --git a/code/modules/hydroponics/grown/replicapod.dm b/code/modules/hydroponics/grown/replicapod.dm
index cfe73c63824..41907e7bea9 100644
--- a/code/modules/hydroponics/grown/replicapod.dm
+++ b/code/modules/hydroponics/grown/replicapod.dm
@@ -31,7 +31,7 @@
/obj/item/seeds/replicapod/on_reagent_change(changetype)
if(changetype == ADD_REAGENT)
- var/datum/reagent/blood/B = reagents.has_reagent("blood")
+ var/datum/reagent/blood/B = reagents.has_reagent(/datum/reagent/blood)
if(B)
if(B.data["mind"] && B.data["cloneable"])
mind = B.data["mind"]
@@ -48,7 +48,7 @@
else
visible_message("
The [src] rejects the sample!")
- if(!reagents.has_reagent("blood"))
+ if(!reagents.has_reagent(/datum/reagent/blood))
mind = null
ckey = null
realName = null
diff --git a/code/modules/hydroponics/grown/root.dm b/code/modules/hydroponics/grown/root.dm
index 090809ca880..871d1535a0d 100644
--- a/code/modules/hydroponics/grown/root.dm
+++ b/code/modules/hydroponics/grown/root.dm
@@ -12,7 +12,7 @@
growthstages = 3
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
mutatelist = list(/obj/item/seeds/carrot/parsnip)
- reagents_add = list("oculine" = 0.25, "vitamin" = 0.04, "nutriment" = 0.05)
+ reagents_add = list(/datum/reagent/medicine/oculine = 0.25, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/reagent_containers/food/snacks/grown/carrot
seed = /obj/item/seeds/carrot
@@ -22,7 +22,7 @@
filling_color = "#FFA500"
bitesize_mod = 2
foodtype = VEGETABLES
- juice_results = list("carrotjuice" = 0)
+ juice_results = list(/datum/reagent/consumable/carrotjuice = 0)
wine_power = 30
/obj/item/reagent_containers/food/snacks/grown/carrot/attackby(obj/item/I, mob/user, params)
@@ -45,7 +45,7 @@
product = /obj/item/reagent_containers/food/snacks/grown/parsnip
icon_dead = "carrot-dead"
mutatelist = list()
- reagents_add = list("vitamin" = 0.05, "nutriment" = 0.05)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.05, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/reagent_containers/food/snacks/grown/parsnip
seed = /obj/item/seeds/carrot/parsnip
@@ -54,7 +54,7 @@
icon_state = "parsnip"
bitesize_mod = 2
foodtype = VEGETABLES
- juice_results = list("parsnipjuice" = 0)
+ juice_results = list(/datum/reagent/consumable/parsnipjuice = 0)
wine_power = 35
@@ -72,7 +72,7 @@
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
icon_dead = "whitebeet-dead"
mutatelist = list(/obj/item/seeds/redbeet)
- reagents_add = list("vitamin" = 0.04, "sugar" = 0.2, "nutriment" = 0.05)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/sugar = 0.2, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/reagent_containers/food/snacks/grown/whitebeet
seed = /obj/item/seeds/whitebeet
@@ -98,7 +98,7 @@
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
icon_dead = "whitebeet-dead"
genes = list(/datum/plant_gene/trait/maxchem)
- reagents_add = list("vitamin" = 0.05, "nutriment" = 0.05)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.05, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/reagent_containers/food/snacks/grown/redbeet
seed = /obj/item/seeds/redbeet
diff --git a/code/modules/hydroponics/grown/tea_coffee.dm b/code/modules/hydroponics/grown/tea_coffee.dm
index fc84617ed8f..3d62ecdf7fc 100644
--- a/code/modules/hydroponics/grown/tea_coffee.dm
+++ b/code/modules/hydroponics/grown/tea_coffee.dm
@@ -21,7 +21,7 @@
desc = "These aromatic tips of the tea plant can be dried to make tea."
icon_state = "tea_aspera_leaves"
filling_color = "#008000"
- grind_results = list("teapowder" = 0)
+ grind_results = list(/datum/reagent/toxin/teapowder = 0)
dry_grind = TRUE
can_distill = FALSE
@@ -33,7 +33,7 @@
plantname = "Tea Astra Plant"
product = /obj/item/reagent_containers/food/snacks/grown/tea/astra
mutatelist = list()
- reagents_add = list("synaptizine" = 0.1, "vitamin" = 0.04, "teapowder" = 0.1)
+ reagents_add = list(/datum/reagent/medicine/synaptizine = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/toxin/teapowder = 0.1)
rarity = 20
/obj/item/reagent_containers/food/snacks/grown/tea/astra
@@ -41,7 +41,7 @@
name = "Tea Astra tips"
icon_state = "tea_astra_leaves"
filling_color = "#4582B4"
- grind_results = list("teapowder" = 0, "salglu_solution" = 0)
+ grind_results = list(/datum/reagent/toxin/teapowder = 0, /datum/reagent/medicine/salglu_solution = 0)
// Coffee
@@ -61,7 +61,7 @@
icon_dead = "coffee-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/coffee/robusta)
- reagents_add = list("vitamin" = 0.04, "coffeepowder" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/toxin/coffeepowder = 0.1)
/obj/item/reagent_containers/food/snacks/grown/coffee
seed = /obj/item/seeds/coffee
@@ -71,8 +71,8 @@
filling_color = "#DC143C"
bitesize_mod = 2
dry_grind = TRUE
- grind_results = list("coffeepowder" = 0)
- distill_reagent = "kahlua"
+ grind_results = list(/datum/reagent/toxin/coffeepowder = 0)
+ distill_reagent = /datum/reagent/consumable/ethanol/kahlua
// Coffee Robusta
/obj/item/seeds/coffee/robusta
@@ -83,7 +83,7 @@
plantname = "Coffee Robusta Bush"
product = /obj/item/reagent_containers/food/snacks/grown/coffee/robusta
mutatelist = list()
- reagents_add = list("ephedrine" = 0.1, "vitamin" = 0.04, "coffeepowder" = 0.1)
+ reagents_add = list(/datum/reagent/medicine/ephedrine = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/toxin/coffeepowder = 0.1)
rarity = 20
/obj/item/reagent_containers/food/snacks/grown/coffee/robusta
@@ -91,4 +91,4 @@
name = "coffee robusta beans"
desc = "Increases robustness by 37 percent!"
icon_state = "coffee_robusta"
- grind_results = list("coffeepowder" = 0, "morphine" = 0)
+ grind_results = list(/datum/reagent/toxin/coffeepowder = 0, /datum/reagent/medicine/morphine = 0)
diff --git a/code/modules/hydroponics/grown/tobacco.dm b/code/modules/hydroponics/grown/tobacco.dm
index 684271fa6b4..1e2d25d8257 100644
--- a/code/modules/hydroponics/grown/tobacco.dm
+++ b/code/modules/hydroponics/grown/tobacco.dm
@@ -13,7 +13,7 @@
growthstages = 3
icon_dead = "tobacco-dead"
mutatelist = list(/obj/item/seeds/tobacco/space)
- reagents_add = list("nicotine" = 0.03, "nutriment" = 0.03)
+ reagents_add = list(/datum/reagent/drug/nicotine = 0.03, /datum/reagent/consumable/nutriment = 0.03)
/obj/item/reagent_containers/food/snacks/grown/tobacco
seed = /obj/item/seeds/tobacco
@@ -21,7 +21,7 @@
desc = "Dry them out to make some smokes."
icon_state = "tobacco_leaves"
filling_color = "#008000"
- distill_reagent = "creme_de_menthe" //Menthol, I guess.
+ distill_reagent = /datum/reagent/consumable/ethanol/creme_de_menthe //Menthol, I guess.
// Space Tobacco
/obj/item/seeds/tobacco/space
@@ -32,7 +32,7 @@
plantname = "Space Tobacco Plant"
product = /obj/item/reagent_containers/food/snacks/grown/tobacco/space
mutatelist = list()
- reagents_add = list("salbutamol" = 0.05, "nicotine" = 0.08, "nutriment" = 0.03)
+ reagents_add = list(/datum/reagent/medicine/salbutamol = 0.05, /datum/reagent/drug/nicotine = 0.08, /datum/reagent/consumable/nutriment = 0.03)
rarity = 20
/obj/item/reagent_containers/food/snacks/grown/tobacco/space
diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm
index ffd0ba70897..f4ca793be99 100644
--- a/code/modules/hydroponics/grown/tomato.dm
+++ b/code/modules/hydroponics/grown/tomato.dm
@@ -12,7 +12,7 @@
icon_dead = "tomato-dead"
genes = list(/datum/plant_gene/trait/squash, /datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/tomato/blue, /obj/item/seeds/tomato/blood, /obj/item/seeds/tomato/killer)
- reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
/obj/item/reagent_containers/food/snacks/grown/tomato
seed = /obj/item/seeds/tomato
@@ -23,9 +23,9 @@
filling_color = "#FF6347"
bitesize_mod = 2
foodtype = FRUIT
- grind_results = list("ketchup" = 0)
- juice_results = list("tomatojuice" = 0)
- distill_reagent = "enzyme"
+ grind_results = list(/datum/reagent/consumable/ketchup = 0)
+ juice_results = list(/datum/reagent/consumable/tomatojuice = 0)
+ distill_reagent = /datum/reagent/consumable/enzyme
// Blood Tomato
/obj/item/seeds/tomato/blood
@@ -36,7 +36,7 @@
plantname = "Blood-Tomato Plants"
product = /obj/item/reagent_containers/food/snacks/grown/tomato/blood
mutatelist = list()
- reagents_add = list("blood" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/blood = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
rarity = 20
/obj/item/reagent_containers/food/snacks/grown/tomato/blood
@@ -47,8 +47,8 @@
splat_type = /obj/effect/gibspawner/generic
filling_color = "#FF0000"
foodtype = FRUIT | GROSS
- grind_results = list("ketchup" = 0, "blood" = 0)
- distill_reagent = "bloodymary"
+ grind_results = list(/datum/reagent/consumable/ketchup = 0, /datum/reagent/blood = 0)
+ distill_reagent = /datum/reagent/consumable/ethanol/bloody_mary
// Blue Tomato
/obj/item/seeds/tomato/blue
@@ -62,7 +62,7 @@
icon_grow = "bluetomato-grow"
mutatelist = list(/obj/item/seeds/tomato/blue/bluespace)
genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/repeated_harvest)
- reagents_add = list("lube" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/lube = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
rarity = 20
/obj/item/reagent_containers/food/snacks/grown/tomato/blue
@@ -72,7 +72,7 @@
icon_state = "bluetomato"
splat_type = /obj/effect/decal/cleanable/oil
filling_color = "#0000FF"
- distill_reagent = "laughter"
+ distill_reagent = /datum/reagent/consumable/laughter
// Bluespace Tomato
/obj/item/seeds/tomato/blue/bluespace
@@ -85,7 +85,7 @@
yield = 2
mutatelist = list()
genes = list(/datum/plant_gene/trait/squash, /datum/plant_gene/trait/slip, /datum/plant_gene/trait/teleport, /datum/plant_gene/trait/repeated_harvest)
- reagents_add = list("lube" = 0.2, "bluespace" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1)
+ reagents_add = list(/datum/reagent/lube = 0.2, /datum/reagent/bluespace = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
rarity = 50
/obj/item/reagent_containers/food/snacks/grown/tomato/blue/bluespace
@@ -120,7 +120,7 @@
icon_state = "killertomato"
var/awakening = 0
filling_color = "#FF0000"
- distill_reagent = "demonsblood"
+ distill_reagent = /datum/reagent/consumable/ethanol/demonsblood
/obj/item/reagent_containers/food/snacks/grown/tomato/killer/attack(mob/M, mob/user, def_zone)
if(awakening)
diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm
index 1bb11459562..cd27d88ee1c 100644
--- a/code/modules/hydroponics/hydroitemdefines.dm
+++ b/code/modules/hydroponics/hydroitemdefines.dm
@@ -24,7 +24,7 @@
lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi'
volume = 100
- list_reagents = list("weedkiller" = 100)
+ list_reagents = list(/datum/reagent/toxin/plantbgone/weedkiller = 100)
/obj/item/reagent_containers/spray/weedspray/suicide_act(mob/user)
user.visible_message("
[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!")
@@ -39,7 +39,7 @@
lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi'
volume = 100
- list_reagents = list("pestkiller" = 100)
+ list_reagents = list(/datum/reagent/toxin/pestkiller = 100)
/obj/item/reagent_containers/spray/pestspray/suicide_act(mob/user)
user.visible_message("
[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!")
@@ -160,17 +160,17 @@
/obj/item/reagent_containers/glass/bottle/nutrient/ez
name = "bottle of E-Z-Nutrient"
desc = "Contains a fertilizer that causes mild mutations with each harvest."
- list_reagents = list("eznutriment" = 50)
+ list_reagents = list(/datum/reagent/plantnutriment/eznutriment = 50)
/obj/item/reagent_containers/glass/bottle/nutrient/l4z
name = "bottle of Left 4 Zed"
desc = "Contains a fertilizer that limits plant yields to no more than one and causes significant mutations in plants."
- list_reagents = list("left4zednutriment" = 50)
+ list_reagents = list(/datum/reagent/plantnutriment/left4zednutriment = 50)
/obj/item/reagent_containers/glass/bottle/nutrient/rh
name = "bottle of Robust Harvest"
desc = "Contains a fertilizer that increases the yield of a plant by 30% while causing no mutations."
- list_reagents = list("robustharvestnutriment" = 50)
+ list_reagents = list(/datum/reagent/plantnutriment/robustharvestnutriment = 50)
/obj/item/reagent_containers/glass/bottle/nutrient/empty
name = "bottle"
@@ -183,9 +183,9 @@
/obj/item/reagent_containers/glass/bottle/killer/weedkiller
name = "bottle of weed killer"
desc = "Contains a herbicide."
- list_reagents = list("weedkiller" = 50)
+ list_reagents = list(/datum/reagent/toxin/plantbgone/weedkiller = 50)
/obj/item/reagent_containers/glass/bottle/killer/pestkiller
name = "bottle of pest spray"
desc = "Contains a pesticide."
- list_reagents = list("pestkiller" = 50)
+ list_reagents = list(/datum/reagent/toxin/pestkiller = 50)
diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm
index 5c032413b90..6072468bf90 100644
--- a/code/modules/hydroponics/hydroponics.dm
+++ b/code/modules/hydroponics/hydroponics.dm
@@ -445,7 +445,7 @@
myseed.on_chem_reaction(S) //In case seeds have some special interactions with special chems, currently only used by vines
// Requires 5 mutagen to possibly change species.// Poor man's mutagen.
- if(S.has_reagent("mutagen", 5) || S.has_reagent("radium", 10) || S.has_reagent("uranium", 10))
+ if(S.has_reagent(/datum/reagent/toxin/mutagen, 5) || S.has_reagent(/datum/reagent/uranium/radium, 10) || S.has_reagent(/datum/reagent/uranium, 10))
switch(rand(100))
if(91 to 100)
adjustHealth(-10)
@@ -466,202 +466,202 @@
to_chat(user, "
Nothing happens...")
// 2 or 1 units is enough to change the yield and other stats.// Can change the yield and other stats, but requires more than mutagen
- else if(S.has_reagent("mutagen", 2) || S.has_reagent("radium", 5) || S.has_reagent("uranium", 5))
+ else if(S.has_reagent(/datum/reagent/toxin/mutagen, 2) || S.has_reagent(/datum/reagent/uranium/radium, 5) || S.has_reagent(/datum/reagent/uranium, 5))
hardmutate()
- else if(S.has_reagent("mutagen", 1) || S.has_reagent("radium", 2) || S.has_reagent("uranium", 2))
+ else if(S.has_reagent(/datum/reagent/toxin/mutagen, 1) || S.has_reagent(/datum/reagent/uranium/radium, 2) || S.has_reagent(/datum/reagent/uranium, 2))
mutate()
// After handling the mutating, we now handle the damage from adding crude radioactives...
- if(S.has_reagent("uranium", 1))
- adjustHealth(-round(S.get_reagent_amount("uranium") * 1))
- adjustToxic(round(S.get_reagent_amount("uranium") * 2))
- if(S.has_reagent("radium", 1))
- adjustHealth(-round(S.get_reagent_amount("radium") * 1))
- adjustToxic(round(S.get_reagent_amount("radium") * 3)) // Radium is harsher (OOC: also easier to produce)
+ if(S.has_reagent(/datum/reagent/uranium, 1))
+ adjustHealth(-round(S.get_reagent_amount(/datum/reagent/uranium) * 1))
+ adjustToxic(round(S.get_reagent_amount(/datum/reagent/uranium) * 2))
+ if(S.has_reagent(/datum/reagent/uranium/radium, 1))
+ adjustHealth(-round(S.get_reagent_amount(/datum/reagent/uranium/radium) * 1))
+ adjustToxic(round(S.get_reagent_amount(/datum/reagent/uranium/radium) * 3)) // Radium is harsher (OOC: also easier to produce)
// Nutriments
- if(S.has_reagent("eznutriment", 1))
+ if(S.has_reagent(/datum/reagent/plantnutriment/eznutriment, 1))
yieldmod = 1
mutmod = 1
- adjustNutri(round(S.get_reagent_amount("eznutriment") * 1))
+ adjustNutri(round(S.get_reagent_amount(/datum/reagent/plantnutriment/eznutriment) * 1))
- if(S.has_reagent("left4zednutriment", 1))
+ if(S.has_reagent(/datum/reagent/plantnutriment/left4zednutriment, 1))
yieldmod = 0
mutmod = 2
- adjustNutri(round(S.get_reagent_amount("left4zednutriment") * 1))
+ adjustNutri(round(S.get_reagent_amount(/datum/reagent/plantnutriment/left4zednutriment) * 1))
- if(S.has_reagent("robustharvestnutriment", 1))
+ if(S.has_reagent(/datum/reagent/plantnutriment/robustharvestnutriment, 1))
yieldmod = 1.3
mutmod = 0
- adjustNutri(round(S.get_reagent_amount("robustharvestnutriment") *1 ))
+ adjustNutri(round(S.get_reagent_amount(/datum/reagent/plantnutriment/robustharvestnutriment) *1 ))
// Ambrosia Gaia produces earthsblood.
- if(S.has_reagent("earthsblood"))
- self_sufficiency_progress += S.get_reagent_amount("earthsblood")
+ if(S.has_reagent(/datum/reagent/medicine/earthsblood))
+ self_sufficiency_progress += S.get_reagent_amount(/datum/reagent/medicine/earthsblood)
if(self_sufficiency_progress >= self_sufficiency_req)
become_self_sufficient()
else if(!self_sustaining)
to_chat(user, "
[src] warms as it might on a spring day under a genuine Sun.")
// Antitoxin binds shit pretty well. So the tox goes significantly down
- if(S.has_reagent("charcoal", 1))
- adjustToxic(-round(S.get_reagent_amount("charcoal") * 2))
+ if(S.has_reagent(/datum/reagent/medicine/charcoal, 1))
+ adjustToxic(-round(S.get_reagent_amount(/datum/reagent/medicine/charcoal) * 2))
// NIGGA, YOU JUST WENT ON FULL RETARD.
- if(S.has_reagent("toxin", 1))
- adjustToxic(round(S.get_reagent_amount("toxin") * 2))
+ if(S.has_reagent(/datum/reagent/toxin, 1))
+ adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin) * 2))
// Milk is good for humans, but bad for plants. The sugars canot be used by plants, and the milk fat fucks up growth. Not shrooms though. I can't deal with this now...
- if(S.has_reagent("milk", 1))
- adjustNutri(round(S.get_reagent_amount("milk") * 0.1))
- adjustWater(round(S.get_reagent_amount("milk") * 0.9))
+ if(S.has_reagent(/datum/reagent/consumable/milk, 1))
+ adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/milk) * 0.1))
+ adjustWater(round(S.get_reagent_amount(/datum/reagent/consumable/milk) * 0.9))
// Beer is a chemical composition of alcohol and various other things. It's a shitty nutrient but hey, it's still one. Also alcohol is bad, mmmkay?
- if(S.has_reagent("beer", 1))
- adjustHealth(-round(S.get_reagent_amount("beer") * 0.05))
- adjustNutri(round(S.get_reagent_amount("beer") * 0.25))
- adjustWater(round(S.get_reagent_amount("beer") * 0.7))
+ if(S.has_reagent(/datum/reagent/consumable/ethanol/beer, 1))
+ adjustHealth(-round(S.get_reagent_amount(/datum/reagent/consumable/ethanol/beer) * 0.05))
+ adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/ethanol/beer) * 0.25))
+ adjustWater(round(S.get_reagent_amount(/datum/reagent/consumable/ethanol/beer) * 0.7))
// You're an idiot for thinking that one of the most corrosive and deadly gasses would be beneficial
- if(S.has_reagent("fluorine", 1))
- adjustHealth(-round(S.get_reagent_amount("fluorine") * 2))
- adjustToxic(round(S.get_reagent_amount("fluorine") * 2.5))
- adjustWater(-round(S.get_reagent_amount("fluorine") * 0.5))
+ if(S.has_reagent(/datum/reagent/fluorine, 1))
+ adjustHealth(-round(S.get_reagent_amount(/datum/reagent/fluorine) * 2))
+ adjustToxic(round(S.get_reagent_amount(/datum/reagent/fluorine) * 2.5))
+ adjustWater(-round(S.get_reagent_amount(/datum/reagent/fluorine) * 0.5))
adjustWeeds(-rand(1,4))
// You're an idiot for thinking that one of the most corrosive and deadly gasses would be beneficial
- if(S.has_reagent("chlorine", 1))
- adjustHealth(-round(S.get_reagent_amount("chlorine") * 1))
- adjustToxic(round(S.get_reagent_amount("chlorine") * 1.5))
- adjustWater(-round(S.get_reagent_amount("chlorine") * 0.5))
+ if(S.has_reagent(/datum/reagent/chlorine, 1))
+ adjustHealth(-round(S.get_reagent_amount(/datum/reagent/chlorine) * 1))
+ adjustToxic(round(S.get_reagent_amount(/datum/reagent/chlorine) * 1.5))
+ adjustWater(-round(S.get_reagent_amount(/datum/reagent/chlorine) * 0.5))
adjustWeeds(-rand(1,3))
// White Phosphorous + water -> phosphoric acid. That's not a good thing really.
// Phosphoric salts are beneficial though. And even if the plant suffers, in the long run the tray gets some nutrients. The benefit isn't worth that much.
- if(S.has_reagent("phosphorus", 1))
- adjustHealth(-round(S.get_reagent_amount("phosphorus") * 0.75))
- adjustNutri(round(S.get_reagent_amount("phosphorus") * 0.1))
- adjustWater(-round(S.get_reagent_amount("phosphorus") * 0.5))
+ if(S.has_reagent(/datum/reagent/phosphorus, 1))
+ adjustHealth(-round(S.get_reagent_amount(/datum/reagent/phosphorus) * 0.75))
+ adjustNutri(round(S.get_reagent_amount(/datum/reagent/phosphorus) * 0.1))
+ adjustWater(-round(S.get_reagent_amount(/datum/reagent/phosphorus) * 0.5))
adjustWeeds(-rand(1,2))
// Plants should not have sugar, they can't use it and it prevents them getting water/ nutients, it is good for mold though...
- if(S.has_reagent("sugar", 1))
+ if(S.has_reagent(/datum/reagent/consumable/sugar, 1))
adjustWeeds(rand(1,2))
adjustPests(rand(1,2))
- adjustNutri(round(S.get_reagent_amount("sugar") * 0.1))
+ adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/sugar) * 0.1))
// It is water!
- if(S.has_reagent("water", 1))
- adjustWater(round(S.get_reagent_amount("water") * 1))
+ if(S.has_reagent(/datum/reagent/water, 1))
+ adjustWater(round(S.get_reagent_amount(/datum/reagent/water) * 1))
// Holy water. Mostly the same as water, it also heals the plant a little with the power of the spirits~
- if(S.has_reagent("holywater", 1))
- adjustWater(round(S.get_reagent_amount("holywater") * 1))
- adjustHealth(round(S.get_reagent_amount("holywater") * 0.1))
+ if(S.has_reagent(/datum/reagent/water/holywater, 1))
+ adjustWater(round(S.get_reagent_amount(/datum/reagent/water/holywater) * 1))
+ adjustHealth(round(S.get_reagent_amount(/datum/reagent/water/holywater) * 0.1))
// A variety of nutrients are dissolved in club soda, without sugar.
// These nutrients include carbon, oxygen, hydrogen, phosphorous, potassium, sulfur and sodium, all of which are needed for healthy plant growth.
- if(S.has_reagent("sodawater", 1))
- adjustWater(round(S.get_reagent_amount("sodawater") * 1))
- adjustHealth(round(S.get_reagent_amount("sodawater") * 0.1))
- adjustNutri(round(S.get_reagent_amount("sodawater") * 0.1))
+ if(S.has_reagent(/datum/reagent/consumable/sodawater, 1))
+ adjustWater(round(S.get_reagent_amount(/datum/reagent/consumable/sodawater) * 1))
+ adjustHealth(round(S.get_reagent_amount(/datum/reagent/consumable/sodawater) * 0.1))
+ adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/sodawater) * 0.1))
// Man, you guys are retards
- if(S.has_reagent("sacid", 1))
- adjustHealth(-round(S.get_reagent_amount("sacid") * 1))
- adjustToxic(round(S.get_reagent_amount("sacid") * 1.5))
+ if(S.has_reagent(/datum/reagent/toxin/acid, 1))
+ adjustHealth(-round(S.get_reagent_amount(/datum/reagent/toxin/acid) * 1))
+ adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin/acid) * 1.5))
adjustWeeds(-rand(1,2))
// SERIOUSLY
- if(S.has_reagent("facid", 1))
- adjustHealth(-round(S.get_reagent_amount("facid") * 2))
- adjustToxic(round(S.get_reagent_amount("facid") * 3))
+ if(S.has_reagent(/datum/reagent/toxin/acid/fluacid, 1))
+ adjustHealth(-round(S.get_reagent_amount(/datum/reagent/toxin/acid/fluacid) * 2))
+ adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin/acid/fluacid) * 3))
adjustWeeds(-rand(1,4))
// Plant-B-Gone is just as bad
- if(S.has_reagent("plantbgone", 1))
- adjustHealth(-round(S.get_reagent_amount("plantbgone") * 5))
- adjustToxic(round(S.get_reagent_amount("plantbgone") * 6))
+ if(S.has_reagent(/datum/reagent/toxin/plantbgone, 1))
+ adjustHealth(-round(S.get_reagent_amount(/datum/reagent/toxin/plantbgone) * 5))
+ adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin/plantbgone) * 6))
adjustWeeds(-rand(4,8))
// why, just why
- if(S.has_reagent("napalm", 1))
+ if(S.has_reagent(/datum/reagent/napalm, 1))
if(!(myseed.resistance_flags & FIRE_PROOF))
- adjustHealth(-round(S.get_reagent_amount("napalm") * 6))
- adjustToxic(round(S.get_reagent_amount("napalm") * 7))
+ adjustHealth(-round(S.get_reagent_amount(/datum/reagent/napalm) * 6))
+ adjustToxic(round(S.get_reagent_amount(/datum/reagent/napalm) * 7))
adjustWeeds(-rand(5,9))
//Weed Spray
- if(S.has_reagent("weedkiller", 1))
- adjustToxic(round(S.get_reagent_amount("weedkiller") * 0.5))
+ if(S.has_reagent(/datum/reagent/toxin/plantbgone/weedkiller, 1))
+ adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin/plantbgone/weedkiller) * 0.5))
//old toxicity was 4, each spray is default 10 (minimal of 5) so 5 and 2.5 are the new ammounts
adjustWeeds(-rand(1,2))
//Pest Spray
- if(S.has_reagent("pestkiller", 1))
- adjustToxic(round(S.get_reagent_amount("pestkiller") * 0.5))
+ if(S.has_reagent(/datum/reagent/toxin/pestkiller, 1))
+ adjustToxic(round(S.get_reagent_amount(/datum/reagent/toxin/pestkiller) * 0.5))
adjustPests(-rand(1,2))
// Healing
- if(S.has_reagent("cryoxadone", 1))
- adjustHealth(round(S.get_reagent_amount("cryoxadone") * 3))
- adjustToxic(-round(S.get_reagent_amount("cryoxadone") * 3))
+ if(S.has_reagent(/datum/reagent/medicine/cryoxadone, 1))
+ adjustHealth(round(S.get_reagent_amount(/datum/reagent/medicine/cryoxadone) * 3))
+ adjustToxic(-round(S.get_reagent_amount(/datum/reagent/medicine/cryoxadone) * 3))
// Ammonia is bad ass.
- if(S.has_reagent("ammonia", 1))
- adjustHealth(round(S.get_reagent_amount("ammonia") * 0.5))
- adjustNutri(round(S.get_reagent_amount("ammonia") * 1))
+ if(S.has_reagent(/datum/reagent/ammonia, 1))
+ adjustHealth(round(S.get_reagent_amount(/datum/reagent/ammonia) * 0.5))
+ adjustNutri(round(S.get_reagent_amount(/datum/reagent/ammonia) * 1))
if(myseed)
- myseed.adjust_yield(round(S.get_reagent_amount("ammonia") * 0.01))
+ myseed.adjust_yield(round(S.get_reagent_amount(/datum/reagent/ammonia) * 0.01))
// Saltpetre is used for gardening IRL, to simplify highly, it speeds up growth and strengthens plants
- if(S.has_reagent("saltpetre", 1))
- var/salt = S.get_reagent_amount("saltpetre")
+ if(S.has_reagent(/datum/reagent/saltpetre, 1))
+ var/salt = S.get_reagent_amount(/datum/reagent/saltpetre)
adjustHealth(round(salt * 0.25))
if (myseed)
myseed.adjust_production(-round(salt/100)-prob(salt%100))
myseed.adjust_potency(round(salt*0.5))
// Ash is also used IRL in gardening, as a fertilizer enhancer and weed killer
- if(S.has_reagent("ash", 1))
- adjustHealth(round(S.get_reagent_amount("ash") * 0.25))
- adjustNutri(round(S.get_reagent_amount("ash") * 0.5))
+ if(S.has_reagent(/datum/reagent/ash, 1))
+ adjustHealth(round(S.get_reagent_amount(/datum/reagent/ash) * 0.25))
+ adjustNutri(round(S.get_reagent_amount(/datum/reagent/ash) * 0.5))
adjustWeeds(-1)
// This is more bad ass, and pests get hurt by the corrosive nature of it, not the plant.
- if(S.has_reagent("diethylamine", 1))
- adjustHealth(round(S.get_reagent_amount("diethylamine") * 1))
- adjustNutri(round(S.get_reagent_amount("diethylamine") * 2))
+ if(S.has_reagent(/datum/reagent/diethylamine, 1))
+ adjustHealth(round(S.get_reagent_amount(/datum/reagent/diethylamine) * 1))
+ adjustNutri(round(S.get_reagent_amount(/datum/reagent/diethylamine) * 2))
if(myseed)
- myseed.adjust_yield(round(S.get_reagent_amount("diethylamine") * 0.02))
+ myseed.adjust_yield(round(S.get_reagent_amount(/datum/reagent/diethylamine) * 0.02))
adjustPests(-rand(1,2))
// Compost, effectively
- if(S.has_reagent("nutriment", 1))
- adjustHealth(round(S.get_reagent_amount("nutriment") * 0.5))
- adjustNutri(round(S.get_reagent_amount("nutriment") * 1))
+ if(S.has_reagent(/datum/reagent/consumable/nutriment, 1))
+ adjustHealth(round(S.get_reagent_amount(/datum/reagent/consumable/nutriment) * 0.5))
+ adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/nutriment) * 1))
// Compost for EVERYTHING
- if(S.has_reagent("virusfood", 1))
- adjustNutri(round(S.get_reagent_amount("virusfood") * 0.5))
- adjustHealth(-round(S.get_reagent_amount("virusfood") * 0.5))
+ if(S.has_reagent(/datum/reagent/consumable/virus_food, 1))
+ adjustNutri(round(S.get_reagent_amount(/datum/reagent/consumable/virus_food) * 0.5))
+ adjustHealth(-round(S.get_reagent_amount(/datum/reagent/consumable/virus_food) * 0.5))
// FEED ME
- if(S.has_reagent("blood", 1))
- adjustNutri(round(S.get_reagent_amount("blood") * 1))
+ if(S.has_reagent(/datum/reagent/blood, 1))
+ adjustNutri(round(S.get_reagent_amount(/datum/reagent/blood) * 1))
adjustPests(rand(2,4))
// FEED ME SEYMOUR
- if(S.has_reagent("strange_reagent", 1))
+ if(S.has_reagent(/datum/reagent/medicine/strange_reagent, 1))
spawnplant()
// The best stuff there is. For testing/debugging.
- if(S.has_reagent("adminordrazine", 1))
- adjustWater(round(S.get_reagent_amount("adminordrazine") * 1))
- adjustHealth(round(S.get_reagent_amount("adminordrazine") * 1))
- adjustNutri(round(S.get_reagent_amount("adminordrazine") * 1))
+ if(S.has_reagent(/datum/reagent/medicine/adminordrazine, 1))
+ adjustWater(round(S.get_reagent_amount(/datum/reagent/medicine/adminordrazine) * 1))
+ adjustHealth(round(S.get_reagent_amount(/datum/reagent/medicine/adminordrazine) * 1))
+ adjustNutri(round(S.get_reagent_amount(/datum/reagent/medicine/adminordrazine) * 1))
adjustPests(-rand(1,5))
adjustWeeds(-rand(1,5))
- if(S.has_reagent("adminordrazine", 5))
+ if(S.has_reagent(/datum/reagent/medicine/adminordrazine, 5))
switch(rand(100))
if(66 to 100)
mutatespecie()
diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm
index 53282ed06d3..4bb9b6995f4 100644
--- a/code/modules/hydroponics/plant_genes.dm
+++ b/code/modules/hydroponics/plant_genes.dm
@@ -97,7 +97,7 @@
// Reagent genes store reagent ID and reagent ratio. Amount of reagent in the plant = 1 + (potency * rate)
/datum/plant_gene/reagent
name = "Nutriment"
- var/reagent_id = "nutriment"
+ var/reagent_id = /datum/reagent/consumable/nutriment
var/rate = 0.04
/datum/plant_gene/reagent/get_name()
@@ -108,7 +108,7 @@
name = "UNKNOWN"
var/datum/reagent/R = GLOB.chemical_reagents_list[reag_id]
- if(R && R.id == reagent_id)
+ if(R && R.type == reagent_id)
name = R.name
/datum/plant_gene/reagent/New(reag_id = null, reag_rate = 0)
@@ -179,7 +179,7 @@
// For code, see grown.dm
name = "Liquid Contents"
examine_line = "
It has a lot of liquid contents inside."
-
+
/datum/plant_gene/trait/squash/on_slip(obj/item/reagent_containers/food/snacks/grown/G, mob/living/carbon/C)
// Squash the plant on slip.
G.squash(C)
@@ -198,7 +198,7 @@
var/obj/item/seeds/seed = G.seed
var/stun_len = seed.potency * rate
- if(!istype(G, /obj/item/grown/bananapeel) && (!G.reagents || !G.reagents.has_reagent("lube")))
+ if(!istype(G, /obj/item/grown/bananapeel) && (!G.reagents || !G.reagents.has_reagent(/datum/reagent/lube)))
stun_len /= 3
G.AddComponent(/datum/component/slippery, min(stun_len,140), NONE, CALLBACK(src, .proc/handle_slip, G))
@@ -347,7 +347,7 @@
pocell.name = "[G.name] battery"
pocell.desc = "A rechargeable plant-based power cell. This one has a rating of [DisplayEnergy(pocell.maxcharge)], and you should not swallow it."
- if(G.reagents.has_reagent("plasma", 2))
+ if(G.reagents.has_reagent(/datum/reagent/toxin/plasma, 2))
pocell.rigged = TRUE
qdel(G)
@@ -360,7 +360,7 @@
/datum/plant_gene/trait/stinging/on_slip(obj/item/reagent_containers/food/snacks/grown/G, atom/target)
on_throw_impact(G, target)
-
+
/datum/plant_gene/trait/stinging/on_throw_impact(obj/item/reagent_containers/food/snacks/grown/G, atom/target)
if(isliving(target) && G.reagents && G.reagents.total_volume)
var/mob/living/L = target
diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm
index 28468ea132a..459aa821664 100644
--- a/code/modules/hydroponics/seeds.dm
+++ b/code/modules/hydroponics/seeds.dm
@@ -164,9 +164,9 @@
var/amount = 1 + round(potency * reagents_add[rid], 1)
var/list/data = null
- if(rid == "blood") // Hack to make blood in plants always O-
+ if(rid == /datum/reagent/blood) // Hack to make blood in plants always O-
data = list("blood_type" = "O-")
- if(rid == "nutriment" || rid == "vitamin")
+ if(rid == /datum/reagent/consumable/nutriment || rid == /datum/reagent/consumable/nutriment/vitamin)
// apple tastes of apple.
if(istype(T, /obj/item/reagent_containers/food/snacks/grown))
var/obj/item/reagent_containers/food/snacks/grown/grown_edible = T
diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm
index 8ae63a8a768..13e04d6cc84 100644
--- a/code/modules/library/lib_machines.dm
+++ b/code/modules/library/lib_machines.dm
@@ -323,14 +323,13 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums
return null
/obj/machinery/computer/libraryconsole/bookmanagement/proc/print_forbidden_lore(mob/user)
- var/spook = pick("blood", "brass")
- var/turf/T = get_turf(src)
- if(spook == "blood")
- new /obj/item/melee/cultblade/dagger(T)
+ if (prob(50))
+ new /obj/item/melee/cultblade/dagger(get_turf(src))
+ to_chat(user, "
Your sanity barely endures the seconds spent in the vault's browsing window. The only thing to remind you of this when you stop browsing is a sinister dagger sitting on the desk. You don't even remember where it came from...")
else
- new /obj/item/clockwork/slab(T)
+ new /obj/item/clockwork/slab(get_turf(src))
+ to_chat(user, "
Your sanity barely endures the seconds spent in the vault's browsing window. The only thing to remind you of this when you stop browsing is a strange metal tablet sitting on the desk. You don't even remember where it came from...")
- to_chat(user, "
Your sanity barely endures the seconds spent in the vault's browsing window. The only thing to remind you of this when you stop browsing is a [spook == "blood" ? "sinister dagger" : "strange metal tablet"] sitting on the desk. You don't even remember where it came from...")
user.visible_message("[user] stares at the blank screen for a few moments, [user.p_their()] expression frozen in fear. When [user.p_they()] finally awaken[user.p_s()] from it, [user.p_they()] look[user.p_s()] a lot older.", 2)
/obj/machinery/computer/libraryconsole/bookmanagement/attackby(obj/item/W, mob/user, params)
diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm
index 797009cc1b8..7b8823bc665 100644
--- a/code/modules/mining/lavaland/ash_flora.dm
+++ b/code/modules/mining/lavaland/ash_flora.dm
@@ -148,7 +148,7 @@
desc = "Some shavings from a tall mushroom. With enough, might serve as a bowl."
icon = 'icons/obj/lavaland/ash_flora.dmi'
icon_state = "mushroom_shavings"
- list_reagents = list("sugar" = 3, "ethanol" = 2, "stabilizing_agent" = 3, "minttoxin" = 2)
+ list_reagents = list(/datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/ethanol = 2, /datum/reagent/stabilizing_agent = 3, /datum/reagent/toxin/minttoxin = 2)
w_class = WEIGHT_CLASS_TINY
resistance_flags = FLAMMABLE
max_integrity = 100
@@ -166,7 +166,7 @@
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf
name = "mushroom leaf"
desc = "A leaf, from a mushroom."
- list_reagents = list("nutriment" = 3, "vitfro" = 2, "nicotine" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/vitfro = 2, /datum/reagent/drug/nicotine = 2)
icon_state = "mushroom_leaf"
seed = /obj/item/seeds/lavaland/porcini
wine_power = 40
@@ -174,7 +174,7 @@
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap
name = "mushroom cap"
desc = "The cap of a large mushroom."
- list_reagents = list("mindbreaker" = 2, "entpoly" = 4, "mushroomhallucinogen" = 2)
+ list_reagents = list(/datum/reagent/toxin/mindbreaker = 2, /datum/reagent/consumable/entpoly = 4, /datum/reagent/drug/mushroomhallucinogen = 2)
icon_state = "mushroom_cap"
seed = /obj/item/seeds/lavaland/inocybe
wine_power = 70
@@ -182,14 +182,14 @@
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem
name = "mushroom stem"
desc = "A long mushroom stem. It's slightly glowing."
- list_reagents = list("tinlux" = 2, "vitamin" = 1, "space_drugs" = 1)
+ list_reagents = list(/datum/reagent/consumable/tinlux = 2, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/drug/space_drugs = 1)
icon_state = "mushroom_stem"
seed = /obj/item/seeds/lavaland/ember
wine_power = 60
/obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit
name = "cactus fruit"
- list_reagents = list("vitamin" = 2, "nutriment" = 2, "vitfro" = 4)
+ list_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/vitfro = 4)
desc = "A cactus fruit covered in a thick, reddish skin. And some ash."
icon_state = "cactus_fruit"
seed = /obj/item/seeds/lavaland/cactus
@@ -218,7 +218,7 @@
else if(contents.len >= 20)
to_chat(user, "
You can't add more ingredients to [src]!")
else
- if(reagents.has_reagent("water", 10)) //are we starting a soup or a salad?
+ if(reagents.has_reagent(/datum/reagent/water, 10)) //are we starting a soup or a salad?
var/obj/item/reagent_containers/food/snacks/customizable/A = new/obj/item/reagent_containers/food/snacks/customizable/soup/ashsoup(get_turf(src))
A.initialize_custom_food(src, S, user)
else
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index 488b035f521..582ed15fd6a 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -138,7 +138,7 @@
desc = "A device which causes kinetic accelerators to permanently gain damage against creature types killed with it."
id = "bountymod"
materials = list(MAT_METAL = 4000, MAT_SILVER = 4000, MAT_GOLD = 4000, MAT_BLUESPACE = 4000)
- reagents_list = list("blood" = 40)
+ reagents_list = list(/datum/reagent/blood = 40)
build_path = /obj/item/borg/upgrade/modkit/bounty
//Spooky special loot
@@ -579,7 +579,7 @@
/obj/item/reagent_containers/glass/bottle/potion/flight
name = "strange elixir"
desc = "A flask with an almost-holy aura emitting from it. The label on the bottle says: 'erqo'hyy tvi'rf lbh jv'atf'."
- list_reagents = list("flightpotion" = 5)
+ list_reagents = list(/datum/reagent/flightpotion = 5)
/obj/item/reagent_containers/glass/bottle/potion/update_icon()
if(reagents.total_volume)
@@ -589,7 +589,6 @@
/datum/reagent/flightpotion
name = "Flight Potion"
- id = "flightpotion"
description = "Strange mutagenic compound of unknown origins."
reagent_state = LIQUID
color = "#FFEBEB"
@@ -883,7 +882,7 @@
/datum/disease/transformation/dragon
name = "dragon transformation"
cure_text = "nothing"
- cures = list("adminordrazine")
+ cures = list(/datum/reagent/medicine/adminordrazine)
agent = "dragon's blood"
desc = "What do dragons have to do with Space Station 13?"
stage_prob = 20
diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm
index 73313ffde80..9acfd04d25b 100644
--- a/code/modules/mining/ores_coins.dm
+++ b/code/modules/mining/ores_coins.dm
@@ -352,7 +352,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
icon_state = "coin_gold_heads"
value = 25
materials = list(MAT_GOLD = MINERAL_MATERIAL_AMOUNT*0.2)
- grind_results = list("gold" = 4)
+ grind_results = list(/datum/reagent/gold = 4)
/obj/item/coin/silver
name = "silver coin"
@@ -360,7 +360,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
icon_state = "coin_silver_heads"
value = 10
materials = list(MAT_SILVER = MINERAL_MATERIAL_AMOUNT*0.2)
- grind_results = list("silver" = 4)
+ grind_results = list(/datum/reagent/silver = 4)
/obj/item/coin/diamond
name = "diamond coin"
@@ -368,7 +368,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
icon_state = "coin_diamond_heads"
value = 100
materials = list(MAT_DIAMOND = MINERAL_MATERIAL_AMOUNT*0.2)
- grind_results = list("carbon" = 4)
+ grind_results = list(/datum/reagent/carbon = 4)
/obj/item/coin/iron
name = "iron coin"
@@ -376,7 +376,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
icon_state = "coin_iron_heads"
value = 1
materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT*0.2)
- grind_results = list("iron" = 4)
+ grind_results = list(/datum/reagent/iron = 4)
/obj/item/coin/plasma
name = "plasma coin"
@@ -384,7 +384,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
icon_state = "coin_plasma_heads"
value = 40
materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT*0.2)
- grind_results = list("plasma" = 4)
+ grind_results = list(/datum/reagent/toxin/plasma = 4)
/obj/item/coin/uranium
name = "uranium coin"
@@ -392,7 +392,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
icon_state = "coin_uranium_heads"
value = 25
materials = list(MAT_URANIUM = MINERAL_MATERIAL_AMOUNT*0.2)
- grind_results = list("uranium" = 4)
+ grind_results = list(/datum/reagent/uranium = 4)
/obj/item/coin/bananium
name = "bananium coin"
@@ -400,7 +400,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
icon_state = "coin_bananium_heads"
value = 200 //makes the clown cry
materials = list(MAT_BANANIUM = MINERAL_MATERIAL_AMOUNT*0.2)
- grind_results = list("banana" = 4)
+ grind_results = list(/datum/reagent/consumable/banana = 4)
/obj/item/coin/adamantine
name = "adamantine coin"
@@ -421,7 +421,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
sideslist = list("heads")
materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT*0.2)
value = 1
- grind_results = list("iron" = 4)
+ grind_results = list(/datum/reagent/iron = 4)
/obj/item/coin/antagtoken
name = "antag token"
@@ -430,7 +430,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
desc = "A novelty coin that helps the heart know what hard evidence cannot prove."
sideslist = list("valid", "salad")
value = 0
- grind_results = list("sodiumchloride" = 4)
+ grind_results = list(/datum/reagent/consumable/sodiumchloride = 4)
/obj/item/coin/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/stack/cable_coil))
diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm
index 717b9e1855e..f9ff185106f 100644
--- a/code/modules/mob/living/blood.dm
+++ b/code/modules/mob/living/blood.dm
@@ -139,7 +139,7 @@
if(iscarbon(AM))
var/mob/living/carbon/C = AM
if(blood_id == C.get_blood_id())//both mobs have the same blood substance
- if(blood_id == "blood") //normal blood
+ if(blood_id == /datum/reagent/blood) //normal blood
if(blood_data["viruses"])
for(var/thing in blood_data["viruses"])
var/datum/disease/D = thing
@@ -147,7 +147,7 @@
continue
C.ForceContractDisease(D)
if(!(blood_data["blood_type"] in get_safe_blood(C.dna.blood_type)))
- C.reagents.add_reagent("toxin", amount * 0.5)
+ C.reagents.add_reagent(/datum/reagent/toxin, amount * 0.5)
return 1
C.blood_volume = min(C.blood_volume + round(amount, 0.1), BLOOD_VOLUME_MAXIMUM)
@@ -161,7 +161,7 @@
return
/mob/living/carbon/get_blood_data(blood_id)
- if(blood_id == "blood") //actual blood reagent
+ if(blood_id == /datum/reagent/blood) //actual blood reagent
var/blood_data = list()
//set the blood data
blood_data["donor"] = src
@@ -176,7 +176,7 @@
blood_data["resistances"] = disease_resistances.Copy()
var/list/temp_chem = list()
for(var/datum/reagent/R in reagents.reagent_list)
- temp_chem[R.id] = R.volume
+ temp_chem[R.type] = R.volume
blood_data["trace_chem"] = list2params(temp_chem)
if(mind)
blood_data["mind"] = mind
@@ -206,11 +206,11 @@
/mob/living/simple_animal/get_blood_id()
if(blood_volume)
- return "blood"
+ return /datum/reagent/blood
/mob/living/carbon/monkey/get_blood_id()
if(!(HAS_TRAIT(src, TRAIT_HUSK)))
- return "blood"
+ return /datum/reagent/blood
/mob/living/carbon/human/get_blood_id()
if(HAS_TRAIT(src, TRAIT_HUSK))
@@ -219,7 +219,7 @@
return dna.species.exotic_blood
else if((NOBLOOD in dna.species.species_traits))
return
- return "blood"
+ return /datum/reagent/blood
// This is has more potential uses, and is probably faster than the old proc.
/proc/get_safe_blood(bloodtype)
@@ -246,7 +246,7 @@
//to add a splatter of blood or other mob liquid.
/mob/living/proc/add_splatter_floor(turf/T, small_drip)
- if(get_blood_id() != "blood")
+ if(get_blood_id() != /datum/reagent/blood)
return
if(!T)
T = get_turf(src)
diff --git a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm
index ec536e2b15e..4273dad86ca 100644
--- a/code/modules/mob/living/bloodcrawl.dm
+++ b/code/modules/mob/living/bloodcrawl.dm
@@ -74,7 +74,7 @@
if(victim.stat == CONSCIOUS)
src.visible_message("
[victim] kicks free of the blood pool just before entering it!", null, "
You hear splashing and struggling.")
- else if(victim.reagents && victim.reagents.has_reagent("demonsblood"))
+ else if(victim.reagents && victim.reagents.has_reagent(/datum/reagent/consumable/ethanol/demonsblood))
visible_message("
Something prevents [victim] from entering the pool!", "
A strange force is blocking [victim] from entering!", "
You hear a splash and a thud.")
else
victim.forceMove(src)
@@ -105,7 +105,7 @@
if(!victim)
return FALSE
- if(victim.reagents && victim.reagents.has_reagent("devilskiss"))
+ if(victim.reagents && victim.reagents.has_reagent(/datum/reagent/consumable/ethanol/devilskiss))
to_chat(src, "
AAH! THEIR FLESH! IT BURNS!")
adjustBruteLoss(25) //I can't use adjustHealth() here because bloodcrawl affects /mob/living and adjustHealth() only affects simple mobs
var/found_bloodpool = FALSE
diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm
index 0b95d4e4828..7a88ef7d92a 100644
--- a/code/modules/mob/living/brain/brain_item.dm
+++ b/code/modules/mob/living/brain/brain_item.dm
@@ -94,13 +94,13 @@
if(istype(O, /obj/item/organ_storage))
return //Borg organ bags shouldn't be killing brains
- if(damaged_brain && O.is_drainable() && O.reagents.has_reagent("mannitol")) //attempt to heal the brain
+ if(damaged_brain && O.is_drainable() && O.reagents.has_reagent(/datum/reagent/medicine/mannitol)) //attempt to heal the brain
. = TRUE //don't do attack animation.
if(brain_death || brainmob?.health <= HEALTH_THRESHOLD_DEAD) //if the brain is fucked anyway, do nothing
to_chat(user, "
[src] is far too damaged, there's nothing else we can do for it!")
return
- if(!O.reagents.has_reagent("mannitol", 10))
+ if(!O.reagents.has_reagent(/datum/reagent/medicine/mannitol, 10))
to_chat(user, "
There's not enough mannitol in [O] to restore [src]!")
return
diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm
index feeb66a9be7..028d8c43fe1 100644
--- a/code/modules/mob/living/carbon/alien/organs.dm
+++ b/code/modules/mob/living/carbon/alien/organs.dm
@@ -26,7 +26,7 @@
/obj/item/organ/alien/prepare_eat()
var/obj/S = ..()
- S.reagents.add_reagent("sacid", 10)
+ S.reagents.add_reagent(/datum/reagent/toxin/acid, 10)
return S
@@ -45,7 +45,7 @@
/obj/item/organ/alien/plasmavessel/prepare_eat()
var/obj/S = ..()
- S.reagents.add_reagent("plasma", storedPlasma/10)
+ S.reagents.add_reagent(/datum/reagent/toxin/plasma, storedPlasma/10)
return S
/obj/item/organ/alien/plasmavessel/large
diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
index 9023a2d8ced..e370e3ab161 100644
--- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
+++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
@@ -18,7 +18,7 @@
/obj/item/organ/body_egg/alien_embryo/prepare_eat()
var/obj/S = ..()
- S.reagents.add_reagent("sacid", 10)
+ S.reagents.add_reagent(/datum/reagent/toxin/acid, 10)
return S
/obj/item/organ/body_egg/alien_embryo/on_life()
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 99b5b64d3f0..86cf9184941 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -468,7 +468,7 @@
add_splatter_floor(T)
if(stun)
adjustBruteLoss(3)
- else if(src.reagents.has_reagent("blazaam"))
+ else if(src.reagents.has_reagent(/datum/reagent/consumable/ethanol/blazaam))
if(T)
T.add_vomit_floor(src, VOMIT_PURPLE)
else
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index 60c5383aafd..ce05600f3e3 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -233,7 +233,7 @@
shock_damage *= dna.species.siemens_coeff
if(shock_damage<1 && !override)
return 0
- if(reagents.has_reagent("teslium"))
+ if(reagents.has_reagent(/datum/reagent/teslium))
shock_damage *= 1.5 //If the mob has teslium in their body, shocks are 50% more damaging!
if(illusion)
adjustStaminaLoss(shock_damage)
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 68a2f65dc92..85b260d8798 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -224,12 +224,12 @@
if(bleedsuppress)
msg += "[t_He] [t_is] bandaged with something.\n"
else if(bleed_rate)
- if(reagents.has_reagent("heparin"))
+ if(reagents.has_reagent(/datum/reagent/toxin/heparin))
msg += "
[t_He] [t_is] bleeding uncontrollably!\n"
else
msg += "
[t_He] [t_is] bleeding!\n"
- if(reagents.has_reagent("teslium"))
+ if(reagents.has_reagent(/datum/reagent/teslium))
msg += "[t_He] [t_is] emitting a gentle blue glow!\n"
if(islist(stun_absorption))
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 5a4f4ec4089..aa09b227456 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -949,9 +949,9 @@ GLOBAL_LIST_EMPTY(roundstart_races)
H.update_mutant_bodyparts()
/datum/species/proc/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
- if(chem.id == exotic_blood)
+ if(chem.type == exotic_blood)
H.blood_volume = min(H.blood_volume + round(chem.volume, 0.1), BLOOD_VOLUME_MAXIMUM)
- H.reagents.del_reagent(chem.id)
+ H.reagents.del_reagent(chem.type)
return 1
return FALSE
diff --git a/code/modules/mob/living/carbon/human/species_types/ethereal.dm b/code/modules/mob/living/carbon/human/species_types/ethereal.dm
index 952b8473723..2c19204d497 100644
--- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm
+++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm
@@ -7,7 +7,7 @@
attack_sound = 'sound/weapons/etherealhit.ogg'
miss_sound = 'sound/weapons/etherealmiss.ogg'
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ethereal
- exotic_blood = "liquidelectricity" //Liquid Electricity. fuck you think of something better gamer
+ exotic_blood = /datum/reagent/consumable/liquidelectricity //Liquid Electricity. fuck you think of something better gamer
siemens_coeff = 0.5 //They thrive on energy
brutemod = 1.25 //They're weak to punches
attack_type = BURN //burn bish
diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm
index 9b7cf1ef082..a12fb1d68d6 100644
--- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm
@@ -13,9 +13,9 @@
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
/datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
- if(chem.id == "pestkiller")
+ if(chem.type == /datum/reagent/toxin/pestkiller)
H.adjustToxLoss(3)
- H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM)
+ H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM)
return 1
diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm
index 23ae58c3daf..3466c851b00 100644
--- a/code/modules/mob/living/carbon/human/species_types/golems.dm
+++ b/code/modules/mob/living/carbon/human/species_types/golems.dm
@@ -314,9 +314,9 @@
H.take_overall_damage(2,0)
/datum/species/golem/wood/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
- if(chem.id == "plantbgone")
+ if(chem.type == /datum/reagent/toxin/plantbgone)
H.adjustToxLoss(3)
- H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM)
+ H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM)
return 1
//Radioactive
@@ -624,14 +624,14 @@
C.RemoveSpell(dominate)
/datum/species/golem/runic/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
- if(chem.id == "holywater")
+ if(istype(chem, /datum/reagent/water/holywater))
H.adjustFireLoss(4)
- H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM)
+ H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM)
- if(chem.id == "unholywater")
+ if(chem.type == /datum/reagent/fuel/unholywater)
H.adjustBruteLoss(-4)
H.adjustFireLoss(-4)
- H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM)
+ H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM)
/datum/species/golem/clockwork
diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
index 5e50f31c754..0a4bd4792fb 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -7,7 +7,7 @@
species_traits = list(MUTCOLORS,EYECOLOR,NOBLOOD)
inherent_traits = list(TRAIT_TOXINLOVER)
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime
- exotic_blood = "slimejelly"
+ exotic_blood = /datum/reagent/toxin/slimejelly
damage_overlay_type = ""
var/datum/action/innate/regenerate_limbs/regenerate_limbs
liked_food = MEAT
diff --git a/code/modules/mob/living/carbon/human/species_types/mothmen.dm b/code/modules/mob/living/carbon/human/species_types/mothmen.dm
index 8a7f775a489..455405b8787 100644
--- a/code/modules/mob/living/carbon/human/species_types/mothmen.dm
+++ b/code/modules/mob/living/carbon/human/species_types/mothmen.dm
@@ -45,9 +45,9 @@
/datum/species/moth/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
. = ..()
- if(chem.id == "pestkiller")
+ if(chem.type == /datum/reagent/toxin/pestkiller)
H.adjustToxLoss(3)
- H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM)
+ H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM)
/datum/species/moth/check_species_weakness(obj/item/weapon, mob/living/attacker)
if(istype(weapon, /obj/item/melee/flyswatter))
diff --git a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm
index 97e05f6477f..aad4b5f6f16 100644
--- a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm
@@ -51,9 +51,9 @@
QDEL_NULL(mush)
/datum/species/mush/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
- if(chem.id == "weedkiller")
+ if(chem.type == /datum/reagent/toxin/plantbgone/weedkiller)
H.adjustToxLoss(3)
- H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM)
+ H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM)
return TRUE
/datum/species/mush/handle_mutant_bodyparts(mob/living/carbon/human/H, forced_colour)
diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm
index 1ea6bf21fb9..c0c80b81832 100644
--- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm
@@ -44,9 +44,9 @@
H.take_overall_damage(2,0)
/datum/species/pod/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
- if(chem.id == "plantbgone")
+ if(chem.type == /datum/reagent/toxin/plantbgone)
H.adjustToxLoss(3)
- H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM)
+ H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM)
return 1
/datum/species/pod/on_hit(obj/item/projectile/P, mob/living/carbon/human/H)
diff --git a/code/modules/mob/living/carbon/human/species_types/snail.dm b/code/modules/mob/living/carbon/human/species_types/snail.dm
index 25bd05dbc9f..468c0de1431 100644
--- a/code/modules/mob/living/carbon/human/species_types/snail.dm
+++ b/code/modules/mob/living/carbon/human/species_types/snail.dm
@@ -18,13 +18,13 @@
mutanteyes = /obj/item/organ/eyes/snail
mutanttongue = /obj/item/organ/tongue/snail
- exotic_blood = "lube"
+ exotic_blood = /datum/reagent/lube
/datum/species/snail/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
- if(chem.id == "sodiumchloride")
+ if(istype(chem,/datum/reagent/consumable/sodiumchloride))
H.adjustFireLoss(2)
playsound(H, 'sound/weapons/sear.ogg', 30, 1)
- H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM)
+ H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM)
return 1
/datum/species/snail/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load)
diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm
index 1847bb0eb21..366211d1cee 100644
--- a/code/modules/mob/living/carbon/human/species_types/synths.dm
+++ b/code/modules/mob/living/carbon/human/species_types/synths.dm
@@ -14,7 +14,7 @@
var/list/initial_species_traits //for getting these values back for assume_disguise()
var/list/initial_inherent_traits
changesource_flags = MIRROR_BADMIN | WABBAJACK
-
+
/datum/species/synth/New()
initial_species_traits = species_traits.Copy()
initial_inherent_traits = inherent_traits.Copy()
@@ -34,9 +34,9 @@
assume_disguise(old_species, H)
/datum/species/synth/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
- if(chem.id == "synthflesh")
+ if(chem.type == /datum/reagent/medicine/synthflesh)
chem.reaction_mob(H, TOUCH, 2 ,0) //heal a little
- H.reagents.remove_reagent(chem.id, REAGENTS_METABOLISM)
+ H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM)
return 1
else
return ..()
diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm
index 2b6f8697089..3aec4b0211a 100644
--- a/code/modules/mob/living/carbon/human/species_types/vampire.dm
+++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm
@@ -99,7 +99,7 @@
to_chat(victim, "
[H] tries to bite you, but stops before touching you!")
to_chat(H, "
[victim] is blessed! You stop just in time to avoid catching fire.")
return
- if(victim?.reagents?.has_reagent("garlic"))
+ if(victim?.reagents?.has_reagent(/datum/reagent/consumable/garlic))
to_chat(victim, "
[H] tries to bite you, but recoils in disgust!")
to_chat(H, "
[victim] reeks of garlic! you can't bring yourself to drain such tainted blood.")
return
diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm
index dc051b0ad1b..c9bf7bce150 100644
--- a/code/modules/mob/living/carbon/life.dm
+++ b/code/modules/mob/living/carbon/life.dm
@@ -65,7 +65,7 @@
//Second link in a breath chain, calls check_breath()
/mob/living/carbon/proc/breathe()
- if(reagents.has_reagent("lexorin"))
+ if(reagents.has_reagent(/datum/reagent/toxin/lexorin))
return
if(istype(loc, /obj/machinery/atmospherics/components/unary/cryo_cell))
return
@@ -137,7 +137,7 @@
//CRIT
if(!breath || (breath.total_moles() == 0) || !lungs)
- if(reagents.has_reagent("epinephrine") && lungs)
+ if(reagents.has_reagent(/datum/reagent/medicine/epinephrine) && lungs)
return
adjustOxyLoss(1)
diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm
index 631dddb1571..1797c3d7944 100644
--- a/code/modules/mob/living/carbon/monkey/monkey.dm
+++ b/code/modules/mob/living/carbon/monkey/monkey.dm
@@ -61,9 +61,9 @@
. = ..()
remove_movespeed_modifier(MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD, TRUE)
var/amount
- if(reagents.has_reagent("morphine"))
+ if(reagents.has_reagent(/datum/reagent/medicine/morphine))
amount = -1
- if(reagents.has_reagent("nuka_cola"))
+ if(reagents.has_reagent(/datum/reagent/consumable/nuka_cola))
amount = -1
if(amount)
add_movespeed_modifier(MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = amount)
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index ab11291d74d..1ce3885cbb2 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -350,7 +350,7 @@
to_chat(src, "
You resist Nar'Sie's influence... but not all of it. Run!")
adjustBruteLoss(35)
if(src && reagents)
- reagents.add_reagent("heparin", 5)
+ reagents.add_reagent(/datum/reagent/toxin/heparin, 5)
return FALSE
if(GLOB.cult_narsie && GLOB.cult_narsie.souls_needed[src])
GLOB.cult_narsie.souls_needed -= src
diff --git a/code/modules/mob/living/silicon/ai/vox_sounds.dm b/code/modules/mob/living/silicon/ai/vox_sounds.dm
index eb6d0ce9919..8c47bc0cfdc 100644
--- a/code/modules/mob/living/silicon/ai/vox_sounds.dm
+++ b/code/modules/mob/living/silicon/ai/vox_sounds.dm
@@ -576,7 +576,7 @@ GLOBAL_LIST_INIT(vox_sounds, list("abduction" = 'sound/vox_fem/abduction.ogg',
"nine" = 'sound/vox_fem/nine.ogg',
"nineteen" = 'sound/vox_fem/nineteen.ogg',
"ninety" = 'sound/vox_fem/ninety.ogg',
-"nitrogen" = 'sound/vox_fem/nitrogen.ogg',
+/datum/reagent/nitrogen = 'sound/vox_fem/nitrogen.ogg',
"n" = 'sound/vox_fem/n.ogg',
"nominal" = 'sound/vox_fem/nominal.ogg',
"no" = 'sound/vox_fem/no.ogg',
@@ -975,4 +975,4 @@ GLOBAL_LIST_INIT(vox_sounds, list("abduction" = 'sound/vox_fem/abduction.ogg',
"zombie" = 'sound/vox_fem/zombie.ogg',
"zone" = 'sound/vox_fem/zone.ogg',
"zulu" = 'sound/vox_fem/zulu.ogg'))
-#endif
\ No newline at end of file
+#endif
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index ed039e4b59c..83eca3e515c 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -410,11 +410,11 @@
/obj/item/reagent_containers/spray/cyborg_drying
name = "drying agent spray"
color = "#A000A0"
- list_reagents = list("drying_agent" = 250)
+ list_reagents = list(/datum/reagent/drying_agent = 250)
/obj/item/reagent_containers/spray/cyborg_lube
name = "lube spray"
- list_reagents = list("lube" = 250)
+ list_reagents = list(/datum/reagent/lube = 250)
/obj/item/robot_module/janitor/respawn_consumable(mob/living/silicon/robot/R, coeff = 1)
..()
@@ -425,11 +425,11 @@
var/obj/item/reagent_containers/spray/cyborg_drying/CD = locate(/obj/item/reagent_containers/spray/cyborg_drying) in basic_modules
if(CD)
- CD.reagents.add_reagent("drying_agent", 5 * coeff)
+ CD.reagents.add_reagent(/datum/reagent/drying_agent, 5 * coeff)
var/obj/item/reagent_containers/spray/cyborg_lube/CL = locate(/obj/item/reagent_containers/spray/cyborg_lube) in emag_modules
if(CL)
- CL.reagents.add_reagent("lube", 2 * coeff)
+ CL.reagents.add_reagent(/datum/reagent/lube, 2 * coeff)
/obj/item/robot_module/clown
name = "Clown"
@@ -492,7 +492,7 @@
..()
var/obj/item/reagent_containers/O = locate(/obj/item/reagent_containers/food/condiment/enzyme) in basic_modules
if(O)
- O.reagents.add_reagent("enzyme", 2 * coeff)
+ O.reagents.add_reagent(/datum/reagent/consumable/enzyme, 2 * coeff)
/obj/item/robot_module/butler/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
diff --git a/code/modules/mob/living/simple_animal/bot/firebot.dm b/code/modules/mob/living/simple_animal/bot/firebot.dm
index eb3a29d51ea..2609d01786d 100644
--- a/code/modules/mob/living/simple_animal/bot/firebot.dm
+++ b/code/modules/mob/living/simple_animal/bot/firebot.dm
@@ -132,7 +132,7 @@
extinguish_people = TRUE
internal_ext = new /obj/item/extinguisher(src)
- internal_ext.chem = "clf3" //Refill the internal extinguisher with liquid fire
+ internal_ext.chem = /datum/reagent/clf3 //Refill the internal extinguisher with liquid fire
internal_ext.power = 3
internal_ext.safety = FALSE
internal_ext.precision = FALSE
diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm
index f01e88bda77..fd2275c0e72 100644
--- a/code/modules/mob/living/simple_animal/bot/medbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/medbot.dm
@@ -43,16 +43,16 @@
var/declare_cooldown = 0 //Prevents spam of critical patient alerts.
var/stationary_mode = 0 //If enabled, the Medibot will not move automatically.
//Setting which reagents to use to treat what by default. By id.
- var/treatment_brute_avoid = "tricordrazine"
- var/treatment_brute = "bicaridine"
+ var/treatment_brute_avoid = /datum/reagent/medicine/tricordrazine
+ var/treatment_brute = /datum/reagent/medicine/bicaridine
var/treatment_oxy_avoid = null
- var/treatment_oxy = "dexalin"
- var/treatment_fire_avoid = "tricordrazine"
- var/treatment_fire = "kelotane"
- var/treatment_tox_avoid = "tricordrazine"
- var/treatment_tox = "charcoal"
+ var/treatment_oxy = /datum/reagent/medicine/dexalin
+ var/treatment_fire_avoid = /datum/reagent/medicine/tricordrazine
+ var/treatment_fire = /datum/reagent/medicine/kelotane
+ var/treatment_tox_avoid = /datum/reagent/medicine/tricordrazine
+ var/treatment_tox = /datum/reagent/medicine/charcoal
var/treatment_virus_avoid = null
- var/treatment_virus = "spaceacillin"
+ var/treatment_virus = /datum/reagent/medicine/spaceacillin
var/treat_virus = 1 //If on, the bot will attempt to treat viral infections, curing them if possible.
var/shut_up = 0 //self explanatory :)
@@ -60,9 +60,9 @@
name = "\improper Mysterious Medibot"
desc = "International Medibot of mystery."
skin = "bezerk"
- treatment_brute = "tricordrazine"
- treatment_fire = "tricordrazine"
- treatment_tox = "tricordrazine"
+ treatment_brute = /datum/reagent/medicine/tricordrazine
+ treatment_fire = /datum/reagent/medicine/tricordrazine
+ treatment_tox = /datum/reagent/medicine/tricordrazine
/mob/living/simple_animal/bot/medbot/derelict
name = "\improper Old Medibot"
@@ -70,13 +70,13 @@
skin = "bezerk"
heal_threshold = 0
declare_crit = 0
- treatment_oxy = "pancuronium"
+ treatment_oxy = /datum/reagent/toxin/pancuronium
treatment_brute_avoid = null
- treatment_brute = "pancuronium"
+ treatment_brute = /datum/reagent/toxin/pancuronium
treatment_fire_avoid = null
- treatment_fire = "sodium_thiopental"
+ treatment_fire = /datum/reagent/toxin/sodium_thiopental
treatment_tox_avoid = null
- treatment_tox = "sodium_thiopental"
+ treatment_tox = /datum/reagent/toxin/sodium_thiopental
/mob/living/simple_animal/bot/medbot/update_icon()
cut_overlays()
@@ -369,7 +369,7 @@
//If they're injured, we're using a beaker, and don't have one of our WONDERCHEMS.
if((reagent_glass) && (use_beaker) && ((C.getBruteLoss() >= heal_threshold) || (C.getToxLoss() >= heal_threshold) || (C.getToxLoss() >= heal_threshold) || (C.getOxyLoss() >= (heal_threshold + 15))))
for(var/datum/reagent/R in reagent_glass.reagents.reagent_list)
- if(!C.reagents.has_reagent(R.id))
+ if(!C.reagents.has_reagent(R.type))
return TRUE
//They're injured enough for it!
@@ -469,7 +469,7 @@
//If the patient is injured but doesn't have our special reagent in them then we should give it to them first
if(reagent_id && use_beaker && reagent_glass && reagent_glass.reagents.total_volume)
for(var/datum/reagent/R in reagent_glass.reagents.reagent_list)
- if(!C.reagents.has_reagent(R.id) && !check_overdose(patient, R.id, injection_amount))
+ if(!C.reagents.has_reagent(R.type) && !check_overdose(patient, R.type, injection_amount))
reagent_id = "internal_beaker"
break
diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm
index 980d3e75774..b962b423206 100644
--- a/code/modules/mob/living/simple_animal/bot/secbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/secbot.dm
@@ -54,7 +54,7 @@
var/atom/Tsec = drop_location()
new /obj/item/stock_parts/cell/potato(Tsec)
var/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass/S = new(Tsec)
- S.reagents.add_reagent("whiskey", 15)
+ S.reagents.add_reagent(/datum/reagent/consumable/ethanol/whiskey, 15)
S.on_reagent_change(ADD_REAGENT)
..()
diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm
index 7ca65a11b00..67cd3047ff6 100644
--- a/code/modules/mob/living/simple_animal/friendly/cat.dm
+++ b/code/modules/mob/living/simple_animal/friendly/cat.dm
@@ -289,5 +289,5 @@
/mob/living/simple_animal/pet/cat/cak/attack_hand(mob/living/L)
..()
if(L.a_intent == INTENT_HARM && L.reagents && !stat)
- L.reagents.add_reagent("nutriment", 0.4)
- L.reagents.add_reagent("vitamin", 0.4)
+ L.reagents.add_reagent(/datum/reagent/consumable/nutriment, 0.4)
+ L.reagents.add_reagent(/datum/reagent/consumable/nutriment/vitamin, 0.4)
diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
index 32adaea113c..42b173452ff 100644
--- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
+++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
@@ -330,12 +330,12 @@
/obj/item/udder/Initialize()
create_reagents(50)
- reagents.add_reagent("milk", 20)
+ reagents.add_reagent(/datum/reagent/consumable/milk, 20)
. = ..()
/obj/item/udder/proc/generateMilk()
if(prob(5))
- reagents.add_reagent("milk", rand(5, 10))
+ reagents.add_reagent(/datum/reagent/consumable/milk, rand(5, 10))
/obj/item/udder/proc/milkAnimal(obj/O, mob/user)
var/obj/item/reagent_containers/glass/G = O
diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm
index 0d93f129160..b4fd7e01ad0 100644
--- a/code/modules/mob/living/simple_animal/friendly/mouse.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm
@@ -110,9 +110,9 @@
icon_state = "mouse_gray_dead"
bitesize = 3
eatverb = "devour"
- list_reagents = list("nutriment" = 3, "vitamin" = 2)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2)
foodtype = GROSS | MEAT | RAW
- grind_results = list("blood" = 20, "liquidgibs" = 5)
+ grind_results = list(/datum/reagent/blood = 20, /datum/reagent/liquidgibs = 5)
/obj/item/reagent_containers/food/snacks/deadmouse/attackby(obj/item/I, mob/user, params)
if(I.is_sharp() && user.a_intent == INTENT_HARM)
diff --git a/code/modules/mob/living/simple_animal/friendly/snake.dm b/code/modules/mob/living/simple_animal/friendly/snake.dm
index d8912ee25f7..2fbbc9ab99c 100644
--- a/code/modules/mob/living/simple_animal/friendly/snake.dm
+++ b/code/modules/mob/living/simple_animal/friendly/snake.dm
@@ -1,6 +1,6 @@
/mob/living/simple_animal/hostile/retaliate/poison
var/poison_per_bite = 0
- var/poison_type = "toxin"
+ var/poison_type = /datum/reagent/toxin
/mob/living/simple_animal/hostile/retaliate/poison/AttackingTarget()
. = ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm
index b13f377c5d1..6abcf07c814 100644
--- a/code/modules/mob/living/simple_animal/hostile/bees.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bees.dm
@@ -142,7 +142,7 @@
var/mob/living/L = target
if(L.reagents)
beegent.reaction_mob(L, INJECT)
- L.reagents.add_reagent(beegent.id, rand(1,5))
+ L.reagents.add_reagent(beegent.type, rand(1,5))
/mob/living/simple_animal/hostile/poison/bees/proc/assign_reagent(datum/reagent/R)
@@ -208,7 +208,7 @@
/mob/living/simple_animal/hostile/poison/bees/toxin/Initialize()
. = ..()
var/datum/reagent/R = pick(typesof(/datum/reagent/toxin))
- assign_reagent(GLOB.chemical_reagents_list[initial(R.id)])
+ assign_reagent(GLOB.chemical_reagents_list[R])
/mob/living/simple_animal/hostile/poison/bees/queen
name = "queen bee"
@@ -228,7 +228,7 @@
if(. && beegent && isliving(target))
var/mob/living/L = target
beegent.reaction_mob(L, TOUCH)
- L.reagents.add_reagent(beegent.id, rand(1,5))
+ L.reagents.add_reagent(beegent.type, rand(1,5))
//PEASENT BEES
@@ -239,7 +239,7 @@
/mob/living/simple_animal/hostile/poison/bees/proc/reagent_incompatible(mob/living/simple_animal/hostile/poison/bees/B)
if(!B)
return FALSE
- if(B.beegent && beegent && B.beegent.id != beegent.id || B.beegent && !beegent || !B.beegent && beegent)
+ if(B.beegent && beegent && B.beegent.type != beegent.type || B.beegent && !beegent || !B.beegent && beegent)
return TRUE
return FALSE
@@ -256,9 +256,9 @@
/obj/item/queen_bee/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/reagent_containers/syringe))
var/obj/item/reagent_containers/syringe/S = I
- if(S.reagents.has_reagent("royal_bee_jelly")) //checked twice, because I really don't want royal bee jelly to be duped
- if(S.reagents.has_reagent("royal_bee_jelly",5))
- S.reagents.remove_reagent("royal_bee_jelly", 5)
+ if(S.reagents.has_reagent(/datum/reagent/royal_bee_jelly)) //checked twice, because I really don't want royal bee jelly to be duped
+ if(S.reagents.has_reagent(/datum/reagent/royal_bee_jelly,5))
+ S.reagents.remove_reagent(/datum/reagent/royal_bee_jelly, 5)
var/obj/item/queen_bee/qb = new(user.drop_location())
qb.queen = new(qb)
if(queen && queen.beegent)
@@ -269,8 +269,8 @@
to_chat(user, "
You don't have enough royal bee jelly to split a bee in two!")
else
var/datum/reagent/R = GLOB.chemical_reagents_list[S.reagents.get_master_reagent_id()]
- if(R && S.reagents.has_reagent(R.id, 5))
- S.reagents.remove_reagent(R.id,5)
+ if(R && S.reagents.has_reagent(R.type, 5))
+ S.reagents.remove_reagent(R.type,5)
queen.assign_reagent(R)
user.visible_message("
[user] injects [src]'s genome with [R.name], mutating its DNA!","
You inject [src]'s genome with [R.name], mutating its DNA!")
name = queen.name
@@ -296,7 +296,7 @@
forceMove(beehome.drop_location())
else
..()
-
+
/mob/living/simple_animal/hostile/poison/bees/short
desc = "These bees seem unstable and won't survive for long."
diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
index 8633de27d7c..1a7aad1dd68 100644
--- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
+++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
@@ -6,7 +6,7 @@
/mob/living/simple_animal/hostile/poison
var/poison_per_bite = 5
- var/poison_type = "toxin"
+ var/poison_type = /datum/reagent/toxin
/mob/living/simple_animal/hostile/poison/AttackingTarget()
. = ..()
@@ -156,7 +156,7 @@
melee_damage_upper = 1
poison_per_bite = 12
move_to_delay = 4
- poison_type = "venom" //all in venom, glass cannon. you bite 5 times and they are DEFINITELY dead, but 40 health and you are extremely obvious. Ambush, maybe?
+ poison_type = /datum/reagent/toxin/venom //all in venom, glass cannon. you bite 5 times and they are DEFINITELY dead, but 40 health and you are extremely obvious. Ambush, maybe?
speed = 1
gold_core_spawnable = NO_SPAWN
@@ -215,7 +215,7 @@
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
maxbodytemp = 1500
- poison_type = "frostoil"
+ poison_type = /datum/reagent/consumable/frostoil
color = rgb(114,228,250)
gold_core_spawnable = NO_SPAWN
@@ -224,7 +224,7 @@
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
maxbodytemp = 1500
- poison_type = "frostoil"
+ poison_type = /datum/reagent/consumable/frostoil
color = rgb(114,228,250)
gold_core_spawnable = NO_SPAWN
@@ -233,7 +233,7 @@
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
maxbodytemp = 1500
- poison_type = "frostoil"
+ poison_type = /datum/reagent/consumable/frostoil
color = rgb(114,228,250)
gold_core_spawnable = NO_SPAWN
diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm
index 247e4290df2..b2cf20e6fb8 100644
--- a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm
+++ b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm
@@ -105,7 +105,6 @@
/datum/reagent/toxin/leaper_venom
name = "Leaper venom"
- id = "leaper_venom"
description = "A toxin spat out by leapers that, while harmless in small doses, quickly creates a toxic reaction if too much is in the body."
color = "#801E28" // rgb: 128, 30, 40
toxpwr = 0
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm
index 7384d778f9f..125861fa807 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm
@@ -131,7 +131,6 @@
/obj/item/udder/gutlunch/generateMilk()
if(prob(60))
- reagents.add_reagent("cream", rand(2, 5))
+ reagents.add_reagent(/datum/reagent/consumable/cream, rand(2, 5))
if(prob(45))
- reagents.add_reagent("salglu_solution", rand(2,5))
-
+ reagents.add_reagent(/datum/reagent/medicine/salglu_solution, rand(2,5))
diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm
index 9cdeaa2f629..55e5dedc482 100644
--- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm
@@ -186,6 +186,6 @@
var/counter
for(counter=0, counter<=powerlevel, counter++)
var/obj/item/reagent_containers/food/snacks/hugemushroomslice/S = new /obj/item/reagent_containers/food/snacks/hugemushroomslice(src.loc)
- S.reagents.add_reagent("mushroomhallucinogen", powerlevel)
- S.reagents.add_reagent("omnizine", powerlevel)
- S.reagents.add_reagent("synaptizine", powerlevel)
+ S.reagents.add_reagent(/datum/reagent/drug/mushroomhallucinogen, powerlevel)
+ S.reagents.add_reagent(/datum/reagent/medicine/omnizine, powerlevel)
+ S.reagents.add_reagent(/datum/reagent/medicine/synaptizine, powerlevel)
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
index 609f610c2c2..da3f86ed273 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
@@ -35,7 +35,7 @@
do_footstep = TRUE
var/banana_time = 0 // If there's no time set it won't spawn.
var/banana_type = /obj/item/grown/bananapeel
- var/attack_reagent
+ var/attack_reagent
/mob/living/simple_animal/hostile/retaliate/clown/handle_temperature_damage()
if(bodytemperature < minbodytemp)
@@ -109,7 +109,7 @@
attacktext = "cheers up"
loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/item/soap, /obj/item/seeds/banana/bluespace)
banana_type = /obj/item/grown/bananapeel
- attack_reagent = "laughter"
+ attack_reagent = /datum/reagent/consumable/laughter
/mob/living/simple_animal/hostile/retaliate/clown/fleshclown
name = "Fleshclown"
@@ -216,7 +216,7 @@
attacktext = "ferociously mauls"
environment_smash = ENVIRONMENT_SMASH_NONE
loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/xeno/bodypartless, /obj/effect/particle_effect/foam, /obj/item/soap)
- attack_reagent = "dizzysolution"
+ attack_reagent = /datum/reagent/peaceborg/confuse
/mob/living/simple_animal/hostile/retaliate/clown/clownhulk/destroyer
name = "The Destroyer"
@@ -274,4 +274,4 @@
speed = 20
attacktext = "bounces off of"
loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/xeno/bodypartless, /obj/effect/particle_effect/foam, /obj/item/soap, /obj/effect/gibspawner/generic, /obj/effect/gibspawner/generic/animal, /obj/effect/gibspawner/human/bodypartless, /obj/effect/gibspawner/human)
- attack_reagent = "mindbreaker"
+ attack_reagent = /datum/reagent/toxin/mindbreaker
diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm
index b04a50f6b13..af5a733792f 100644
--- a/code/modules/mob/living/simple_animal/slime/slime.dm
+++ b/code/modules/mob/living/simple_animal/slime/slime.dm
@@ -140,9 +140,9 @@
. = ..()
remove_movespeed_modifier(MOVESPEED_ID_SLIME_REAGENTMOD, TRUE)
var/amount = 0
- if(reagents.has_reagent("morphine")) // morphine slows slimes down
+ if(reagents.has_reagent(/datum/reagent/medicine/morphine)) // morphine slows slimes down
amount = 2
- if(reagents.has_reagent("frostoil")) // Frostoil also makes them move VEEERRYYYYY slow
+ if(reagents.has_reagent(/datum/reagent/consumable/frostoil)) // Frostoil also makes them move VEEERRYYYYY slow
amount = 5
if(amount)
add_movespeed_modifier(MOVESPEED_ID_SLIME_REAGENTMOD, TRUE, 100, override = TRUE, multiplicative_slowdown = amount)
diff --git a/code/modules/mob/living/simple_animal/slime/subtypes.dm b/code/modules/mob/living/simple_animal/slime/subtypes.dm
index a2df855d0b7..b5720c62250 100644
--- a/code/modules/mob/living/simple_animal/slime/subtypes.dm
+++ b/code/modules/mob/living/simple_animal/slime/subtypes.dm
@@ -76,4 +76,4 @@
slime_mutation[2] = colour
slime_mutation[3] = colour
slime_mutation[4] = colour
- return(slime_mutation)
\ No newline at end of file
+ return(slime_mutation)
diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm
index d5c2499a3ce..3b344dacda6 100644
--- a/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm
+++ b/code/modules/ninja/suit/n_suit_verbs/ninja_adrenaline.dm
@@ -13,7 +13,7 @@
H.stuttering = 0
H.lying = 0
H.update_mobility()
- H.reagents.add_reagent("stimulants", 5)
+ H.reagents.add_reagent(/datum/reagent/medicine/stimulants, 5)
H.say(pick("A CORNERED FOX IS MORE DANGEROUS THAN A JACKAL!","HURT ME MOOORRREEE!","IMPRESSIVE!"), forced = "ninjaboost")
a_boost--
to_chat(H, "
There are [a_boost] adrenaline boosts remaining.")
@@ -22,5 +22,5 @@
/obj/item/clothing/suit/space/space_ninja/proc/ninjaboost_after()
var/mob/living/carbon/human/H = affecting
- H.reagents.add_reagent("radium", a_transfer)
+ H.reagents.add_reagent(/datum/reagent/uranium/radium, a_transfer)
to_chat(H, "
You are beginning to feel the after-effect of the injection.")
diff --git a/code/modules/ninja/suit/suit_attackby.dm b/code/modules/ninja/suit/suit_attackby.dm
index 0496a2f1c34..7300f22f9b8 100644
--- a/code/modules/ninja/suit/suit_attackby.dm
+++ b/code/modules/ninja/suit/suit_attackby.dm
@@ -5,13 +5,13 @@
return ..()
if(istype(I, /obj/item/reagent_containers/glass))//If it's a glass beaker.
- if(I.reagents.has_reagent("radium", a_transfer) && a_boost < a_maxamount)
- I.reagents.remove_reagent("radium", a_transfer)
+ if(I.reagents.has_reagent(/datum/reagent/uranium/radium, a_transfer) && a_boost < a_maxamount)
+ I.reagents.remove_reagent(/datum/reagent/uranium/radium, a_transfer)
a_boost++;
to_chat(U, "
There are now [a_boost] adrenaline boosts remaining.")
return
- if(I.reagents.has_reagent("smoke_powder", a_transfer) && s_bombs < s_maxamount)
- I.reagents.remove_reagent("smoke_powder", a_transfer)
+ if(I.reagents.has_reagent(/datum/reagent/smoke_powder, a_transfer) && s_bombs < s_maxamount)
+ I.reagents.remove_reagent(/datum/reagent/smoke_powder, a_transfer)
s_bombs++;
to_chat(U, "
There are now [s_bombs] smoke bombs remaining.")
return
diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm
index 22452ea0106..568301154ac 100644
--- a/code/modules/paperwork/pen.dm
+++ b/code/modules/paperwork/pen.dm
@@ -23,7 +23,7 @@
throw_range = 7
materials = list(MAT_METAL=10)
pressure_resistance = 2
- grind_results = list("iron" = 2, "iodine" = 1)
+ grind_results = list(/datum/reagent/iron = 2, /datum/reagent/iodine = 1)
var/colour = "black" //what colour the ink is!
var/degrees = 0
var/font = PEN_FONT
@@ -165,9 +165,9 @@
/obj/item/pen/sleepy/Initialize()
. = ..()
create_reagents(45, OPENCONTAINER)
- reagents.add_reagent("chloralhydrate", 20)
- reagents.add_reagent("mutetoxin", 15)
- reagents.add_reagent("tirizene", 10)
+ reagents.add_reagent(/datum/reagent/toxin/chloralhydrate, 20)
+ reagents.add_reagent(/datum/reagent/toxin/mutetoxin, 15)
+ reagents.add_reagent(/datum/reagent/toxin/staminatoxin, 10)
/*
* (Alan) Edaggers
diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm
index fd93413c365..c0e20323cf8 100644
--- a/code/modules/paperwork/photocopier.dm
+++ b/code/modules/paperwork/photocopier.dm
@@ -330,6 +330,6 @@
name = "toner cartridge"
icon = 'icons/obj/device.dmi'
icon_state = "tonercartridge"
- grind_results = list("iodine" = 40, "iron" = 10)
+ grind_results = list(/datum/reagent/iodine = 40, /datum/reagent/iron = 10)
var/charges = 5
var/max_charges = 5
diff --git a/code/modules/photography/photos/photo.dm b/code/modules/photography/photos/photo.dm
index 8ee75576bac..03b3aa2777c 100644
--- a/code/modules/photography/photos/photo.dm
+++ b/code/modules/photography/photos/photo.dm
@@ -9,7 +9,7 @@
w_class = WEIGHT_CLASS_TINY
resistance_flags = FLAMMABLE
max_integrity = 50
- grind_results = list("iodine" = 4)
+ grind_results = list(/datum/reagent/iodine = 4)
var/datum/picture/picture
var/scribble //Scribble on the back.
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index c2e44cc149d..1d0ae34ddc5 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -500,7 +500,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai
attack_verb = list("whipped", "lashed", "disciplined", "flogged")
singular_name = "cable piece"
full_w_class = WEIGHT_CLASS_SMALL
- grind_results = list("copper" = 2) //2 copper per cable in the coil
+ grind_results = list(/datum/reagent/copper = 2) //2 copper per cable in the coil
usesound = 'sound/items/deconstruct.ogg'
/obj/item/stack/cable_coil/cyborg
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index 44d14a521a7..93946cb3ae1 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -14,7 +14,7 @@
var/charge = 0 // note %age conveted to actual charge in New
var/maxcharge = 1000
materials = list(MAT_METAL=700, MAT_GLASS=50)
- grind_results = list("lithium" = 15, "iron" = 5, "silicon" = 5)
+ grind_results = list(/datum/reagent/lithium = 15, /datum/reagent/iron = 5, /datum/reagent/silicon = 5)
var/rigged = FALSE // true if rigged to explode
var/chargerate = 100 //how much power is given every tick in a recharger
var/self_recharge = 0 //does it self recharge, over time, or not?
@@ -103,7 +103,7 @@
return (FIRELOSS)
/obj/item/stock_parts/cell/on_reagent_change(changetype)
- rigged = !isnull(reagents.has_reagent("plasma", 5)) //has_reagent returns the reagent datum
+ rigged = !isnull(reagents.has_reagent(/datum/reagent/toxin/plasma, 5)) //has_reagent returns the reagent datum
..()
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index 5ba594b8dce..3a11d363b93 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -386,7 +386,7 @@
removeStaticPower(static_power_used, STATIC_LIGHT)
broken_sparks(start_only=TRUE)
-
+
/obj/machinery/light/update_atom_colour()
..()
update()
@@ -761,7 +761,7 @@
var/base_state
var/switchcount = 0 // number of times switched
materials = list(MAT_GLASS=100)
- grind_results = list("silicon" = 5, "nitrogen" = 10) //Nitrogen is used as a cheaper alternative to argon in incandescent lighbulbs
+ grind_results = list(/datum/reagent/silicon = 5, /datum/reagent/nitrogen = 10) //Nitrogen is used as a cheaper alternative to argon in incandescent lighbulbs
var/rigged = FALSE // true if rigged to explode
var/brightness = 2 //how much light it gives off
@@ -843,7 +843,7 @@
to_chat(user, "
You inject the solution into \the [src].")
- if(S.reagents.has_reagent("plasma", 5))
+ if(S.reagents.has_reagent(/datum/reagent/toxin/plasma, 5))
rigged = TRUE
diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm
index ad5b31a5564..11ad40ef37a 100644
--- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm
+++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm
@@ -134,8 +134,8 @@
/obj/item/ammo_casing/shotgun/dart/bioterror/Initialize()
. = ..()
- reagents.add_reagent("neurotoxin", 6)
- reagents.add_reagent("spore", 6)
- reagents.add_reagent("mutetoxin", 6) //;HELP OPS IN MAINT
- reagents.add_reagent("coniine", 6)
- reagents.add_reagent("sodium_thiopental", 6)
+ reagents.add_reagent(/datum/reagent/consumable/ethanol/neurotoxin, 6)
+ reagents.add_reagent(/datum/reagent/toxin/spore, 6)
+ reagents.add_reagent(/datum/reagent/toxin/mutetoxin, 6) //;HELP OPS IN MAINT
+ reagents.add_reagent(/datum/reagent/toxin/coniine, 6)
+ reagents.add_reagent(/datum/reagent/toxin/sodium_thiopental, 6)
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index 28496d3f874..f984d81000e 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -194,8 +194,7 @@
if(reagents && reagents.reagent_list)
reagent_note = " REAGENTS:"
for(var/datum/reagent/R in reagents.reagent_list)
- reagent_note += R.id + " ("
- reagent_note += num2text(R.volume) + ") "
+ reagent_note += "[R.name] ([num2text(R.volume)])"
if(ismob(firer))
log_combat(firer, L, "shot", src, reagent_note)
diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm
index 6f6527abc16..8091efcdfc5 100644
--- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm
+++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm
@@ -29,9 +29,9 @@
/obj/item/projectile/bullet/dart/metalfoam/Initialize()
. = ..()
- reagents.add_reagent("aluminium", 15)
- reagents.add_reagent("foaming_agent", 5)
- reagents.add_reagent("facid", 5)
+ reagents.add_reagent(/datum/reagent/aluminium, 15)
+ reagents.add_reagent(/datum/reagent/foaming_agent, 5)
+ reagents.add_reagent(/datum/reagent/toxin/acid/fluacid, 5)
/obj/item/projectile/bullet/dart/syringe
name = "syringe"
diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm
index d6900fd1fd0..07ab040834c 100644
--- a/code/modules/reagents/chemistry/holder.dm
+++ b/code/modules/reagents/chemistry/holder.dm
@@ -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
@@ -83,10 +83,9 @@
return "no reagents"
var/list/data = list()
- var/seperator
for(var/r in reagent_list) //no reagents will be left behind
var/datum/reagent/R = r
- data += "[seperator ? " | " : null][R.id] ([round(R.volume, 0.1)]u)"
+ data += "[R.type] ([round(R.volume, 0.1)]u)"
//Using IDs because SOME chemicals (I'm looking at you, chlorhydrate-beer) have the same names as other chemicals.
return english_list(data)
@@ -107,7 +106,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++
@@ -122,7 +121,7 @@
var/part = amount / total_volume
for(var/reagent in cached_reagents)
var/datum/reagent/R = reagent
- remove_reagent(R.id, R.volume * part)
+ remove_reagent(R.type, R.volume * part)
update_total()
handle_reactions()
@@ -142,15 +141,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
@@ -197,8 +196,8 @@
var/transfer_amount = T.volume * part
if(preserve_data)
trans_data = copy_data(T)
- R.add_reagent(T.id, transfer_amount * multiplier, trans_data, chem_temp, no_react = 1) //we only handle reaction after every reagent has been transfered.
- remove_reagent(T.id, transfer_amount)
+ R.add_reagent(T.type, transfer_amount * multiplier, trans_data, chem_temp, no_react = 1) //we only handle reaction after every reagent has been transfered.
+ remove_reagent(T.type, transfer_amount)
update_total()
R.update_total()
@@ -230,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()
@@ -254,11 +253,11 @@
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, src.chem_temp)
- remove_reagent(current_reagent.id, amount, 1)
+ R.add_reagent(current_reagent.type, amount, trans_data, src.chem_temp)
+ remove_reagent(current_reagent.type, amount, 1)
break
src.update_total()
@@ -318,10 +317,10 @@
need_mob_update += R.addiction_act_stage4(C)
if(40 to INFINITY)
to_chat(C, "
You feel like you've gotten over your need for [R.name].")
- SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.id]_overdose")
+ SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_overdose")
cached_addictions.Remove(R)
else
- SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.id]_overdose")
+ 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()
@@ -357,7 +356,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 id
if(!reaction)
continue
@@ -466,15 +465,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
R.on_mob_delete(M)
@@ -491,7 +490,7 @@
for(var/reagent in cached_reagents)
var/datum/reagent/R = reagent
if(R.volume < 0.1)
- del_reagent(R.id)
+ del_reagent(R.type)
else
total_volume += R.volume
@@ -501,7 +500,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)
return 0
/datum/reagents/proc/reaction(atom/A, method = TOUCH, volume_modifier = 1, show_message = 1)
@@ -587,7 +586,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 (R.type == reagent)
R.volume += amount
update_total()
if(my_atom)
@@ -615,7 +614,7 @@
handle_reactions()
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, "beer" = 15)
for(var/r_id in list_reagents)
var/amt = list_reagents[r_id]
add_reagent(r_id, amt, data)
@@ -637,7 +636,7 @@
for(var/A in cached_reagents)
var/datum/reagent/R = A
- if (R.id == reagent)
+ if (R.type == reagent)
//clamp the removal amount to be between current reagent amount
//and zero, to prevent removing more than the holder has stored
amount = CLAMP(amount, 0, R.volume)
@@ -655,7 +654,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
@@ -670,7 +669,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
@@ -703,7 +702,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
@@ -712,14 +711,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)
@@ -818,6 +817,6 @@
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
diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
index 271c04ab921..d1f90d8d83c 100644
--- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
@@ -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,48 +34,48 @@
var/macroresolution = 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/uranium/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 the manipulator has been upgraded to tier 4 (femto)
var/list/upgrade_reagents = list(
"oil",
- "ash",
- "acetone",
- "saltpetre",
- "ammonia",
- "diethylamine"
+ /datum/reagent/ash,
+ /datum/reagent/acetone,
+ /datum/reagent/saltpetre,
+ /datum/reagent/ammonia,
+ /datum/reagent/diethylamine
)
var/list/emagged_reagents = list(
- "space_drugs",
- "morphine",
- "carpotoxin",
- "mine_salve",
- "toxin"
+ /datum/reagent/drug/space_drugs,
+ /datum/reagent/medicine/morphine,
+ /datum/reagent/toxin/carpotoxin,
+ /datum/reagent/medicine/mine_salve,
+ /datum/reagent/toxin
)
var/list/saved_recipes = list()
@@ -187,7 +200,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
@@ -209,7 +222,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
@@ -241,7 +254,7 @@
var/res = macroresolution
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
@@ -273,7 +286,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
@@ -437,35 +451,35 @@
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 = null
emagged_reagents = list(
- "thirteenloko",
- "whiskeycola",
- "mindbreaker",
- "tirizene"
+ /datum/reagent/consumable/ethanol/thirteenloko,
+ /datum/reagent/consumable/ethanol/whiskey_cola,
+ /datum/reagent/toxin/mindbreaker,
+ /datum/reagent/toxin/staminatoxin
)
/obj/machinery/chem_dispenser/drinks/fullupgrade //fully ugpraded stock parts, emagged
@@ -493,32 +507,32 @@
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 = null
emagged_reagents = list(
- "ethanol",
- "iron",
- "minttoxin",
- "atomicbomb",
- "fernet"
+ /datum/reagent/consumable/ethanol,
+ /datum/reagent/iron,
+ /datum/reagent/toxin/minttoxin,
+ /datum/reagent/consumable/ethanol/atomicbomb,
+ /datum/reagent/consumable/ethanol/fernet
)
/obj/machinery/chem_dispenser/drinks/beer/fullupgrade //fully ugpraded stock parts, emagged
@@ -542,9 +556,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
@@ -553,19 +567,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)
upgrade_reagents = null
/obj/machinery/chem_dispenser/mutagensaltpeter/Initialize()
diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm
index 7ef9bb5cde0..4302dcc129f 100644
--- a/code/modules/reagents/chemistry/machinery/chem_master.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_master.dm
@@ -153,7 +153,7 @@
/obj/machinery/chem_master/ui_base_html(html)
var/datum/asset/spritesheet/simple/assets = get_asset_datum(/datum/asset/spritesheet/simple/pills)
. = replacetext(html, "", assets.css_tag())
-
+
/obj/machinery/chem_master/ui_data(mob/user)
var/list/data = list()
data["isBeakerLoaded"] = beaker ? 1 : 0
@@ -173,13 +173,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
@@ -203,26 +203,26 @@
if("transferToBuffer")
if(beaker)
- var/id = params["id"]
+ var/reagent = GLOB.name2reagent[params["id"]]
var/amount = text2num(params["amount"])
if (amount > 0)
- 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)
- 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
if("toggleMode")
@@ -343,7 +343,7 @@
. = TRUE
if("analyze")
- 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)
diff --git a/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm b/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm
index daac5a5d1ce..df288cf9d41 100644
--- a/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm
@@ -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, \
@@ -36,7 +36,7 @@
input_reagent = shortcuts[input_reagent]
else
input_reagent = find_reagent(input_reagent)
- if(!input_reagent || !GLOB.chemical_reagents_list[input_reagent])
+ if(!input_reagent || !GLOB.name2reagent[input_reagent])
say("OUT OF RANGE")
return
else
diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm
index 147f83f0169..17be6ee05f1 100644
--- a/code/modules/reagents/chemistry/machinery/pandemic.dm
+++ b/code/modules/reagents/chemistry/machinery/pandemic.dm
@@ -166,9 +166,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)
@@ -214,7 +214,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)
@@ -226,7 +226,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)
diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
index 67222a1931e..36d7911ffbb 100644
--- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
+++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
@@ -298,12 +298,12 @@
/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)
diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm
index aab435c1cfe..d908256bb7d 100644
--- a/code/modules/reagents/chemistry/reagents.dm
+++ b/code/modules/reagents/chemistry/reagents.dm
@@ -1,12 +1,21 @@
#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"
@@ -43,7 +52,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)
@@ -54,7 +63,7 @@
/datum/reagent/proc/on_mob_life(mob/living/carbon/M)
current_cycle++
- 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
@@ -89,29 +98,29 @@
/datum/reagent/proc/overdose_start(mob/living/M)
to_chat(M, "
You feel like you took too much of [name]!")
- 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, "
You feel like having some [name] right about now.")
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, "
You feel like you need [name]. You just can't get enough.")
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, "
You have an intense craving for [name].")
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, "
You're not feeling good at all! You really need some [name].")
return
diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
index 75cc72cb315..258a7e70ce1 100644
--- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
@@ -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
@@ -92,7 +90,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"
@@ -101,7 +98,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"
@@ -119,7 +115,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
@@ -139,7 +134,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
@@ -151,7 +145,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
@@ -215,7 +208,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
@@ -231,7 +223,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
@@ -249,7 +240,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
@@ -265,7 +255,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
@@ -276,7 +265,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
@@ -288,7 +276,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
@@ -300,7 +287,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
@@ -312,7 +298,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
@@ -324,7 +309,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
@@ -333,7 +317,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
@@ -344,7 +327,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
@@ -356,7 +338,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
@@ -373,7 +354,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
@@ -390,7 +370,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
@@ -401,7 +380,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
@@ -414,7 +392,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
@@ -427,7 +404,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
@@ -439,7 +415,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
@@ -451,7 +426,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
@@ -472,7 +446,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
@@ -485,7 +458,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
@@ -497,7 +469,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
@@ -509,7 +480,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
@@ -521,7 +491,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
@@ -538,7 +507,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
@@ -549,7 +517,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
@@ -566,7 +533,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
@@ -590,7 +556,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
@@ -608,7 +573,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(/datum/reagent/consumable/ethanol/tequila_sunrise) //If we lost our light object somehow, remove the reagent
else if(light_holder.loc != M)
light_holder.forceMove(M)
return ..()
@@ -619,7 +584,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
@@ -636,7 +600,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
@@ -679,7 +642,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
@@ -691,7 +653,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
@@ -718,7 +679,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
@@ -731,7 +691,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
@@ -742,7 +701,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
@@ -758,7 +716,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
@@ -770,7 +727,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
@@ -782,7 +738,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
@@ -795,7 +750,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
@@ -808,7 +762,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
@@ -825,7 +778,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
@@ -837,7 +789,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
@@ -853,7 +804,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
@@ -873,7 +823,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
@@ -885,7 +834,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
@@ -897,7 +845,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
@@ -909,7 +856,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
@@ -922,7 +868,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
@@ -935,7 +880,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
@@ -947,7 +891,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
@@ -959,7 +902,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
@@ -975,7 +917,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
@@ -987,7 +928,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
@@ -1000,7 +940,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
@@ -1015,7 +954,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
@@ -1027,7 +965,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
@@ -1039,7 +976,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
@@ -1051,7 +987,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
@@ -1063,7 +998,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
@@ -1075,7 +1009,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
@@ -1087,7 +1020,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
@@ -1107,7 +1039,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
@@ -1119,7 +1050,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
@@ -1136,7 +1066,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
@@ -1148,7 +1077,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
@@ -1161,7 +1089,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
@@ -1180,7 +1107,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
@@ -1200,7 +1126,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
@@ -1212,7 +1137,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
@@ -1224,7 +1148,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
@@ -1238,7 +1161,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
@@ -1258,7 +1180,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
@@ -1281,7 +1202,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
@@ -1294,7 +1214,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
@@ -1324,7 +1243,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
@@ -1353,7 +1271,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
@@ -1378,7 +1295,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
if(current_cycle > 5)
if(prob(20))
var/t = pickt()
- ADD_TRAIT(M, t, id)
+ ADD_TRAIT(M, t, type)
M.adjustStaminaLoss(10)
if(current_cycle > 30)
M.adjustBrainLoss(2*REM)
@@ -1391,16 +1308,15 @@ All effects don't start immediately, but rather get worse over time; the rate is
..()
/datum/reagent/consumable/ethanol/neurotoxin/on_mob_delete(mob/living/carbon/M)
- REMOVE_TRAIT(M, TRAIT_PARALYSIS_L_ARM, id)
- REMOVE_TRAIT(M, TRAIT_PARALYSIS_R_ARM, id)
- REMOVE_TRAIT(M, TRAIT_PARALYSIS_R_LEG, id)
- REMOVE_TRAIT(M, TRAIT_PARALYSIS_L_LEG, id)
+ REMOVE_TRAIT(M, TRAIT_PARALYSIS_L_ARM, type)
+ REMOVE_TRAIT(M, TRAIT_PARALYSIS_R_ARM, type)
+ REMOVE_TRAIT(M, TRAIT_PARALYSIS_R_LEG, type)
+ REMOVE_TRAIT(M, TRAIT_PARALYSIS_L_LEG, type)
M.adjustStaminaLoss(10)
..()
/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
@@ -1446,7 +1362,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 = "For enjoying the most wonderful time of the year."
color = "#fcfdc6" // rgb: 252, 253, 198
nutriment_factor = 2 * REAGENTS_METABOLISM
@@ -1460,7 +1375,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
@@ -1477,7 +1391,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
@@ -1488,7 +1401,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
@@ -1499,7 +1411,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
@@ -1510,7 +1421,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
@@ -1530,7 +1440,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
@@ -1553,7 +1462,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
@@ -1565,7 +1473,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
@@ -1577,7 +1484,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
@@ -1615,7 +1521,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
@@ -1633,7 +1538,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
@@ -1645,7 +1549,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
@@ -1663,7 +1566,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
@@ -1678,7 +1580,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
@@ -1689,7 +1590,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"
@@ -1706,7 +1606,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
@@ -1739,7 +1638,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
@@ -1751,7 +1649,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
@@ -1776,7 +1673,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
@@ -1788,7 +1684,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
@@ -1800,7 +1695,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
@@ -1817,7 +1711,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,
boozepwr = 25
@@ -1837,7 +1730,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
@@ -1861,7 +1753,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
@@ -1884,7 +1775,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
@@ -1904,7 +1794,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
@@ -2010,7 +1899,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
@@ -2022,7 +1910,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
@@ -2042,7 +1929,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
@@ -2066,7 +1952,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
@@ -2077,7 +1962,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
@@ -2089,7 +1973,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
@@ -2107,7 +1990,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
@@ -2127,7 +2009,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()
@@ -2140,7 +2022,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
@@ -2152,7 +2033,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
@@ -2164,7 +2044,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
@@ -2183,7 +2062,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
@@ -2207,7 +2085,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
@@ -2215,6 +2092,3 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_icon_state = "planet_cracker"
glass_name = "Planet Cracker"
glass_desc = "Although historians believe the drink was originally created to commemorate the end of an important conflict in man's past, its origins have largely been forgotten and it is today seen more as a general symbol of human supremacy."
-
-
-
diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
index 86fb1dc48ea..0d6df468b2a 100644
--- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
@@ -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"
@@ -22,7 +21,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"
@@ -38,7 +36,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"
@@ -54,7 +51,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"
@@ -76,7 +72,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"
@@ -86,14 +81,12 @@
/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"
/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"
@@ -108,7 +101,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"
@@ -118,7 +110,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"
@@ -128,7 +119,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"
@@ -144,7 +134,6 @@
/datum/reagent/consumable/nothing
name = "Nothing"
- id = "nothing"
description = "Absolutely nothing."
taste_description = "nothing"
glass_icon_state = "nothing"
@@ -161,7 +150,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"
@@ -174,7 +162,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"
@@ -189,7 +176,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
@@ -200,14 +186,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"
@@ -229,7 +213,6 @@
/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"
@@ -245,7 +228,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"
@@ -261,7 +243,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
@@ -288,7 +269,6 @@
/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
@@ -310,7 +290,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"
@@ -321,7 +300,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
@@ -339,7 +317,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
@@ -359,7 +336,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
@@ -380,7 +356,6 @@
/datum/reagent/consumable/space_cola
name = "Cola"
- id = "cola"
description = "A refreshing beverage."
color = "#100800" // rgb: 16, 8, 0
taste_description = "cola"
@@ -395,7 +370,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
@@ -406,10 +380,10 @@
/datum/reagent/consumable/nuka_cola/on_mob_add(mob/living/L)
..()
- L.add_movespeed_modifier(id, update=TRUE, priority=100, multiplicative_slowdown=-0.75, blacklisted_movetypes=(FLYING|FLOATING))
+ L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-0.75, blacklisted_movetypes=(FLYING|FLOATING))
/datum/reagent/consumable/nuka_cola/on_mob_delete(mob/living/L)
- L.remove_movespeed_modifier(id)
+ L.remove_movespeed_modifier(type)
..()
/datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/carbon/M)
@@ -424,7 +398,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
@@ -435,10 +408,10 @@
/datum/reagent/consumable/grey_bull/on_mob_add(mob/living/L)
..()
- ADD_TRAIT(L, TRAIT_SHOCKIMMUNE, id)
+ ADD_TRAIT(L, TRAIT_SHOCKIMMUNE, type)
/datum/reagent/consumable/grey_bull/on_mob_delete(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)
@@ -451,7 +424,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"
@@ -469,7 +441,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
@@ -484,7 +455,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"
@@ -500,7 +470,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"
@@ -515,7 +484,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"
@@ -529,7 +497,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"
@@ -541,7 +508,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"
@@ -557,7 +523,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"
@@ -575,7 +540,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
@@ -590,7 +554,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
@@ -612,7 +575,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
@@ -634,7 +596,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
@@ -656,7 +617,6 @@
/datum/reagent/consumable/chocolatepudding
name = "Chocolate Pudding"
- id = "chocolatepudding"
description = "A great dessert for chocolate lovers."
color = "#800000"
quality = DRINK_VERYGOOD
@@ -668,7 +628,6 @@
/datum/reagent/consumable/vanillapudding
name = "Vanilla Pudding"
- id = "vanillapudding"
description = "A great dessert for vanilla lovers."
color = "#FAFAD2"
quality = DRINK_VERYGOOD
@@ -680,7 +639,6 @@
/datum/reagent/consumable/cherryshake
name = "Cherry Shake"
- id = "cherryshake"
description = "A cherry flavored milkshake."
color = "#FFB6C1"
quality = DRINK_VERYGOOD
@@ -692,7 +650,6 @@
/datum/reagent/consumable/bluecherryshake
name = "Blue Cherry Shake"
- id = "bluecherryshake"
description = "An exotic milkshake."
color = "#00F1FF"
quality = DRINK_VERYGOOD
@@ -704,7 +661,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
@@ -716,7 +672,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
@@ -728,21 +683,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 = "#C8A5DC"
quality = DRINK_NICE
@@ -753,7 +705,6 @@
/datum/reagent/consumable/grape_soda
name = "Grape soda"
- id = "grapesoda"
description = "Beloved of children and teetotalers."
color = "#E6CDFF"
taste_description = "grape soda"
@@ -766,7 +717,6 @@
/datum/reagent/consumable/milk/chocolate_milk
name = "Chocolate Milk"
- id = "chocolate_milk"
description = "Milk for cool kids."
color = "#7D4E29"
quality = DRINK_NICE
@@ -774,7 +724,6 @@
/datum/reagent/consumable/menthol
name = "Menthol"
- id = "menthol"
description = "Alleviates coughing symptoms one might have."
color = "#80AF9C"
taste_description = "mint"
@@ -788,7 +737,6 @@
/datum/reagent/consumable/grenadine
name = "Grenadine"
- id = "grenadine"
description = "Not cherry flavored!"
color = "#EA1D26"
taste_description = "sweet pomegranates"
@@ -797,7 +745,6 @@
/datum/reagent/consumable/parsnipjuice
name = "Parsnip Juice"
- id = "parsnipjuice"
description = "Why..."
color = "#FFA500"
taste_description = "parsnip"
@@ -805,7 +752,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"
@@ -813,7 +759,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
@@ -828,7 +773,6 @@
/datum/reagent/consumable/red_queen
name = "Red Queen"
- id = "red_queen"
description = "DRINK ME."
color = "#e6ddc3"
quality = DRINK_GOOD
diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm
index e634f7195f0..7165086487b 100644
--- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm
@@ -1,17 +1,15 @@
/datum/reagent/drug
name = "Drug"
- id = "drug"
metabolization_rate = 0.5 * REAGENTS_METABOLISM
taste_description = "bitterness"
var/trippy = TRUE //Does this drug make you trip?
/datum/reagent/drug/on_mob_delete(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"
description = "An illegal chemical compound used as drug."
color = "#60A584" // rgb: 96, 165, 132
overdose_threshold = 30
@@ -28,7 +26,7 @@
/datum/reagent/drug/space_drugs/overdose_start(mob/living/M)
to_chat(M, "
You start tripping hard!")
- 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))
@@ -37,7 +35,6 @@
/datum/reagent/drug/nicotine
name = "Nicotine"
- id = "nicotine"
description = "Slightly reduces stun times. If overdosed it will deal toxin and oxygen damage."
reagent_state = LIQUID
color = "#60A584" // rgb: 96, 165, 132
@@ -68,7 +65,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"
@@ -117,7 +113,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"
@@ -168,7 +163,6 @@
/datum/reagent/drug/methamphetamine
name = "Methamphetamine"
- id = "methamphetamine"
description = "Reduces stun times by about 300%, speeds the user up, 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_add(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/drug/methamphetamine/on_mob_delete(mob/living/L)
- L.remove_movespeed_modifier(id)
+ L.remove_movespeed_modifier(type)
..()
/datum/reagent/drug/methamphetamine/on_mob_life(mob/living/carbon/M)
@@ -252,7 +246,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"
@@ -263,16 +256,16 @@
/datum/reagent/drug/bath_salts/on_mob_add(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_delete(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)
..()
@@ -352,7 +345,6 @@
/datum/reagent/drug/aranesp
name = "Aranesp"
- id = "aranesp"
description = "Amps you up, gets you going, and rapidly restores stamina damage. Side effects include breathlessness and toxicity."
reagent_state = LIQUID
color = "#78FFF0"
@@ -371,7 +363,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"
@@ -380,11 +371,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")
..()
diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm
index 42ad24c7367..563859ff2fb 100755
--- a/code/modules/reagents/chemistry/reagents/food_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm
@@ -9,7 +9,6 @@
/datum/reagent/consumable
name = "Consumable"
- id = "consumable"
taste_description = "generic food"
taste_mult = 4
var/nutriment_factor = 1 * REAGENTS_METABOLISM
@@ -21,7 +20,7 @@
var/mob/living/carbon/human/H = M
if(!HAS_TRAIT(H, TRAIT_NOHUNGER))
H.adjust_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."
brute_heal = 1
@@ -103,7 +100,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
@@ -119,7 +115,7 @@
O.loc.visible_message("
[O] rapidly fries as it's splashed with hot oil! Somehow.")
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))
@@ -148,7 +144,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
@@ -170,7 +165,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
@@ -178,7 +172,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
@@ -186,7 +179,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
@@ -195,7 +187,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"
@@ -206,8 +197,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)
@@ -227,7 +218,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"
@@ -237,8 +227,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)
@@ -272,7 +262,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"
@@ -320,7 +309,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
@@ -341,7 +329,6 @@
/datum/reagent/consumable/blackpepper
name = "Black Pepper"
- id = "blackpepper"
description = "A powder ground from peppercorns. *AAAACHOOO*"
reagent_state = SOLID
// no color (ie, black)
@@ -349,7 +336,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
@@ -358,7 +344,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
@@ -373,7 +358,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
@@ -404,7 +388,6 @@
/datum/reagent/consumable/garlic //NOTE: having garlic in your blood stops vampires from biting you.
name = "Garlic Juice"
- id = "garlic"
description = "Crushed garlic. Chefs love it, but it can make you smell bad."
color = "#FEFEFE"
taste_description = "garlic"
@@ -428,7 +411,6 @@
/datum/reagent/consumable/sprinkles
name = "Sprinkles"
- id = "sprinkles"
description = "Multi-colored little bits of sugar, commonly found on donuts. Loved by cops."
color = "#FF00FF" // rgb: 255, 0, 255
taste_description = "childhood whimsy"
@@ -441,7 +423,6 @@
/datum/reagent/consumable/cornoil
name = "Corn Oil"
- id = "cornoil"
description = "An oil derived from various types of corn."
nutriment_factor = 20 * REAGENTS_METABOLISM
color = "#302000" // rgb: 48, 32, 0
@@ -461,14 +442,12 @@
/datum/reagent/consumable/enzyme
name = "Universal Enzyme"
- id = "enzyme"
description = "A universal enzyme used in the preperation of certain chemicals and foods."
color = "#365E30" // rgb: 54, 94, 48
taste_description = "sweetness"
/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
@@ -476,7 +455,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
@@ -488,7 +466,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
@@ -500,7 +477,6 @@
/datum/reagent/consumable/flour
name = "Flour"
- id = "flour"
description = "This is what you rub all over yourself to pretend to be a ghost."
reagent_state = SOLID
color = "#FFFFFF" // rgb: 0, 0, 0
@@ -511,25 +487,22 @@
var/obj/effect/decal/cleanable/food/flour/reagentdecal = new(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
taste_description = "cherry"
/datum/reagent/consumable/bluecherryjelly
name = "Blue Cherry Jelly"
- id = "bluecherryjelly"
description = "Blue and tastier kind of cherry jelly."
color = "#00F0FF"
taste_description = "blue cherry"
/datum/reagent/consumable/rice
name = "Rice"
- id = "rice"
description = "tiny nutritious grains"
reagent_state = SOLID
nutriment_factor = 3 * REAGENTS_METABOLISM
@@ -538,7 +511,6 @@
/datum/reagent/consumable/vanilla
name = "Vanilla Powder"
- id = "vanilla"
description = "A fatty, bitter paste made from vanilla pods."
reagent_state = SOLID
nutriment_factor = 5 * REAGENTS_METABOLISM
@@ -547,7 +519,6 @@
/datum/reagent/consumable/eggyolk
name = "Egg Yolk"
- id = "eggyolk"
description = "It's full of protein."
nutriment_factor = 3 * REAGENTS_METABOLISM
color = "#FFB500"
@@ -555,26 +526,23 @@
/datum/reagent/consumable/corn_starch
name = "Corn Starch"
- id = "corn_starch"
description = "A slippery solution."
color = "#C8A5DC"
taste_description = "slime"
/datum/reagent/consumable/corn_syrup
name = "Corn Syrup"
- id = "corn_syrup"
description = "Decays into sugar."
color = "#C8A5DC"
metabolization_rate = 3 * REAGENTS_METABOLISM
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"
nutriment_factor = 15 * REAGENTS_METABOLISM
@@ -582,7 +550,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)
@@ -600,14 +568,12 @@
/datum/reagent/consumable/mayonnaise
name = "Mayonnaise"
- id = "mayonnaise"
description = "An white and oily mixture of mixed egg yolks."
color = "#DFDFDF"
taste_description = "mayonnaise"
/datum/reagent/consumable/tearjuice
name = "Tear Juice"
- id = "tearjuice"
description = "A blinding substance extracted from certain onions."
color = "#c0c9a0"
taste_description = "bitterness"
@@ -645,7 +611,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
@@ -661,7 +626,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"
@@ -681,7 +645,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"
@@ -694,7 +657,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
@@ -709,7 +671,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
@@ -718,7 +679,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"
@@ -736,7 +696,6 @@
/datum/reagent/consumable/astrotame
name = "Astrotame"
- id = "astrotame"
description = "A space age artifical sweetener."
nutriment_factor = 0
metabolization_rate = 2 * REAGENTS_METABOLISM
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index 5fae356260e..b17ea67f9e3 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -7,16 +7,14 @@
/datum/reagent/medicine
name = "Medicine"
- id = "medicine"
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."
color = "#C8A5DC" // rgb: 200, 165, 220
@@ -29,7 +27,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 = "#C8A5DC" // rgb: 200, 165, 220
can_synth = FALSE
@@ -75,13 +72,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"
@@ -92,8 +87,8 @@
M.AdjustUnconscious(-20, FALSE)
M.AdjustImmobilized(-20, FALSE)
M.AdjustParalyzed(-20, FALSE)
- 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)
@@ -102,16 +97,15 @@
/datum/reagent/medicine/synaphydramine
name = "Diphen-Synaptizine"
- id = "synaphydramine"
description = "Reduces drowsiness, hallucinations, and Histamine from body."
color = "#EC536D" // rgb: 236, 83, 109
/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)
@@ -120,7 +114,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
@@ -130,7 +123,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"
@@ -150,7 +142,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"
@@ -166,7 +157,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"
@@ -195,7 +185,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
@@ -218,7 +207,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 = "#C8A5DC" // rgb: 200, 165, 220
metabolization_rate = 0.1 * REAGENTS_METABOLISM
@@ -226,7 +214,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. If ingested through other means, deals minor toxin damage."
reagent_state = LIQUID
color = "#C8A5DC"
@@ -252,7 +239,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"
@@ -275,7 +261,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. If ingested through other means, deals minor toxin damage."
reagent_state = LIQUID
color = "#FF9696"
@@ -302,7 +287,6 @@
/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"
@@ -330,12 +314,12 @@
/datum/reagent/medicine/salglu_solution/overdose_process(mob/living/M)
if(prob(3))
to_chat(M, "
You feel salty.")
- 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, "
You feel sweet.")
- 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, FALSE, FALSE, BODYPART_ORGANIC)
M.adjustFireLoss(0.5*REM, FALSE, FALSE, BODYPART_ORGANIC)
@@ -344,7 +328,6 @@
/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"
@@ -382,7 +365,6 @@
/datum/reagent/medicine/synthflesh
name = "Synthflesh"
- id = "synthflesh"
description = "Has a 100% chance of instantly healing brute and burn damage. One unit of the chemical will heal one point of damage. Touch application only."
reagent_state = LIQUID
color = "#FFEBEB"
@@ -401,7 +383,6 @@
/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"
@@ -413,12 +394,11 @@
. = 1
for(var/datum/reagent/R in M.reagents.reagent_list)
if(R != src)
- M.reagents.remove_reagent(R.id,1)
+ M.reagents.remove_reagent(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"
@@ -443,7 +423,6 @@
/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"
@@ -453,7 +432,7 @@
/datum/reagent/medicine/calomel/on_mob_life(mob/living/carbon/M)
for(var/datum/reagent/R in M.reagents.reagent_list)
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
@@ -461,7 +440,6 @@
/datum/reagent/medicine/potass_iodide
name = "Potassium Iodide"
- id = "potass_iodide"
description = "Efficiently restores low radiation damage."
reagent_state = LIQUID
color = "#14FF3C"
@@ -474,7 +452,6 @@
/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"
@@ -485,13 +462,12 @@
M.adjustToxLoss(-2*REM, 0)
for(var/datum/reagent/R in M.reagents.reagent_list)
if(R != src)
- M.reagents.remove_reagent(R.id,2)
+ M.reagents.remove_reagent(R.type,2)
..()
. = 1
/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"
@@ -515,7 +491,6 @@
/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"
@@ -530,7 +505,6 @@
/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"
@@ -544,7 +518,6 @@
/datum/reagent/medicine/ephedrine
name = "Ephedrine"
- id = "ephedrine"
description = "Increases stun resistance and movement speed. Overdose deals toxin damage and inhibits breathing."
reagent_state = LIQUID
color = "#D2FFFA"
@@ -554,10 +527,10 @@
/datum/reagent/medicine/ephedrine/on_mob_add(mob/living/L)
..()
- L.add_movespeed_modifier(id, update=TRUE, priority=100, multiplicative_slowdown=-0.85, blacklisted_movetypes=(FLYING|FLOATING))
+ L.add_movespeed_modifier(type, update=TRUE, priority=100, multiplicative_slowdown=-0.85, blacklisted_movetypes=(FLYING|FLOATING))
/datum/reagent/medicine/ephedrine/on_mob_delete(mob/living/L)
- L.remove_movespeed_modifier(id)
+ L.remove_movespeed_modifier(type)
..()
/datum/reagent/medicine/ephedrine/on_mob_life(mob/living/carbon/M)
@@ -638,7 +611,6 @@
/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"
@@ -648,12 +620,11 @@
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"
@@ -663,10 +634,10 @@
/datum/reagent/medicine/morphine/on_mob_add(mob/living/L)
..()
- L.ignore_slowdown(id)
+ L.ignore_slowdown(type)
/datum/reagent/medicine/morphine/on_mob_delete(mob/living/L)
- L.unignore_slowdown(id)
+ L.unignore_slowdown(type)
..()
/datum/reagent/medicine/morphine/on_mob_life(mob/living/carbon/M)
@@ -722,7 +693,6 @@
/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"
@@ -753,7 +723,6 @@
/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"
@@ -782,7 +751,6 @@
/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"
@@ -791,10 +759,10 @@
/datum/reagent/medicine/epinephrine/on_mob_add(mob/living/carbon/M)
..()
- ADD_TRAIT(M, TRAIT_NOCRITDAMAGE, id)
+ ADD_TRAIT(M, TRAIT_NOCRITDAMAGE, type)
/datum/reagent/medicine/epinephrine/on_mob_delete(mob/living/carbon/M)
- REMOVE_TRAIT(M, TRAIT_NOCRITDAMAGE, id)
+ REMOVE_TRAIT(M, TRAIT_NOCRITDAMAGE, type)
..()
/datum/reagent/medicine/epinephrine/on_mob_life(mob/living/carbon/M)
@@ -823,7 +791,6 @@
/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"
@@ -862,7 +829,6 @@
/datum/reagent/medicine/mannitol
name = "Mannitol"
- id = "mannitol"
description = "Efficiently restores brain damage."
color = "#DCDCFF"
@@ -872,20 +838,18 @@
/datum/reagent/medicine/neurine
name = "Neurine"
- id = "neurine"
description = "Reacts with neural tissue, helping reform damaged connections. Can cure minor traumas."
color = "#EEFF8F"
/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"
@@ -899,7 +863,6 @@
/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"
@@ -919,7 +882,6 @@
/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
@@ -927,10 +889,10 @@
/datum/reagent/medicine/stimulants/on_mob_add(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_delete(mob/living/L)
- L.remove_movespeed_modifier(id)
+ L.remove_movespeed_modifier(type)
..()
/datum/reagent/medicine/stimulants/on_mob_life(mob/living/carbon/M)
@@ -954,7 +916,6 @@
/datum/reagent/medicine/insulin
name = "Insulin"
- id = "insulin"
description = "Increases sugar depletion rates."
reagent_state = LIQUID
color = "#FFFFF0"
@@ -963,13 +924,12 @@
/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 = "#C8A5DC"
@@ -987,7 +947,6 @@
/datum/reagent/medicine/dexalin
name = "Dexalin"
- id = "dexalin"
description = "Restores oxygen loss. Overdose causes it instead."
reagent_state = LIQUID
color = "#C8A5DC"
@@ -1005,7 +964,6 @@
/datum/reagent/medicine/kelotane
name = "Kelotane"
- id = "kelotane"
description = "Restores fire damage. Overdose causes it instead."
reagent_state = LIQUID
color = "#C8A5DC"
@@ -1023,7 +981,6 @@
/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 = "#C8A5DC"
@@ -1033,7 +990,7 @@
/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
@@ -1044,7 +1001,6 @@
/datum/reagent/medicine/inaprovaline
name = "Inaprovaline"
- id = "inaprovaline"
description = "Stabilizes the breathing of patients. Good for those in critical condition."
reagent_state = LIQUID
color = "#C8A5DC"
@@ -1056,7 +1012,6 @@
/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 = "#C8A5DC"
@@ -1082,7 +1037,6 @@
/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"
@@ -1098,7 +1052,6 @@
/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"
@@ -1116,14 +1069,13 @@
/datum/reagent/medicine/syndicate_nanites/overdose_process(mob/living/carbon/M) //wtb flavortext messages that hint that you're vomitting up robots
if(prob(25))
- M.reagents.remove_reagent(src.id, metabolization_rate*15) // ~5 units at a rate of 0.4 but i wanted a nice number in code
+ M.reagents.remove_reagent(type, metabolization_rate*15) // ~5 units at a rate of 0.4 but i wanted a nice number in code
M.vomit(20) // nanite safety protocols make your body expel them to prevent harmies
..()
. = 1
/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
@@ -1149,7 +1101,6 @@
/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"
@@ -1157,7 +1108,7 @@
/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
@@ -1171,7 +1122,6 @@
/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 = "#C8A5DC" // rgb: 200, 165, 220
overdose_threshold = 3 //To prevent people stacking massive amounts of a very strong healing reagent
@@ -1192,7 +1142,6 @@
//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 = "#C8A5DC"
overdose_threshold = 30
@@ -1210,17 +1159,16 @@
/datum/reagent/medicine/changelinghaste
name = "Changeling Haste"
- id = "changelinghaste"
description = "Drastically increases movement speed, but deals toxin damage."
color = "#C8A5DC"
metabolization_rate = 1
/datum/reagent/medicine/changelinghaste/on_mob_add(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_delete(mob/living/L)
- L.remove_movespeed_modifier(id)
+ L.remove_movespeed_modifier(type)
..()
/datum/reagent/medicine/changelinghaste/on_mob_life(mob/living/carbon/M)
@@ -1232,35 +1180,32 @@
// 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
/datum/reagent/medicine/corazone/on_mob_add(mob/living/M)
..()
- ADD_TRAIT(M, TRAIT_STABLEHEART, id)
+ ADD_TRAIT(M, TRAIT_STABLEHEART, type)
/datum/reagent/medicine/corazone/on_mob_delete(mob/living/M)
- REMOVE_TRAIT(M, TRAIT_STABLEHEART, id)
+ REMOVE_TRAIT(M, TRAIT_STABLEHEART, type)
..()
/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_add(mob/living/M)
. = ..()
- M.ignore_slowdown(id)
+ M.ignore_slowdown(type)
/datum/reagent/medicine/muscle_stimulant/on_mob_delete(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
@@ -1270,11 +1215,11 @@
var/overdose_progress = 0 // to track overdose progress
/datum/reagent/medicine/modafinil/on_mob_add(mob/living/M)
- ADD_TRAIT(M, TRAIT_SLEEPIMMUNE, id)
+ ADD_TRAIT(M, TRAIT_SLEEPIMMUNE, type)
..()
/datum/reagent/medicine/modafinil/on_mob_delete(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)
@@ -1325,7 +1270,6 @@
/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"
@@ -1334,10 +1278,10 @@
/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)
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index c7a517d45ae..0645dbd80d0 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -1,7 +1,6 @@
/datum/reagent/blood
data = list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null,"quirks"=null)
name = "Blood"
- id = "blood"
color = "#C80000" // rgb: 200, 0, 0
metabolization_rate = 5 //fast rate so it disappears fast.
taste_description = "iron"
@@ -26,9 +25,9 @@
if(iscarbon(L))
var/mob/living/carbon/C = L
- if(C.get_blood_id() == "blood" && (method == INJECT || (method == INGEST && C.dna && C.dna.species && (DRINKSBLOOD in C.dna.species.species_traits))))
+ if(C.get_blood_id() == /datum/reagent/blood && (method == INJECT || (method == INGEST && C.dna && C.dna.species && (DRINKSBLOOD in C.dna.species.species_traits))))
if(!data || !(data["blood_type"] in get_safe_blood(C.dna.blood_type)))
- C.reagents.add_reagent("toxin", reac_volume * 0.5)
+ C.reagents.add_reagent(/datum/reagent/toxin, reac_volume * 0.5)
else
C.blood_volume = min(C.blood_volume + round(reac_volume, 0.1), BLOOD_VOLUME_MAXIMUM)
@@ -84,7 +83,6 @@
/datum/reagent/liquidgibs
name = "Liquid gibs"
- id = "liquidgibs"
color = "#FF9966"
description = "You don't even want to think about what's in here."
taste_description = "gross iron"
@@ -93,7 +91,6 @@
/datum/reagent/vaccine
//data must contain virus type
name = "Vaccine"
- id = "vaccine"
color = "#C81040" // rgb: 200, 16, 64
taste_description = "slime"
@@ -111,7 +108,6 @@
/datum/reagent/water
name = "Water"
- id = "water"
description = "An ubiquitous chemical substance that is composed of hydrogen and oxygen."
color = "#AAAAAA77" // rgb: 170, 170, 170, 77 (alpha)
taste_description = "water"
@@ -183,7 +179,6 @@
/datum/reagent/water/holywater
name = "Holy Water"
- id = "holywater"
description = "Water blessed by some deity."
color = "#E0E8EF" // rgb: 224, 232, 239
glass_icon_state = "glass_clear"
@@ -192,10 +187,10 @@
/datum/reagent/water/holywater/on_mob_add(mob/living/L)
..()
- ADD_TRAIT(L, TRAIT_HOLY, id)
+ ADD_TRAIT(L, TRAIT_HOLY, type)
/datum/reagent/water/holywater/on_mob_delete(mob/living/L)
- REMOVE_TRAIT(L, TRAIT_HOLY, id)
+ REMOVE_TRAIT(L, TRAIT_HOLY, type)
..()
/datum/reagent/water/holywater/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
@@ -242,9 +237,9 @@
remove_servant_of_ratvar(M)
M.jitteriness = 0
M.stuttering = 0
- holder.remove_reagent(id, volume) // maybe this is a little too perfect and a max() cap on the statuses would be better??
+ holder.remove_reagent(type, volume) // maybe this is a little too perfect and a max() cap on the statuses would be better??
return
- holder.remove_reagent(id, 0.4) //fixed consumption to prevent balancing going out of whack
+ holder.remove_reagent(type, 0.4) //fixed consumption to prevent balancing going out of whack
/datum/reagent/water/holywater/reaction_turf(turf/T, reac_volume)
..()
@@ -257,13 +252,12 @@
/datum/reagent/fuel/unholywater //if you somehow managed to extract this from someone, dont splash it on yourself and have a smoke
name = "Unholy Water"
- id = "unholywater"
description = "Something that shouldn't exist on this plane of existence."
taste_description = "suffering"
/datum/reagent/fuel/unholywater/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
if(method == TOUCH || method == VAPOR)
- M.reagents.add_reagent(id,reac_volume/4)
+ M.reagents.add_reagent(type,reac_volume/4)
return
return ..()
@@ -284,12 +278,11 @@
M.adjustFireLoss(2, 0)
M.adjustOxyLoss(2, 0)
M.adjustBruteLoss(2, 0)
- holder.remove_reagent(id, 1)
+ holder.remove_reagent(type, 1)
return TRUE
/datum/reagent/hellwater //if someone has this in their system they've really pissed off an eldrich god
name = "Hell Water"
- id = "hell_water"
description = "YOUR FLESH! IT BURNS!"
taste_description = "burning"
@@ -299,17 +292,15 @@
M.adjustToxLoss(1, 0)
M.adjustFireLoss(1, 0) //Hence the other damages... ain't I a bastard?
M.adjustBrainLoss(5, 150)
- holder.remove_reagent(id, 1)
+ holder.remove_reagent(type, 1)
/datum/reagent/medicine/omnizine/godblood
name = "Godblood"
- id = "godblood"
description = "Slowly heals all damage types. Has a rather high overdose threshold. Glows with mysterious power."
overdose_threshold = 150
/datum/reagent/lube
name = "Space Lube"
- id = "lube"
description = "Lubricant is a substance introduced between two moving surfaces to reduce the friction and wear between them. giggity."
color = "#009CA8" // rgb: 0, 156, 168
taste_description = "cherry" // by popular demand
@@ -322,7 +313,6 @@
/datum/reagent/spraytan
name = "Spray Tan"
- id = "spraytan"
description = "A substance applied to the skin to darken the skin."
color = "#FFC080" // rgb: 255, 196, 128 Bright orange
metabolization_rate = 10 * REAGENTS_METABOLISM // very fast, so it can be applied rapidly. But this changes on an overdose
@@ -412,13 +402,12 @@
else
M.visible_message("
[M] flexes [M.p_their()] arms.")
if(prob(10))
- M.say(pick("Shit was SO cash.", "You are everything bad in the world.", "What sports do you play, other than 'jack off to naked drawn Japanese people?'", "Don’t be a stranger. Just hit me with your best shot.", "My name is John and I hate every single one of you."), forced = "spraytan")
+ M.say(pick("Shit was SO cash.", "You are everything bad in the world.", "What sports do you play, other than 'jack off to naked drawn Japanese people?'", "Don???t be a stranger. Just hit me with your best shot.", "My name is John and I hate every single one of you."), forced = /datum/reagent/spraytan)
..()
return
/datum/reagent/mutationtoxin
name = "Stable Mutation Toxin"
- id = "stablemutationtoxin"
description = "A humanizing toxin."
color = "#5EFF3B" //RGB: 94, 255, 59
metabolization_rate = INFINITY //So it instantly removes all of itself
@@ -449,7 +438,6 @@
/datum/reagent/mutationtoxin/classic //The one from plasma on green slimes
name = "Mutation Toxin"
- id = "mutationtoxin"
description = "A corruptive toxin."
color = "#13BC5E" // rgb: 19, 188, 94
race = /datum/species/jelly/slime
@@ -457,14 +445,12 @@
/datum/reagent/mutationtoxin/felinid
name = "Felinid Mutation Toxin"
- id = "felinidmutationtoxin"
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/human/felinid
mutationtext = "
The pain subsides. You feel... like a degenerate."
/datum/reagent/mutationtoxin/lizard
name = "Lizard Mutation Toxin"
- id = "lizardmutationtoxin"
description = "A lizarding toxin."
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/lizard
@@ -472,7 +458,6 @@
/datum/reagent/mutationtoxin/fly
name = "Fly Mutation Toxin"
- id = "flymutationtoxin"
description = "An insectifying toxin."
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/fly
@@ -480,7 +465,6 @@
/datum/reagent/mutationtoxin/moth
name = "Moth Mutation Toxin"
- id = "mothmutationtoxin"
description = "A glowing toxin."
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/moth
@@ -488,7 +472,6 @@
/datum/reagent/mutationtoxin/pod
name = "Podperson Mutation Toxin"
- id = "podmutationtoxin"
description = "A vegetalizing toxin."
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/pod
@@ -496,7 +479,6 @@
/datum/reagent/mutationtoxin/jelly
name = "Imperfect Mutation Toxin"
- id = "jellymutationtoxin"
description = "An jellyfying toxin."
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/jelly
@@ -504,7 +486,6 @@
/datum/reagent/mutationtoxin/golem
name = "Golem Mutation Toxin"
- id = "golemmutationtoxin"
description = "A crystal toxin."
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/golem/random
@@ -512,7 +493,6 @@
/datum/reagent/mutationtoxin/abductor
name = "Abductor Mutation Toxin"
- id = "abductormutationtoxin"
description = "An alien toxin."
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/abductor
@@ -520,7 +500,6 @@
/datum/reagent/mutationtoxin/android
name = "Android Mutation Toxin"
- id = "androidmutationtoxin"
description = "A robotic toxin."
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/android
@@ -530,7 +509,6 @@
//BLACKLISTED RACES
/datum/reagent/mutationtoxin/skeleton
name = "Skeleton Mutation Toxin"
- id = "skeletonmutationtoxin"
description = "A scary toxin."
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/skeleton
@@ -538,7 +516,6 @@
/datum/reagent/mutationtoxin/zombie
name = "Zombie Mutation Toxin"
- id = "zombiemutationtoxin"
description = "An undead toxin."
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/zombie //Not the infectious kind. The days of xenobio zombie outbreaks are long past.
@@ -546,7 +523,6 @@
/datum/reagent/mutationtoxin/ash
name = "Ash Mutation Toxin"
- id = "ashmutationtoxin"
description = "An ashen toxin."
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/lizard/ashwalker
@@ -556,7 +532,6 @@
//DANGEROUS RACES
/datum/reagent/mutationtoxin/shadow
name = "Shadow Mutation Toxin"
- id = "shadowmutationtoxin"
description = "A dark toxin."
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/shadow
@@ -564,7 +539,6 @@
/datum/reagent/mutationtoxin/plasma
name = "Plasma Mutation Toxin"
- id = "plasmamutationtoxin"
description = "A plasma-based toxin."
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/plasmaman
@@ -572,7 +546,6 @@
/datum/reagent/slime_toxin
name = "Slime Mutation Toxin"
- id = "slime_toxin"
description = "A toxin that turns organic material into slime."
color = "#5EFF3B" //RGB: 94, 255, 59
taste_description = "slime"
@@ -589,7 +562,7 @@
to_chat(H, "
Your jelly shifts and morphs, turning you into another subspecies!")
var/species_type = pick(subtypesof(/datum/species/jelly))
H.set_species(species_type)
- H.reagents.del_reagent(id)
+ H.reagents.del_reagent(type)
switch(current_cycle)
if(1 to 6)
@@ -604,12 +577,11 @@
if(20 to INFINITY)
var/species_type = pick(subtypesof(/datum/species/jelly))
H.set_species(species_type)
- H.reagents.del_reagent(id)
+ H.reagents.del_reagent(type)
to_chat(H, "
You've become \a jellyperson!")
/datum/reagent/mulligan
name = "Mulligan Toxin"
- id = "mulligan"
description = "This toxin will rapidly change the DNA of human beings. Commonly used by Syndicate spies and assassins in need of an emergency ID change."
color = "#5EFF3B" //RGB: 94, 255, 59
metabolization_rate = INFINITY
@@ -625,7 +597,6 @@
/datum/reagent/aslimetoxin
name = "Advanced Mutation Toxin"
- id = "amutationtoxin"
description = "An advanced corruptive toxin produced by slimes."
color = "#13BC5E" // rgb: 19, 188, 94
taste_description = "slime"
@@ -636,7 +607,6 @@
/datum/reagent/gluttonytoxin
name = "Gluttony's Blessing"
- id = "gluttonytoxin"
description = "An advanced corruptive toxin produced by something terrible."
color = "#5EFF3B" //RGB: 94, 255, 59
can_synth = FALSE
@@ -647,7 +617,6 @@
/datum/reagent/serotrotium
name = "Serotrotium"
- id = "serotrotium"
description = "A chemical compound that promotes concentrated production of the serotonin neurotransmitter in humans."
color = "#202040" // rgb: 20, 20, 40
metabolization_rate = 0.25 * REAGENTS_METABOLISM
@@ -661,7 +630,6 @@
/datum/reagent/oxygen
name = "Oxygen"
- id = "oxygen"
description = "A colorless, odorless gas. Grows on trees but is still pretty valuable."
reagent_state = GAS
color = "#808080" // rgb: 128, 128, 128
@@ -681,7 +649,6 @@
/datum/reagent/copper
name = "Copper"
- id = "copper"
description = "A highly ductile metal. Things made out of copper aren't very durable, but it makes a decent material for electrical wiring."
reagent_state = SOLID
color = "#6E3B08" // rgb: 110, 59, 8
@@ -696,7 +663,6 @@
/datum/reagent/nitrogen
name = "Nitrogen"
- id = "nitrogen"
description = "A colorless, odorless, tasteless gas. A simple asphyxiant that can silently displace vital oxygen."
reagent_state = GAS
color = "#808080" // rgb: 128, 128, 128
@@ -716,7 +682,6 @@
/datum/reagent/hydrogen
name = "Hydrogen"
- id = "hydrogen"
description = "A colorless, odorless, nonmetallic, tasteless, highly combustible diatomic gas."
reagent_state = GAS
color = "#808080" // rgb: 128, 128, 128
@@ -724,7 +689,6 @@
/datum/reagent/potassium
name = "Potassium"
- id = "potassium"
description = "A soft, low-melting solid that can easily be cut with a knife. Reacts violently with water."
reagent_state = SOLID
color = "#A0A0A0" // rgb: 160, 160, 160
@@ -732,7 +696,6 @@
/datum/reagent/mercury
name = "Mercury"
- id = "mercury"
description = "A curious metal that's a liquid at room temperature. Neurodegenerative and very bad for the mind."
color = "#484848" // rgb: 72, 72, 72A
taste_mult = 0 // apparently tasteless.
@@ -747,7 +710,6 @@
/datum/reagent/sulfur
name = "Sulfur"
- id = "sulfur"
description = "A sickly yellow solid mostly known for its nasty smell. It's actually much more helpful than it looks in biochemisty."
reagent_state = SOLID
color = "#BF8C00" // rgb: 191, 140, 0
@@ -755,7 +717,6 @@
/datum/reagent/carbon
name = "Carbon"
- id = "carbon"
description = "A crumbly black solid that, while unexciting on a physical level, forms the base of all known life. Kind of a big deal."
reagent_state = SOLID
color = "#1C1300" // rgb: 30, 20, 0
@@ -769,7 +730,6 @@
/datum/reagent/chlorine
name = "Chlorine"
- id = "chlorine"
description = "A pale yellow gas that's well known as an oxidizer. While it forms many harmless molecules in its elemental form it is far from harmless."
reagent_state = GAS
color = "#808080" // rgb: 128, 128, 128
@@ -782,7 +742,6 @@
/datum/reagent/fluorine
name = "Fluorine"
- id = "fluorine"
description = "A comically-reactive chemical element. The universe does not want this stuff to exist in this form in the slightest."
reagent_state = GAS
color = "#808080" // rgb: 128, 128, 128
@@ -795,7 +754,6 @@
/datum/reagent/sodium
name = "Sodium"
- id = "sodium"
description = "A soft silver metal that can easily be cut with a knife. It's not salt just yet, so refrain from putting in on your chips."
reagent_state = SOLID
color = "#808080" // rgb: 128, 128, 128
@@ -803,7 +761,6 @@
/datum/reagent/phosphorus
name = "Phosphorus"
- id = "phosphorus"
description = "A ruddy red powder that burns readily. Though it comes in many colors, the general theme is always the same."
reagent_state = SOLID
color = "#832828" // rgb: 131, 40, 40
@@ -811,7 +768,6 @@
/datum/reagent/lithium
name = "Lithium"
- id = "lithium"
description = "A silver metal, its claim to fame is its remarkably low density. Using it is a bit too effective in calming oneself down."
reagent_state = SOLID
color = "#808080" // rgb: 128, 128, 128
@@ -826,14 +782,12 @@
/datum/reagent/glycerol
name = "Glycerol"
- id = "glycerol"
description = "Glycerol is a simple polyol compound. Glycerol is sweet-tasting and of low toxicity."
color = "#808080" // rgb: 128, 128, 128
taste_description = "sweetness"
/datum/reagent/space_cleaner/sterilizine
name = "Sterilizine"
- id = "sterilizine"
description = "Sterilizes wounds in preparation for surgery."
color = "#C8A5DC" // rgb: 200, 165, 220
taste_description = "bitterness"
@@ -848,7 +802,6 @@
/datum/reagent/iron
name = "Iron"
- id = "iron"
description = "Pure iron is a metal."
reagent_state = SOLID
taste_description = "iron"
@@ -863,12 +816,11 @@
/datum/reagent/iron/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
if(M.has_bane(BANE_IRON)) //If the target is weak to cold iron, then poison them.
if(holder && holder.chem_temp < 100) // COLD iron.
- M.reagents.add_reagent("toxin", reac_volume)
+ M.reagents.add_reagent(/datum/reagent/toxin, reac_volume)
..()
/datum/reagent/gold
name = "Gold"
- id = "gold"
description = "Gold is a dense, soft, shiny metal and the most malleable and ductile metal known."
reagent_state = SOLID
color = "#F7C430" // rgb: 247, 196, 48
@@ -876,7 +828,6 @@
/datum/reagent/silver
name = "Silver"
- id = "silver"
description = "A soft, white, lustrous transition metal, it has the highest electrical conductivity of any element and the highest thermal conductivity of any metal."
reagent_state = SOLID
color = "#D0D0D0" // rgb: 208, 208, 208
@@ -884,12 +835,11 @@
/datum/reagent/silver/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
if(M.has_bane(BANE_SILVER))
- M.reagents.add_reagent("toxin", reac_volume)
+ M.reagents.add_reagent(/datum/reagent/toxin, reac_volume)
..()
/datum/reagent/uranium
name ="Uranium"
- id = "uranium"
description = "A silvery-white metallic chemical element in the actinide series, weakly radioactive."
reagent_state = SOLID
color = "#B8B8C0" // rgb: 184, 184, 192
@@ -906,11 +856,10 @@
var/obj/effect/decal/cleanable/greenglow/GG = locate() in T.contents
if(!GG)
GG = new/obj/effect/decal/cleanable/greenglow(T)
- GG.reagents.add_reagent(id, reac_volume)
+ GG.reagents.add_reagent(type, reac_volume)
/datum/reagent/uranium/radium
name = "Radium"
- id = "radium"
description = "Radium is an alkaline earth metal. It is extremely radioactive."
reagent_state = SOLID
color = "#C7C7C7" // rgb: 199,199,199
@@ -919,7 +868,6 @@
/datum/reagent/bluespace
name = "Bluespace Dust"
- id = "bluespace"
description = "A dust composed of microscopic bluespace crystals, with minor space-warping properties."
reagent_state = SOLID
color = "#0000CC"
@@ -943,7 +891,6 @@
/datum/reagent/aluminium
name = "Aluminium"
- id = "aluminium"
description = "A silvery white and ductile member of the boron group of chemical elements."
reagent_state = SOLID
color = "#A8A8A8" // rgb: 168, 168, 168
@@ -951,7 +898,6 @@
/datum/reagent/silicon
name = "Silicon"
- id = "silicon"
description = "A tetravalent metalloid, silicon is less reactive than its chemical analog carbon."
reagent_state = SOLID
color = "#A8A8A8" // rgb: 168, 168, 168
@@ -959,7 +905,6 @@
/datum/reagent/fuel
name = "Welding fuel"
- id = "welding_fuel"
description = "Required for welders. Flammable."
color = "#660000" // rgb: 102, 0, 0
taste_description = "gross metal"
@@ -980,7 +925,6 @@
/datum/reagent/space_cleaner
name = "Space cleaner"
- id = "cleaner"
description = "A compound used to clean things. Now with 50% more sodium hypochlorite!"
color = "#A5F0EE" // rgb: 165, 240, 238
taste_description = "sourness"
@@ -1039,7 +983,6 @@
/datum/reagent/space_cleaner/ez_clean
name = "EZ Clean"
- id = "ez_clean"
description = "A powerful, acidic cleaner sold by Waffle Co. Affects organic matter while leaving other objects unaffected."
metabolization_rate = 1.5 * REAGENTS_METABOLISM
taste_description = "acid"
@@ -1058,7 +1001,6 @@
/datum/reagent/cryptobiolin
name = "Cryptobiolin"
- id = "cryptobiolin"
description = "Cryptobiolin causes confusion and dizziness."
color = "#C8A5DC" // rgb: 200, 165, 220
metabolization_rate = 1.5 * REAGENTS_METABOLISM
@@ -1073,7 +1015,6 @@
/datum/reagent/impedrezene
name = "Impedrezene"
- id = "impedrezene"
description = "Impedrezene is a narcotic that impedes one's ability by slowing down the higher brain cell functions."
color = "#C8A5DC" // rgb: 200, 165, 220A
taste_description = "numbness"
@@ -1090,7 +1031,6 @@
/datum/reagent/nanomachines
name = "Nanomachines"
- id = "nanomachines"
description = "Microscopic construction robots."
color = "#535E66" // rgb: 83, 94, 102
can_synth = FALSE
@@ -1102,7 +1042,6 @@
/datum/reagent/xenomicrobes
name = "Xenomicrobes"
- id = "xenomicrobes"
description = "Microbes with an entirely alien cellular structure."
color = "#535E66" // rgb: 83, 94, 102
can_synth = FALSE
@@ -1114,7 +1053,6 @@
/datum/reagent/fungalspores
name = "Tubercle bacillus Cosmosis microbes"
- id = "fungalspores"
description = "Active fungal spores."
color = "#92D17D" // rgb: 146, 209, 125
can_synth = FALSE
@@ -1126,7 +1064,6 @@
/datum/reagent/snail
name = "Agent-S"
- id = "snailserum"
description = "Virological agent that infects the subject with Gastrolosis."
color = "#003300" // rgb(0, 51, 0)
taste_description = "goo"
@@ -1138,14 +1075,12 @@
/datum/reagent/fluorosurfactant//foam precursor
name = "Fluorosurfactant"
- id = "fluorosurfactant"
description = "A perfluoronated sulfonic acid that forms a foam when mixed with water."
color = "#9E6B38" // rgb: 158, 107, 56
taste_description = "metal"
/datum/reagent/foaming_agent// Metal foaming agent. This is lithium hydride. Add other recipes (e.g. LiH + H2O -> LiOH + H2) eventually.
name = "Foaming agent"
- id = "foaming_agent"
description = "An agent that yields metallic foam when mixed with light metal and a strong acid."
reagent_state = SOLID
color = "#664B63" // rgb: 102, 75, 99
@@ -1153,7 +1088,6 @@
/datum/reagent/smart_foaming_agent //Smart foaming agent. Functions similarly to metal foam, but conforms to walls.
name = "Smart foaming agent"
- id = "smart_foaming_agent"
description = "An agent that yields metallic foam which conforms to area boundaries when mixed with light metal and a strong acid."
reagent_state = SOLID
color = "#664B63" // rgb: 102, 75, 99
@@ -1161,7 +1095,6 @@
/datum/reagent/ammonia
name = "Ammonia"
- id = "ammonia"
description = "A caustic substance commonly used in fertilizer or household cleaners."
reagent_state = GAS
color = "#404030" // rgb: 64, 64, 48
@@ -1169,14 +1102,12 @@
/datum/reagent/diethylamine
name = "Diethylamine"
- id = "diethylamine"
description = "A secondary amine, mildly corrosive."
color = "#604030" // rgb: 96, 64, 48
taste_description = "iron"
/datum/reagent/carbondioxide
name = "Carbon Dioxide"
- id = "co2"
reagent_state = GAS
description = "A gas commonly produced by burning carbon fuels. You're constantly producing this in your lungs."
color = "#B0B0B0" // rgb : 192, 192, 192
@@ -1196,7 +1127,6 @@
/datum/reagent/nitrous_oxide
name = "Nitrous Oxide"
- id = "nitrous_oxide"
description = "A potent oxidizer used as fuel in rockets and as an anaesthetic during surgery."
reagent_state = LIQUID
metabolization_rate = 1.5 * REAGENTS_METABOLISM
@@ -1230,7 +1160,6 @@
/datum/reagent/stimulum
name = "Stimulum"
- id = "stimulum"
description = "An unstable experimental gas that greatly increases the energy of those that inhale it"
reagent_state = GAS
metabolization_rate = REAGENTS_METABOLISM * 0.5 // Because stimulum/nitryl are handled through gas breathing, metabolism must be lower for breathcode to keep up
@@ -1239,12 +1168,12 @@
/datum/reagent/stimulum/on_mob_add(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)
/datum/reagent/stimulum/on_mob_delete(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)
..()
/datum/reagent/stimulum/on_mob_life(mob/living/carbon/M)
@@ -1253,7 +1182,6 @@
/datum/reagent/nitryl
name = "Nitryl"
- id = "no2"
description = "A highly reactive gas that makes you feel faster"
reagent_state = GAS
metabolization_rate = REAGENTS_METABOLISM * 0.5 // Because stimulum/nitryl are handled through gas breathing, metabolism must be lower for breathcode to keep up
@@ -1262,10 +1190,10 @@
/datum/reagent/nitryl/on_mob_add(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/nitryl/on_mob_delete(mob/living/L)
- L.remove_movespeed_modifier(id)
+ L.remove_movespeed_modifier(type)
..()
/////////////////////////Coloured Crayon Powder////////////////////////////
@@ -1274,7 +1202,6 @@
/datum/reagent/colorful_reagent/crayonpowder
name = "Crayon Powder"
- id = "crayon powder"
var/colorname = "none"
description = "A powder made by grinding down crayons, good for colouring chemical reagents."
reagent_state = SOLID
@@ -1287,63 +1214,54 @@
/datum/reagent/colorful_reagent/crayonpowder/red
name = "Red Crayon Powder"
- id = "redcrayonpowder"
colorname = "red"
color = "#DA0000" // red
random_color_list = list("#DA0000")
/datum/reagent/colorful_reagent/crayonpowder/orange
name = "Orange Crayon Powder"
- id = "orangecrayonpowder"
colorname = "orange"
color = "#FF9300" // orange
random_color_list = list("#FF9300")
/datum/reagent/colorful_reagent/crayonpowder/yellow
name = "Yellow Crayon Powder"
- id = "yellowcrayonpowder"
colorname = "yellow"
color = "#FFF200" // yellow
random_color_list = list("#FFF200")
/datum/reagent/colorful_reagent/crayonpowder/green
name = "Green Crayon Powder"
- id = "greencrayonpowder"
colorname = "green"
color = "#A8E61D" // green
random_color_list = list("#A8E61D")
/datum/reagent/colorful_reagent/crayonpowder/blue
name = "Blue Crayon Powder"
- id = "bluecrayonpowder"
colorname = "blue"
color = "#00B7EF" // blue
random_color_list = list("#00B7EF")
/datum/reagent/colorful_reagent/crayonpowder/purple
name = "Purple Crayon Powder"
- id = "purplecrayonpowder"
colorname = "purple"
color = "#DA00FF" // purple
random_color_list = list("#DA00FF")
/datum/reagent/colorful_reagent/crayonpowder/invisible
name = "Invisible Crayon Powder"
- id = "invisiblecrayonpowder"
colorname = "invisible"
color = "#FFFFFF00" // white + no alpha
random_color_list = list(null) //because using the powder color turns things invisible
/datum/reagent/colorful_reagent/crayonpowder/black
name = "Black Crayon Powder"
- id = "blackcrayonpowder"
colorname = "black"
color = "#1C1C1C" // not quite black
random_color_list = list("#404040")
/datum/reagent/colorful_reagent/crayonpowder/white
name = "White Crayon Powder"
- id = "whitecrayonpowder"
colorname = "white"
color = "#FFFFFF" // white
random_color_list = list("#FFFFFF") //doesn't actually change appearance at all
@@ -1355,7 +1273,6 @@
/datum/reagent/plantnutriment
name = "Generic nutriment"
- id = "plantnutriment"
description = "Some kind of nutriment. You can't really tell what it is. You should probably report it, along with how you obtained it."
color = "#000000" // RBG: 0, 0, 0
var/tox_prob = 0
@@ -1369,21 +1286,18 @@
/datum/reagent/plantnutriment/eznutriment
name = "E-Z-Nutrient"
- id = "eznutriment"
description = "Cheap and extremely common type of plant nutriment."
color = "#376400" // RBG: 50, 100, 0
tox_prob = 10
/datum/reagent/plantnutriment/left4zednutriment
name = "Left 4 Zed"
- id = "left4zednutriment"
description = "Unstable nutriment that makes plants mutate more often than usual."
color = "#1A1E4D" // RBG: 26, 30, 77
tox_prob = 25
/datum/reagent/plantnutriment/robustharvestnutriment
name = "Robust Harvest"
- id = "robustharvestnutriment"
description = "Very potent nutriment that prevents plants from mutating."
color = "#9D9D00" // RBG: 157, 157, 0
tox_prob = 15
@@ -1400,7 +1314,6 @@
/datum/reagent/oil
name = "Oil"
- id = "oil"
description = "Burns in a small smoky fire, mostly used to get Ash."
reagent_state = LIQUID
color = "#C8A5DC"
@@ -1408,7 +1321,6 @@
/datum/reagent/stable_plasma
name = "Stable Plasma"
- id = "stable_plasma"
description = "Non-flammable plasma locked into a liquid form that cannot ignite or become gaseous/solid."
reagent_state = LIQUID
color = "#C8A5DC"
@@ -1421,7 +1333,6 @@
/datum/reagent/iodine
name = "Iodine"
- id = "iodine"
description = "Commonly added to table salt as a nutrient. On its own it tastes far less pleasing."
reagent_state = LIQUID
color = "#C8A5DC"
@@ -1429,7 +1340,6 @@
/datum/reagent/carpet
name = "Carpet"
- id = "carpet"
description = "For those that need a more creative way to roll out a red carpet."
reagent_state = LIQUID
color = "#C8A5DC"
@@ -1443,7 +1353,6 @@
/datum/reagent/bromine
name = "Bromine"
- id = "bromine"
description = "A brownish liquid that's highly reactive. Useful for stopping free radicals, but not intended for human consumption."
reagent_state = LIQUID
color = "#C8A5DC"
@@ -1451,7 +1360,6 @@
/datum/reagent/phenol
name = "Phenol"
- id = "phenol"
description = "An aromatic ring of carbon with a hydroxyl group. A useful precursor to some medicines, but has no healing properties on its own."
reagent_state = LIQUID
color = "#C8A5DC"
@@ -1459,7 +1367,6 @@
/datum/reagent/ash
name = "Ash"
- id = "ash"
description = "Supposedly phoenixes rise from these, but you've never seen it."
reagent_state = LIQUID
color = "#C8A5DC"
@@ -1467,7 +1374,6 @@
/datum/reagent/acetone
name = "Acetone"
- id = "acetone"
description = "A slick, slightly carcinogenic liquid. Has a multitude of mundane uses in everyday life."
reagent_state = LIQUID
color = "#C8A5DC"
@@ -1475,7 +1381,6 @@
/datum/reagent/colorful_reagent
name = "Colorful Reagent"
- id = "colorful_reagent"
description = "Thoroughly sample the rainbow."
reagent_state = LIQUID
color = "#C8A5DC"
@@ -1503,7 +1408,6 @@
/datum/reagent/hair_dye
name = "Quantum Hair Dye"
- id = "hair_dye"
description = "Has a high chance of making you look like a mad scientist."
reagent_state = LIQUID
color = "#C8A5DC"
@@ -1520,7 +1424,6 @@
/datum/reagent/barbers_aid
name = "Barber's Aid"
- id = "barbers_aid"
description = "A solution to hair loss across the world."
reagent_state = LIQUID
color = "#C8A5DC"
@@ -1538,7 +1441,6 @@
/datum/reagent/concentrated_barbers_aid
name = "Concentrated Barber's Aid"
- id = "concentrated_barbers_aid"
description = "A concentrated solution to hair loss across the world."
reagent_state = LIQUID
color = "#C8A5DC"
@@ -1554,7 +1456,6 @@
/datum/reagent/saltpetre
name = "Saltpetre"
- id = "saltpetre"
description = "Volatile. Controversial. Third Thing."
reagent_state = LIQUID
color = "#60A584" // rgb: 96, 165, 132
@@ -1562,7 +1463,6 @@
/datum/reagent/lye
name = "Lye"
- id = "lye"
description = "Also known as sodium hydroxide. As a profession making this is somewhat underwhelming."
reagent_state = LIQUID
color = "#FFFFD6" // very very light yellow
@@ -1570,7 +1470,6 @@
/datum/reagent/drying_agent
name = "Drying agent"
- id = "drying_agent"
description = "A desiccant. Can be used to dry things."
reagent_state = LIQUID
color = "#A70FFF"
@@ -1590,51 +1489,43 @@
/datum/reagent/toxin/mutagen/mutagenvirusfood
name = "mutagenic agar"
- id = "mutagenvirusfood"
color = "#A3C00F" // rgb: 163,192,15
taste_description = "sourness"
/datum/reagent/toxin/mutagen/mutagenvirusfood/sugar
name = "sucrose agar"
- id = "sugarvirusfood"
color = "#41B0C0" // rgb: 65,176,192
taste_description = "sweetness"
/datum/reagent/medicine/synaptizine/synaptizinevirusfood
name = "virus rations"
- id = "synaptizinevirusfood"
color = "#D18AA5" // rgb: 209,138,165
taste_description = "bitterness"
/datum/reagent/toxin/plasma/plasmavirusfood
name = "virus plasma"
- id = "plasmavirusfood"
color = "#A69DA9" // rgb: 166,157,169
taste_description = "bitterness"
taste_mult = 1.5
/datum/reagent/toxin/plasma/plasmavirusfood/weak
name = "weakened virus plasma"
- id = "weakplasmavirusfood"
color = "#CEC3C6" // rgb: 206,195,198
taste_description = "bitterness"
taste_mult = 1.5
/datum/reagent/uranium/uraniumvirusfood
name = "decaying uranium gel"
- id = "uraniumvirusfood"
color = "#67ADBA" // rgb: 103,173,186
taste_description = "the inside of a reactor"
/datum/reagent/uranium/uraniumvirusfood/unstable
name = "unstable uranium gel"
- id = "uraniumplasmavirusfood_unstable"
color = "#2FF2CB" // rgb: 47,242,203
taste_description = "the inside of a reactor"
/datum/reagent/uranium/uraniumvirusfood/stable
name = "stable uranium gel"
- id = "uraniumplasmavirusfood_stable"
color = "#04506C" // rgb: 4,80,108
taste_description = "the inside of a reactor"
@@ -1642,7 +1533,6 @@
/datum/reagent/royal_bee_jelly
name = "royal bee jelly"
- id = "royal_bee_jelly"
description = "Royal Bee Jelly, if injected into a Queen Space Bee said bee will split into two bees."
color = "#00ff80"
taste_description = "strange honey"
@@ -1657,7 +1547,6 @@
/datum/reagent/romerol
name = "Romerol"
// the REAL zombie powder
- id = "romerol"
description = "Romerol is a highly experimental bioterror agent \
which causes dormant nodules to be etched into the grey matter of \
the subject. These nodules only become active upon death of the \
@@ -1677,7 +1566,6 @@
/datum/reagent/magillitis
name = "Magillitis"
- id = "magillitis"
description = "An experimental serum which causes rapid muscular growth in Hominidae. Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas."
reagent_state = LIQUID
color = "#00f041"
@@ -1689,7 +1577,6 @@
/datum/reagent/growthserum
name = "Growth Serum"
- id = "growthserum"
description = "A commercial chemical designed to help older men in the bedroom."//not really it just makes you a giant
color = "#ff0000"//strong red. rgb 255, 0, 0
var/current_size = 1
@@ -1721,14 +1608,12 @@
/datum/reagent/plastic_polymers
name = "plastic polymers"
- id = "plastic_polymers"
description = "the petroleum based components of plastic."
color = "#f7eded"
taste_description = "plastic"
/datum/reagent/glitter
name = "generic glitter"
- id = "glitter"
description = "if you can see this description, contact a coder."
color = "#FFFFFF" //pure white
taste_description = "plastic"
@@ -1742,27 +1627,23 @@
/datum/reagent/glitter/pink
name = "pink glitter"
- id = "pink_glitter"
description = "pink sparkles that get everywhere"
color = "#ff8080" //A light pink color
glitter_type = /obj/effect/decal/cleanable/glitter/pink
/datum/reagent/glitter/white
name = "white glitter"
- id = "white_glitter"
description = "white sparkles that get everywhere"
glitter_type = /obj/effect/decal/cleanable/glitter/white
/datum/reagent/glitter/blue
name = "blue glitter"
- id = "blue_glitter"
description = "blue sparkles that get everywhere"
color = "#4040FF" //A blueish color
glitter_type = /obj/effect/decal/cleanable/glitter/blue
/datum/reagent/pax
name = "Pax"
- id = "pax"
description = "A colorless liquid that suppresses violence on the subjects."
color = "#AAAAAA55"
taste_description = "water"
@@ -1770,15 +1651,14 @@
/datum/reagent/pax/on_mob_add(mob/living/L)
..()
- ADD_TRAIT(L, TRAIT_PACIFISM, id)
+ ADD_TRAIT(L, TRAIT_PACIFISM, type)
/datum/reagent/pax/on_mob_delete(mob/living/L)
- REMOVE_TRAIT(L, TRAIT_PACIFISM, id)
+ REMOVE_TRAIT(L, TRAIT_PACIFISM, type)
..()
/datum/reagent/bz_metabolites
name = "BZ metabolites"
- id = "bz_metabolites"
description = "A harmless metabolite of BZ gas"
color = "#FAFF00"
taste_description = "acrid cinnamon"
@@ -1786,11 +1666,11 @@
/datum/reagent/bz_metabolites/on_mob_add(mob/living/L)
..()
- ADD_TRAIT(L, CHANGELING_HIVEMIND_MUTE, id)
+ ADD_TRAIT(L, CHANGELING_HIVEMIND_MUTE, type)
/datum/reagent/bz_metabolites/on_mob_delete(mob/living/L)
..()
- REMOVE_TRAIT(L, CHANGELING_HIVEMIND_MUTE, id)
+ REMOVE_TRAIT(L, CHANGELING_HIVEMIND_MUTE, type)
/datum/reagent/bz_metabolites/on_mob_life(mob/living/L)
if(L.mind)
@@ -1801,7 +1681,6 @@
/datum/reagent/pax/peaceborg
name = "synth-pax"
- id = "synthpax"
description = "A colorless liquid that suppresses violence on the subjects. Cheaper to synthetize, but wears out faster than normal Pax."
metabolization_rate = 1.5 * REAGENTS_METABOLISM
@@ -1810,7 +1689,6 @@
/datum/reagent/peaceborg/confuse
name = "Dizzying Solution"
- id = "dizzysolution"
description = "Makes the target off balance and dizzy"
metabolization_rate = 1.5 * REAGENTS_METABOLISM
taste_description = "dizziness"
@@ -1827,7 +1705,6 @@
/datum/reagent/peaceborg/tire
name = "Tiring Solution"
- id = "tiresolution"
description = "An extremely weak stamina-toxin that tires out the target. Completely harmless."
metabolization_rate = 1.5 * REAGENTS_METABOLISM
taste_description = "tiredness"
@@ -1843,7 +1720,6 @@
/datum/reagent/tranquility
name = "Tranquility"
- id = "tranquility"
description = "A highly mutative liquid of unknown origin."
color = "#9A6750" //RGB: 154, 103, 80
taste_description = "inner peace"
diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
index a6cb066b780..f16bfec6faa 100644
--- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
@@ -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,14 +17,12 @@
/datum/reagent/nitroglycerin
name = "Nitroglycerin"
- id = "nitroglycerin"
description = "Nitroglycerin is a heavy, colorless, oily, explosive liquid obtained by nitrating glycerol."
color = "#808080" // rgb: 128, 128, 128
taste_description = "oil"
/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"
@@ -33,7 +30,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"
@@ -77,7 +73,6 @@
/datum/reagent/sorium
name = "Sorium"
- id = "sorium"
description = "Sends everything flying from the detonation point."
reagent_state = LIQUID
color = "#5A64C8"
@@ -85,7 +80,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"
@@ -93,7 +87,6 @@
/datum/reagent/blackpowder
name = "Black Powder"
- id = "blackpowder"
description = "Explodes. Violently."
reagent_state = LIQUID
color = "#000000"
@@ -114,7 +107,6 @@
/datum/reagent/flash_powder
name = "Flash Powder"
- id = "flash_powder"
description = "Makes a very bright flash."
reagent_state = LIQUID
color = "#C8C8C8"
@@ -122,7 +114,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"
@@ -130,7 +121,6 @@
/datum/reagent/sonic_powder
name = "Sonic Powder"
- id = "sonic_powder"
description = "Makes a deafening noise."
reagent_state = LIQUID
color = "#C8C8C8"
@@ -138,7 +128,6 @@
/datum/reagent/phlogiston
name = "Phlogiston"
- id = "phlogiston"
description = "Catches you on fire and makes you ignite."
reagent_state = LIQUID
color = "#FA00AF"
@@ -160,7 +149,6 @@
/datum/reagent/napalm
name = "Napalm"
- id = "napalm"
description = "Very flammable."
reagent_state = LIQUID
color = "#FA00AF"
@@ -177,7 +165,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
@@ -185,8 +172,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)
..()
@@ -197,21 +184,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
@@ -229,7 +214,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"
@@ -248,7 +232,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"
diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
index 32440405f18..62264588997 100644
--- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
@@ -3,7 +3,6 @@
/datum/reagent/toxin
name = "Toxin"
- id = "toxin"
description = "A toxic chemical."
color = "#CF3600" // rgb: 207, 54, 0
taste_description = "bitterness"
@@ -19,7 +18,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
@@ -55,7 +52,6 @@
/datum/reagent/toxin/plasma
name = "Plasma"
- id = "plasma"
description = "Plasma in its liquid form."
taste_description = "bitterness"
specific_heat = SPECIFIC_HEAT_PLASMA
@@ -64,8 +60,8 @@
toxpwr = 3
/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 ..()
@@ -89,7 +85,6 @@
/datum/reagent/toxin/lexorin
name = "Lexorin"
- id = "lexorin"
description = "A powerful poison used to stop respiration."
color = "#7DC3A0"
toxpwr = 0
@@ -110,7 +105,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
@@ -129,7 +123,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
@@ -142,7 +135,6 @@
/datum/reagent/toxin/carpotoxin
name = "Carpotoxin"
- id = "carpotoxin"
description = "A deadly neurotoxin produced by the dreaded spess carp."
silent_toxin = TRUE
color = "#003333" // rgb: 0, 51, 51
@@ -151,7 +143,6 @@
/datum/reagent/toxin/zombiepowder
name = "Zombie Powder"
- id = "zombiepowder"
description = "A strong neurotoxin that puts the subject into a death-like state."
silent_toxin = TRUE
reagent_state = SOLID
@@ -161,10 +152,10 @@
/datum/reagent/toxin/zombiepowder/on_mob_add(mob/living/L)
..()
- L.fakedeath(id)
+ L.fakedeath(type)
/datum/reagent/toxin/zombiepowder/on_mob_delete(mob/living/L)
- L.cure_fakedeath(id)
+ L.cure_fakedeath(type)
..()
/datum/reagent/toxin/zombiepowder/on_mob_life(mob/living/carbon/M)
@@ -174,7 +165,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
@@ -183,10 +173,10 @@
/datum/reagent/toxin/ghoulpowder/on_mob_add(mob/living/L)
..()
- ADD_TRAIT(L, TRAIT_FAKEDEATH, id)
+ ADD_TRAIT(L, TRAIT_FAKEDEATH, type)
/datum/reagent/toxin/ghoulpowder/on_mob_delete(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)
@@ -196,7 +186,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
@@ -208,7 +197,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
@@ -234,13 +222,11 @@
/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
/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
@@ -253,7 +239,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
@@ -266,7 +251,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
@@ -279,7 +263,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."
silent_toxin = TRUE
reagent_state = SOLID
@@ -303,7 +286,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
@@ -323,7 +305,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
@@ -331,7 +312,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
@@ -339,7 +319,6 @@
/datum/reagent/toxin/mutetoxin //the new zombie powder.
name = "Mute Toxin"
- id = "mutetoxin"
description = "A nonlethal poison that inhibits speech in its victim."
silent_toxin = TRUE
color = "#F0F8FF" // rgb: 240, 248, 255
@@ -352,7 +331,6 @@
/datum/reagent/toxin/staminatoxin
name = "Tirizene"
- id = "tirizene"
description = "A nonlethal poison that causes extreme fatigue and weakness in its victim."
silent_toxin = TRUE
color = "#6E2828"
@@ -367,7 +345,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"
@@ -380,7 +357,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."
silent_toxin = TRUE
reagent_state = LIQUID
@@ -415,7 +391,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."
silent_toxin = TRUE
reagent_state = LIQUID
@@ -425,14 +400,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(/datum/reagent/toxin/formaldehyde, 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"
@@ -444,14 +418,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(/datum/reagent/toxin/venom, 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"
@@ -469,7 +442,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"
@@ -487,7 +459,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"
@@ -497,7 +468,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."
silent_toxin = TRUE
reagent_state = LIQUID
@@ -507,7 +477,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))
@@ -523,14 +493,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(/datum/reagent/toxin/itching_powder,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."
silent_toxin = TRUE
reagent_state = LIQUID
@@ -562,7 +531,6 @@
/datum/reagent/toxin/pancuronium
name = "Pancuronium"
- id = "pancuronium"
description = "An undetectable toxin that swiftly incapacitates its victim. May also cause breathing failure."
silent_toxin = TRUE
reagent_state = LIQUID
@@ -581,7 +549,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."
silent_toxin = TRUE
reagent_state = LIQUID
@@ -598,7 +565,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."
silent_toxin = TRUE
reagent_state = LIQUID
@@ -613,7 +579,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."
silent_toxin = TRUE
reagent_state = LIQUID
@@ -629,7 +594,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."
silent_toxin = TRUE
taste_description = "mothballs"
@@ -647,7 +611,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"
@@ -660,7 +623,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
@@ -675,7 +637,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)
. = ..()
@@ -686,7 +648,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"
@@ -702,7 +663,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."
silent_toxin = TRUE
reagent_state = LIQUID
@@ -721,7 +681,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."
silent_toxin = TRUE
reagent_state = LIQUID
@@ -749,7 +708,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."
silent_toxin = TRUE
reagent_state = LIQUID
@@ -786,7 +744,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"
@@ -795,10 +752,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"))
+ if(holder.has_reagent(/datum/reagent/medicine/calomel) || holder.has_reagent(/datum/reagent/medicine/pen_acid))
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
@@ -806,7 +763,6 @@
/datum/reagent/toxin/acid
name = "Sulphuric acid"
- id = "sacid"
description = "A strong mineral acid with the molecular formula H2SO4."
color = "#00FF32"
toxpwr = 1
@@ -840,7 +796,6 @@
/datum/reagent/toxin/acid/fluacid
name = "Fluorosulfuric acid"
- id = "facid"
description = "Fluorosulfuric acid is an extremely corrosive chemical substance."
color = "#5050FF"
toxpwr = 2
@@ -853,7 +808,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.
@@ -864,7 +818,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.Paralyze(20, 0)
@@ -873,7 +827,6 @@
/datum/reagent/toxin/mimesbane
name = "Mime's Bane"
- id = "mimesbane"
description = "A nonlethal neurotoxin that interferes with the victim's ability to gesture."
silent_toxin = TRUE
color = "#F0F8FF" // rgb: 240, 248, 255
@@ -881,14 +834,13 @@
taste_description = "stillness"
/datum/reagent/toxin/mimesbane/on_mob_add(mob/living/L)
- ADD_TRAIT(L, TRAIT_EMOTEMUTE, id)
+ ADD_TRAIT(L, TRAIT_EMOTEMUTE, type)
/datum/reagent/toxin/mimesbane/on_mob_delete(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."
silent_toxin = TRUE //no point spamming them even more.
color = "#AAAAAA77" //RGBA: 170, 170, 170, 77
@@ -897,7 +849,7 @@
overdose_threshold = 50
/datum/reagent/toxin/bonehurtingjuice/on_mob_add(mob/living/carbon/M)
- M.say("oof ouch my bones", forced = "bonehurtingjuice")
+ M.say("oof ouch my bones", forced = /datum/reagent/toxin/bonehurtingjuice)
/datum/reagent/toxin/bonehurtingjuice/on_mob_life(mob/living/carbon/M)
M.adjustStaminaLoss(15, 0)
@@ -907,10 +859,10 @@
switch(rand(1, 3))
if(1)
var/list/possible_says = list("oof.", "ouch!", "my bones.", "oof ouch.", "oof ouch my bones.")
- M.say(pick(possible_says), forced = "bonehurtingjuice")
+ M.say(pick(possible_says), forced = /datum/reagent/toxin/bonehurtingjuice)
if(2)
var/list/possible_mes = list("oofs softly.", "looks like their bones hurt.", "grimaces, as though their bones hurt.")
- M.say("*custom " + pick(possible_mes), forced = "bonehurtingjuice")
+ M.say("*custom " + pick(possible_mes), forced = /datum/reagent/toxin/bonehurtingjuice)
if(3)
to_chat(M, "
Your bones hurt!")
return ..()
@@ -933,15 +885,15 @@
bp.receive_damage(0, 0, 200)
playsound(M, get_sfx("desceration"), 50, TRUE, -1)
M.visible_message("
[M]'s bones hurt too much!!", "
Your bones hurt too much!!")
- M.say("OOF!!", forced = "bonehurtingjuice")
+ M.say("OOF!!", forced = /datum/reagent/toxin/bonehurtingjuice)
else //SUCH A LUST FOR REVENGE!!!
to_chat(M, "
A phantom limb hurts!")
- M.say("Why are we still here, just to suffer?", forced = "bonehurtingjuice")
+ M.say("Why are we still here, just to suffer?", forced = /datum/reagent/toxin/bonehurtingjuice)
else //you just want to socialize
if(bp)
playsound(M, get_sfx("desceration"), 50, TRUE, -1)
M.visible_message("
[M] rattles loudly and flails around!!", "
Your bones hurt so much that your missing muscles spasm!!")
- M.say("OOF!!", forced="bonehurtingjuice")
+ M.say("OOF!!", forced=/datum/reagent/toxin/bonehurtingjuice)
bp.receive_damage(200, 0, 0) //But I don't think we should
else
to_chat(M, "
Your missing arm aches from wherever you left it.")
diff --git a/code/modules/reagents/chemistry/recipes/drugs.dm b/code/modules/reagents/chemistry/recipes/drugs.dm
index 716d86fc800..7049c3da0ea 100644
--- a/code/modules/reagents/chemistry/recipes/drugs.dm
+++ b/code/modules/reagents/chemistry/recipes/drugs.dm
@@ -1,49 +1,49 @@
/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)
+ name = /datum/reagent/drug/methamphetamine
+ 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)
+ name = /datum/reagent/drug/bath_salts
+ 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)
+ name = /datum/reagent/drug/aranesp
+ 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)
diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm
index 2372c99c0d4..5465e9e252c 100644
--- a/code/modules/reagents/chemistry/recipes/medicine.dm
+++ b/code/modules/reagents/chemistry/recipes/medicine.dm
@@ -1,266 +1,266 @@
/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)
+ name = /datum/reagent/medicine/inacusiate
+ 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 = /datum/reagent/medicine/mine_salve
+ 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/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/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/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/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/antihol
- name = "antihol"
- id = "antihol"
- results = list("antihol" = 3)
- required_reagents = list("ethanol" = 1, "charcoal" = 1, "copper" = 1)
+ name = /datum/reagent/medicine/antihol
+ 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/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)
diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm
index 15643d57120..2e28732ef27 100644
--- a/code/modules/reagents/chemistry/recipes/others.dm
+++ b/code/modules/reagents/chemistry/recipes/others.dm
@@ -1,56 +1,56 @@
/datum/chemical_reaction/sterilizine
name = "Sterilizine"
- id = "sterilizine"
- results = list("sterilizine" = 3)
- required_reagents = list("ethanol" = 1, "charcoal" = 1, "chlorine" = 1)
+ id = /datum/reagent/space_cleaner/sterilizine
+ 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 = /datum/reagent/spraytan
+ 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)
+ id = /datum/reagent/consumable/sodiumchloride
+ 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)
@@ -72,13 +72,13 @@
/datum/chemical_reaction/capsaicincondensation
name = "Capsaicincondensation"
id = "capsaicincondensation"
- results = list("condensedcapsaicin" = 5)
- required_reagents = list("capsaicin" = 1, "ethanol" = 5)
+ 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
@@ -90,7 +90,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
@@ -102,7 +102,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)
@@ -114,99 +114,99 @@
/datum/chemical_reaction/carbondioxide
name = "Direct Carbon Oxidation"
id = "burningcarbon"
- results = list("co2" = 3)
- required_reagents = list("carbon" = 1, "oxygen" = 2)
+ 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)
+ id = /datum/reagent/mulligan
+ results = list(/datum/reagent/mulligan = 1)
+ required_reagents = list(/datum/reagent/slime_toxin = 1, /datum/reagent/toxin/mutagen = 1)
////////////////////////////////// VIROLOGY //////////////////////////////////////////
/datum/chemical_reaction/virus_food
name = "Virus Food"
- id = "virusfood"
- results = list("virusfood" = 15)
- required_reagents = list("water" = 5, "milk" = 5)
+ id = /datum/reagent/consumable/virus_food
+ 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)
+ id = /datum/reagent/toxin/mutagen/mutagenvirusfood
+ 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)
+ id = /datum/reagent/medicine/synaptizine/synaptizinevirusfood
+ 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)
+ 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
@@ -223,7 +223,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
@@ -231,7 +231,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
@@ -239,7 +239,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
@@ -247,7 +247,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
@@ -255,7 +255,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
@@ -263,7 +263,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
@@ -271,7 +271,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
@@ -279,7 +279,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
@@ -287,7 +287,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
@@ -295,7 +295,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
@@ -303,7 +303,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
@@ -311,8 +311,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)
@@ -325,8 +325,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)
@@ -344,13 +344,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)
@@ -367,7 +367,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)
@@ -384,7 +384,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)
@@ -398,7 +398,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)
@@ -412,15 +412,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."
@@ -428,89 +428,89 @@
/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)
+ name = /datum/reagent/acetone
+ 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/carpet
- name = "carpet"
- id = "carpet"
- results = list("carpet" = 2)
- required_reagents = list("space_drugs" = 1, "blood" = 1)
+ name = /datum/reagent/carpet
+ 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/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)
+ name = /datum/reagent/phenol
+ 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)
+ name = /datum/reagent/colorful_reagent
+ id = /datum/reagent/colorful_reagent
+ results = list(/datum/reagent/colorful_reagent = 5)
+ required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/uranium/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)
@@ -519,7 +519,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)
@@ -528,7 +528,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)
@@ -538,57 +538,57 @@
..()
/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)
+ name = /datum/reagent/hair_dye
+ id = /datum/reagent/hair_dye
+ results = list(/datum/reagent/hair_dye = 5)
+ required_reagents = list(/datum/reagent/colorful_reagent = 1, /datum/reagent/uranium/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)
+ name = /datum/reagent/barbers_aid
+ id = /datum/reagent/barbers_aid
+ results = list(/datum/reagent/barbers_aid = 5)
+ required_reagents = list(/datum/reagent/carpet = 1, /datum/reagent/uranium/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)
+ name = /datum/reagent/concentrated_barbers_aid
+ 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)
+ name = /datum/reagent/saltpetre
+ 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)
+ name = /datum/reagent/lye
+ 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)
+ name = /datum/reagent/lye
+ id = /datum/reagent/lye
+ 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)
+ name = /datum/reagent/consumable/laughter
+ 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)
+ id = /datum/reagent/plastic_polymers
+ 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)
@@ -597,7 +597,7 @@
new /obj/item/stack/sheet/plastic(location)
/datum/chemical_reaction/pax
- name = "pax"
- id = "pax"
- results = list("pax" = 3)
- required_reagents = list("mindbreaker" = 1, "synaptizine" = 1, "water" = 1)
+ name = /datum/reagent/pax
+ 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)
diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
index 2ca1f0e0eeb..b9ce9a0916a 100644
--- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
+++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
@@ -25,21 +25,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
@@ -47,13 +47,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)
if(created_volume >= 150)
@@ -81,14 +81,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
@@ -100,14 +100,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)
@@ -120,7 +120,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/uranium/radium = 1)
/datum/chemical_reaction/beesplosion/on_reaction(datum/reagents/holder, created_volume)
var/location = holder.my_atom.drop_location()
@@ -129,9 +129,8 @@
else
playsound(location,'sound/creatures/bee.ogg', 100, TRUE)
var/list/beeagents = list()
- for(var/X in holder.reagent_list)
- var/datum/reagent/R = X
- if(required_reagents[R.id])
+ for(var/R in holder.reagent_list)
+ if(required_reagents[R])
continue
beeagents += R
var/bee_amount = round(created_volume * 0.2)
@@ -142,16 +141,16 @@
/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)
+ name = /datum/reagent/stabilizing_agent
+ 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)
@@ -164,7 +163,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
@@ -178,19 +177,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)
@@ -198,7 +197,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)
@@ -208,14 +207,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/uranium/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)
@@ -223,7 +222,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)
@@ -233,12 +232,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)
@@ -252,12 +251,12 @@
C.Paralyze(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)
@@ -275,15 +274,15 @@
C.Stun(100)
/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)
+ name = /datum/reagent/smoke_powder
+ 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
@@ -298,7 +297,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
@@ -315,15 +314,15 @@
holder.clear_reagents()
/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)
+ name = /datum/reagent/sonic_powder
+ 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))
@@ -332,7 +331,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)
@@ -342,13 +341,13 @@
C.soundbang_act(1, 100, rand(0, 5))
/datum/chemical_reaction/phlogiston
- name = "phlogiston"
- id = "phlogiston"
- results = list("phlogiston" = 3)
- required_reagents = list("phosphorus" = 1, "sacid" = 1, "stable_plasma" = 1)
+ name = /datum/reagent/phlogiston
+ 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))
@@ -358,15 +357,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)
+ name = /datum/reagent/cryostylane
+ 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
@@ -375,8 +374,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)
@@ -385,18 +384,18 @@
/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)
holder.chem_temp += 10*created_volume
/datum/chemical_reaction/pyrosium
- name = "pyrosium"
- id = "pyrosium"
- results = list("pyrosium" = 3)
- required_reagents = list("stable_plasma" = 1, "radium" = 1, "phosphorus" = 1)
+ name = /datum/reagent/pyrosium
+ id = /datum/reagent/pyrosium
+ results = list(/datum/reagent/pyrosium = 3)
+ required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/uranium/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
@@ -404,23 +403,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 = "
A jet of sparks flies from the mixture as it merges into a flickering slurry."
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 = "
The slime jelly starts glowing intermittently."
/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
mix_message = "
The teslium starts to spark as electricity arcs away from it!"
@@ -448,20 +447,20 @@
/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
diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
index a9f276461d4..1da1188cad2 100644
--- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm
+++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
@@ -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
@@ -49,24 +49,24 @@
/datum/chemical_reaction/slime/slimemutate
name = "Mutation Toxin"
id = "slimetoxin"
- results = list("slime_toxin" = 1)
- required_reagents = list("plasma" = 1)
+ 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)
+ 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)
+ results = list(/datum/reagent/mutationtoxin/lizard = 1)
+ required_reagents = list(/datum/reagent/uranium/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("
The slime extract begins to vibrate violently!")
@@ -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("
The slime extract begins to vibrate adorably!")
@@ -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
@@ -232,7 +232,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
@@ -244,15 +244,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
@@ -276,8 +276,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
@@ -285,7 +285,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
@@ -296,7 +296,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
@@ -307,7 +307,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
@@ -321,7 +321,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
@@ -332,8 +332,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
@@ -341,7 +341,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
@@ -353,7 +353,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
@@ -364,7 +364,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
@@ -377,7 +377,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
@@ -389,7 +389,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
@@ -400,7 +400,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
@@ -412,8 +412,8 @@
/datum/chemical_reaction/slime/slimemutate2
name = "Advanced Mutation Toxin"
id = "mutationtoxin2"
- results = list("amutationtoxin" = 1)
- required_reagents = list("plasma" = 1)
+ results = list(/datum/reagent/aslimetoxin = 1)
+ required_reagents = list(/datum/reagent/toxin/plasma = 1)
required_other = TRUE
required_container = /obj/item/slime_extract/black
@@ -421,7 +421,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
@@ -450,8 +450,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
@@ -460,7 +460,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)
@@ -471,7 +471,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)
@@ -483,7 +483,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
@@ -495,7 +495,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
@@ -507,7 +507,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
@@ -519,7 +519,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
@@ -531,7 +531,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
@@ -542,7 +542,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
@@ -554,7 +554,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
@@ -568,13 +568,13 @@
var/mob/lastheld = get_mob_by_key(holder.my_atom.fingerprintslast)
if(lastheld && !lastheld.equip_to_slot_if_possible(extract, SLOT_HANDS, disable_warning = TRUE))
extract.forceMove(get_turf(lastheld))
-
+
..()
/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
@@ -586,7 +586,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
@@ -598,7 +598,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
@@ -610,7 +610,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
@@ -623,7 +623,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
@@ -643,7 +643,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
@@ -659,7 +659,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,8 +669,8 @@
/datum/chemical_reaction/slime/flight_potion
name = "Flight Potion"
- id = "flightpotion"
- required_reagents = list("holywater" = 5, "uranium" = 5)
+ id = /datum/reagent/flightpotion
+ required_reagents = list(/datum/reagent/water/holywater = 5, /datum/reagent/uranium = 5)
required_other = TRUE
required_container = /obj/item/slime_extract/rainbow
diff --git a/code/modules/reagents/chemistry/recipes/toxins.dm b/code/modules/reagents/chemistry/recipes/toxins.dm
index 5a906bc4541..dbd305d6f82 100644
--- a/code/modules/reagents/chemistry/recipes/toxins.dm
+++ b/code/modules/reagents/chemistry/recipes/toxins.dm
@@ -1,128 +1,128 @@
/datum/chemical_reaction/formaldehyde
- name = "formaldehyde"
+ name = /datum/reagent/toxin/formaldehyde
id = "Formaldehyde"
- results = list("formaldehyde" = 3)
- required_reagents = list("ethanol" = 1, "oxygen" = 1, "silver" = 1)
+ 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)
+ name = /datum/reagent/toxin/fentanyl
+ 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)
+ name = /datum/reagent/toxin/sulfonal
+ 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)
+ name = /datum/reagent/toxin/lipolicide
+ 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/uranium/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)
+ 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 = "
The mixture thins and loses all color."
/datum/chemical_reaction/rotatium
name = "Rotatium"
id = "Rotatium"
- results = list("rotatium" = 3)
- required_reagents = list("mindbreaker" = 1, "teslium" = 1, "fentanyl" = 1)
+ 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 = "
After sparks, fire, and the smell of mindbreaker, the mix is constantly spinning with no stop in sight."
/datum/chemical_reaction/skewium
name = "Skewium"
id = "Skewium"
- results = list("skewium" = 5)
- required_reagents = list("rotatium" = 2, "plasma" = 2, "sacid" = 1)
+ 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 = "
Wow! it turns out if you mix rotatium with some plasma and sulphuric acid, it gets even worse!"
/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/uranium/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/uranium/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 = "
The mixture suddenly becomes clear and looks a lot like water. You feel a strong urge to drink it."
diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm
index bb50428b2eb..cfc0dd3a80d 100644
--- a/code/modules/reagents/reagent_containers.dm
+++ b/code/modules/reagents/reagent_containers.dm
@@ -21,7 +21,7 @@
if(spawned_disease)
var/datum/disease/F = new spawned_disease()
var/list/data = list("viruses"= list(F))
- reagents.add_reagent("blood", disease_amount, data)
+ reagents.add_reagent(/datum/reagent/blood, disease_amount, data)
add_initial_reagents()
@@ -93,8 +93,7 @@
target.visible_message("
[M] has been splashed with something!", \
"
[M] has been splashed with something!")
for(var/datum/reagent/A in reagents.reagent_list)
- R += A.id + " ("
- R += num2text(A.volume) + "),"
+ R += "[A.type] ([num2text(A.volume)]),"
if(thrownby)
log_combat(thrownby, M, "splashed", R)
diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm
index 804c23b5129..2aea9a27ef3 100644
--- a/code/modules/reagents/reagent_containers/blood_pack.dm
+++ b/code/modules/reagents/reagent_containers/blood_pack.dm
@@ -11,12 +11,12 @@
/obj/item/reagent_containers/blood/Initialize()
. = ..()
if(blood_type != null)
- reagents.add_reagent(unique_blood ? unique_blood : "blood", 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=blood_type,"resistances"=null,"trace_chem"=null))
+ reagents.add_reagent(unique_blood ? unique_blood : /datum/reagent/blood, 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"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"]
else
@@ -72,7 +72,7 @@
/obj/item/reagent_containers/blood/ethereal
blood_type = "LE"
- unique_blood = "liquidelectricity"
+ unique_blood = /datum/reagent/consumable/liquidelectricity
/obj/item/reagent_containers/blood/universal
blood_type = "U"
diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm
index cc6a0298ae8..1deda349d84 100644
--- a/code/modules/reagents/reagent_containers/borghydro.dm
+++ b/code/modules/reagents/reagent_containers/borghydro.dm
@@ -26,10 +26,11 @@ 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")
+ 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)
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.
+ var/list/reagent_names = list()
/obj/item/reagent_containers/borghypo/Initialize()
@@ -56,7 +57,7 @@ Borg Hypospray
return 1
// Use this to add more chemicals for the borghypo to produce.
-/obj/item/reagent_containers/borghypo/proc/add_reagent(reagent)
+/obj/item/reagent_containers/borghypo/proc/add_reagent(datum/reagent/reagent)
reagent_ids |= reagent
var/datum/reagents/RG = new(30)
RG.my_atom = src
@@ -66,9 +67,11 @@ Borg Hypospray
R.add_reagent(reagent, 30)
modes[reagent] = modes.len + 1
+ reagent_names[initial(reagent.name)] = reagent
-/obj/item/reagent_containers/borghypo/proc/del_reagent(reagent)
+/obj/item/reagent_containers/borghypo/proc/del_reagent(datum/reagent/reagent)
reagent_ids -= reagent
+ reagent_names -= initial(reagent.name)
var/datum/reagents/RG
var/datum/reagents/TRG
for(var/i in 1 to reagent_ids.len)
@@ -114,7 +117,7 @@ Borg Hypospray
log_combat(user, M, "injected", src, "(CHEMICALS: [english_list(injected)])")
/obj/item/reagent_containers/borghypo/attack_self(mob/user)
- var/chosen_reagent = modes[input(user, "What reagent do you want to dispense?") as null|anything in reagent_ids]
+ var/chosen_reagent = modes[reagent_names[input(user, "What reagent do you want to dispense?") as null|anything in reagent_names]]
if(!chosen_reagent)
return
mode = chosen_reagent
@@ -142,19 +145,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/fluacid, /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
@@ -163,7 +166,7 @@ Borg Hypospray
icon_state = "borghypo_s"
charge_cost = 20
recharge_time = 2
- reagent_ids = list("syndicate_nanites", "potass_iodide", "morphine")
+ reagent_ids = list(/datum/reagent/medicine/syndicate_nanites, /datum/reagent/medicine/potass_iodide, /datum/reagent/medicine/morphine)
bypass_protection = 1
accepts_reagent_upgrades = FALSE
@@ -180,7 +183,7 @@ Borg Shaker
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
@@ -236,22 +239,22 @@ Borg Shaker
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")
+ reagent_ids = list(/datum/reagent/peaceborg/confuse,/datum/reagent/peaceborg/tire,/datum/reagent/pax/peaceborg)
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 = "epinephrine injector"
desc = "An advanced chemical synthesizer and injection system, designed to stabilize patients."
- reagent_ids = list("epinephrine")
+ reagent_ids = list(/datum/reagent/medicine/epinephrine)
accepts_reagent_upgrades = FALSE
diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm
index 34e2666bc33..98f5e53a078 100644
--- a/code/modules/reagents/reagent_containers/bottle.dm
+++ b/code/modules/reagents/reagent_containers/bottle.dm
@@ -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/mannitol
name = "mannitol bottle"
desc = "A small bottle of Mannitol. Useful for healing brain damage."
- list_reagents = list("mannitol" = 30)
+ list_reagents = list(/datum/reagent/medicine/mannitol = 30)
/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/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,94 @@
/obj/item/reagent_containers/glass/bottle/traitor/Initialize()
. = ..()
- extra_reagent = pick("polonium", "histamine", "formaldehyde", "venom", "fentanyl", "cyanide")
+ 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,106 +306,106 @@
/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/uranium/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)
diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm
index f8f09a3ceb6..cfbb387d89d 100644
--- a/code/modules/reagents/reagent_containers/dropper.dm
+++ b/code/modules/reagents/reagent_containers/dropper.dm
@@ -58,8 +58,8 @@
var/R
if(reagents)
for(var/datum/reagent/A in src.reagents.reagent_list)
- R += A.id + " ("
- R += num2text(A.volume) + "),"
+ R += "[A] ([num2text(A.volume)]),"
+
log_combat(user, M, "squirted", R)
trans = src.reagents.trans_to(target, amount_per_transfer_from_this, transfered_by = user)
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 19d225fb119..f8beafa949f 100755
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -27,8 +27,8 @@
"
[user] splashes the contents of [src] onto [M]!")
if(reagents)
for(var/datum/reagent/A in reagents.reagent_list)
- R += A.id + " ("
- R += num2text(A.volume) + "),"
+ R += "[A] ([num2text(A.volume)]),"
+
if(isturf(target) && reagents.reagent_list.len && thrownby)
log_combat(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]")
message_admins("[ADMIN_LOOKUPFLW(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] at [ADMIN_VERBOSEJMP(target)].")
@@ -214,32 +214,32 @@
possible_transfer_amounts = list(5,10,15,20,25,30,50,100,300)
/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"
@@ -313,7 +313,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
@@ -325,7 +325,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
@@ -393,4 +393,4 @@
/obj/item/reagent_containers/glass/saline
name = "saline canister"
volume = 5000
- list_reagents = list("salglu_solution" = 5000)
\ No newline at end of file
+ list_reagents = list(/datum/reagent/medicine/salglu_solution = 5000)
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index b1313834eb9..abb241b15ba 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -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,12 +61,12 @@
icon_state = "combat_hypo"
volume = 90
ignore_flags = 1 // So they can heal their comrades.
- 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"
@@ -74,7 +74,7 @@
icon_state = "combat_hypo"
volume = 5
reagent_flags = NONE
- list_reagents = list("magillitis" = 5)
+ list_reagents = list(/datum/reagent/magillitis = 5)
//MediPens
@@ -90,7 +90,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)
custom_price = 40
/obj/item/reagent_containers/hypospray/medipen/suicide_act(mob/living/carbon/user)
@@ -134,16 +134,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"
@@ -151,7 +151,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"
@@ -159,7 +159,7 @@
icon_state = "stimpen"
volume = 57
amount_per_transfer_from_this = 57
- list_reagents = list("salbutamol" = 10, "leporazine" = 15, "tricordrazine" = 15, "epinephrine" = 10, "lavaland_extract" = 2, "omnizine" = 5)
+ list_reagents = list(/datum/reagent/medicine/salbutamol = 10, /datum/reagent/medicine/leporazine = 15, /datum/reagent/medicine/tricordrazine = 15, /datum/reagent/medicine/epinephrine = 10, /datum/reagent/medicine/lavaland_extract = 2, /datum/reagent/medicine/omnizine = 5)
/obj/item/reagent_containers/hypospray/medipen/species_mutator
name = "species mutator medipen"
@@ -173,16 +173,16 @@
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
/obj/item/reagent_containers/hypospray/medipen/atropine
name = "atropine autoinjector"
desc = "A rapid way to save a person from a critical injury state!"
- list_reagents = list("atropine" = 10)
+ list_reagents = list(/datum/reagent/medicine/atropine = 10)
/obj/item/reagent_containers/hypospray/medipen/snail
name = "snail shot"
desc = "All-purpose snail medicine! Do not use on non-snails!"
- list_reagents = list("snailserum" = 10)
+ list_reagents = list(/datum/reagent/snail = 10)
icon_state = "snail"
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/medspray.dm b/code/modules/reagents/reagent_containers/medspray.dm
index acfe324c07e..9335b88af77 100644
--- a/code/modules/reagents/reagent_containers/medspray.dm
+++ b/code/modules/reagents/reagent_containers/medspray.dm
@@ -72,22 +72,22 @@
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)
custom_price = 80
/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)
diff --git a/code/modules/reagents/reagent_containers/patch.dm b/code/modules/reagents/reagent_containers/patch.dm
index 370d7f6475d..fd05482daa6 100644
--- a/code/modules/reagents/reagent_containers/patch.dm
+++ b/code/modules/reagents/reagent_containers/patch.dm
@@ -30,17 +30,17 @@
/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/synthflesh
name = "synthflesh patch"
desc = "Helps with brute and burn injuries."
- list_reagents = list("synthflesh" = 20)
+ list_reagents = list(/datum/reagent/medicine/synthflesh = 20)
icon_state = "bandaid_both"
diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm
index 7783c7849e3..56229fbaa82 100644
--- a/code/modules/reagents/reagent_containers/pill.dm
+++ b/code/modules/reagents/reagent_containers/pill.dm
@@ -80,108 +80,108 @@
name = "toxins pill"
desc = "Highly toxic."
icon_state = "pill5"
- list_reagents = list("toxin" = 50)
+ list_reagents = list(/datum/reagent/toxin = 50)
rename_with_volume = TRUE
/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)
/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)
/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)
rename_with_volume = TRUE
/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)
/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)
rename_with_volume = TRUE
/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)
rename_with_volume = TRUE
/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)
rename_with_volume = TRUE
/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)
rename_with_volume = TRUE
/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)
rename_with_volume = TRUE
/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)
rename_with_volume = TRUE
/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)
rename_with_volume = TRUE
/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)
rename_with_volume = TRUE
/obj/item/reagent_containers/pill/psicodine
name = "psicodine pill"
desc = "Used to treat mental instability and phobias."
- list_reagents = list("psicodine" = 10)
+ list_reagents = list(/datum/reagent/medicine/psicodine = 10)
icon_state = "pill22"
rename_with_volume = TRUE
/obj/item/reagent_containers/pill/penacid
name = "pentetic acid pill"
desc = "Used to expunge radiation and toxins."
- list_reagents = list("pen_acid" = 10)
+ list_reagents = list(/datum/reagent/medicine/pen_acid = 10)
icon_state = "pill22"
rename_with_volume = TRUE
/obj/item/reagent_containers/pill/neurine
name = "neurine pill"
desc = "Used to treat non-severe mental traumas."
- list_reagents = list("neurine" = 10)
+ list_reagents = list(/datum/reagent/medicine/neurine = 10)
icon_state = "pill22"
rename_with_volume = TRUE
@@ -191,41 +191,41 @@
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 = "yellow pill"
desc = "A poorly made canary-yellow pill; it is slightly crumbly."
- 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)
icon_state = "pill7"
/obj/item/reagent_containers/pill/happy
name = "happy pill"
desc = "They have little happy faces on them, and they smell like marker pens."
- list_reagents = list("sugar" = 10, "space_drugs" = 10)
+ list_reagents = list(/datum/reagent/consumable/sugar = 10, /datum/reagent/drug/space_drugs = 10)
icon_state = "pill_happy"
/obj/item/reagent_containers/pill/lsd
name = "sunshine pill"
desc = "Engraved on this split-coloured pill is a half-sun, half-moon."
- list_reagents = list("mushroomhallucinogen" = 15, "mindbreaker" = 15)
+ list_reagents = list(/datum/reagent/drug/mushroomhallucinogen = 15, /datum/reagent/toxin/mindbreaker = 15)
icon_state = "pill14"
/obj/item/reagent_containers/pill/aranesp
name = "smooth pill"
desc = "This blue pill is feels slightly moist."
- list_reagents = list("aranesp" = 10)
+ list_reagents = list(/datum/reagent/drug/aranesp = 10)
icon_state = "pill3"
/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"
diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm
index 28aa7020625..a1ae4494eb3 100644
--- a/code/modules/reagents/reagent_containers/spray.dm
+++ b/code/modules/reagents/reagent_containers/spray.dm
@@ -161,7 +161,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
@@ -184,7 +184,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
@@ -199,7 +199,7 @@
volume = 40
stream_range = 4
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/empty //for protolathe printing
list_reagents = null
@@ -223,7 +223,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
@@ -231,9 +231,9 @@
/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
@@ -241,9 +241,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
@@ -305,7 +305,7 @@
..(the_targets[i], user)
/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)
/obj/item/reagent_containers/spray/chemsprayer/janitor
@@ -316,11 +316,11 @@
lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi'
reagent_flags = NONE
- list_reagents = list("cleaner" = 1000)
+ list_reagents = list(/datum/reagent/space_cleaner = 1000)
volume = 1000
amount_per_transfer_from_this = 5
var/generate_amount = 50
- var/generate_type = "cleaner"
+ var/generate_type = /datum/reagent/space_cleaner
var/last_generate = 0
var/generate_delay = 10 //deciseconds
@@ -348,4 +348,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)
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index f45450b7b81..520577984f7 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -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("plasma" = 15, "formaldehyde" = 15, "cyanide" = 10, "facid" = 10)
+ list_reagents = list(/datum/reagent/toxin/plasma = 15, /datum/reagent/toxin/formaldehyde = 15, /datum/reagent/toxin/cyanide = 10, /datum/reagent/toxin/acid/fluacid = 10)
/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"
diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm
index e5559cace6f..8a837b6d2be 100644
--- a/code/modules/reagents/reagent_dispenser.dm
+++ b/code/modules/reagents/reagent_dispenser.dm
@@ -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)
. = ..()
@@ -54,14 +54,14 @@
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/fueltank
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/boom()
explosion(get_turf(src), 0, 1, 5, flame_range = 5)
@@ -89,12 +89,12 @@
/obj/structure/reagent_dispensers/fueltank/attackby(obj/item/I, mob/living/user, params)
if(I.tool_behaviour == TOOL_WELDER)
- if(!reagents.has_reagent("welding_fuel"))
+ if(!reagents.has_reagent(/datum/reagent/fuel))
to_chat(user, "
[src] is out of fuel!")
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, "
Your [W.name] is already full!")
return
reagents.trans_to(W, W.max_fuel, transfered_by = user)
@@ -117,7 +117,7 @@
icon_state = "pepper"
anchored = TRUE
density = FALSE
- reagent_id = "condensedcapsaicin"
+ reagent_id = /datum/reagent/consumable/condensedcapsaicin
/obj/structure/reagent_dispensers/peppertank/Initialize()
. = ..()
@@ -159,7 +159,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)
@@ -173,7 +173,7 @@
icon_state = "virus_food"
anchored = TRUE
density = FALSE
- reagent_id = "virusfood"
+ reagent_id = /datum/reagent/consumable/virus_food
/obj/structure/reagent_dispensers/cooking_oil
@@ -181,4 +181,4 @@
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
diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm
index ec79c38742a..04c7a63f9d8 100644
--- a/code/modules/research/designs/biogenerator_designs.dm
+++ b/code/modules/research/designs/biogenerator_designs.dm
@@ -4,18 +4,18 @@
/datum/design/milk
name = "10 Milk"
- id = "milk"
+ id = /datum/reagent/consumable/milk
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 20)
- make_reagents = list("milk" = 10)
+ make_reagents = list(/datum/reagent/consumable/milk = 10)
category = list("initial","Food")
/datum/design/cream
name = "10 Cream"
- id = "cream"
+ id = /datum/reagent/consumable/cream
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 30)
- make_reagents = list("cream" = 10)
+ make_reagents = list(/datum/reagent/consumable/cream = 10)
category = list("initial","Food")
/datum/design/milk_carton
@@ -39,7 +39,7 @@
id = "black_pepper"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 25)
- make_reagents = list("blackpepper" = 10)
+ make_reagents = list(/datum/reagent/consumable/blackpepper = 10)
category = list("initial","Food")
/datum/design/pepper_mill
@@ -53,10 +53,10 @@
/datum/design/enzyme
name = "10u Universal Enzyme"
- id = "enzyme"
+ id = /datum/reagent/consumable/enzyme
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 30)
- make_reagents = list("enzyme" = 10)
+ make_reagents = list(/datum/reagent/consumable/enzyme = 10)
category = list("initial","Food")
/datum/design/flour_sack
diff --git a/code/modules/research/designs/limbgrower_designs.dm b/code/modules/research/designs/limbgrower_designs.dm
index 71f7234e349..954dfca6586 100644
--- a/code/modules/research/designs/limbgrower_designs.dm
+++ b/code/modules/research/designs/limbgrower_designs.dm
@@ -6,7 +6,7 @@
name = "Left Arm"
id = "leftarm"
build_type = LIMBGROWER
- reagents_list = list("synthflesh" = 25)
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
build_path = /obj/item/bodypart/l_arm
category = list("initial","human","lizard","fly","moth","plasmaman")
@@ -14,7 +14,7 @@
name = "Right Arm"
id = "rightarm"
build_type = LIMBGROWER
- reagents_list = list("synthflesh" = 25)
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
build_path = /obj/item/bodypart/r_arm
category = list("initial","human","lizard","fly","moth","plasmaman")
@@ -22,7 +22,7 @@
name = "Left Leg"
id = "leftleg"
build_type = LIMBGROWER
- reagents_list = list("synthflesh" = 25)
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
build_path = /obj/item/bodypart/l_leg
category = list("initial","human","lizard","fly","moth","plasmaman")
@@ -30,7 +30,7 @@
name = "Right Leg"
id = "rightleg"
build_type = LIMBGROWER
- reagents_list = list("synthflesh" = 25)
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 25)
build_path = /obj/item/bodypart/r_leg
category = list("initial","human","lizard","fly","moth","plasmaman")
@@ -38,6 +38,6 @@
name = "Arm Blade"
id = "armblade"
build_type = LIMBGROWER
- reagents_list = list("synthflesh" = 75)
+ reagents_list = list(/datum/reagent/medicine/synthflesh = 75)
build_path = /obj/item/melee/synthetic_arm_blade
category = list("other","emagged")
\ No newline at end of file
diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm
index 2f194795855..4b145318bc3 100644
--- a/code/modules/research/designs/weapon_designs.dm
+++ b/code/modules/research/designs/weapon_designs.dm
@@ -110,7 +110,7 @@
id = "decloner"
build_type = PROTOLATHE
materials = list(MAT_GOLD = 5000,MAT_URANIUM = 10000)
- reagents_list = list("mutagen" = 40)
+ reagents_list = list(/datum/reagent/toxin/mutagen = 40)
build_path = /obj/item/gun/energy/decloner
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -141,7 +141,7 @@
id = "flora_gun"
build_type = PROTOLATHE
materials = list(MAT_METAL = 2000, MAT_GLASS = 500)
- reagents_list = list("radium" = 20)
+ reagents_list = list(/datum/reagent/uranium/radium = 20)
build_path = /obj/item/gun/energy/floragun
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index 3c372c5d14c..1b1e30d66ab 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -288,7 +288,7 @@
if(!T.density)
if(prob(EFFECT_PROB_VERYHIGH) && !(locate(/obj/effect/decal/cleanable/greenglow) in T))
var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/greenglow(T)
- reagentdecal.reagents.add_reagent("radium", 7)
+ reagentdecal.reagents.add_reagent(/datum/reagent/uranium/radium, 7)
else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
var/savedName = "[exp_on]"
ejectItem(TRUE)
@@ -308,7 +308,7 @@
new /obj/item/stack/sheet/mineral/plasma(get_turf(pick(oview(1,src))))
else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
visible_message("
[src] destroys [exp_on], leaking dangerous gas!")
- chosenchem = pick("carbon","radium","toxin","condensedcapsaicin","mushroomhallucinogen","space_drugs","ethanol","beepskysmash")
+ chosenchem = pick(/datum/reagent/carbon,/datum/reagent/uranium/radium,/datum/reagent/toxin,/datum/reagent/consumable/condensedcapsaicin,/datum/reagent/drug/mushroomhallucinogen,/datum/reagent/drug/space_drugs,/datum/reagent/consumable/ethanol,/datum/reagent/consumable/ethanol/beepsky_smash)
var/datum/reagents/R = new/datum/reagents(50)
R.my_atom = src
R.add_reagent(chosenchem , 50)
@@ -321,7 +321,7 @@
ejectItem(TRUE)
else if(prob(EFFECT_PROB_VERYLOW-badThingCoeff))
visible_message("
[src]'s chemical chamber has sprung a leak!")
- chosenchem = pick("mutationtoxin","nanomachines","sacid")
+ chosenchem = pick(/datum/reagent/mutationtoxin/classic,/datum/reagent/nanomachines,/datum/reagent/toxin/acid)
var/datum/reagents/R = new/datum/reagents(50)
R.my_atom = src
R.add_reagent(chosenchem , 50)
@@ -348,7 +348,7 @@
visible_message("
[src]'s emergency coolant system gives off a small ding!")
playsound(src, 'sound/machines/ding.ogg', 50, 1)
var/obj/item/reagent_containers/food/drinks/coffee/C = new /obj/item/reagent_containers/food/drinks/coffee(get_turf(pick(oview(1,src))))
- chosenchem = pick("plasma","capsaicin","ethanol")
+ chosenchem = pick(/datum/reagent/toxin/plasma,/datum/reagent/consumable/capsaicin,/datum/reagent/consumable/ethanol)
C.reagents.remove_any(25)
C.reagents.add_reagent(chosenchem , 50)
C.name = "Cup of Suspicious Liquid"
@@ -397,7 +397,7 @@
visible_message("
[src]'s emergency coolant system gives off a small ding!")
var/obj/item/reagent_containers/food/drinks/coffee/C = new /obj/item/reagent_containers/food/drinks/coffee(get_turf(pick(oview(1,src))))
playsound(src, 'sound/machines/ding.ogg', 50, 1) //Ding! Your death coffee is ready!
- chosenchem = pick("uranium","frostoil","ephedrine")
+ chosenchem = pick(/datum/reagent/uranium,/datum/reagent/consumable/frostoil,/datum/reagent/medicine/ephedrine)
C.reagents.remove_any(25)
C.reagents.add_reagent(chosenchem , 50)
C.name = "Cup of Suspicious Liquid"
@@ -407,7 +407,7 @@
visible_message("
[src] malfunctions, shattering [exp_on] and releasing a dangerous cloud of coolant!")
var/datum/reagents/R = new/datum/reagents(50)
R.my_atom = src
- R.add_reagent("frostoil" , 50)
+ R.add_reagent(/datum/reagent/consumable/frostoil , 50)
investigate_log("Experimentor has released frostoil gas.", INVESTIGATE_EXPERIMENTOR)
var/datum/effect_system/smoke_spread/chem/smoke = new
smoke.set_up(R, 0, src, silent = TRUE)
diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm
index 08929dece7b..7d01b4da50c 100644
--- a/code/modules/research/machinery/_production.dm
+++ b/code/modules/research/machinery/_production.dm
@@ -223,7 +223,7 @@
l += "
Chemical Storage:
"
for(var/datum/reagent/R in reagents.reagent_list)
l += "[R.name]: [R.volume]"
- l += "
Purge"
+ l += "
Purge"
l += "
"
return l
diff --git a/code/modules/research/nanites/nanite_programs/buffing.dm b/code/modules/research/nanites/nanite_programs/buffing.dm
index 0f0814fab94..b2caf0e0fde 100644
--- a/code/modules/research/nanites/nanite_programs/buffing.dm
+++ b/code/modules/research/nanites/nanite_programs/buffing.dm
@@ -33,7 +33,7 @@
host_mob.adjustStaminaLoss(-75)
host_mob.set_resting(FALSE)
host_mob.update_mobility()
- host_mob.reagents.add_reagent("stimulants", 1.5)
+ host_mob.reagents.add_reagent(/datum/reagent/medicine/stimulants, 1.5)
/datum/nanite_program/hardening
name = "Dermal Hardening"
diff --git a/code/modules/research/nanites/nanite_programs/healing.dm b/code/modules/research/nanites/nanite_programs/healing.dm
index 819c4b7200e..48f9fd91f0e 100644
--- a/code/modules/research/nanites/nanite_programs/healing.dm
+++ b/code/modules/research/nanites/nanite_programs/healing.dm
@@ -61,7 +61,7 @@
/datum/nanite_program/purging/active_effect()
host_mob.adjustToxLoss(-1)
for(var/datum/reagent/R in host_mob.reagents.reagent_list)
- host_mob.reagents.remove_reagent(R.id,1)
+ host_mob.reagents.remove_reagent(R.type,1)
/datum/nanite_program/brain_heal
name = "Neural Regeneration"
@@ -160,7 +160,7 @@
/datum/nanite_program/purging_advanced/active_effect()
host_mob.adjustToxLoss(-1)
for(var/datum/reagent/toxin/R in host_mob.reagents.reagent_list)
- host_mob.reagents.remove_reagent(R.id,1)
+ host_mob.reagents.remove_reagent(R.type,1)
/datum/nanite_program/regenerative_advanced
name = "Bio-Reconstruction"
diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm
index d9ac8e846d5..fcbef13cb67 100644
--- a/code/modules/research/rdconsole.dm
+++ b/code/modules/research/rdconsole.dm
@@ -398,7 +398,7 @@ Nothing else in the console has ID requirements.
l += "Chemical Storage:
"
for(var/datum/reagent/R in linked_lathe.reagents.reagent_list)
l += "[R.name]: [R.volume]"
- l += "Purge"
+ l += "Purge"
l += ""
return l
@@ -501,7 +501,7 @@ Nothing else in the console has ID requirements.
l += "Chemical Storage:
"
for(var/datum/reagent/R in linked_imprinter.reagents.reagent_list)
l += "[R.name]: [R.volume]"
- l += "Purge"
+ l += "Purge"
return l
/obj/machinery/computer/rdconsole/proc/ui_circuit_materials() //Legacy code!
diff --git a/code/modules/research/xenobiology/crossbreeding/__corecross.dm b/code/modules/research/xenobiology/crossbreeding/__corecross.dm
index 6d4cfa8f0be..42f38b70bb4 100644
--- a/code/modules/research/xenobiology/crossbreeding/__corecross.dm
+++ b/code/modules/research/xenobiology/crossbreeding/__corecross.dm
@@ -120,19 +120,19 @@ To add a crossbreed:
name = "blood extract"
desc = "A sphere of liquid blood, somehow managing to stay together."
color = "#FF0000"
- list_reagents = list("blood" = 50)
+ list_reagents = list(/datum/reagent/blood = 50)
/obj/item/slimecrossbeaker/pax //5u synthpax.
name = "peace-inducing extract"
desc = "A small blob of synthetic pax."
color = "#FFCCCC"
- list_reagents = list("synthpax" = 5)
+ list_reagents = list(/datum/reagent/pax/peaceborg = 5)
/obj/item/slimecrossbeaker/omnizine //15u omnizine.
name = "healing extract"
desc = "A gelatinous extract of pure omnizine."
color = "#FF00FF"
- list_reagents = list("omnizine" = 15)
+ list_reagents = list(/datum/reagent/medicine/omnizine = 15)
/obj/item/slimecrossbeaker/autoinjector //As with the above, but automatically injects whomever it is used on with contents.
var/ignore_flags = FALSE
@@ -166,7 +166,7 @@ To add a crossbreed:
name = "mending solution"
desc = "A strange glob of sweet-smelling semifluid, which seems to stick to skin rather easily."
color = "#FF00FF"
- list_reagents = list("regen_jelly" = 20)
+ list_reagents = list(/datum/reagent/medicine/regen_jelly = 20)
/obj/item/slimecrossbeaker/autoinjector/slimejelly //Primarily for slimepeople, but you do you.
self_use_only = TRUE
@@ -174,13 +174,13 @@ To add a crossbreed:
name = "slime jelly bubble"
desc = "A sphere of slime jelly. It seems to stick to your skin, but avoids other surfaces."
color = "#00FF00"
- list_reagents = list("slimejelly" = 50)
+ list_reagents = list(/datum/reagent/toxin/slimejelly = 50)
/obj/item/slimecrossbeaker/autoinjector/peaceandlove
name = "peaceful distillation"
desc = "A light pink gooey sphere. Simply touching it makes you a little dizzy."
color = "#DDAAAA"
- list_reagents = list("synthpax" = 10, "space_drugs" = 15) //Peace, dudes
+ list_reagents = list(/datum/reagent/pax/peaceborg = 10, /datum/reagent/drug/space_drugs = 15) //Peace, dudes
/obj/item/slimecrossbeaker/autoinjector/peaceandlove/Initialize()
. = ..()
@@ -190,4 +190,4 @@ To add a crossbreed:
name = "invigorating gel"
desc = "A bubbling purple mixture, designed to heal and boost movement."
color = "#FF00FF"
- list_reagents = list("regen_jelly" = 30, "methamphetamine" = 9)
+ list_reagents = list(/datum/reagent/medicine/regen_jelly = 30, /datum/reagent/drug/methamphetamine = 9)
diff --git a/code/modules/research/xenobiology/crossbreeding/_misc.dm b/code/modules/research/xenobiology/crossbreeding/_misc.dm
index eb055cbf669..b4c2c536b67 100644
--- a/code/modules/research/xenobiology/crossbreeding/_misc.dm
+++ b/code/modules/research/xenobiology/crossbreeding/_misc.dm
@@ -227,7 +227,7 @@ Slimecrossing Items
filling_color = "#964B00"
tastes = list("cardboard" = 3, "sadness" = 3)
foodtype = null //Don't ask what went into them. You're better off not knowing.
- list_reagents = list("stabilizednutriment" = 10, "nutriment" = 2) //Won't make you fat. Will make you question your sanity.
+ list_reagents = list(/datum/reagent/consumable/nutriment/stabilized = 10, /datum/reagent/consumable/nutriment = 2) //Won't make you fat. Will make you question your sanity.
/obj/item/reagent_containers/food/snacks/rationpack/checkLiked(fraction, mob/M) //Nobody likes rationpacks. Nobody.
if(last_check_time + 50 < world.time)
diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm
index f635b7ac95f..9c3fce8ec91 100644
--- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm
+++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm
@@ -914,9 +914,9 @@ datum/status_effect/stabilized/blue/on_remove()
/datum/status_effect/stabilized/lightpink/tick()
for(var/mob/living/carbon/human/H in range(1, get_turf(owner)))
- if(H != owner && H.stat != DEAD && H.health <= 0 && !H.reagents.has_reagent("epinephrine"))
+ if(H != owner && H.stat != DEAD && H.health <= 0 && !H.reagents.has_reagent(/datum/reagent/medicine/epinephrine))
to_chat(owner, "[linked_extract] pulses in sync with [H]'s heartbeat, trying to keep [H.p_them()] alive.")
- H.reagents.add_reagent("epinephrine",5)
+ H.reagents.add_reagent(/datum/reagent/medicine/epinephrine,5)
return ..()
/datum/status_effect/stabilized/lightpink/on_remove()
diff --git a/code/modules/research/xenobiology/crossbreeding/burning.dm b/code/modules/research/xenobiology/crossbreeding/burning.dm
index f5f51a364af..7895a43ef0d 100644
--- a/code/modules/research/xenobiology/crossbreeding/burning.dm
+++ b/code/modules/research/xenobiology/crossbreeding/burning.dm
@@ -14,10 +14,10 @@ Burning extracts:
create_reagents(10, INJECTABLE | DRAWABLE)
/obj/item/slimecross/burning/attack_self(mob/user)
- if(!reagents.has_reagent("plasma",10))
+ if(!reagents.has_reagent(/datum/reagent/toxin/plasma,10))
to_chat(user, "This extract needs to be full of plasma to activate!")
return
- reagents.remove_reagent("plasma",10)
+ reagents.remove_reagent(/datum/reagent/toxin/plasma,10)
to_chat(user, "You squeeze the extract, and it absorbs the plasma!")
playsound(src, 'sound/effects/bubbles.ogg', 50, 1)
playsound(src, 'sound/magic/fireball.ogg', 50, 1)
@@ -46,7 +46,7 @@ Burning extracts:
/obj/item/slimecross/burning/orange/do_effect(mob/user)
user.visible_message("[src] boils over with a caustic gas!")
var/datum/reagents/R = new/datum/reagents(100)
- R.add_reagent("condensedcapsaicin", 100)
+ R.add_reagent(/datum/reagent/consumable/condensedcapsaicin, 100)
var/datum/effect_system/smoke_spread/chem/smoke = new
smoke.set_up(R, 7, get_turf(user))
@@ -121,8 +121,8 @@ Burning extracts:
/obj/item/slimecross/burning/darkblue/do_effect(mob/user)
user.visible_message("[src] releases a burst of chilling smoke!")
var/datum/reagents/R = new/datum/reagents(100)
- R.add_reagent("frostoil", 40)
- user.reagents.add_reagent("cryoxadone",10)
+ R.add_reagent(/datum/reagent/consumable/frostoil, 40)
+ user.reagents.add_reagent(/datum/reagent/medicine/cryoxadone,10)
var/datum/effect_system/smoke_spread/chem/smoke = new
smoke.set_up(R, 7, get_turf(user))
smoke.start()
@@ -140,7 +140,7 @@ Burning extracts:
for(var/i = 0, i < amount, i++)
var/path = get_random_food()
var/obj/item/O = new path(pick(turfs))
- O.reagents.add_reagent("slimejelly",5) //Oh god it burns
+ O.reagents.add_reagent(/datum/reagent/toxin/slimejelly,5) //Oh god it burns
if(prob(50))
O.desc += " It smells strange..."
user.visible_message("[src] produces a few pieces of food!")
@@ -292,7 +292,7 @@ Burning extracts:
/obj/item/slimecross/burning/lightpink/do_effect(mob/user)
user.visible_message("[src] lets off a hypnotizing pink glow!")
for(var/mob/living/carbon/C in view(7, get_turf(user)))
- C.reagents.add_reagent("pax",5)
+ C.reagents.add_reagent(/datum/reagent/pax,5)
..()
/obj/item/slimecross/burning/adamantine
diff --git a/code/modules/research/xenobiology/crossbreeding/charged.dm b/code/modules/research/xenobiology/crossbreeding/charged.dm
index d39e9585227..b071d546672 100644
--- a/code/modules/research/xenobiology/crossbreeding/charged.dm
+++ b/code/modules/research/xenobiology/crossbreeding/charged.dm
@@ -15,10 +15,10 @@ Charged extracts:
create_reagents(10, INJECTABLE | DRAWABLE)
/obj/item/slimecross/charged/attack_self(mob/user)
- if(!reagents.has_reagent("plasma",10))
+ if(!reagents.has_reagent(/datum/reagent/toxin/plasma,10))
to_chat(user, "This extract needs to be full of plasma to activate!")
return
- reagents.remove_reagent("plasma",10)
+ reagents.remove_reagent(/datum/reagent/toxin/plasma,10)
to_chat(user, "You squeeze the extract, and it absorbs the plasma!")
playsound(src, 'sound/effects/bubbles.ogg', 50, 1)
playsound(src, 'sound/effects/light_flicker.ogg', 50, 1)
diff --git a/code/modules/research/xenobiology/crossbreeding/chilling.dm b/code/modules/research/xenobiology/crossbreeding/chilling.dm
index 7d33b72145e..44dbbfdcdc1 100644
--- a/code/modules/research/xenobiology/crossbreeding/chilling.dm
+++ b/code/modules/research/xenobiology/crossbreeding/chilling.dm
@@ -14,10 +14,10 @@ Chilling extracts:
create_reagents(10, INJECTABLE | DRAWABLE)
/obj/item/slimecross/chilling/attack_self(mob/user)
- if(!reagents.has_reagent("plasma",10))
+ if(!reagents.has_reagent(/datum/reagent/toxin/plasma,10))
to_chat(user, "This extract needs to be full of plasma to activate!")
return
- reagents.remove_reagent("plasma",10)
+ reagents.remove_reagent(/datum/reagent/toxin/plasma,10)
to_chat(user, "You squeeze the extract, and it absorbs the plasma!")
playsound(src, 'sound/effects/bubbles.ogg', 50, 1)
playsound(src, 'sound/effects/glassbr1.ogg', 50, 1)
@@ -59,7 +59,7 @@ Chilling extracts:
return
user.visible_message("[src] shatters, and a healing aura fills the room briefly.")
for(var/mob/living/carbon/C in A)
- C.reagents.add_reagent("regen_jelly",10)
+ C.reagents.add_reagent(/datum/reagent/medicine/regen_jelly,10)
..()
/obj/item/slimecross/chilling/blue
diff --git a/code/modules/research/xenobiology/crossbreeding/consuming.dm b/code/modules/research/xenobiology/crossbreeding/consuming.dm
index 67a11258bf8..f82aaff0d66 100644
--- a/code/modules/research/xenobiology/crossbreeding/consuming.dm
+++ b/code/modules/research/xenobiology/crossbreeding/consuming.dm
@@ -20,7 +20,7 @@ Consuming extracts:
if(last_produced + cooldown > world.time)
to_chat(user, "[src] is still digesting after its last meal!")
return
- var/datum/reagent/N = O.reagents.has_reagent("nutriment")
+ var/datum/reagent/N = O.reagents.has_reagent(/datum/reagent/consumable/nutriment)
if(N)
nutriment_eaten += N.volume
to_chat(user, "[src] opens up and swallows [O] whole!")
@@ -76,7 +76,7 @@ Consuming extracts:
to_chat(M, "Tastes like [taste].")
playsound(get_turf(M), 'sound/items/eatfood.ogg', 20, 1)
if(nutrition)
- M.reagents.add_reagent("nutriment",nutrition)
+ M.reagents.add_reagent(/datum/reagent/consumable/nutriment,nutrition)
do_effect(M, user)
qdel(src)
return
@@ -136,7 +136,7 @@ Consuming extracts:
name = "water cookie"
desc = "A transparent blue cookie. Constantly dripping wet."
icon_state = "blue"
- taste = "water"
+ taste = /datum/reagent/water
/obj/item/slime_cookie/blue/do_effect(mob/living/M, mob/user)
M.apply_status_effect(/datum/status_effect/watercookie)
@@ -150,7 +150,7 @@ Consuming extracts:
name = "metallic cookie"
desc = "A shiny grey cookie. Hard to the touch."
icon_state = "metal"
- taste = "copper"
+ taste = /datum/reagent/copper
/obj/item/slime_cookie/metal/do_effect(mob/living/M, mob/user)
M.apply_status_effect(/datum/status_effect/metalcookie)
@@ -211,7 +211,7 @@ Consuming extracts:
nutrition = 0 //We don't want normal nutriment
/obj/item/slime_cookie/silver/do_effect(mob/living/M, mob/user)
- M.reagents.add_reagent("stabilizednutriment",10)
+ M.reagents.add_reagent(/datum/reagent/consumable/nutriment/stabilized,10)
/obj/item/slimecross/consuming/bluespace
colour = "bluespace"
diff --git a/code/modules/research/xenobiology/crossbreeding/industrial.dm b/code/modules/research/xenobiology/crossbreeding/industrial.dm
index c6d0434bdab..b53716e14c9 100644
--- a/code/modules/research/xenobiology/crossbreeding/industrial.dm
+++ b/code/modules/research/xenobiology/crossbreeding/industrial.dm
@@ -30,13 +30,13 @@ Industrial extracts:
/obj/item/slimecross/industrial/process()
var/IsWorking = FALSE
- if(reagents.has_reagent("plasma",amount = 2) && plasmarequired > 1) //Can absorb as much as 2
+ if(reagents.has_reagent(/datum/reagent/toxin/plasma,amount = 2) && plasmarequired > 1) //Can absorb as much as 2
IsWorking = TRUE
- reagents.remove_reagent("plasma",2)
+ reagents.remove_reagent(/datum/reagent/toxin/plasma,2)
plasmaabsorbed += 2
- else if(reagents.has_reagent("plasma",amount = 1)) //Can absorb as little as 1
+ else if(reagents.has_reagent(/datum/reagent/toxin/plasma,amount = 1)) //Can absorb as little as 1
IsWorking = TRUE
- reagents.remove_reagent("plasma",1)
+ reagents.remove_reagent(/datum/reagent/toxin/plasma,1)
plasmaabsorbed += 1
if(plasmaabsorbed >= plasmarequired)
diff --git a/code/modules/research/xenobiology/crossbreeding/regenerative.dm b/code/modules/research/xenobiology/crossbreeding/regenerative.dm
index cbe674eb182..e1d6f36485c 100644
--- a/code/modules/research/xenobiology/crossbreeding/regenerative.dm
+++ b/code/modules/research/xenobiology/crossbreeding/regenerative.dm
@@ -52,7 +52,7 @@ Regenerative extracts:
effect_desc = "Fully heals the target and injects them with some regen jelly."
/obj/item/slimecross/regenerative/purple/core_effect(mob/living/target, mob/user)
- target.reagents.add_reagent("regen_jelly",10)
+ target.reagents.add_reagent(/datum/reagent/medicine/regen_jelly,10)
/obj/item/slimecross/regenerative/blue
colour = "blue"
@@ -187,7 +187,7 @@ Regenerative extracts:
/obj/item/slimecross/regenerative/red/core_effect(mob/living/target, mob/user)
to_chat(target, "You feel... faster.")
- target.reagents.add_reagent("ephedrine",3)
+ target.reagents.add_reagent(/datum/reagent/medicine/ephedrine,3)
/obj/item/slimecross/regenerative/green
colour = "green"
@@ -199,7 +199,7 @@ Regenerative extracts:
var/mob/living/simple_animal/slime/S = target
S.random_colour()
if(isjellyperson(target))
- target.reagents.add_reagent("slime_toxin",5)
+ target.reagents.add_reagent(/datum/reagent/slime_toxin,5)
/obj/item/slimecross/regenerative/pink
@@ -208,7 +208,7 @@ Regenerative extracts:
/obj/item/slimecross/regenerative/pink/core_effect(mob/living/target, mob/user)
to_chat(target, "You feel more calm.")
- target.reagents.add_reagent("krokodil",4)
+ target.reagents.add_reagent(/datum/reagent/drug/krokodil,4)
/obj/item/slimecross/regenerative/gold
colour = "gold"
diff --git a/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm b/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm
index a33e5833613..f47fa47a98d 100644
--- a/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm
+++ b/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm
@@ -44,7 +44,7 @@ Self-sustaining extracts:
amount = 4
reagentselect = "plasma"
if(reagentselect == "holy water and uranium")
- reagentselect = "holywater"
+ reagentselect = /datum/reagent/water/holywater
secondary = "uranium"
extract.forceMove(user.drop_location())
qdel(src)
diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm
index 5452bb50276..fddd16ea797 100644
--- a/code/modules/research/xenobiology/xenobiology.dm
+++ b/code/modules/research/xenobiology/xenobiology.dm
@@ -42,7 +42,7 @@
/obj/item/slime_extract/on_grind()
if(Uses)
- grind_results["slimejelly"] = 20
+ grind_results[/datum/reagent/toxin/slimejelly] = 20
//Effect when activated by a Luminescent. Separated into a minor and major effect. Returns cooldown in deciseconds.
/obj/item/slime_extract/proc/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
@@ -78,7 +78,7 @@
name = "grey slime extract"
icon_state = "grey slime extract"
effectmod = "reproductive"
- activate_reagents = list("blood","plasma","water")
+ activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water)
/obj/item/slime_extract/grey/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
@@ -103,7 +103,7 @@
name = "gold slime extract"
icon_state = "gold slime extract"
effectmod = "symbiont"
- activate_reagents = list("blood","plasma","water")
+ activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water)
/obj/item/slime_extract/gold/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
@@ -132,7 +132,7 @@
name = "silver slime extract"
icon_state = "silver slime extract"
effectmod = "consuming"
- activate_reagents = list("plasma","water")
+ activate_reagents = list(/datum/reagent/toxin/plasma,/datum/reagent/water)
/obj/item/slime_extract/silver/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
@@ -157,7 +157,7 @@
name = "metal slime extract"
icon_state = "metal slime extract"
effectmod = "industrial"
- activate_reagents = list("plasma","water")
+ activate_reagents = list(/datum/reagent/toxin/plasma,/datum/reagent/water)
/obj/item/slime_extract/metal/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
@@ -181,7 +181,7 @@
name = "purple slime extract"
icon_state = "purple slime extract"
effectmod = "regenerative"
- activate_reagents = list("blood","plasma")
+ activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma)
/obj/item/slime_extract/purple/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
@@ -193,14 +193,14 @@
if(SLIME_ACTIVATE_MAJOR)
to_chat(user, "You activate [src], and it releases regenerative chemicals!")
- user.reagents.add_reagent("regen_jelly",10)
+ user.reagents.add_reagent(/datum/reagent/medicine/regen_jelly,10)
return 600
/obj/item/slime_extract/darkpurple
name = "dark purple slime extract"
icon_state = "dark purple slime extract"
effectmod = "self-sustaining"
- activate_reagents = list("plasma")
+ activate_reagents = list(/datum/reagent/toxin/plasma)
/obj/item/slime_extract/darkpurple/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
@@ -223,19 +223,19 @@
name = "orange slime extract"
icon_state = "orange slime extract"
effectmod = "burning"
- activate_reagents = list("blood","plasma","water")
+ activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water)
/obj/item/slime_extract/orange/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
if(SLIME_ACTIVATE_MINOR)
to_chat(user, "You activate [src]. You start feeling hot!")
- user.reagents.add_reagent("capsaicin",10)
+ user.reagents.add_reagent(/datum/reagent/consumable/capsaicin,10)
return 150
if(SLIME_ACTIVATE_MAJOR)
- user.reagents.add_reagent("phosphorus",5)//
- user.reagents.add_reagent("potassium",5) // = smoke, along with any reagents inside mr. slime
- user.reagents.add_reagent("sugar",5) //
+ user.reagents.add_reagent(/datum/reagent/phosphorus,5)//
+ user.reagents.add_reagent(/datum/reagent/potassium,5) // = smoke, along with any reagents inside mr. slime
+ user.reagents.add_reagent(/datum/reagent/consumable/sugar,5) //
to_chat(user, "You activate [src], and a cloud of smoke bursts out of your skin!")
return 450
@@ -243,7 +243,7 @@
name = "yellow slime extract"
icon_state = "yellow slime extract"
effectmod = "charged"
- activate_reagents = list("blood","plasma","water")
+ activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water)
/obj/item/slime_extract/yellow/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
@@ -266,13 +266,13 @@
name = "red slime extract"
icon_state = "red slime extract"
effectmod = "sanguine"
- activate_reagents = list("blood","plasma","water")
+ activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water)
/obj/item/slime_extract/red/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
if(SLIME_ACTIVATE_MINOR)
to_chat(user, "You activate [src]. You start feeling fast!")
- user.reagents.add_reagent("ephedrine",5)
+ user.reagents.add_reagent(/datum/reagent/medicine/ephedrine,5)
return 450
if(SLIME_ACTIVATE_MAJOR)
@@ -286,15 +286,15 @@
name = "blue slime extract"
icon_state = "blue slime extract"
effectmod = "stabilized"
- activate_reagents = list("blood","plasma","water")
+ activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water)
/obj/item/slime_extract/blue/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
if(SLIME_ACTIVATE_MINOR)
to_chat(user, "You activate [src]. Your genome feels more stable!")
user.adjustCloneLoss(-15)
- user.reagents.add_reagent("mutadone", 10)
- user.reagents.add_reagent("potass_iodide", 10)
+ user.reagents.add_reagent(/datum/reagent/medicine/mutadone, 10)
+ user.reagents.add_reagent(/datum/reagent/medicine/potass_iodide, 10)
return 250
if(SLIME_ACTIVATE_MAJOR)
@@ -310,7 +310,7 @@
name = "dark blue slime extract"
icon_state = "dark blue slime extract"
effectmod = "chilling"
- activate_reagents = list("plasma","water")
+ activate_reagents = list(/datum/reagent/toxin/plasma,/datum/reagent/water)
/obj/item/slime_extract/darkblue/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
@@ -318,8 +318,8 @@
to_chat(user, "You activate [src]. You start feeling colder!")
user.ExtinguishMob()
user.adjust_fire_stacks(-20)
- user.reagents.add_reagent("frostoil",4)
- user.reagents.add_reagent("cryoxadone",5)
+ user.reagents.add_reagent(/datum/reagent/consumable/frostoil,4)
+ user.reagents.add_reagent(/datum/reagent/medicine/cryoxadone,5)
return 100
if(SLIME_ACTIVATE_MAJOR)
@@ -333,7 +333,7 @@
name = "pink slime extract"
icon_state = "pink slime extract"
effectmod = "gentle"
- activate_reagents = list("blood","plasma")
+ activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma)
/obj/item/slime_extract/pink/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
@@ -354,14 +354,14 @@
user.visible_message("[user]'s skin starts flashing hypnotically...", "Your skin starts forming odd patterns, pacifying creatures around you.")
for(var/mob/living/carbon/C in viewers(user, null))
if(C != user)
- C.reagents.add_reagent("pax",2)
+ C.reagents.add_reagent(/datum/reagent/pax,2)
return 600
/obj/item/slime_extract/green
name = "green slime extract"
icon_state = "green slime extract"
effectmod = "mutative"
- activate_reagents = list("blood","plasma","radium")
+ activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/uranium/radium)
/obj/item/slime_extract/green/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
@@ -385,7 +385,7 @@
name = "light pink slime extract"
icon_state = "light pink slime extract"
effectmod = "loyal"
- activate_reagents = list("plasma")
+ activate_reagents = list(/datum/reagent/toxin/plasma)
/obj/item/slime_extract/lightpink/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
@@ -409,7 +409,7 @@
name = "black slime extract"
icon_state = "black slime extract"
effectmod = "transformative"
- activate_reagents = list("plasma")
+ activate_reagents = list(/datum/reagent/toxin/plasma)
/obj/item/slime_extract/black/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
@@ -430,7 +430,7 @@
name = "oil slime extract"
icon_state = "oil slime extract"
effectmod = "detonating"
- activate_reagents = list("blood","plasma")
+ activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma)
/obj/item/slime_extract/oil/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
@@ -453,7 +453,7 @@
name = "adamantine slime extract"
icon_state = "adamantine slime extract"
effectmod = "crystalline"
- activate_reagents = list("plasma")
+ activate_reagents = list(/datum/reagent/toxin/plasma)
/obj/item/slime_extract/adamantine/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
@@ -482,7 +482,7 @@
name = "bluespace slime extract"
icon_state = "bluespace slime extract"
effectmod = "warping"
- activate_reagents = list("blood","plasma")
+ activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma)
var/teleport_ready = FALSE
var/teleport_x = 0
var/teleport_y = 0
@@ -518,7 +518,7 @@
name = "pyrite slime extract"
icon_state = "pyrite slime extract"
effectmod = "prismatic"
- activate_reagents = list("blood","plasma")
+ activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma)
/obj/item/slime_extract/pyrite/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
@@ -544,12 +544,12 @@
name = "cerulean slime extract"
icon_state = "cerulean slime extract"
effectmod = "recurring"
- activate_reagents = list("blood","plasma")
+ activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma)
/obj/item/slime_extract/cerulean/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
if(SLIME_ACTIVATE_MINOR)
- user.reagents.add_reagent("salbutamol",15)
+ user.reagents.add_reagent(/datum/reagent/medicine/salbutamol,15)
to_chat(user, "You feel like you don't need to breathe!")
return 150
@@ -564,7 +564,7 @@
name = "sepia slime extract"
icon_state = "sepia slime extract"
effectmod = "lengthened"
- activate_reagents = list("blood","plasma","water")
+ activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water)
/obj/item/slime_extract/sepia/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
@@ -586,7 +586,7 @@
name = "rainbow slime extract"
icon_state = "rainbow slime extract"
effectmod = "hyperchromatic"
- activate_reagents = list("blood","plasma","lesser plasma","slimejelly","holy water and uranium") //Curse this snowflake reagent list.
+ activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,"lesser plasma",/datum/reagent/toxin/slimejelly,"holy water and uranium") //Curse this snowflake reagent list.
/obj/item/slime_extract/rainbow/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
switch(activation_type)
diff --git a/code/modules/ruins/spaceruin_code/hilbertshotel.dm b/code/modules/ruins/spaceruin_code/hilbertshotel.dm
index 8ab5d68ff2d..807b3f0acf0 100644
--- a/code/modules/ruins/spaceruin_code/hilbertshotel.dm
+++ b/code/modules/ruins/spaceruin_code/hilbertshotel.dm
@@ -327,7 +327,7 @@ GLOBAL_VAR_INIT(hhmysteryRoomNumber, 1337)
for(var/obj/item/hilbertshotel/H in hotels)
if(parentSphere == H)
relocate(H)
-
+
/area/hilbertshotel/proc/relocate(obj/item/hilbertshotel/H)
if(prob(0.135685)) //Because screw you
qdel(H)
@@ -528,4 +528,3 @@ GLOBAL_VAR_INIT(hhmysteryRoomNumber, 1337)
Lay your head to rest, it soon becomes clear
There's always more room around every bend
Not all that's countable has an end..."}
-
diff --git a/code/modules/surgery/advanced/necrotic_revival.dm b/code/modules/surgery/advanced/necrotic_revival.dm
index a88bb51b31f..4c1a2a30fa0 100644
--- a/code/modules/surgery/advanced/necrotic_revival.dm
+++ b/code/modules/surgery/advanced/necrotic_revival.dm
@@ -20,7 +20,7 @@
name = "start bionecrosis"
implements = list(/obj/item/hemostat = 100, TOOL_SCREWDRIVER = 35, /obj/item/pen = 15)
time = 50
- chems_needed = list("zombiepowder", "rezadone")
+ chems_needed = list(/datum/reagent/toxin/zombiepowder, /datum/reagent/medicine/rezadone)
require_all_chems = FALSE
/datum/surgery_step/bionecrosis/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
diff --git a/code/modules/surgery/advanced/viral_bonding.dm b/code/modules/surgery/advanced/viral_bonding.dm
index f46bb6e2b9d..ab8a46edf3f 100644
--- a/code/modules/surgery/advanced/viral_bonding.dm
+++ b/code/modules/surgery/advanced/viral_bonding.dm
@@ -22,7 +22,7 @@
name = "viral bond"
implements = list(/obj/item/cautery = 100, TOOL_WELDER = 50, /obj/item = 30) // 30% success with any hot item.
time = 100
- chems_needed = list("spaceacillin","virusfood","formaldehyde")
+ chems_needed = list(/datum/reagent/medicine/spaceacillin,/datum/reagent/consumable/virus_food,/datum/reagent/toxin/formaldehyde)
/datum/surgery_step/viral_bond/tool_check(mob/user, obj/item/tool)
if(implement_type == TOOL_WELDER || implement_type == /obj/item)
diff --git a/code/modules/surgery/lipoplasty.dm b/code/modules/surgery/lipoplasty.dm
index 26a867df82f..1e7bebc51f1 100644
--- a/code/modules/surgery/lipoplasty.dm
+++ b/code/modules/surgery/lipoplasty.dm
@@ -48,6 +48,6 @@
newmeat.desc = "Extremely fatty tissue taken from a patient."
newmeat.subjectname = H.real_name
newmeat.subjectjob = H.job
- newmeat.reagents.add_reagent ("nutriment", (removednutriment / 15)) //To balance with nutriment_factor of nutriment
+ newmeat.reagents.add_reagent (/datum/reagent/consumable/nutriment, (removednutriment / 15)) //To balance with nutriment_factor of nutriment
newmeat.forceMove(target.loc)
return 1
\ No newline at end of file
diff --git a/code/modules/surgery/organs/appendix.dm b/code/modules/surgery/organs/appendix.dm
index 34a7e16ebff..7c1f37c1ba7 100644
--- a/code/modules/surgery/organs/appendix.dm
+++ b/code/modules/surgery/organs/appendix.dm
@@ -28,5 +28,5 @@
/obj/item/organ/appendix/prepare_eat()
var/obj/S = ..()
if(inflamed)
- S.reagents.add_reagent("bad_food", 5)
+ S.reagents.add_reagent(/datum/reagent/toxin/bad_food, 5)
return S
diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm
index 01b8971cf6a..4571d749684 100644
--- a/code/modules/surgery/organs/augments_chest.dm
+++ b/code/modules/surgery/organs/augments_chest.dm
@@ -32,7 +32,7 @@
. = ..()
if(!owner || . & EMP_PROTECT_SELF)
return
- owner.reagents.add_reagent("bad_food", poison_amount / severity)
+ owner.reagents.add_reagent(/datum/reagent/toxin/bad_food, poison_amount / severity)
to_chat(owner, "You feel like your insides are burning.")
diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm
index 7870057dc55..42e24dd55a2 100644
--- a/code/modules/surgery/organs/heart.dm
+++ b/code/modules/surgery/organs/heart.dm
@@ -156,7 +156,7 @@
synthetic = TRUE
var/dose_available = TRUE
- var/rid = "epinephrine"
+ var/rid = /datum/reagent/medicine/epinephrine
var/ramount = 10
/obj/item/organ/heart/cybernetic/emp_act()
@@ -195,5 +195,5 @@
min_next_adrenaline = world.time + rand(250, 600) //anywhere from 4.5 to 10 minutes
to_chat(owner, "You feel yourself dying, but you refuse to give up!")
owner.heal_overall_damage(15, 15, 0, BODYPART_ORGANIC)
- if(owner.reagents.get_reagent_amount("ephedrine") < 20)
- owner.reagents.add_reagent("ephedrine", 10)
+ if(owner.reagents.get_reagent_amount(/datum/reagent/medicine/ephedrine) < 20)
+ owner.reagents.add_reagent(/datum/reagent/medicine/ephedrine, 10)
diff --git a/code/modules/surgery/organs/liver.dm b/code/modules/surgery/organs/liver.dm
index 07a74bd8f8f..275eb1c80c7 100755
--- a/code/modules/surgery/organs/liver.dm
+++ b/code/modules/surgery/organs/liver.dm
@@ -35,12 +35,12 @@
for(var/I in C.reagents.reagent_list)
var/datum/reagent/pickedreagent = I
if(istype(pickedreagent, /datum/reagent/toxin))
- var/datum/reagent/toxin/found_toxin = pickedreagent
- var/thisamount = C.reagents.get_reagent_amount(initial(found_toxin.id))
+ var/thisamount = C.reagents.get_reagent_amount(pickedreagent)
if (thisamount <= toxTolerance && thisamount)
- C.reagents.remove_reagent(initial(found_toxin.id), 1)
+ C.reagents.remove_reagent(pickedreagent, 1)
else
damage += (thisamount*toxLethality)
+ var/datum/reagent/toxin/found_toxin = pickedreagent
if(provide_pain_message != HAS_PAINFUL_TOXIN)
provide_pain_message = found_toxin.silent_toxin ? HAS_SILENT_TOXIN : HAS_PAINFUL_TOXIN
@@ -59,7 +59,7 @@
/obj/item/organ/liver/prepare_eat()
var/obj/S = ..()
- S.reagents.add_reagent("iron", 5)
+ S.reagents.add_reagent(/datum/reagent/iron, 5)
return S
/obj/item/organ/liver/fly
diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm
index db49a0353bb..c52339e5318 100644
--- a/code/modules/surgery/organs/lungs.dm
+++ b/code/modules/surgery/organs/lungs.dm
@@ -52,7 +52,7 @@
var/heat_level_3_damage = HEAT_GAS_DAMAGE_LEVEL_3
var/heat_damage_type = BURN
- var/crit_stabilizing_reagent = "epinephrine"
+ var/crit_stabilizing_reagent = /datum/reagent/medicine/epinephrine
/obj/item/organ/lungs/proc/check_breath(datum/gas_mixture/breath, mob/living/carbon/human/H)
@@ -241,13 +241,13 @@
var/bz_pp = breath.get_breath_partial_pressure(breath_gases[/datum/gas/bz][MOLES])
if(bz_pp > BZ_trip_balls_min)
H.hallucination += 10
- H.reagents.add_reagent("bz_metabolites",5)
+ H.reagents.add_reagent(/datum/reagent/bz_metabolites,5)
if(prob(33))
H.adjustBrainLoss(3, 150)
else if(bz_pp > 0.01)
H.hallucination += 5
- H.reagents.add_reagent("bz_metabolites",1)
+ H.reagents.add_reagent(/datum/reagent/bz_metabolites,1)
// Tritium
@@ -271,15 +271,15 @@
H.adjustFireLoss(nitryl_pp/4)
gas_breathed = breath_gases[/datum/gas/nitryl][MOLES]
if (gas_breathed > gas_stimulation_min)
- H.reagents.add_reagent("no2",1)
+ H.reagents.add_reagent(/datum/reagent/nitryl,1)
breath_gases[/datum/gas/nitryl][MOLES]-=gas_breathed
// Stimulum
gas_breathed = breath_gases[/datum/gas/stimulum][MOLES]
if (gas_breathed > gas_stimulation_min)
- var/existing = H.reagents.get_reagent_amount("stimulum")
- H.reagents.add_reagent("stimulum",max(0, 1 - existing))
+ var/existing = H.reagents.get_reagent_amount(/datum/reagent/stimulum)
+ H.reagents.add_reagent(/datum/reagent/stimulum,max(0, 1 - existing))
breath_gases[/datum/gas/stimulum][MOLES]-=gas_breathed
// Miasma
@@ -380,7 +380,7 @@
/obj/item/organ/lungs/prepare_eat()
var/obj/S = ..()
- S.reagents.add_reagent("salbutamol", 5)
+ S.reagents.add_reagent(/datum/reagent/medicine/salbutamol, 5)
return S
/obj/item/organ/lungs/plasmaman
diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm
index 320a621d019..4f821f51efb 100644
--- a/code/modules/surgery/organs/organ_internal.dm
+++ b/code/modules/surgery/organs/organ_internal.dm
@@ -75,7 +75,7 @@
name = "appendix"
icon_state = "appendix"
icon = 'icons/obj/surgery.dmi'
- list_reagents = list("nutriment" = 5)
+ list_reagents = list(/datum/reagent/consumable/nutriment = 5)
foodtype = RAW | MEAT | GROSS
diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm
index 911cb697d24..f65d10b4ec7 100644
--- a/code/modules/vehicles/cars/clowncar.dm
+++ b/code/modules/vehicles/cars/clowncar.dm
@@ -126,7 +126,7 @@
visible_message("[user] has pressed one of the colorful buttons on [src] and the clown car spews out a cloud of laughing gas.")
var/datum/reagents/R = new/datum/reagents(300)
R.my_atom = src
- R.add_reagent("superlaughter", 50)
+ R.add_reagent(/datum/reagent/consumable/superlaughter, 50)
var/datum/effect_system/smoke_spread/chem/smoke = new()
smoke.set_up(R, 4)
smoke.attach(src)
diff --git a/tgui/assets/tgui.js b/tgui/assets/tgui.js
index 642df3307c9..6d35fe3eebb 100644
--- a/tgui/assets/tgui.js
+++ b/tgui/assets/tgui.js
@@ -18,4 +18,4 @@ t:7,e:"td",a:{style:"width:25%"},f:[{p:[29,145,1216],t:7,e:"b",f:["Close job"]}]
t:2,r:"sym_index",p:[58,81,2203]},', "index": ',{t:2,r:"index",p:[58,105,2227]},"}"]},f:[{t:2,r:"name",p:[59,10,2250]}," "]},{p:[60,21,2280],t:7,e:"br"}],n:52,r:"symptoms",p:[57,8,2103]}]}," ",{p:[63,7,2333],t:7,e:"ui-section",a:{label:"Resistance"},f:[{t:2,r:"resistance",p:[63,38,2364]}]}," ",{p:[64,7,2399],t:7,e:"ui-section",a:{label:"Stealth"},f:[{t:2,r:"stealth",p:[64,35,2427]}]}," ",{p:[65,7,2459],t:7,e:"ui-section",a:{label:"Stage speed"},f:[{t:2,r:"stage_speed",p:[65,39,2491]}]}," ",{p:[66,7,2527],t:7,e:"ui-section",a:{label:"Transmittability"},f:[{t:2,r:"transmission",p:[66,44,2564]}]}],n:50,r:"is_adv",p:[55,6,2043]}]}],n:52,r:"data.viruses",p:[39,4,1266]},{t:4,n:51,f:[{p:[70,5,2645],t:7,e:"ui-section",f:[{p:[71,6,2664],t:7,e:"span",a:{"class":"average"},f:["No detectable virus in the blood sample."]}]}],r:"data.viruses"}]}," ",{p:[75,3,2787],t:7,e:"ui-display",a:{title:"Antibodies"},f:[{t:4,f:[{p:[77,5,2855],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[77,24,2874]}]},f:[{p:[78,7,2892],t:7,e:"ui-button",a:{icon:"eyedropper",state:[{t:2,x:{r:["data.is_ready"],s:'_0?"":"disabled"'},p:[78,43,2928]}],action:"create_vaccine_bottle",params:['{"index": ',{t:2,r:"id",p:[78,129,3014]},"}"]},f:["Create vaccine bottle"]}]}],n:52,r:"data.resistances",p:[76,4,2823]},{t:4,n:51,f:[{p:[83,5,3111],t:7,e:"ui-section",f:[{p:[84,6,3130],t:7,e:"span",a:{"class":"average"},f:["No antibodies detected in the blood sample."]}]}],r:"data.resistances"}]}],n:50,r:"data.has_blood",p:[37,2,1206]}],n:50,x:{r:["data.mode"],s:"_0==1"},p:[1,1,0]},{t:4,n:51,f:[{p:[90,2,3275],t:7,e:"ui-button",a:{icon:"undo",state:"",action:"back"},f:["Back"]}," ",{t:4,f:[{p:[94,4,3374],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[94,23,3393]}]},f:[{p:[95,4,3408],t:7,e:"ui-section",f:[{t:2,r:"desc",p:[96,5,3426]}," ",{t:4,f:[{p:[98,5,3461],t:7,e:"br"}," ",{p:[99,5,3472],t:7,e:"b",f:["This symptom has been neutered, and has no effect. It will still affect the virus' statistics."]}],n:50,r:"neutered",p:[97,4,3439]}]}," ",{p:[102,4,3608],t:7,e:"ui-section",f:[{p:[103,5,3626],t:7,e:"ui-section",a:{label:"Level"},f:[{t:2,r:"level",p:[103,31,3652]}]}," ",{p:[104,5,3680],t:7,e:"ui-section",a:{label:"Resistance"},f:[{t:2,r:"resistance",p:[104,36,3711]}]}," ",{p:[105,5,3744],t:7,e:"ui-section",a:{label:"Stealth"},f:[{t:2,r:"stealth",p:[105,33,3772]}]}," ",{p:[106,5,3802],t:7,e:"ui-section",a:{label:"Stage speed"},f:[{t:2,r:"stage_speed",p:[106,37,3834]}]}," ",{p:[107,5,3868],t:7,e:"ui-section",a:{label:"Transmittability"},f:[{t:2,r:"transmission",p:[107,42,3905]}]}]}," ",{p:[109,4,3957],t:7,e:"ui-subdisplay",a:{title:"Effect Thresholds"},f:[{p:[110,5,4004],t:7,e:"ui-section",f:[{t:3,r:"threshold_desc",p:[110,17,4016]}]}]}]}],n:53,r:"data.symptom",p:[93,2,3347]}],x:{r:["data.mode"],s:"_0==1"}}]},e.exports=a.extend(r.exports)},{340:340}],434:[function(t,e,n){var a=t(340),r={exports:{}};!function(e){"use strict";var n=t(481);e.exports={data:{filter:"",tooltiptext:function(t,e,n){var a="";return t&&(a+="REQUIREMENTS: "+t+" "),e&&(a+="CATALYSTS: "+e+" "),n&&(a+="TOOLS: "+n),a}},oninit:function(){var t=this;this.on({hover:function(t){this.set("hovered",t.context.params)},unhover:function(t){this.set("hovered")}}),this.observe("filter",function(e,a,r){var i=null;i=t.get("data.display_compact")?t.findAll(".section"):t.findAll(".display:not(:first-child)"),(0,n.filterMulti)(i,t.get("filter").toLowerCase())},{init:!1})}}}(r),r.exports.template={v:3,t:[" ",{p:[48,1,1342],t:7,e:"ui-display",a:{title:[{t:2,r:"data.category",p:[48,20,1361]},{t:4,f:[" : ",{t:2,r:"data.subcategory",p:[48,64,1405]}],n:50,r:"data.subcategory",p:[48,37,1378]}]},f:[{t:4,f:[{p:[50,3,1459],t:7,e:"ui-section",f:["Crafting... ",{p:[51,16,1488],t:7,e:"i",a:{"class":"fa-spin fa fa-spinner"}}]}],n:50,r:"data.busy",p:[49,2,1438]},{t:4,n:51,f:[{p:[54,3,1557],t:7,e:"ui-section",f:[{p:[55,4,1574],t:7,e:"table",a:{style:"width:100%"},f:[{p:[56,5,1606],t:7,e:"tr",f:[{p:[57,6,1617],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[58,7,1659],t:7,e:"ui-button",a:{icon:"arrow-left",action:"backwardCat"},f:[{t:2,r:"data.prev_cat",p:[59,8,1718]}]}]}," ",{p:[62,6,1774],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[63,7,1816],t:7,e:"ui-button",a:{icon:"arrow-right",action:"forwardCat"},f:[{t:2,r:"data.next_cat",p:[64,7,1874]}]}]}," ",{p:[67,6,1930],t:7,e:"td",a:{style:"float:right!important"},f:[{t:4,f:[{p:[69,7,2014],t:7,e:"ui-button",a:{icon:"lock",action:"toggle_recipes"},f:["Showing Craftable Recipes"]}],n:50,r:"data.display_craftable_only",p:[68,6,1971]},{t:4,n:51,f:[{p:[73,7,2138],t:7,e:"ui-button",a:{icon:"unlock",action:"toggle_recipes"},f:["Showing All Recipes"]}],r:"data.display_craftable_only"}]}," ",{p:[78,6,2268],t:7,e:"td",a:{style:"float:right!important"},f:[{p:[79,7,2310],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.display_compact"],s:'_0?"check-square-o":"square-o"'},p:[79,24,2327]}],action:"toggle_compact"},f:["Compact"]}]}]}," ",{p:[84,5,2474],t:7,e:"tr",f:[{t:4,f:[{p:[86,6,2515],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[87,7,2557],t:7,e:"ui-button",a:{icon:"arrow-left",action:"backwardSubCat"},f:[{t:2,r:"data.prev_subcat",p:[88,8,2619]}]}]}," ",{p:[91,6,2678],t:7,e:"td",a:{style:"width:150px!important"},f:[{p:[92,7,2720],t:7,e:"ui-button",a:{icon:"arrow-right",action:"forwardSubCat"},f:[{t:2,r:"data.next_subcat",p:[93,8,2782]}]}]}],n:50,r:"data.subcategory",p:[85,5,2484]}]}]}," ",{t:4,f:[{t:4,f:[" ",{p:[101,6,2992],t:7,e:"ui-input",a:{value:[{t:2,r:"filter",p:[101,23,3009]}],placeholder:"Filter.."}}],n:51,r:"data.display_compact",p:[100,5,2902]}],n:50,r:"config.fancy",p:[99,4,2876]}]}," ",{t:4,f:[{p:[106,5,3144],t:7,e:"ui-display",f:[{t:4,f:[{p:[108,6,3193],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[108,25,3212]}]},f:[{p:[109,7,3230],t:7,e:"ui-button",a:{tooltip:[{t:2,x:{r:["tooltiptext","req_text","catalyst_text","tool_text"],s:"_0(_1,_2,_3)"},p:[109,27,3250]}],"tooltip-side":"right",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[109,135,3358]},'"}'],icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.can_craft",p:[107,5,3162]}," ",{t:4,f:[{t:4,f:[{p:[116,7,3567],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[116,26,3586]}]},f:[{p:[117,8,3605],t:7,e:"ui-button",a:{tooltip:[{t:2,x:{r:["tooltiptext","req_text","catalyst_text","tool_text"],s:"_0(_1,_2,_3)"},p:[117,28,3625]}],"tooltip-side":"right",state:"disabled",icon:"gears"},v:{hover:"hover",unhover:"unhover"},f:["Craft"]}]}],n:52,r:"data.cant_craft",p:[115,6,3534]}],n:51,r:"data.display_craftable_only",p:[114,5,3495]}]}],n:50,r:"data.display_compact",p:[105,4,3110]},{t:4,n:51,f:[{t:4,f:[{p:[126,6,3947],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[126,25,3966]}]},f:[{t:4,f:[{p:[128,8,4009],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[129,9,4052]}]}],n:50,r:"req_text",p:[127,7,3984]}," ",{t:4,f:[{p:[133,8,4139],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[134,9,4179]}]}],n:50,r:"catalyst_text",p:[132,7,4109]}," ",{t:4,f:[{p:[138,8,4267],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[139,9,4303]}]}],n:50,r:"tool_text",p:[137,7,4241]}," ",{p:[142,7,4361],t:7,e:"ui-section",f:[{p:[143,8,4382],t:7,e:"ui-button",a:{icon:"gears",action:"make",params:['{"recipe": "',{t:2,r:"ref",p:[143,66,4440]},'"}']},f:["Craft"]}]}]}],n:52,r:"data.can_craft",p:[125,5,3916]}," ",{t:4,f:[{t:4,f:[{p:[151,7,4621],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[151,26,4640]}]},f:[{t:4,f:[{p:[153,9,4685],t:7,e:"ui-section",a:{label:"Requirements"},f:[{t:2,r:"req_text",p:[154,10,4729]}]}],n:50,r:"req_text",p:[152,8,4659]}," ",{t:4,f:[{p:[158,9,4820],t:7,e:"ui-section",a:{label:"Catalysts"},f:[{t:2,r:"catalyst_text",p:[159,10,4861]}]}],n:50,r:"catalyst_text",p:[157,8,4789]}," ",{t:4,f:[{p:[163,9,4953],t:7,e:"ui-section",a:{label:"Tools"},f:[{t:2,r:"tool_text",p:[164,10,4990]}]}],n:50,r:"tool_text",p:[162,8,4926]}]}],n:52,r:"data.cant_craft",p:[150,6,4588]}],n:51,r:"data.display_craftable_only",p:[149,5,4549]}],r:"data.display_compact"}],r:"data.busy"}]}]},e.exports=a.extend(r.exports)},{340:340,481:481}],435:[function(t,e,n){var a=t(340),r={exports:{}};!function(t){"use strict";t.exports={computed:{stackPercentState:function(){var t=this.get("data.stack_percent");return t>50?"good":t>15?"average":"bad"},sheetsAmount:function(){var t=this.get("data.sheets");return t>5?"good":t>0?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{t:4,f:[{p:[21,3,495],t:7,e:"ui-notice",f:[{p:[22,5,512],t:7,e:"span",f:["Generator not anchored."]}]}],n:50,x:{r:["data.anchored"],s:"!_0"},p:[20,1,469]},{p:[26,1,577],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[27,3,608],t:7,e:"ui-section",a:{label:"Power switch"},f:[{t:4,f:[{p:[29,5,669],t:7,e:"ui-button",a:{icon:"power-off",style:"selected",action:"toggle_power"},f:["On"]}],n:50,r:"data.active",p:[28,2,644]},{t:4,n:51,f:[{p:[31,5,767],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.ready_to_boot"],s:'_0?null:"disabled"'},p:[31,36,798]}],action:"toggle_power"},f:["Off"]}],r:"data.active"}]}," ",{p:[34,3,910],t:7,e:"ui-section",a:{label:[{t:2,r:"data.sheet_name",p:[34,22,929]}," sheets"]},f:[{p:[35,2,960],t:7,e:"span",a:{"class":[{t:2,r:"sheetsAmount",p:[35,15,973]}]},f:[{t:2,r:"data.sheets",p:[35,33,991]}]}," ",{t:4,f:[{p:[37,5,1046],t:7,e:"ui-button",a:{action:"eject",state:[{t:2,x:{r:["data.active"],s:'_0?"disabled":null'},p:[37,38,1079]}]},f:["Eject"]}],n:50,x:{r:["data.sheets"],s:"_0>=1"},p:[36,2,1016]}]}," ",{p:[40,3,1164],t:7,e:"ui-section",a:{label:"Current sheet level"},f:[{p:[41,2,1207],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.stack_percent",p:[41,35,1240]}],state:[{t:2,r:"stackPercentState",p:[41,66,1271]}]},f:[{t:2,x:{r:["adata.stack_percent"],s:"Math.fixed(_0)"},p:[41,89,1294]},"%"]}]}," ",{p:[43,3,1360],t:7,e:"ui-section",a:{label:"Heat level"},f:[{t:4,f:[{p:[45,2,1429],t:7,e:"span",a:{"class":"good"},f:["Nominal"]}],n:50,x:{r:["data.current_heat"],s:"_0<100"},p:[44,3,1395]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.current_heat"],s:"_0<200"},f:[{p:[47,2,1503],t:7,e:"span",a:{"class":"average"},f:["Caution"]}]},{t:4,n:50,x:{r:["data.current_heat"],s:"!(_0<200)"},f:[" ",{p:[49,2,1554],t:7,e:"span",a:{"class":"bad"},f:["DANGER"]}]}],x:{r:["data.current_heat"],s:"_0<100"}}]}]}," ",{p:[54,1,1632],t:7,e:"ui-display",a:{title:"Output"},f:[{p:[55,3,1663],t:7,e:"ui-section",a:{label:"Current output"},f:[{t:2,r:"data.power_output",p:[56,2,1701]}]}," ",{p:[58,3,1743],t:7,e:"ui-section",a:{label:"Adjust output"},f:[{p:[59,2,1780],t:7,e:"ui-button",a:{icon:"minus",action:"lower_power"},f:[{t:2,r:"data.power_generated",p:[59,47,1825]}]}," ",{p:[60,2,1864],t:7,e:"ui-button",a:{icon:"plus",action:"higher_power"},f:[{t:2,r:"data.power_generated",p:[60,47,1909]}]}]}," ",{p:[62,3,1966],t:7,e:"ui-section",a:{label:"Power available"},f:[{p:[63,5,2008],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected"],s:'_0?null:"bad"'},p:[63,18,2021]}]},f:[{t:2,x:{r:["data.connected","data.power_available"],s:'_0?_1:"Unconnected"'},p:[63,53,2056]}]}]}]}]},e.exports=a.extend(r.exports)},{340:340}],436:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-notice",f:[{p:[2,3,15],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.holding"],s:'_0?"is":"is not"'},p:[2,23,35]}," connected to a tank."]}]}," ",{p:[4,1,113],t:7,e:"ui-display",a:{title:"Status",button:0},f:[{p:[5,3,151],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[6,5,186],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[6,11,192]}," kPa"]}]}," ",{p:[8,3,254],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[9,5,285],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected"],s:'_0?"good":"average"'},p:[9,18,298]}]},f:[{t:2,x:{r:["data.connected"],s:'_0?"Connected":"Not Connected"'},p:[9,59,339]}]}]}]}," ",{p:[12,1,430],t:7,e:"ui-display",a:{title:"Pump"},f:[{p:[13,3,459],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[14,5,491],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[14,22,508]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":"null"'},p:[15,14,559]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[16,22,616]}]}]}," ",{p:[18,3,675],t:7,e:"ui-section",a:{label:"Direction"},f:[{p:[19,5,711],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.direction"],s:'_0=="out"?"sign-out":"sign-in"'},p:[19,22,728]}],action:"direction"},f:[{t:2,x:{r:["data.direction"],s:'_0=="out"?"Out":"In"'},p:[20,26,808]}]}]}," ",{p:[22,3,883],t:7,e:"ui-section",a:{label:"Target Pressure"},f:[{p:[23,5,925],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.min_pressure",p:[23,18,938]}],max:[{t:2,r:"data.max_pressure",p:[23,46,966]}],value:[{t:2,r:"data.target_pressure",p:[24,14,1003]}]},f:[{t:2,x:{r:["adata.target_pressure"],s:"Math.round(_0)"},p:[24,40,1029]}," kPa"]}]}," ",{p:[26,3,1100],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[27,5,1145],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.target_pressure","data.default_pressure"],s:'_0!=_1?null:"disabled"'},p:[27,38,1178]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[29,5,1328],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.target_pressure","data.min_pressure"],s:'_0>_1?null:"disabled"'},p:[29,36,1359]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[31,5,1500],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[32,5,1595],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.target_pressure","data.max_pressure"],s:'_0<_1?null:"disabled"'},p:[32,35,1625]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}]}," ",{p:{button:[{t:4,f:[{p:[39,7,1891],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.on"],s:'_0?"danger":null'},p:[39,38,1922]}],action:"eject"},f:["Eject"]}],n:50,r:"data.holding",p:[38,5,1863]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[43,3,2042],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holding.name",p:[44,4,2073]}]}," ",{p:[46,3,2115],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holding.pressure"],s:"Math.round(_0)"},p:[47,4,2149]}," kPa"]}],n:50,r:"data.holding",p:[42,3,2018]},{t:4,n:51,f:[{p:[50,3,2223],t:7,e:"ui-section",f:[{p:[51,4,2240],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.holding"}]}]},e.exports=a.extend(r.exports)},{340:340}],437:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[" ",{p:[3,1,69],t:7,e:"ui-notice",f:[{p:[4,3,84],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.holding"],s:'_0?"is":"is not"'},p:[4,23,104]}," connected to a tank."]}]}," ",{p:[6,1,182],t:7,e:"ui-display",a:{title:"Status",button:0},f:[{p:[7,3,220],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[8,5,255],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.round(_0)"},p:[8,11,261]}," kPa"]}]}," ",{p:[10,3,323],t:7,e:"ui-section",a:{label:"Port"},f:[{p:[11,5,354],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected"],s:'_0?"good":"average"'},p:[11,18,367]}]},f:[{t:2,x:{r:["data.connected"],s:'_0?"Connected":"Not Connected"'},p:[11,59,408]}]}]}]}," ",{p:[14,1,499],t:7,e:"ui-display",a:{title:"Filter"},f:[{p:[15,3,530],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[16,5,562],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[16,22,579]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":"null"'},p:[17,14,630]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[18,22,687]}]}]}]}," ",{p:{button:[{t:4,f:[{p:[24,7,856],t:7,e:"ui-button",a:{icon:"eject",style:[{t:2,x:{r:["data.on"],s:'_0?"danger":null'},p:[24,38,887]}],action:"eject"},f:["Eject"]}],n:50,r:"data.holding",p:[23,5,828]}]},t:7,e:"ui-display",a:{title:"Holding Tank",button:0},f:[" ",{t:4,f:[{p:[28,3,1007],t:7,e:"ui-section",a:{label:"Label"},f:[{t:2,r:"data.holding.name",p:[29,4,1038]}]}," ",{p:[31,3,1080],t:7,e:"ui-section",a:{label:"Pressure"},f:[{t:2,x:{r:["adata.holding.pressure"],s:"Math.round(_0)"},p:[32,4,1114]}," kPa"]}],n:50,r:"data.holding",p:[27,3,983]},{t:4,n:51,f:[{p:[35,3,1188],t:7,e:"ui-section",f:[{p:[36,4,1205],t:7,e:"span",a:{"class":"average"},f:["No Holding Tank"]}]}],r:"data.holding"}]}," ",{p:[40,1,1293],t:7,e:"ui-display",a:{title:"Filters"},f:[{t:4,f:[{p:[42,5,1345],t:7,e:"filters"}],n:53,r:"data",p:[41,3,1325]}]}]},r.exports.components=r.exports.components||{};var i={filters:t(454)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{340:340,454:454}],438:[function(t,e,n){var a=t(340),r={exports:{}};!function(t){"use strict";t.exports={data:{chargingState:function(t){switch(t){case 2:return"good";case 1:return"average";default:return"bad"}},chargingMode:function(t){return 2==t?"Full":1==t?"Charging":"Draining"},channelState:function(t){return t>=2?"good":"bad"},channelPower:function(t){return t>=2?"On":"Off"},channelMode:function(t){return 1==t||3==t?"Auto":"Manual"}},computed:{graphData:function(){var t=this.get("data.history");return Object.keys(t).map(function(e){return t[e].map(function(t,e){return{x:e,y:t}})})}}}}(r),r.exports.template={v:3,t:[" ",{p:[42,1,1035],t:7,e:"ui-display",a:{title:"Network"},f:[{t:4,f:[{p:[44,5,1093],t:7,e:"ui-linegraph",a:{points:[{t:2,r:"graphData",p:[44,27,1115]}],height:"500",legend:'["Available", "Load"]',colors:'["rgb(0, 102, 0)", "rgb(153, 0, 0)"]',xunit:"seconds ago",xfactor:[{t:2,r:"data.interval",p:[46,38,1267]}],yunit:"W",yfactor:"1",xinc:[{t:2,x:{r:["data.stored"],s:"_0/10"},p:[47,15,1323]}],yinc:"9"}}],n:50,r:"config.fancy",p:[43,3,1067]},{t:4,n:51,f:[{p:[49,5,1373],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[50,7,1411],t:7,e:"span",f:[{t:2,r:"data.supply",p:[50,13,1417]}]}]}," ",{p:[52,5,1464],t:7,e:"ui-section",a:{label:"Load"},f:[{p:[53,9,1499],t:7,e:"span",f:[{t:2,r:"data.demand",p:[53,15,1505]}]}]}],r:"config.fancy"}]}," ",{p:[57,1,1574],t:7,e:"ui-display",a:{title:"Areas"},f:[{p:[58,3,1604],t:7,e:"ui-section",a:{nowrap:0},f:[{p:[59,5,1629],t:7,e:"div",a:{"class":"content"},f:["Area"]}," ",{p:[60,5,1666],t:7,e:"div",a:{"class":"content"},f:["Charge"]}," ",{p:[61,5,1705],t:7,e:"div",a:{"class":"content"},f:["Load"]}," ",{p:[62,5,1742],t:7,e:"div",a:{"class":"content"},f:["Status"]}," ",{p:[63,5,1781],t:7,e:"div",a:{"class":"content"},f:["Equipment"]}," ",{p:[64,5,1823],t:7,e:"div",a:{"class":"content"},f:["Lighting"]}," ",{p:[65,5,1864],t:7,e:"div",a:{"class":"content"},f:["Environment"]}]}," ",{t:4,f:[{p:[68,5,1949],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[68,24,1968]}],nowrap:0},f:[{p:[69,7,1993],t:7,e:"div",a:{"class":"content"},f:[{t:2,x:{r:["@index","adata.areas"],s:"Math.round(_1[_0].charge)"},p:[69,28,2014]}," %"]}," ",{p:[70,7,2072],t:7,e:"div",a:{"class":"content"},f:[{t:2,rx:{r:"adata.areas",m:[{t:30,n:"@index"},"load"]},p:[70,28,2093]}]}," ",{p:[71,7,2135],t:7,e:"div",a:{"class":"content"},f:[{p:[71,28,2156],t:7,e:"span",a:{"class":[{t:2,x:{r:["chargingState","charging"],s:"_0(_1)"},p:[71,41,2169]}]},f:[{t:2,x:{r:["chargingMode","charging"],s:"_0(_1)"},p:[71,70,2198]}]}]}," ",{p:[72,7,2245],t:7,e:"div",a:{"class":"content"},f:[{p:[72,28,2266],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","eqp"],s:"_0(_1)"},p:[72,41,2279]}]},f:[{t:2,x:{r:["channelPower","eqp"],s:"_0(_1)"},p:[72,64,2302]}," [",{p:[72,87,2325],t:7,e:"span",f:[{t:2,x:{r:["channelMode","eqp"],s:"_0(_1)"},p:[72,93,2331]}]},"]"]}]}," ",{p:[73,7,2380],t:7,e:"div",a:{"class":"content"},f:[{p:[73,28,2401],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","lgt"],s:"_0(_1)"},p:[73,41,2414]}]},f:[{t:2,x:{r:["channelPower","lgt"],s:"_0(_1)"},p:[73,64,2437]}," [",{p:[73,87,2460],t:7,e:"span",f:[{t:2,x:{r:["channelMode","lgt"],s:"_0(_1)"},p:[73,93,2466]}]},"]"]}]}," ",{p:[74,7,2515],t:7,e:"div",a:{"class":"content"},f:[{p:[74,28,2536],t:7,e:"span",a:{"class":[{t:2,x:{r:["channelState","env"],s:"_0(_1)"},p:[74,41,2549]}]},f:[{t:2,x:{r:["channelPower","env"],s:"_0(_1)"},p:[74,64,2572]}," [",{p:[74,87,2595],t:7,e:"span",f:[{t:2,x:{r:["channelMode","env"],s:"_0(_1)"},p:[74,93,2601]}]},"]"]}]}]}],n:52,r:"data.areas",p:[67,3,1923]}]}]},e.exports=a.extend(r.exports)},{340:340}],439:[function(t,e,n){var a=t(340),r={exports:{}};!function(t){"use strict";t.exports={computed:{readableFrequency:function(){return Math.round(this.get("adata.frequency"))/10}}}}(r),r.exports.template={v:3,t:[" ",{p:[11,1,177],t:7,e:"ui-display",a:{title:"Settings"},f:[{t:4,f:[{p:[13,5,236],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[14,7,270],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.listening"],s:'_0?"power-off":"close"'},p:[14,24,287]}],style:[{t:2,x:{r:["data.listening"],s:'_0?"selected":null'},p:[14,75,338]}],action:"listen"},f:[{t:2,x:{r:["data.listening"],s:'_0?"On":"Off"'},p:[16,9,413]}]}]}],n:50,r:"data.headset",p:[12,3,210]},{t:4,n:51,f:[{p:[19,5,494],t:7,e:"ui-section",a:{label:"Microphone"},f:[{p:[20,7,533],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.broadcasting"],s:'_0?"power-off":"close"'},p:[20,24,550]}],style:[{t:2,x:{r:["data.broadcasting"],s:'_0?"selected":null'},p:[20,78,604]}],action:"broadcast"},f:[{t:2,x:{r:["data.broadcasting"],s:'_0?"Engaged":"Disengaged"'},p:[22,9,685]}]}]}," ",{p:[24,5,769],t:7,e:"ui-section",a:{label:"Speaker"},f:[{p:[25,7,805],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.listening"],s:'_0?"power-off":"close"'},p:[25,24,822]}],style:[{t:2,x:{r:["data.listening"],s:'_0?"selected":null'},p:[25,75,873]}],action:"listen"},f:[{t:2,x:{r:["data.listening"],s:'_0?"Engaged":"Disengaged"'},p:[27,9,948]}]}]}],r:"data.headset"}," ",{t:4,f:[{p:[31,5,1064],t:7,e:"ui-section",a:{label:"High Volume"},f:[{p:[32,7,1104],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.useCommand"],s:'_0?"power-off":"close"'},p:[32,24,1121]}],style:[{t:2,x:{r:["data.useCommand"],s:'_0?"selected":null'},p:[32,76,1173]}],action:"command"},f:[{t:2,x:{r:["data.useCommand"],s:'_0?"On":"Off"'},p:[34,9,1250]}]}]}],n:50,r:"data.command",p:[30,3,1038]}]}," ",{p:[38,1,1342],t:7,e:"ui-display",a:{title:"Channel"},f:[{p:[39,3,1374],t:7,e:"ui-section",a:{label:"Frequency"},f:[{t:4,f:[{p:[41,7,1439],t:7,e:"span",f:[{t:2,r:"readableFrequency",p:[41,13,1445]}]}],n:50,r:"data.freqlock",p:[40,5,1410]},{t:4,n:51,f:[{p:[43,7,1495],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.frequency","data.minFrequency"],s:'_0==_1?"disabled":null'},p:[43,46,1534]}],action:"frequency",params:'{"adjust": -1}'}}," ",{p:[44,7,1646],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.frequency","data.minFrequency"],s:'_0==_1?"disabled":null'},p:[44,41,1680]}],action:"frequency",params:'{"adjust": -.2}'}}," ",{p:[45,7,1793],t:7,e:"ui-button",a:{icon:"pencil",action:"frequency",params:'{"tune": "input"}'},f:[{t:2,r:"readableFrequency",p:[45,78,1864]}]}," ",{p:[46,7,1905],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.frequency","data.maxFrequency"],s:'_0==_1?"disabled":null'},p:[46,40,1938]}],action:"frequency",params:'{"adjust": .2}'}}," ",{p:[47,7,2050],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.frequency","data.maxFrequency"],s:'_0==_1?"disabled":null'},p:[47,45,2088]}],action:"frequency",params:'{"adjust": 1}'}}],r:"data.freqlock"}]}," ",{t:4,f:[{p:[51,5,2262],t:7,e:"ui-section",a:{label:"Subspace Transmission"},f:[{p:[52,7,2312],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.subspace"],s:'_0?"power-off":"close"'},p:[52,24,2329]}],style:[{t:2,x:{r:["data.subspace"],s:'_0?"selected":null'},p:[52,74,2379]}],action:"subspace"},f:[{t:2,x:{r:["data.subspace"],s:'_0?"Active":"Inactive"'},p:[53,29,2447]}]}]}],n:50,r:"data.subspaceSwitchable",p:[50,3,2225]}," ",{t:4,f:[{p:[57,5,2578],t:7,e:"ui-section",a:{label:"Channels"},f:[{t:4,f:[{p:[59,9,2656],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["."],s:'_0?"check-square-o":"square-o"'},p:[59,26,2673]}],style:[{t:2,x:{r:["."],s:'_0?"selected":null'},p:[60,18,2730]}],action:"channel",params:['{"channel": "',{t:2,r:"channel",p:[61,49,2806]},'"}']},f:[{t:2,r:"channel",p:[62,11,2833]}]},{p:[62,34,2856],t:7,e:"br"}],n:52,i:"channel",r:"data.channels",p:[58,7,2615]}]}],n:50,x:{r:["data.subspace","data.channels"],s:"_0&&_1"},p:[56,3,2534]}]}]},e.exports=a.extend(r.exports)},{340:340}],440:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[" "," "," "," "," "," "," "," "," "," ",{p:[11,1,560],t:7,e:"rdheader"}," ",{t:4,f:[{p:[13,2,595],t:7,e:"ui-display",a:{title:"CONSOLE LOCKED"},f:[{p:[14,3,634],t:7,e:"ui-button",a:{action:"Unlock"},f:["Unlock"]}]}],n:50,r:"data.locked",p:[12,1,573]},{t:4,f:[{p:[18,2,729],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.tabs",p:[18,17,744]}]},f:[{p:[19,3,763],t:7,e:"tab",a:{name:"Technology"},f:[{p:[20,4,791],t:7,e:"techweb"}]}," ",{p:[22,3,815],t:7,e:"tab",a:{name:"View Node"},f:[{p:[23,4,842],t:7,e:"nodeview"}]}," ",{p:[25,3,867],t:7,e:"tab",a:{name:"View Design"},f:[{p:[26,4,896],t:7,e:"designview"}]}," ",{p:[28,3,923],t:7,e:"tab",a:{name:"Disk Operations - Design"},f:[{p:[29,4,965],t:7,e:"diskopsdesign"}]}," ",{p:[31,3,995],t:7,e:"tab",a:{name:"Disk Operations - Technology"},f:[{p:[32,4,1041],t:7,e:"diskopstech"}]}," ",{p:[34,3,1069],t:7,e:"tab",a:{name:"Deconstructive Analyzer"},f:[{p:[35,4,1110],t:7,e:"destruct"}]}," ",{p:[37,3,1135],t:7,e:"tab",a:{name:"Protolathe"},f:[{p:[38,4,1163],t:7,e:"protolathe"}]}," ",{p:[40,3,1190],t:7,e:"tab",a:{name:"Circuit Imprinter"},f:[{p:[41,4,1225],t:7,e:"circuit"}]}," ",{p:[43,3,1249],t:7,e:"tab",a:{name:"Settings"},f:[{p:[44,4,1275],t:7,e:"settings"}]}]}],n:50,x:{r:["data.locked"],s:"!_0"},p:[17,1,706]}]},r.exports.components=r.exports.components||{};var i={settings:t(449),circuit:t(441),protolathe:t(447),destruct:t(443),diskopsdesign:t(444),diskopstech:t(445),designview:t(442),nodeview:t(446),techweb:t(450),rdheader:t(448)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{340:340,441:441,442:442,443:443,444:444,445:445,446:446,447:447,448:448,449:449,450:450}],441:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{t:4,f:[{p:[3,3,58],t:7,e:"ui-display",a:{title:"Circuit Imprinter Busy!"}}],n:50,r:"data.circuitbusy",p:[2,2,30]},{t:4,n:51,f:[{p:[5,3,130],t:7,e:"ui-display",f:[{p:[6,4,147],t:7,e:"ui-section",f:["Search Available Designs: ",{p:[7,4,189],t:7,e:"input",a:{value:[{t:2,r:"textsearch",p:[7,17,202]}],placeholder:"Type Here","class":"text"}}," ",{p:[8,5,261],t:7,e:"ui-button",a:{action:"textSearch",params:['{"latheType" : "circuit", "inputText" : ',{t:2,r:"textsearch",p:[8,84,340]},"}"]},f:["Search"]}]}," ",{p:[10,4,398],t:7,e:"ui-section",f:["Materials: ",{t:2,r:"data.circuitmats",p:[10,27,421]}," / ",{t:2,r:"data.circuitmaxmats",p:[10,50,444]}]}," ",{p:[11,4,485],t:7,e:"ui-section",f:["Reagents: ",{t:2,r:"data.circuitchems",p:[11,26,507]}," / ",{t:2,r:"data.circuitmaxchems",p:[11,50,531]}]}," ",{p:[12,3,572],t:7,e:"ui-display",f:[{p:[14,3,590],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.lathe_tabs",p:[14,18,605]}]},f:[{p:[15,4,631],t:7,e:"tab",a:{name:"Category List"},f:[{t:4,f:[{p:[17,6,696],t:7,e:"ui-button",a:{action:"switchcat",state:[{t:2,x:{r:["data.circuitcat"],s:'_0=="{{name}}"?"selected":null'},p:[17,43,733]}],params:['{"type" : "circuit", "cat" : "',{t:2,r:"name",p:[17,135,825]},'"}']},f:[{t:2,r:"name",p:[17,147,837]}]}],n:52,r:"data.circuitcats",p:[16,5,663]}]}," ",{p:[20,4,888],t:7,e:"tab",a:{name:"Selected Category"},f:[{t:4,f:[{p:[22,6,956],t:7,e:"ui-section",f:[{t:2,r:"name",p:[22,18,968]},{t:2,r:"matstring",p:[22,26,976]}," ",{p:[23,7,997],t:7,e:"ui-button",a:{action:"print",state:[{t:2,x:{r:["canprint"],s:'_0>1?null:"disabled"'},p:[23,40,1030]}],params:['{"latheType" : "circuit", "id" : "',{t:2,r:"id",p:[23,119,1109]},'"}']},f:["Print"]}]}],n:52,r:"data.circuitdes",p:[21,5,924]}]}," ",{p:[27,4,1187],t:7,e:"tab",a:{name:"Search Results"},f:[{t:4,f:[{p:[29,6,1254],t:7,e:"ui-section",f:[{t:2,r:"name",p:[29,18,1266]},{t:2,r:"matstring",p:[29,26,1274]}," ",{p:[30,7,1295],t:7,e:"ui-button",a:{action:"print",state:[{t:2,x:{r:["canprint"],s:'_0>1?null:"disabled"'},p:[30,40,1328]}],params:['{"latheType" : "circuit", "id" : "',{t:2,r:"id",p:[30,119,1407]},'"}']},f:["Print"]}]}],n:52,r:"data.circuitmatch",p:[28,5,1220]}]}," ",{p:[34,4,1485],t:7,e:"tab",a:{name:"Materials"},f:[{t:4,f:[{p:[36,6,1550],t:7,e:"ui-section",f:[{t:2,r:"name",p:[36,18,1562]}," : ",{t:2,r:"amount",p:[36,29,1573]}," cm3 - ",{t:4,f:[{p:[38,7,1623],t:7,e:"input",a:{value:[{t:2,r:"number",p:[38,20,1636]}],placeholder:["1-",{t:2,r:"sheets",p:[38,46,1662]}],"class":"number"}}," ",{p:[39,7,1698],t:7,e:"ui-button",a:{action:"releasemats",params:['{"latheType" : "circuit", "mat_id" : ',{t:2,r:"mat_id",p:[39,84,1775]},', "sheets" : ',{t:2,r:"number",p:[39,107,1798]},"}"]},f:["Release"]}],n:50,x:{r:["sheets"],s:"_0>0"},p:[37,6,1597]}]}],n:52,r:"data.circuitmat_list",p:[35,5,1513]}]}," ",{p:[44,4,1895],t:7,e:"tab",a:{name:"Chemicals"},f:[{t:4,f:[{p:[46,6,1961],t:7,e:"ui-section",f:[{t:2,r:"name",p:[46,18,1973]}," : ",{t:2,r:"amount",p:[46,29,1984]}," - ",{p:[47,7,2005],t:7,e:"ui-button",a:{action:"purgechem",params:['{"latheType" : "circuit", "name" : ',{t:2,r:"name",p:[47,80,2078]},', "id" : ',{t:2,r:"reagentid",p:[47,97,2095]},"}"]},f:["Purge"]}]}],n:52,r:"data.circuitchem_list",p:[45,5,1923]}]}]}]}]}],r:"data.circuitbusy"}],n:50,r:"data.circuit_linked",p:[1,1,0]},{t:4,n:51,f:[{p:[55,2,2216],t:7,e:"ui-display",a:{title:"No Linked Circuit Imprinter"}}],r:"data.circuit_linked"}]},e.exports=a.extend(r.exports)},{340:340}],442:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,31],t:7,e:"ui-display",a:{title:[{t:2,r:"data.sdesign_name",p:[2,21,50]}]},f:[{p:[3,3,77],t:7,e:"ui-section",a:{title:"Description"},f:[{t:2,r:"data.sdesign_desc",p:[3,35,109]}]}]}," ",{p:[5,2,162],t:7,e:"ui-display",a:{title:"Lathe Types"},f:[{t:4,f:[{p:[7,4,239],t:7,e:"ui-section",a:{title:"Circuit Imprinter"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&1"},p:[6,3,198]}," ",{t:4,f:[{p:[10,4,346],t:7,e:"ui-section",a:{title:"Protolathe"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&2"},p:[9,3,305]}," ",{t:4,f:[{p:[13,4,446],t:7,e:"ui-section",a:{title:"Autolathe"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&4"},p:[12,3,405]}," ",{t:4,f:[{p:[16,4,545],t:7,e:"ui-section",a:{title:"Crafting Fabricator"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&8"},p:[15,3,504]}," ",{t:4,f:[{p:[19,4,655],t:7,e:"ui-section",a:{title:"Exosuit Fabricator"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&16"},p:[18,3,613]}," ",{t:4,f:[{p:[22,4,764],t:7,e:"ui-section",a:{title:"Biogenerator"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&32"},p:[21,3,722]}," ",{t:4,f:[{p:[25,4,867],t:7,e:"ui-section",a:{title:"Limb Grower"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&64"},p:[24,3,825]}," ",{t:4,f:[{p:[28,4,970],t:7,e:"ui-section",a:{title:"Ore Smelter"}}],n:50,x:{r:["data.sdesign_buildtype"],s:"_0&128"},p:[27,3,927]}]}," ",{p:[31,2,1045],t:7,e:"ui-display",a:{title:"Materials"},f:[{t:4,f:[{p:[33,4,1116],t:7,e:"ui-section",a:{title:[{t:2,r:"matname",p:[33,23,1135]}]},f:[{t:2,r:"matamt",p:[33,36,1148]}," cm^3"]}],n:52,r:"data.sdesign_materials",p:[32,3,1079]}]}],n:50,r:"data.design_selected",p:[1,1,0]},{t:4,f:[{p:[38,2,1248],t:7,e:"ui-display",a:{title:"No Design Selected."}}],n:50,x:{r:["data.design_selected"],s:"!_0"},p:[37,1,1216]}]},e.exports=a.extend(r.exports)},{340:340}],443:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{t:4,f:[{p:[4,3,60],t:7,e:"ui-display",a:{title:"Destructive Analyzer Busy!"}}],n:50,r:"data.destroybusy",p:[3,2,32]},{t:4,n:51,f:[{t:4,f:[{p:[7,4,168],t:7,e:"ui-display",a:{title:"Destructive Analyzer Unloaded"}}],n:50,x:{r:["data.destroy_loaded"],s:"!_0"},p:[6,3,135]},{t:4,n:51,f:[{p:[9,4,248],t:7,e:"ui-display",a:{title:"Loaded Item"},f:[{p:[10,4,285],t:7,e:"ui-section",a:{title:"Name"},f:[{t:2,r:"data.destroy_name",p:[10,29,310]}]}]}," ",{p:[12,4,367],t:7,e:"ui-display",a:{title:"Boost Nodes"},f:[{t:4,f:[{p:[14,6,438],t:7,e:"ui-section",a:{title:[{t:2,r:"name",p:[14,25,457]}," | ",{t:2,r:"value",p:[14,36,468]}]},f:[{
p:[15,7,487],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["allow"],s:'_0?null:"disabled"'},p:[15,25,505]}],action:"deconstruct",params:['{"id":',{t:2,r:"id",p:[15,90,570]},"}"]},f:["Deconstruct and Boost"]}]}],n:52,r:"data.boost_paths",p:[13,5,405]}]}," ",{p:[19,4,670],t:7,e:"ui-button",a:{action:"eject_da"},f:["Eject Item"]}],x:{r:["data.destroy_loaded"],s:"!_0"}}],r:"data.destroybusy"}],n:50,r:"data.destroy_linked",p:[2,1,2]},{t:4,n:51,f:[{p:[23,2,755],t:7,e:"ui-display",a:{title:"No Linked Destructive Analyzer"}}],r:"data.destroy_linked"}]},e.exports=a.extend(r.exports)},{340:340}],444:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[3,2,24],t:7,e:"ui-display",a:{title:"No Design Disk Loaded"}}],n:50,x:{r:["data.ddisk"],s:"!_0"},p:[2,1,2]},{t:4,n:51,f:[{t:4,f:[{p:[6,3,121],t:7,e:"ui-display",a:{title:"Design Disk Updating"}}],n:50,r:"data.ddisk_update",p:[5,2,92]},{t:4,n:51,f:[{t:4,f:[{p:[9,4,221],t:7,e:"ui-display",a:{title:"Design Disk"},f:[{p:[10,5,259],t:7,e:"ui-section",a:{title:"Disk Space"},f:["Disk Capacity: ",{t:2,r:"data.ddisk_size",p:[10,51,305]}," blueprints."]}," ",{p:[11,5,355],t:7,e:"ui-section",a:{title:"Disk IO"},f:[{p:[11,33,383],t:7,e:"ui-button",a:{action:"ddisk_upall"},f:["Upload all designs"]}]}," ",{p:[12,5,464],t:7,e:"ui-section",a:{title:"Clear Disk"},f:[{p:[12,36,495],t:7,e:"ui-button",a:{action:"clear_designdisk",style:"danger"},f:["WIPE ALL DATA"]}]}," ",{p:[13,5,591],t:7,e:"ui-section",a:{title:"Eject Disk"},f:[{p:[13,36,622],t:7,e:"ui-button",a:{action:"eject_designdisk"},f:["Eject Disk"]}]}]}," ",{p:[15,4,717],t:7,e:"ui-display",a:{title:"Disk Contents"},f:[{t:4,f:[{p:[17,6,792],t:7,e:"ui-section",a:{title:"Number"},f:["#",{t:2,r:"pos",p:[17,34,820]},": ",{t:4,f:[{p:[19,8,866],t:7,e:"ui-button",a:{action:"upload_empty_ddisk_slot",params:['{"slot": "',{t:2,r:"pos",p:[19,70,928]},'"}']},f:["Upload to Empty Slot"]}],n:50,x:{r:["id"],s:'_0=="null"'},p:[18,7,837]},{t:4,n:51,f:[{p:[21,8,996],t:7,e:"ui-button",a:{action:"select_design",params:['{"id": "',{t:2,r:"id",p:[21,58,1046]},'"}'],state:[{t:2,x:{r:["data.sdesign_id","id"],s:'_0==_1?"selected":null'},p:[21,75,1063]}]},f:[{t:2,r:"name",p:[21,122,1110]}]}," ",{p:[22,8,1139],t:7,e:"ui-button",a:{action:"ddisk_erasepos",style:"danger",params:['{"id": "',{t:2,r:"id",p:[22,74,1205]},'"}'],state:[{t:2,x:{r:["id"],s:'_0=="null"?"disabled":null'},p:[22,91,1222]}]},f:["Delete Slot"]}],x:{r:["id"],s:'_0=="null"'}}]}],n:52,r:"data.ddisk_designs",p:[16,5,757]}]}],n:50,x:{r:["data.ddisk_upload"],s:"!_0"},p:[8,3,190]},{t:4,n:51,f:[{p:[28,4,1367],t:7,e:"ui-display",a:{title:"Upload Design to Disk"},f:[{p:[28,46,1409],t:7,e:"ui-section",f:["Available Designs:"]}]}," ",{t:4,f:[{p:[30,5,1513],t:7,e:"ui-section",f:[{p:[30,17,1525],t:7,e:"ui-button",a:{action:"ddisk_uploaddesign",params:['{"id": "',{t:2,r:"id",p:[30,72,1580]},'"}']},f:[{t:2,r:"name",p:[30,82,1590]}]}]}],n:52,r:"data.ddisk_possible_designs",p:[29,4,1470]}],x:{r:["data.ddisk_upload"],s:"!_0"}}],r:"data.ddisk_update"}],x:{r:["data.ddisk"],s:"!_0"}}]},e.exports=a.extend(r.exports)},{340:340}],445:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[3,2,24],t:7,e:"ui-display",a:{title:"No Technology Disk Loaded"}}],n:50,x:{r:["data.tdisk"],s:"!_0"},p:[2,1,2]},{t:4,n:51,f:[{t:4,f:[{p:[6,3,125],t:7,e:"ui-display",a:{title:"Technology Disk Updating"}}],n:50,r:"data.tdisk_update",p:[5,2,96]},{t:4,n:51,f:[{p:[8,3,198],t:7,e:"ui-display",a:{title:"Technology Disk"},f:[{p:[9,4,239],t:7,e:"ui-section",a:{title:"Disk IO"},f:[{p:[9,32,267],t:7,e:"ui-button",a:{action:"tdisk_down"},f:["Download Research to Disk"]},{p:[9,100,335],t:7,e:"ui-button",a:{action:"tdisk_up"},f:["Upload Research from Disk"]}," ",{p:[10,4,406],t:7,e:"ui-section",a:{title:"Clear Disk"},f:[{p:[10,35,437],t:7,e:"ui-button",a:{action:"clear_techdisk",style:"danger"},f:["WIPE ALL DATA"]}]}," ",{p:[11,4,530],t:7,e:"ui-section",a:{title:"Eject Disk"},f:[{p:[11,35,561],t:7,e:"ui-button",a:{action:"eject_techdisk"},f:["Eject Disk"]}]}]}]}," ",{p:[13,3,652],t:7,e:"ui-display",a:{title:"Disk Contents"},f:[{t:4,f:[{p:[15,5,723],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[15,53,771]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[15,70,788]}]},f:[{t:2,r:"display_name",p:[15,115,833]}]}],n:52,r:"data.tdisk_nodes",p:[14,4,691]}]}],r:"data.tdisk_update"}],x:{r:["data.tdisk"],s:"!_0"}}]},e.exports=a.extend(r.exports)},{340:340}],446:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,2,29],t:7,e:"ui-display",a:{title:[{t:2,r:"data.snode_name",p:[2,21,48]}]},f:[{p:[3,3,73],t:7,e:"ui-section",a:{title:"Description"},f:["Description: ",{t:2,r:"data.snode_desc",p:[3,48,118]}]}," ",{p:[4,3,154],t:7,e:"ui-section",a:{title:"Point Cost"},f:["Point Cost: ",{t:2,r:"data.snode_cost",p:[4,46,197]}]}," ",{p:[5,3,233],t:7,e:"ui-section",a:{title:"Export Price"},f:["Export Price: ",{t:2,r:"data.snode_export",p:[5,50,280]}]}," ",{p:[6,3,318],t:7,e:"ui-button",a:{action:"research_node",params:['{"id"="',{t:2,r:"id",p:[6,52,367]},'"}'],state:[{t:2,x:{r:["data.snode_researched"],s:'_0?"disabled":null'},p:[6,69,384]}]},f:[{t:2,x:{r:["data.snode_researched"],s:'_0?"Researched":"Research Node"'},p:[6,115,430]}]}]}," ",{p:[8,2,518],t:7,e:"ui-display",a:{title:"Prerequisites"},f:[{t:4,f:[{p:[10,4,588],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[10,52,636]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[10,69,653]}]},f:[{t:2,r:"display_name",p:[10,114,698]}]}],n:52,r:"data.node_prereqs",p:[9,3,556]}]}," ",{p:[13,2,759],t:7,e:"ui-display",a:{title:"Unlocks"},f:[{t:4,f:[{p:[15,4,823],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[15,52,871]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[15,69,888]}]},f:[{t:2,r:"display_name",p:[15,114,933]}]}],n:52,r:"data.node_unlocks",p:[14,3,791]}]}," ",{p:[18,2,994],t:7,e:"ui-display",a:{title:"Designs"},f:[{t:4,f:[{p:[20,4,1058],t:7,e:"ui-button",a:{action:"select_design",params:['{"id": "',{t:2,r:"id",p:[20,54,1108]},'"}'],state:[{t:2,x:{r:["data.sdesign_id","id"],s:'_0==_1?"selected":null'},p:[20,71,1125]}]},f:[{t:2,r:"name",p:[20,118,1172]}]}],n:52,r:"data.node_designs",p:[19,3,1026]}]}],n:50,r:"data.node_selected",p:[1,1,0]},{t:4,f:[{p:[25,2,1263],t:7,e:"ui-display",a:{title:"No Node Selected."}}],n:50,x:{r:["data.node_selected"],s:"!_0"},p:[24,1,1233]}]},e.exports=a.extend(r.exports)},{340:340}],447:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{t:4,f:[{p:[3,3,59],t:7,e:"ui-display",a:{title:"Protolathe Busy!"}}],n:50,r:"data.protobusy",p:[2,2,33]},{t:4,n:51,f:[{p:[5,3,124],t:7,e:"ui-display",f:[{p:[6,4,141],t:7,e:"ui-section",f:["Search Available Designs: ",{p:[7,4,183],t:7,e:"input",a:{value:[{t:2,r:"textsearch",p:[7,17,196]}],placeholder:"Type Here","class":"text"}}," ",{p:[8,5,255],t:7,e:"ui-button",a:{action:"textSearch",params:['{"latheType" : "proto", "inputText" : ',{t:2,r:"textsearch",p:[8,82,332]},"}"]},f:["Search"]}]}," ",{p:[10,4,390],t:7,e:"ui-section",f:["Materials: ",{t:2,r:"data.protomats",p:[10,27,413]}," / ",{t:2,r:"data.protomaxmats",p:[10,48,434]}]}," ",{p:[11,4,473],t:7,e:"ui-section",f:["Reagents: ",{t:2,r:"data.protochems",p:[11,26,495]}," / ",{t:2,r:"data.protomaxchems",p:[11,48,517]}]}," ",{p:[12,3,556],t:7,e:"ui-display",f:[{p:[14,3,574],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.lathe_tabs",p:[14,18,589]}]},f:[{p:[15,4,615],t:7,e:"tab",a:{name:"Category List"},f:[{t:4,f:[{p:[17,6,678],t:7,e:"ui-button",a:{action:"switchcat",state:[{t:2,x:{r:["data.protocat","name"],s:'_0==_1?"selected":null'},p:[17,43,715]}],params:['{"type" : "proto", "cat" : "',{t:2,r:"name",p:[17,125,797]},'"}']},f:[{t:2,r:"name",p:[17,137,809]}]}],n:52,r:"data.protocats",p:[16,5,647]}]}," ",{p:[20,4,860],t:7,e:"tab",a:{name:"Selected Category"},f:[{t:4,f:[{p:[22,6,926],t:7,e:"ui-section",f:[{t:2,r:"name",p:[22,18,938]},{t:2,r:"matstring",p:[22,26,946]}," ",{t:4,f:[{p:[24,8,996],t:7,e:"input",a:{value:[{t:2,r:"number",p:[24,21,1009]}],placeholder:["1-",{t:2,x:{r:["canprint"],s:"_0>10?10:_0"},p:[24,47,1035]}],"class":"number"}}],n:50,x:{r:["canprint"],s:"_0>1"},p:[23,7,967]}," ",{p:[26,7,1108],t:7,e:"ui-button",a:{action:"print",state:[{t:2,x:{r:["canprint"],s:'_0>1?null:"disabled"'},p:[26,40,1141]}],params:['{"latheType" : "proto", "id" : "',{t:2,r:"id",p:[26,117,1218]},'", "amount" : "',{t:2,r:"number",p:[26,138,1239]},'"}']},f:["Print"]}]}],n:52,r:"data.protodes",p:[21,5,896]}]}," ",{p:[30,4,1321],t:7,e:"tab",a:{name:"Search Results"},f:[{t:4,f:[{p:[32,6,1386],t:7,e:"ui-section",f:[{t:2,r:"name",p:[32,18,1398]},{t:2,r:"matstring",p:[32,26,1406]}," ",{t:4,f:[{p:[34,8,1456],t:7,e:"input",a:{value:[{t:2,r:"number",p:[34,21,1469]}],placeholder:["1-",{t:2,x:{r:["canprint"],s:"_0>10?10:_0"},p:[34,47,1495]}],"class":"number"}}],n:50,x:{r:["canprint"],s:"_0>1"},p:[33,7,1427]}," ",{p:[36,7,1568],t:7,e:"ui-button",a:{action:"print",state:[{t:2,x:{r:["canprint"],s:'_0>1?null:"disabled"'},p:[36,40,1601]}],params:['{"latheType" : "proto", "id" : "',{t:2,r:"id",p:[36,117,1678]},'", "amount" : "',{t:2,r:"number",p:[36,138,1699]},'"}']},f:["Print"]}]}],n:52,r:"data.protomatch",p:[31,5,1354]}]}," ",{p:[40,4,1781],t:7,e:"tab",a:{name:"Materials"},f:[{t:4,f:[{p:[42,6,1844],t:7,e:"ui-section",f:[{t:2,r:"name",p:[42,18,1856]}," : ",{t:2,r:"amount",p:[42,29,1867]}," cm3 - ",{t:4,f:[{p:[44,7,1917],t:7,e:"input",a:{value:[{t:2,r:"number",p:[44,20,1930]}],placeholder:["1-",{t:2,r:"sheets",p:[44,46,1956]}],"class":"number"}}," ",{p:[45,7,1992],t:7,e:"ui-button",a:{action:"releasemats",params:['{"latheType" : "proto", "mat_id" : ',{t:2,r:"mat_id",p:[45,82,2067]},', "sheets" : ',{t:2,r:"number",p:[45,105,2090]},"}"]},f:["Release"]}],n:50,x:{r:["sheets"],s:"_0>0"},p:[43,6,1891]}]}],n:52,r:"data.protomat_list",p:[41,5,1809]}]}," ",{p:[50,4,2187],t:7,e:"tab",a:{name:"Chemicals"},f:[{t:4,f:[{p:[52,6,2251],t:7,e:"ui-section",f:[{t:2,r:"name",p:[52,18,2263]}," : ",{t:2,r:"amount",p:[52,29,2274]}," - ",{p:[53,7,2295],t:7,e:"ui-button",a:{action:"purgechem",params:['{"latheType" : "proto", "name" : ',{t:2,r:"name",p:[53,78,2366]},', "id" : ',{t:2,r:"reagentid",p:[53,95,2383]},"}"]},f:["Purge"]}]}],n:52,r:"data.protochem_list",p:[51,5,2215]}]}]}]}]}],r:"data.protobusy"}],n:50,r:"data.protolathe_linked",p:[1,1,0]},{t:4,n:51,f:[{p:[61,2,2504],t:7,e:"ui-display",a:{title:"No Linked Protolathe"}}],r:"data.protolathe_linked"}]},e.exports=a.extend(r.exports)},{340:340}],448:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,1,14],t:7,e:"span",a:{"class":"memoedit"},f:["Nanotrasen R&D Console"]},{p:[2,53,66],t:7,e:"br"}," Available Points: ",{p:[3,19,91],t:7,e:"ui-section",a:{title:"Research Points"},f:[{t:2,r:"data.research_points_stored",p:[3,55,127]}]}," ",{p:[4,1,173],t:7,e:"ui-section",a:{title:["Page Selection - ",{t:2,r:"page",p:[4,37,209]}]},f:[{p:[4,47,219],t:7,e:"input",a:{value:[{t:2,r:"pageselect",p:[4,60,232]}],placeholder:"1","class":"number"}}," Select Page: ",{p:[5,14,294],t:7,e:"ui-button",a:{action:"page",params:['{"num" : "',{t:2,r:"pageselect",p:[5,57,337]},'"}']},f:["[Go]"]}]}]}]},e.exports=a.extend(r.exports)},{340:340}],449:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"span",a:{"class":"bad"},f:["Settings"]},{p:[1,34,33],t:7,e:"br"},{p:[1,39,38],t:7,e:"br"}," ",{p:[2,1,45],t:7,e:"ui-button",a:{action:"Resync"},f:["RESYNC MACHINERY"]},{p:[2,56,100],t:7,e:"br"}," ",{p:[3,1,107],t:7,e:"ui-button",a:{action:"Lock"},f:["LOCK"]}," ",{p:[4,1,150],t:7,e:"ui-button",a:{action:"disconnect",params:'{"type" : "destroy"}',state:[{t:2,x:{r:["data.destroy_linked"],s:'_0?null:"disabled"'},p:[4,71,220]}]},f:["Disconnect Destructive Analyzer"]}," ",{p:[5,1,309],t:7,e:"ui-button",a:{action:"disconnect",params:'{"type" : "lathe"}',state:[{t:2,x:{r:["data.protolathe_linked"],s:'_0?null:"disabled"'},p:[5,69,377]}]},f:["Disconnect Protolathe"]}," ",{p:[6,1,459],t:7,e:"ui-button",a:{action:"disconnect",params:'{"type" : "imprinter"}',state:[{t:2,x:{r:["data.circuit_linked"],s:'_0?null:"disabled"'},p:[6,73,531]}]},f:["Disconnect Circuit Imprinter"]}]},e.exports=a.extend(r.exports)},{340:340}],450:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Available for Research"},f:[{t:4,f:[{p:[3,3,78],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[3,51,126]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[3,68,143]}]},f:[{t:2,r:"display_name",p:[3,113,188]}]}],n:52,r:"data.techweb_avail",p:[2,2,46]}]}," ",{p:[6,1,245],t:7,e:"ui-display",a:{title:"Locked Nodes"},f:[{t:4,f:[{p:[8,3,314],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[8,51,362]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[8,68,379]}]},f:[{t:2,r:"display_name",p:[8,113,424]}]}],n:52,r:"data.techweb_locked",p:[7,2,281]}]}," ",{p:[11,1,482],t:7,e:"ui-display",a:{title:"Researched Nodes"},f:[{t:4,f:[{p:[13,3,559],t:7,e:"ui-button",a:{action:"select_node",params:['{"id": "',{t:2,r:"id",p:[13,51,607]},'"}'],state:[{t:2,x:{r:["data.snode_id","id"],s:'_0==_1?"selected":null'},p:[13,68,624]}]},f:[{t:2,r:"display_name",p:[13,113,669]}]}],n:52,r:"data.techweb_researched",p:[12,2,522]}]}]},e.exports=a.extend(r.exports)},{340:340}],451:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Direction"},f:[{t:4,f:[{p:[3,3,64],t:7,e:"ui-section",f:[{t:4,f:[{p:[5,5,105],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["selected"],s:'_0?"selected":null'},p:[5,23,123]}],action:"setdir",params:['{"dir": ',{t:2,r:"dir",p:[6,22,195]},', "flipped": ',{t:2,r:"flipped",p:[6,42,215]},"}"]},f:[{p:[6,56,229],t:7,e:"span",a:{"class":["pipes32x32 ",{t:2,r:"dir",p:[6,80,253]},"-",{t:2,r:"icon_state",p:[6,88,261]}],title:[{t:2,r:"dir_name",p:[6,111,284]}]}}]}],n:52,r:"previews",p:[4,4,81]}]}],n:52,r:"data.preview_rows",p:[2,2,33]}]}," ",{t:4,f:[{p:[12,2,406],t:7,e:"ui-display",a:{title:"Color"},f:[{t:4,f:[{p:[14,4,468],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["@key","data.selected_color"],s:'_0==_1?"selected":null'},p:[14,22,486]}],action:"color",params:['{"paint_color": ',{t:2,r:"@key",p:[15,44,583]},"}"]},f:[{t:2,r:"@key",p:[15,55,594]}]}],n:52,r:"data.paint_colors",p:[13,3,436]}]}],n:50,x:{r:["data.category"],s:"_0==0"},p:[11,1,377]},{p:[19,1,654],t:7,e:"ui-display",a:{title:"Utilities"},f:[{p:[20,2,687],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0&1?"check-square-o":"square-o"'},p:[20,19,704]}],action:"mode",params:'{"mode": 1}'},f:["Build"]}," ",{p:[22,2,813],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0&2?"check-square-o":"square-o"'},p:[22,19,830]}],action:"mode",params:'{"mode": 2}'},f:["Wrench"]}," ",{p:[24,2,940],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0&4?"check-square-o":"square-o"'},p:[24,19,957]}],action:"mode",params:'{"mode": 4}'},f:["Destroy"]}," ",{t:4,f:[{p:[27,3,1098],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mode"],s:'_0&8?"check-square-o":"square-o"'},p:[27,20,1115]}],action:"mode",params:'{"mode": 8}'},f:["Paint"]}],n:50,x:{r:["data.category"],s:"_0==0"},p:[26,2,1068]}]}," ",{p:[31,1,1249],t:7,e:"ui-display",a:{title:"Category"},f:[{p:[32,2,1281],t:7,e:"ui-section",f:[{p:[33,3,1297],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.category"],s:'_0==0?"check-square-o":"square-o"'},p:[33,20,1314]}],state:[{t:2,x:{r:["data.category"],s:'_0<=0?"selected":null'},p:[33,83,1377]}],action:"category",params:'{"category": 0}'},f:["Atmospherics"]}," ",{p:[35,3,1496],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.category"],s:'_0==1?"check-square-o":"square-o"'},p:[35,20,1513]}],state:[{t:2,x:{r:["data.category"],s:'_0==1?"selected":null'},p:[35,83,1576]}],action:"category",params:'{"category": 1}'},f:["Disposals"]}," ",{p:[37,3,1692],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.category"],s:'_0==2?"check-square-o":"square-o"'},p:[37,20,1709]}],state:[{t:2,x:{r:["data.category"],s:'_0==2?"selected":null'},p:[37,83,1772]}],action:"category",params:'{"category": 2}'},f:["Transit Tubes"]}]}," ",{t:4,f:[{p:[41,3,1937],t:7,e:"ui-section",a:{label:"Piping Layer"},f:[{p:[42,4,1975],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.piping_layer"],s:'_0==1?"selected":null'},p:[42,22,1993]}],action:"piping_layer",params:'{"piping_layer": 1}'},f:["1"]}," ",{p:[44,4,2115],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.piping_layer"],s:'_0==2?"selected":null'},p:[44,22,2133]}],action:"piping_layer",params:'{"piping_layer": 2}'},f:["2"]}," ",{p:[46,4,2255],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["data.piping_layer"],s:'_0==3?"selected":null'},p:[46,22,2273]}],action:"piping_layer",params:'{"piping_layer": 3}'},f:["3"]}]}],n:50,x:{r:["data.category"],s:"_0==0"},p:[40,2,1907]}]}," ",{t:4,f:[{p:[52,2,2462],t:7,e:"ui-display",a:{title:[{t:2,r:"cat_name",p:[52,21,2481]}]},f:[{t:4,f:[{p:[54,4,2521],t:7,e:"ui-section",f:[{p:[55,5,2539],t:7,e:"ui-button",a:{state:[{t:2,x:{r:["selected"],s:'_0?"selected":null'},p:[55,23,2557]}],action:"pipe_type",params:['{"pipe_type": ',{t:2,r:"pipe_index",p:[56,28,2638]},', "category": ',{t:2,r:"cat_name",p:[56,56,2666]},"}"]},f:[{t:2,r:"pipe_name",p:[56,71,2681]}]}]}],n:52,r:"recipes",p:[53,3,2499]}]}],n:52,r:"data.categories",p:[51,1,2434]}]},e.exports=a.extend(r.exports)},{340:340}],452:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,23],t:7,e:"ui-notice",f:[{t:2,r:"data.notice",p:[3,5,40]}]}],n:50,r:"data.notice",p:[1,1,0]},{p:[6,1,82],t:7,e:"ui-display",a:{title:"Satellite Network Control",button:0},f:[{t:4,f:[{p:[8,4,168],t:7,e:"ui-section",a:{candystripe:0,nowrap:0},f:[{p:[9,9,209],t:7,e:"div",a:{"class":"content"},f:["#",{t:2,r:"id",p:[9,31,231]}]}," ",{p:[10,9,253],t:7,e:"div",a:{"class":"content"},f:[{t:2,r:"mode",p:[10,30,274]}]}," ",{p:[11,9,298],t:7,e:"div",a:{"class":"content"},f:[{p:[12,11,331],t:7,e:"ui-button",a:{action:"toggle",params:['{"id": "',{t:2,r:"id",p:[12,54,374]},'"}']},f:[{t:2,x:{r:["active"],s:'_0?"Deactivate":"Activate"'},p:[12,64,384]}]}]}]}],n:52,r:"data.satellites",p:[7,2,138]}]}," ",{t:4,f:[{p:[18,1,528],t:7,e:"ui-display",a:{title:"Station Shield Coverage"},f:[{p:[19,3,576],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.meteor_shield_coverage_max",p:[19,24,597]}],value:[{t:2,r:"data.meteor_shield_coverage",p:[19,68,641]}]},f:[{t:2,x:{r:["data.meteor_shield_coverage","data.meteor_shield_coverage_max"],s:"100*_0/_1"},p:[19,101,674]}," %"]}," ",{p:[20,1,758],t:7,e:"ui-display",f:[]}]}],n:50,r:"data.meteor_shield",p:[17,1,500]}]},e.exports=a.extend(r.exports)},{340:340}],453:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Scanner Gate"},f:[{p:[2,2,36],t:7,e:"ui-section",a:{label:"Scan Mode"},f:[{p:[2,32,66],t:7,e:"ui-button",a:{icon:"pencil",action:"set_mode"}}," ",{t:2,r:"data.scan_mode",p:[2,88,122]}]}," ",{t:4,f:[{p:[4,3,195],t:7,e:"ui-section",a:{label:"Disease Severity"},f:[{p:[4,40,232],t:7,e:"ui-button",a:{icon:"pencil",action:"set_disease_threshold"}}," ",{t:2,r:"data.disease_threshold",p:[4,109,301]}]}],n:50,x:{r:["data.scan_mode"],s:'_0=="Disease"'},p:[3,2,156]}," ",{t:4,f:[{p:[7,3,392],t:7,e:"ui-section",a:{label:"Cloud ID"},f:[{p:[7,32,421],t:7,e:"ui-button",a:{icon:"pencil",action:"set_nanite_cloud"}}," ",{t:2,r:"data.nanite_cloud",p:[7,96,485]}]}],n:50,x:{r:["data.scan_mode"],s:'_0=="Nanites"'},p:[6,2,353]}," ",{t:4,f:[{p:[10,3,571],t:7,e:"ui-section",a:{label:"Target Species"},f:[{p:[10,38,606],t:7,e:"ui-button",a:{icon:"pencil",action:"set_target_species"}}," ",{t:2,r:"data.target_species",p:[10,104,672]}]}],n:50,x:{r:["data.scan_mode"],s:'_0=="Species"'},p:[9,2,532]}," ",{t:4,f:[{p:[13,3,760],t:7,e:"ui-section",a:{label:"Hygiene Level"},f:[{p:[13,37,794],t:7,e:"ui-button",a:{icon:"pencil",action:"set_target_hygiene"}}," ",{t:2,r:"data.target_hygiene",p:[13,103,860]}]}],n:50,x:{r:["data.scan_mode"],s:'_0=="Hygiene"'},p:[12,2,721]}," ",{t:4,f:[{p:[16,3,950],t:7,e:"ui-section",a:{label:"Nutrition Level"},f:[{p:[16,39,986],t:7,e:"ui-button",a:{icon:"pencil",action:"set_target_nutrition"}}," ",{t:2,r:"data.target_nutrition",p:[16,107,1054]}]}],n:50,x:{r:["data.scan_mode"],s:'_0=="Nutrition"'},p:[15,2,909]}," ",{p:[18,5,1108],t:7,e:"ui-section",f:[{p:[18,17,1120],t:7,e:"ui-button",a:{tooltip:"If inverted, the gate will detect all entities that do NOT meet the set requirements.","tooltip-side":"right",action:"toggle_reverse"},f:[{t:2,x:{r:["data.reverse"],s:'_0?"Inverted Scan":"Regular Scan"'},p:[18,169,1272]}]}]}]}]},e.exports=a.extend(r.exports)},{340:340}],454:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,26],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["enabled"],s:'_0?"check-square-o":"square-o"'},p:[2,20,43]}],style:[{t:2,x:{r:["enabled"],s:'_0?"selected":null'},p:[2,72,95]}],action:"toggle_filter",params:['{"id_tag": "',{t:2,r:"id_tag",p:[3,48,176]},'", "val": ',{t:2,r:"gas_id",p:[3,68,196]},"}"]},f:[{t:2,r:"gas_name",p:[3,81,209]}]}],n:52,r:"filter_types",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{340:340}],455:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[" "," "," ",{p:[5,1,200],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.tabs",p:[5,16,215]}]},f:[{p:[6,2,233],t:7,e:"tab",a:{name:"Status"},f:[{p:[7,3,256],t:7,e:"status"}]}," ",{p:[9,2,277],t:7,e:"tab",a:{name:"Templates"},f:[{p:[10,3,303],t:7,e:"templates"}]}," ",{p:[12,2,327],t:7,e:"tab",a:{name:"Modification"},f:[{t:4,f:[{p:[14,3,381],t:7,e:"modification"}],n:50,r:"data.selected",p:[13,3,356]}," ",{t:4,f:[{p:[17,3,437],t:7,e:"span",a:{"class":"bad"},f:["No shuttle selected."]}],n:50,x:{r:["data.selected"],s:"!_0"},p:[16,3,411]}]}]}]},r.exports.components=r.exports.components||{};var i={modification:t(456),templates:t(458),status:t(457)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{340:340,456:456,457:457,458:458}],456:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:["Selected: ",{t:2,r:"data.selected.name",p:[1,30,29]}]},f:[{t:4,f:[{p:[3,5,96],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"data.selected.description",p:[3,37,128]}]}],n:50,r:"data.selected.description",p:[2,3,57]}," ",{t:4,f:[{p:[6,5,224],t:7,e:"ui-section",a:{label:"Admin Notes"},f:[{t:2,r:"data.selected.admin_notes",p:[6,37,256]}]}],n:50,r:"data.selected.admin_notes",p:[5,3,185]}]}," ",{t:4,f:[{p:[11,3,361],t:7,e:"ui-display",a:{title:["Existing Shuttle: ",{t:2,r:"data.existing_shuttle.name",p:[11,40,398]}]},f:["Status: ",{t:2,r:"data.existing_shuttle.status",p:[12,13,444]}," ",{t:4,f:["(",{t:2,r:"data.existing_shuttle.timeleft",p:[14,8,526]},")"],n:50,r:"data.existing_shuttle.timer",p:[13,5,482]}," ",{p:[16,5,580],t:7,e:"ui-button",a:{action:"jump_to",params:['{"type": "mobile", "id": "',{t:2,r:"data.existing_shuttle.id",p:[17,41,649]},'"}']},f:["Jump To"]}]}],n:50,r:"data.existing_shuttle",p:[10,1,328]},{t:4,f:[{p:[24,3,778],t:7,e:"ui-display",a:{title:"Existing Shuttle: None"}}],n:50,x:{r:["data.existing_shuttle"],s:"!_0"},p:[23,1,744]},{p:[27,1,847],t:7,e:"ui-button",a:{action:"preview",params:['{"shuttle_id": "',{t:2,r:"data.selected.shuttle_id",p:[28,27,902]},'"}']},f:["Preview"]}," ",{p:[31,1,961],t:7,e:"ui-button",a:{action:"load",params:['{"shuttle_id": "',{t:2,r:"data.selected.shuttle_id",p:[32,27,1013]},'"}'],style:"danger"},f:["Load"]}," ",{p:[37,1,1089],t:7,e:"ui-display",a:{title:"Status"},f:[]}]},e.exports=a.extend(r.exports)},{340:340}],457:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"table",a:{width:"100%"},f:[{t:4,f:[{p:[3,3,49],t:7,e:"tr",f:[{p:[4,5,59],t:7,e:"td",f:[{p:[5,7,71],t:7,e:"ui-button",a:{action:"jump_to",params:['{"type": "mobile", "id": "',{t:2,r:"id",p:[5,69,133]},'"}']},f:["JMP"]}]}," ",{p:[9,5,193],t:7,e:"td",f:[{p:[10,7,205],t:7,e:"ui-button",a:{action:"fly",params:['{"id": "',{t:2,r:"id",p:[10,47,245]},'"}'],state:[{t:2,x:{r:["can_fly"],s:'_0?null:"disabled"'},p:[10,64,262]}]},f:["Fly"]}]}," ",{p:[14,5,345],t:7,e:"td",f:[{t:2,r:"name",p:[15,7,357]}," (",{p:[15,17,367],t:7,e:"code",f:[{t:2,r:"id",p:[15,23,373]}]},")"]}," ",{p:[17,5,404],t:7,e:"td",f:[{t:2,r:"status",p:[18,7,416]}]}," ",{p:[20,5,443],t:7,e:"td",f:[{t:4,f:[{t:2,r:"mode",p:[22,9,477]}],n:50,r:"mode",p:[21,7,455]}," ",{t:4,f:["(",{t:2,r:"timeleft",p:[25,10,532]},") ",{p:[26,9,555],t:7,e:"ui-button",a:{action:"fast_travel",params:['{"id": "',{t:2,r:"id",p:[26,57,603]},'"}'],state:[{t:2,x:{r:["can_fast_travel"],s:'_0?null:"disabled"'},p:[26,74,620]}]},f:["Fast Travel"]}],n:50,r:"timer",p:[24,7,508]}]}]}],n:52,r:"data.shuttles",p:[2,1,22]}]}]},e.exports=a.extend(r.exports)},{340:340}],458:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-tabs",a:{tabs:[{t:2,r:"data.templates_tabs",p:[1,16,15]}]},f:[{t:4,f:[{p:[3,5,74],t:7,e:"tab",a:{name:[{t:2,r:"port_id",p:[3,16,85]}]},f:[{t:4,f:[{p:[5,9,135],t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[5,28,154]}]},f:[{t:4,f:[{p:[7,13,209],t:7,e:"ui-section",a:{label:"Description"},f:[{t:2,r:"description",p:[7,45,241]}]}],n:50,r:"description",p:[6,11,176]}," ",{t:4,f:[{p:[10,13,333],t:7,e:"ui-section",a:{label:"Admin Notes"},f:[{t:2,r:"admin_notes",p:[10,45,365]}]}],n:50,r:"admin_notes",p:[9,11,300]}," ",{p:[13,11,426],t:7,e:"ui-button",a:{action:"select_template",params:['{"shuttle_id": "',{t:2,r:"shuttle_id",p:[14,37,499]},'"}'],state:[{t:2,x:{r:["data.selected.shuttle_id","shuttle_id"],s:'_0==_1?"selected":null'},p:[15,20,537]}]},f:[{t:2,x:{r:["data.selected.shuttle_id","shuttle_id"],s:'_0==_1?"Selected":"Select"'},p:[17,13,630]}]}]}],n:52,r:"templates",p:[4,7,106]}]}],n:52,r:"data.templates",p:[2,3,44]}]}]},e.exports=a.extend(r.exports)},{340:340}],459:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Occupant"},f:[{p:[2,3,33],t:7,e:"ui-section",a:{label:"Occupant"},f:[{p:[3,3,66],t:7,e:"span",f:[{t:2,x:{r:["data.occupant.name"],s:'_0?_0:"No Occupant"'},p:[3,9,72]}]}]}," ",{t:4,f:[{p:[6,5,186],t:7,e:"ui-section",a:{label:"State"},f:[{p:[7,7,220],t:7,e:"span",a:{"class":[{t:2,r:"data.occupant.statstate",p:[7,20,233]}]},f:[{t:2,r:"data.occupant.stat",p:[7,49,262]}]}]}," ",{p:[9,5,315],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[10,7,350],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.occupant.minHealth",p:[10,20,363]}],max:[{t:2,r:"data.occupant.maxHealth",p:[10,54,397]}],value:[{t:2,r:"data.occupant.health",p:[10,90,433]}],state:[{t:2,x:{r:["data.occupant.health"],s:'_0>=0?"good":"average"'},p:[11,16,475]}]},f:[{t:2,x:{r:["adata.occupant.health"],s:"Math.round(_0)"},p:[11,68,527]}]}]}," ",{t:4,f:[{p:[14,7,764],t:7,e:"ui-section",a:{label:[{t:2,r:"label",p:[14,26,783]}]},f:[{p:[15,9,804],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.occupant.maxHealth",p:[15,30,825]}],value:[{t:2,rx:{r:"data.occupant",m:[{t:30,n:"type"}]},p:[15,66,861]}],state:"bad"},f:[{t:2,x:{r:["type","adata.occupant"],s:"Math.round(_1[_0])"},p:[15,103,898]}]}]}],n:52,x:{r:[],s:'[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}]'},p:[13,5,598]}," ",{p:[18,5,985],t:7,e:"ui-section",a:{label:"Cells"},f:[{p:[19,9,1021],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.occupant.cloneLoss"],s:'_0?"bad":"good"'},p:[19,22,1034]}]},f:[{t:2,x:{r:["data.occupant.cloneLoss"],s:'_0?"Damaged":"Healthy"'},p:[19,68,1080]}]}]}," ",{p:[21,5,1163],t:7,e:"ui-section",a:{label:"Brain"},f:[{p:[22,9,1199],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.occupant.brainLoss"],s:'_0?"bad":"good"'},p:[22,22,1212]}]},f:[{t:2,x:{r:["data.occupant.brainLoss"],s:'_0?"Abnormal":"Healthy"'},p:[22,68,1258]}]}]}," ",{p:[24,5,1342],t:7,e:"ui-section",a:{label:"Bloodstream"},f:[{t:4,f:[{p:[26,11,1429],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,1)"},p:[26,54,1472]}," units of ",{t:2,r:"name",p:[26,89,1507]}]},{p:[26,104,1522],t:7,e:"br"}],n:52,r:"adata.occupant.reagents",p:[25,9,1384]},{t:4,n:51,f:[{p:[28,11,1557],t:7,e:"span",a:{"class":"good"},f:["Pure"]}],r:"adata.occupant.reagents"}]}],n:50,r:"data.occupied",p:[5,3,159]}]}," ",{p:[33,1,1653],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[34,2,1685],t:7,e:"ui-section",a:{label:"Door"},f:[{p:[35,5,1716],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"unlock":"lock"'},p:[35,22,1733]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Open":"Closed"'},p:[35,71,1782]}]}]}," ",{p:[37,3,1847],t:7,e:"ui-section",a:{label:"Inject"},f:[{t:4,f:[{p:[39,7,1908],t:7,e:"ui-button",a:{icon:"flask",state:[{t:2,x:{r:["data.occupied","allowed"],s:'_0&&_1?null:"disabled"'},p:[39,38,1939]}],action:"inject",params:['{"chem": "',{t:2,r:"id",p:[39,122,2023]},'"}']},f:[{t:2,r:"name",p:[39,132,2033]}]},{p:[39,152,2053],t:7,e:"br"}],n:52,r:"data.chems",p:[38,5,1880]}]}]}]},e.exports=a.extend(r.exports)},{340:340}],460:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,25],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[2,22,44]}],labelcolor:[{t:2,r:"htmlcolor",p:[2,44,66]}],candystripe:0,right:0},f:[{p:[3,5,105],t:7,e:"ui-section",a:{label:"Status"},f:[{p:[3,32,132],t:7,e:"span",a:{"class":[{t:2,x:{r:["status"],s:'_0=="Dead"?"bad bold":_0=="Unconscious"?"average bold":"good"'},p:[3,45,145]}]},f:[{t:2,r:"status",p:[3,132,232]}]}]}," ",{p:[4,5,268],t:7,e:"ui-section",a:{label:"Jelly"},f:[{t:2,r:"exoticblood",p:[4,31,294]}]}," ",{p:[5,5,328],t:7,e:"ui-section",a:{label:"Location"},f:[{t:2,r:"area",p:[5,34,357]}]}," ",{p:[7,5,386],t:7,e:"ui-button",a:{state:[{t:2,r:"swap_button_state",p:[8,14,411]}],action:"swap",params:['{"ref": "',{t:2,r:"ref",p:[9,38,472]},'"}']},f:[{t:4,f:["You Are Here"],n:50,x:{r:["occupied"],s:'_0=="owner"'},p:[10,7,491]},{t:4,n:51,f:[{t:4,f:["Occupied"],n:50,x:{r:["occupied"],s:'_0=="stranger"'},p:[13,9,566]},{t:4,n:51,f:["Swap"],x:{r:["occupied"],s:'_0=="stranger"'}}],x:{r:["occupied"],s:'_0=="owner"'}}]}]}],n:52,r:"data.bodies",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{340:340}],461:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{t:4,f:[{p:[4,23,82],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.drying"],s:'_0?"stop":"tint"'},p:[4,40,99]}],action:"Dry"},f:[{t:2,x:{r:["data.drying"],s:'_0?"Stop drying":"Dry"'},p:[4,88,147]}]}],n:50,r:"data.isdryer",p:[4,3,62]}]},t:7,e:"ui-display",a:{title:"Storage",button:0},f:[" ",{t:4,f:[{p:[7,3,258],t:7,e:"ui-notice",f:[{p:[8,5,275],t:7,e:"span",f:["Unfortunately, this ",{t:2,r:"data.name",p:[8,31,301]}," is empty."]}]}],n:50,x:{r:["data.contents.length"],s:"_0==0"},p:[6,1,221]},{t:4,n:51,f:[{p:[11,1,359],t:7,e:"div",a:{"class":"display tabular"},f:[{p:[12,2,391],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[13,4,425],t:7,e:"section",a:{"class":"cell bold"},f:["Item"]}," ",{p:[16,4,482],t:7,e:"section",a:{"class":"cell bold"},f:["Quantity"]}," ",{p:[19,4,543],t:7,e:"section",a:{"class":"cell bold",align:"center"},f:[{t:4,f:[{t:2,r:"data.verb",p:[20,22,608]}],n:50,r:"data.verb",p:[20,5,591]},{t:4,n:51,f:["Dispense"],r:"data.verb"}]}]}," ",{t:4,f:[{p:[24,3,703],t:7,e:"section",a:{"class":"candystripe"},f:[{p:[25,4,737],t:7,e:"section",a:{"class":"cell"},f:[{t:2,r:"name",p:[26,5,765]}]}," ",{p:[28,4,793],t:7,e:"section",a:{"class":"cell",align:"right"},f:[{t:2,r:"amount",p:[29,5,835]}]}," ",{p:[31,4,865],t:7,e:"section",a:{"class":"table",alight:"right"},f:[{p:[32,5,909],t:7,e:"section",a:{"class":"cell"}}," ",{p:[33,5,947],t:7,e:"section",a:{"class":"cell"},f:[{p:[34,6,976],t:7,e:"ui-button",a:{grid:0,action:"Release",state:[{t:2,x:{r:["amount"],s:'(_0>=1)?null:"disabled"'},p:[34,45,1015]}],params:['{ "name" : ',{t:2,r:"name",
p:[34,102,1072]},', "amount" : 1 }']},f:["One"]}]}," ",{p:[38,5,1151],t:7,e:"section",a:{"class":"cell"},f:[{p:[39,6,1180],t:7,e:"ui-button",a:{grid:0,action:"Release",state:[{t:2,x:{r:["amount"],s:'(_0>1)?null:"disabled"'},p:[39,45,1219]}],params:['{ "name" : ',{t:2,r:"name",p:[39,101,1275]}," }"]},f:["Many"]}]}]}]}],n:52,r:"data.contents",p:[23,2,676]}]}],x:{r:["data.contents.length"],s:"_0==0"}}]}]},e.exports=a.extend(r.exports)},{340:340}],462:[function(t,e,n){var a=t(340),r={exports:{}};!function(t){"use strict";t.exports={computed:{capacityPercentState:function(){var t=this.get("data.capacityPercent");return t>50?"good":t>15?"average":"bad"},inputState:function(){return this.get("data.capacityPercent")>=100?"good":this.get("data.inputting")?"average":"bad"},outputState:function(){return this.get("data.outputting")?"good":this.get("data.charge")>0?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[24,1,663],t:7,e:"ui-display",a:{title:"Storage"},f:[{p:[25,3,695],t:7,e:"ui-section",a:{label:"Stored Energy"},f:[{p:[26,5,735],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.capacityPercent",p:[26,38,768]}],state:[{t:2,r:"capacityPercentState",p:[26,71,801]}]},f:[{t:2,x:{r:["adata.capacityPercent"],s:"Math.fixed(_0)"},p:[26,97,827]},"%"]}]}]}," ",{p:[29,1,908],t:7,e:"ui-display",a:{title:"Input"},f:[{p:[30,3,938],t:7,e:"ui-section",a:{label:"Charge Mode"},f:[{p:[31,5,976],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"refresh":"close"'},p:[31,22,993]}],style:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"selected":null'},p:[31,74,1045]}],action:"tryinput"},f:[{t:2,x:{r:["data.inputAttempt"],s:'_0?"Auto":"Off"'},p:[32,25,1113]}]}," [",{p:[34,6,1182],t:7,e:"span",a:{"class":[{t:2,r:"inputState",p:[34,19,1195]}]},f:[{t:2,x:{r:["data.capacityPercent","data.inputting"],s:'_0>=100?"Fully Charged":_1?"Charging":"Not Charging"'},p:[34,35,1211]}]},"]"]}," ",{p:[36,3,1335],t:7,e:"ui-section",a:{label:"Target Input"},f:[{p:[37,5,1374],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.inputLevelMax",p:[37,26,1395]}],value:[{t:2,r:"data.inputLevel",p:[37,57,1426]}]},f:[{t:2,r:"adata.inputLevel_text",p:[37,78,1447]}]}]}," ",{p:[39,3,1501],t:7,e:"ui-section",a:{label:"Adjust Input"},f:[{p:[40,5,1540],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[40,44,1579]}],action:"input",params:'{"target": "min"}'}}," ",{p:[41,5,1674],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.inputLevel"],s:'_0==0?"disabled":null'},p:[41,39,1708]}],action:"input",params:'{"adjust": -10000}'}}," ",{p:[42,5,1804],t:7,e:"ui-button",a:{icon:"pencil",action:"input",params:'{"target": "input"}'},f:["Set"]}," ",{p:[43,5,1894],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.inputLevel","data.inputLevelMax"],s:'_0==_1?"disabled":null'},p:[43,38,1927]}],action:"input",params:'{"adjust": 10000}'}}," ",{p:[44,5,2039],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.inputLevel","data.inputLevelMax"],s:'_0==_1?"disabled":null'},p:[44,43,2077]}],action:"input",params:'{"target": "max"}'}}]}," ",{p:[46,3,2204],t:7,e:"ui-section",a:{label:"Available"},f:[{p:[47,3,2238],t:7,e:"span",f:[{t:2,r:"adata.inputAvailable",p:[47,9,2244]}]}]}]}," ",{p:[50,1,2308],t:7,e:"ui-display",a:{title:"Output"},f:[{p:[51,3,2339],t:7,e:"ui-section",a:{label:"Output Mode"},f:[{p:[52,5,2377],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"power-off":"close"'},p:[52,22,2394]}],style:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"selected":null'},p:[52,77,2449]}],action:"tryoutput"},f:[{t:2,x:{r:["data.outputAttempt"],s:'_0?"On":"Off"'},p:[53,26,2519]}]}," [",{p:[55,6,2587],t:7,e:"span",a:{"class":[{t:2,r:"outputState",p:[55,19,2600]}]},f:[{t:2,x:{r:["data.outputting","data.charge"],s:'_0?"Sending":_1>0?"Not Sending":"No Charge"'},p:[55,36,2617]}]},"]"]}," ",{p:[57,3,2724],t:7,e:"ui-section",a:{label:"Target Output"},f:[{p:[58,5,2764],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"data.outputLevelMax",p:[58,26,2785]}],value:[{t:2,r:"data.outputLevel",p:[58,58,2817]}]},f:[{t:2,r:"adata.outputLevel_text",p:[58,80,2839]}]}]}," ",{p:[60,3,2894],t:7,e:"ui-section",a:{label:"Adjust Output"},f:[{p:[61,5,2934],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[61,44,2973]}],action:"output",params:'{"target": "min"}'}}," ",{p:[62,5,3070],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.outputLevel"],s:'_0==0?"disabled":null'},p:[62,39,3104]}],action:"output",params:'{"adjust": -10000}'}}," ",{p:[63,5,3202],t:7,e:"ui-button",a:{icon:"pencil",action:"output",params:'{"target": "input"}'},f:["Set"]}," ",{p:[64,5,3293],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.outputLevel","data.outputLevelMax"],s:'_0==_1?"disabled":null'},p:[64,38,3326]}],action:"output",params:'{"adjust": 10000}'}}," ",{p:[65,5,3441],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.outputLevel","data.outputLevelMax"],s:'_0==_1?"disabled":null'},p:[65,43,3479]}],action:"output",params:'{"target": "max"}'}}]}," ",{p:[67,3,3609],t:7,e:"ui-section",a:{label:"Outputting"},f:[{p:[68,3,3644],t:7,e:"span",f:[{t:2,r:"adata.outputUsed",p:[68,9,3650]}]}]}]}]},e.exports=a.extend(r.exports)},{340:340}],463:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:["\ufeff",{t:4,f:[" ",{p:[2,2,33],t:7,e:"ui-display",a:{title:"Dispersal Tank"},f:[{p:[3,3,73],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[4,4,104],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.active"],s:'_0?"power-off":"close"'},p:[4,21,121]}],style:[{t:2,x:{r:["data.active"],s:'_0?"selected":null'},p:[5,12,174]}],state:[{t:2,x:{r:["data.isTankLoaded"],s:'_0?null:"disabled"'},p:[6,12,223]}],action:"power"},f:[{t:2,x:{r:["data.active"],s:'_0?"On":"Off"'},p:[7,20,286]}]}]}," ",{p:[10,3,354],t:7,e:"ui-section",a:{label:"Smoke Radius Setting"},f:[{p:[11,5,401],t:7,e:"div",a:{"class":"content",style:"float:left"},f:[{p:[12,6,448],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.maxSetting"],s:'_0>=1?null:"disabled"'},p:[12,36,478]}],style:[{t:2,x:{r:["data.setting"],s:'_0==1?"selected":null'},p:[12,89,531]}],action:"setting",params:'{"amount": 1}'},f:["3"]}," ",{p:[13,6,634],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.maxSetting"],s:'_0>=2?null:"disabled"'},p:[13,36,664]}],style:[{t:2,x:{r:["data.setting"],s:'_0==2?"selected":null'},p:[13,89,717]}],action:"setting",params:'{"amount": 2}'},f:["6"]}," ",{p:[14,6,820],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.maxSetting"],s:'_0>=3?null:"disabled"'},p:[14,36,850]}],style:[{t:2,x:{r:["data.setting"],s:'_0==3?"selected":null'},p:[14,89,903]}],action:"setting",params:'{"amount": 3}'},f:["9"]}," ",{p:[15,6,1006],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.maxSetting"],s:'_0>=4?null:"disabled"'},p:[15,36,1036]}],style:[{t:2,x:{r:["data.setting"],s:'_0==4?"selected":null'},p:[15,89,1089]}],action:"setting",params:'{"amount": 4}'},f:["12"]}," ",{p:[16,6,1193],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.maxSetting"],s:'_0>=5?null:"disabled"'},p:[16,36,1223]}],style:[{t:2,x:{r:["data.setting"],s:'_0==5?"selected":null'},p:[16,89,1276]}],action:"setting",params:'{"amount": 5}'},f:["15"]}]}]}," ",{p:[19,3,1410],t:7,e:"ui-section",a:{label:"Contents"},f:[{t:4,f:[{p:[21,6,1476],t:7,e:"span",f:[{t:2,x:{r:["adata.TankCurrentVolume"],s:"Math.round(_0)"},p:[21,12,1482]},"/",{t:2,r:"data.TankMaxVolume",p:[21,52,1522]}," Units"]}," ",{p:[22,6,1564],t:7,e:"br"}," ",{p:[23,5,1575],t:7,e:"br"}," ",{t:4,f:[{p:[25,7,1623],t:7,e:"span",a:{"class":"highlight"},t0:"fade",f:[{t:2,x:{r:["volume"],s:"Math.fixed(_0,2)"},p:[25,50,1666]}," units of ",{t:2,r:"name",p:[25,85,1701]}]},{p:[25,100,1716],t:7,e:"br"}],n:52,r:"adata.TankContents",p:[24,6,1587]}],n:50,r:"data.isTankLoaded",p:[20,4,1444]},{t:4,n:51,f:[{p:[28,6,1757],t:7,e:"span",a:{"class":"bad"},f:["Tank Empty"]}],r:"data.isTankLoaded"}," ",{p:[30,4,1809],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.isTankLoaded"],s:'_0?"Eject":"Close"'},p:[30,21,1826]}],style:[{t:2,x:{r:["data.isTankLoaded"],s:'_0?"selected":null'},p:[31,12,1881]}],state:[{t:2,x:{r:["data.isTankLoaded"],s:'_0?null:"disabled"'},p:[32,12,1936]}],action:"purge"},f:[{t:2,x:{r:["data.isTankLoaded"],s:'_0?"Purge Contents":"No chemicals detected"'},p:[33,20,1999]}]}]}]}],n:50,x:{r:["data.screen"],s:'_0=="home"'},p:[1,2,1]}]},e.exports=a.extend(r.exports)},{340:340}],464:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,3,31],t:7,e:"ui-section",a:{label:"Generated Power"},f:[{t:2,x:{r:["adata.generated"],s:"Math.round(_0)"},p:[3,5,73]},"W"]}," ",{p:[5,3,126],t:7,e:"ui-section",a:{label:"Orientation"},f:[{p:[6,5,164],t:7,e:"span",f:[{t:2,x:{r:["adata.angle"],s:"Math.round(_0)"},p:[6,11,170]},"° (",{t:2,r:"data.direction",p:[6,45,204]},")"]}]}," ",{p:[8,3,251],t:7,e:"ui-section",a:{label:"Adjust Angle"},f:[{p:[9,5,290],t:7,e:"ui-button",a:{icon:"step-backward",action:"angle",params:'{"adjust": -15}'},f:["15°"]}," ",{p:[10,5,387],t:7,e:"ui-button",a:{icon:"backward",action:"angle",params:'{"adjust": -5}'},f:["5°"]}," ",{p:[11,5,477],t:7,e:"ui-button",a:{icon:"forward",action:"angle",params:'{"adjust": 5}'},f:["5°"]}," ",{p:[12,5,565],t:7,e:"ui-button",a:{icon:"step-forward",action:"angle",params:'{"adjust": 15}'},f:["15°"]}]}]}," ",{p:[15,1,687],t:7,e:"ui-display",a:{title:"Tracking"},f:[{p:[16,3,720],t:7,e:"ui-section",a:{label:"Tracker Mode"},f:[{p:[17,5,759],t:7,e:"ui-button",a:{icon:"close",state:[{t:2,x:{r:["data.tracking_state"],s:'_0==0?"selected":null'},p:[17,36,790]}],action:"tracking",params:'{"mode": 0}'},f:["Off"]}," ",{p:[19,5,907],t:7,e:"ui-button",a:{icon:"clock-o",state:[{t:2,x:{r:["data.tracking_state"],s:'_0==1?"selected":null'},p:[19,38,940]}],action:"tracking",params:'{"mode": 1}'},f:["Timed"]}," ",{p:[21,5,1059],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.connected_tracker","data.tracking_state"],s:'_0?_1==2?"selected":null:"disabled"'},p:[21,38,1092]}],action:"tracking",params:'{"mode": 2}'},f:["Auto"]}]}," ",{p:[24,3,1262],t:7,e:"ui-section",a:{label:"Tracking Rate"},f:[{p:[25,3,1300],t:7,e:"span",f:[{t:2,x:{r:["adata.tracking_rate"],s:"Math.round(_0)"},p:[25,9,1306]},"°/h (",{t:2,r:"data.rotating_way",p:[25,53,1350]},")"]}]}," ",{p:[27,3,1399],t:7,e:"ui-section",a:{label:"Adjust Rate"},f:[{p:[28,5,1437],t:7,e:"ui-button",a:{icon:"fast-backward",action:"rate",params:'{"adjust": -180}'},f:["180°"]}," ",{p:[29,5,1535],t:7,e:"ui-button",a:{icon:"step-backward",action:"rate",params:'{"adjust": -30}'},f:["30°"]}," ",{p:[30,5,1631],t:7,e:"ui-button",a:{icon:"backward",action:"rate",params:'{"adjust": -5}'},f:["5°"]}," ",{p:[31,5,1720],t:7,e:"ui-button",a:{icon:"forward",action:"rate",params:'{"adjust": 5}'},f:["5°"]}," ",{p:[32,5,1807],t:7,e:"ui-button",a:{icon:"step-forward",action:"rate",params:'{"adjust": 30}'},f:["30°"]}," ",{p:[33,5,1901],t:7,e:"ui-button",a:{icon:"fast-forward",action:"rate",params:'{"adjust": 180}'},f:["180°"]}]}]}," ",{p:{button:[{p:[38,5,2088],t:7,e:"ui-button",a:{icon:"refresh",action:"refresh"},f:["Refresh"]}]},t:7,e:"ui-display",a:{title:"Devices",button:0},f:[" ",{p:[40,2,2169],t:7,e:"ui-section",a:{label:"Solar Tracker"},f:[{p:[41,5,2209],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected_tracker"],s:'_0?"good":"bad"'},p:[41,18,2222]}]},f:[{t:2,x:{r:["data.connected_tracker"],s:'_0?"":"Not "'},p:[41,63,2267]},"Found"]}]}," ",{p:[43,2,2338],t:7,e:"ui-section",a:{label:"Solar Panels"},f:[{p:[44,3,2375],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.connected_panels"],s:'_0?"good":"bad"'},p:[44,16,2388]}]},f:[{t:2,x:{r:["adata.connected_panels"],s:"Math.round(_0)"},p:[44,60,2432]}," Panels Connected"]}]}]}]},e.exports=a.extend(r.exports)},{340:340}],465:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{p:{button:[{t:4,f:[{p:[4,7,87],t:7,e:"ui-button",a:{icon:"eject",state:[{t:2,x:{r:["data.hasPowercell"],s:'_0?null:"disabled"'},p:[4,38,118]}],action:"eject"},f:["Eject"]}],n:50,r:"data.open",p:[3,5,62]}]},t:7,e:"ui-display",a:{title:"Power",button:0},f:[" ",{p:[7,3,226],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[8,5,258],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[8,22,275]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[9,14,326]}],state:[{t:2,x:{r:["data.hasPowercell"],s:'_0?null:"disabled"'},p:[9,54,366]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[10,22,431]}]}]}," ",{p:[12,3,490],t:7,e:"ui-section",a:{label:"Cell"},f:[{t:4,f:[{p:[14,7,554],t:7,e:"ui-bar",a:{min:"0",max:"100",value:[{t:2,r:"data.powerLevel",p:[14,40,587]}]},f:[{t:2,x:{r:["adata.powerLevel"],s:"Math.fixed(_0)"},p:[14,61,608]},"%"]}],n:50,r:"data.hasPowercell",p:[13,5,521]},{t:4,n:51,f:[{p:[16,4,667],t:7,e:"span",a:{"class":"bad"},f:["No Cell"]}],r:"data.hasPowercell"}]}]}," ",{p:[20,1,744],t:7,e:"ui-display",a:{title:"Thermostat"},f:[{p:[21,3,779],t:7,e:"ui-section",a:{label:"Current Temperature"},f:[{p:[22,3,823],t:7,e:"span",f:[{t:2,x:{r:["adata.currentTemp"],s:"Math.round(_0)"},p:[22,9,829]},"°C"]}]}," ",{p:[24,2,894],t:7,e:"ui-section",a:{label:"Target Temperature"},f:[{p:[25,3,937],t:7,e:"span",f:[{t:2,x:{r:["adata.targetTemp"],s:"Math.round(_0)"},p:[25,9,943]},"°C"]}]}," ",{t:4,f:[{p:[28,5,1031],t:7,e:"ui-section",a:{label:"Adjust Target"},f:[{p:[29,7,1073],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.targetTemp","data.minTemp"],s:'_0>_1?null:"disabled"'},p:[29,46,1112]}],action:"target",params:'{"adjust": -20}'}}," ",{p:[30,7,1218],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.targetTemp","data.minTemp"],s:'_0>_1?null:"disabled"'},p:[30,41,1252]}],action:"target",params:'{"adjust": -5}'}}," ",{p:[31,7,1357],t:7,e:"ui-button",a:{icon:"pencil",action:"target",params:'{"target": "input"}'},f:["Set"]}," ",{p:[32,7,1450],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.targetTemp","data.maxTemp"],s:'_0<_1?null:"disabled"'},p:[32,40,1483]}],action:"target",params:'{"adjust": 5}'}}," ",{p:[33,7,1587],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.targetTemp","data.maxTemp"],s:'_0<_1?null:"disabled"'},p:[33,45,1625]}],action:"target",params:'{"adjust": 20}'}}]}],n:50,r:"data.open",p:[27,3,1008]}," ",{p:[36,3,1754],t:7,e:"ui-section",a:{label:"Mode"},f:[{t:4,f:[{p:[38,7,1808],t:7,e:"ui-button",a:{icon:"long-arrow-up",state:[{t:2,x:{r:["data.mode"],s:'_0=="heat"?"selected":null'},p:[38,46,1847]}],action:"mode",params:'{"mode": "heat"}'},f:["Heat"]}," ",{p:[39,7,1956],t:7,e:"ui-button",a:{icon:"long-arrow-down",state:[{t:2,x:{r:["data.mode"],s:'_0=="cool"?"selected":null'},p:[39,48,1997]}],action:"mode",params:'{"mode": "cool"}'},f:["Cool"]}," ",{p:[40,7,2106],t:7,e:"ui-button",a:{icon:"arrows-v",state:[{t:2,x:{r:["data.mode"],s:'_0=="auto"?"selected":null'},p:[40,41,2140]}],action:"mode",params:'{"mode": "auto"}'},f:["Auto"]}],n:50,r:"data.open",p:[37,3,1783]},{t:4,n:51,f:[{p:[42,4,2258],t:7,e:"span",f:[{t:2,x:{r:["text","data.mode"],s:"_0.titleCase(_1)"},p:[42,10,2264]}]}],r:"data.open"}]}]}]},e.exports=a.extend(r.exports)},{340:340}],466:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:{button:[{p:[4,8,97],t:7,e:"ui-button",a:{action:"jump",params:['{"name" : ',{t:2,r:"name",p:[4,51,140]},"}"]},f:["Jump"]}," ",{p:[7,9,195],t:7,e:"ui-button",a:{action:"spawn",params:['{"name" : ',{t:2,r:"name",p:[7,53,239]},"}"]},f:["Spawn"]}]},t:7,e:"ui-display",a:{title:[{t:2,r:"name",p:[2,22,46]}],button:0},f:[" ",{p:[11,3,308],t:7,e:"ui-section",a:{label:"Description"},f:[{p:[12,5,346],t:7,e:"span",f:[{t:3,r:"desc",p:[12,11,352]}]}]}," ",{p:[14,3,390],t:7,e:"ui-section",a:{label:"Spawners left"},f:[{p:[15,5,430],t:7,e:"span",f:[{t:2,r:"amount_left",p:[15,11,436]}]}]}]}],n:52,r:"data.spawners",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{340:340}],467:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,31],t:7,e:"ui-display",a:{title:[{t:2,r:"class",p:[2,22,50]}," Alarms"]},f:[{p:[3,5,74],t:7,e:"ul",f:[{t:4,f:[{p:[5,9,107],t:7,e:"li",f:[{t:2,r:".",p:[5,13,111]}]}],n:52,r:".",p:[4,7,86]},{t:4,n:51,f:[{p:[7,9,147],t:7,e:"li",f:["System Nominal"]}],r:"."}]}]}],n:52,i:"class",r:"data.alarms",p:[1,1,0]}]},e.exports=a.extend(r.exports)},{340:340}],468:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{t:4,f:[{p:[2,3,42],t:7,e:"ui-notice",f:[{p:[3,5,59],t:7,e:"span",f:["Biological entity detected in contents. Please remove."]}]}],n:50,x:{r:["data.occupied","data.safeties"],s:"_0&&_1"},p:[1,1,0]},{t:4,f:[{p:[7,3,179],t:7,e:"ui-notice",f:[{p:[8,5,196],t:7,e:"span",f:["Contents are being decontaminated. Please wait."]}]}],n:50,r:"data.uv_active",p:[6,1,153]},{t:4,n:51,f:[{p:{button:[{t:4,f:[{p:[13,25,372],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.locked"],s:'_0?"unlock":"lock"'},p:[13,42,389]}],action:"lock"},f:[{t:2,x:{r:["data.locked"],s:'_0?"Unlock":"Lock"'},p:[13,93,440]}]}],n:50,x:{r:["data.open"],s:"!_0"},p:[13,7,354]}," ",{t:4,f:[{p:[14,27,522],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.open"],s:'_0?"sign-out":"sign-in"'},p:[14,44,539]}],action:"door"},f:[{t:2,x:{r:["data.open"],s:'_0?"Close":"Open"'},p:[14,98,593]}]}],n:50,x:{r:["data.locked"],s:"!_0"},p:[14,7,502]}]},t:7,e:"ui-display",a:{title:"Storage",button:0},f:[" ",{t:4,f:[{p:[17,7,695],t:7,e:"ui-notice",f:[{p:[18,9,716],t:7,e:"span",f:["Unit Locked"]}]}],n:50,r:"data.locked",p:[16,5,668]},{t:4,n:51,f:[{t:4,n:50,x:{r:["data.open"],s:"_0"},f:[{p:[21,9,796],t:7,e:"ui-section",a:{label:"Helmet"},f:[{p:[22,11,835],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.helmet"],s:'_0?"square":"square-o"'},p:[22,28,852]}],state:[{t:2,x:{r:["data.helmet"],s:'_0?null:"disabled"'},p:[22,75,899]}],action:"dispense",params:'{"item": "helmet"}'},f:[{t:2,x:{r:["data.helmet"],s:'_0||"Empty"'},p:[23,59,995]}]}]}," ",{p:[25,9,1066],t:7,e:"ui-section",a:{label:"Suit"},f:[{p:[26,11,1103],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.suit"],s:'_0?"square":"square-o"'},p:[26,28,1120]}],state:[{t:2,x:{r:["data.suit"],s:'_0?null:"disabled"'},p:[26,74,1166]}],action:"dispense",params:'{"item": "suit"}'},f:[{t:2,x:{r:["data.suit"],s:'_0||"Empty"'},p:[27,57,1258]}]}]}," ",{p:[29,9,1327],t:7,e:"ui-section",a:{label:"Mask"},f:[{p:[30,11,1364],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.mask"],s:'_0?"square":"square-o"'},p:[30,28,1381]}],state:[{t:2,x:{r:["data.mask"],s:'_0?null:"disabled"'},p:[30,74,1427]}],action:"dispense",params:'{"item": "mask"}'},f:[{t:2,x:{r:["data.mask"],s:'_0||"Empty"'},p:[31,57,1519]}]}]}," ",{p:[33,9,1588],t:7,e:"ui-section",a:{label:"Storage"},f:[{p:[34,11,1628],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.storage"],s:'_0?"square":"square-o"'},p:[34,28,1645]}],state:[{t:2,x:{r:["data.storage"],s:'_0?null:"disabled"'},p:[34,77,1694]}],action:"dispense",params:'{"item": "storage"}'},f:[{t:2,x:{r:["data.storage"],s:'_0||"Empty"'},p:[35,60,1792]}]}]}]},{t:4,n:50,x:{r:["data.open"],s:"!(_0)"},f:[" ",{p:[38,7,1876],t:7,e:"ui-button",a:{icon:"recycle",state:[{t:2,x:{r:["data.occupied","data.safeties"],s:'_0&&_1?"disabled":null'},p:[38,40,1909]}],action:"uv"},f:["Decontaminate"]}]}],r:"data.locked"}]}],r:"data.uv_active"}]},e.exports=a.extend(r.exports)},{340:340}],469:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{p:[2,5,18],t:7,e:"ui-section",a:{label:"Dispense"},f:[{p:[3,9,57],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.plasma"],s:'_0?"square":"square-o"'},p:[3,26,74]}],state:[{t:2,x:{r:["data.plasma"],s:'_0?null:"disabled"'},p:[3,74,122]}],action:"plasma"},f:["Plasma (",{t:2,x:{r:["adata.plasma"],s:"Math.round(_0)"},p:[4,37,196]},")"]}," ",{p:[5,9,247],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.oxygen"],s:'_0?"square":"square-o"'},p:[5,26,264]}],state:[{t:2,x:{r:["data.oxygen"],s:'_0?null:"disabled"'},p:[5,74,312]}],action:"oxygen"},f:["Oxygen (",{t:2,x:{r:["adata.oxygen"],s:"Math.round(_0)"},p:[6,37,386]},")"]}]}]}]},e.exports=a.extend(r.exports)},{340:340}],470:[function(t,e,n){var a=t(340),r={exports:{}};!function(t){"use strict";t.exports={computed:{tankPressureState:function(){var t=this.get("data.tankPressure");return t>=200?"good":t>=100?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[14,1,295],t:7,e:"ui-notice",f:[{p:[15,3,310],t:7,e:"span",f:["The regulator ",{t:2,x:{r:["data.connected"],s:'_0?"is":"is not"'},p:[15,23,330]}," connected to a mask."]}]}," ",{p:[17,1,409],t:7,e:"ui-display",f:[{p:[18,3,425],t:7,e:"ui-section",a:{label:"Tank Pressure"},f:[{p:[19,7,467],t:7,e:"ui-bar",a:{min:"0",max:"1013",value:[{t:2,r:"data.tankPressure",p:[19,41,501]}],state:[{t:2,r:"tankPressureState",p:[20,16,540]}]},f:[{t:2,x:{r:["adata.tankPressure"],s:"Math.round(_0)"},p:[20,39,563]}," kPa"]}]}," ",{p:[22,3,631],t:7,e:"ui-section",a:{label:"Release Pressure"},f:[{p:[23,5,674],t:7,e:"ui-bar",a:{min:[{t:2,r:"data.minReleasePressure",p:[23,18,687]}],max:[{t:2,r:"data.maxReleasePressure",p:[23,52,721]}],value:[{t:2,r:"data.releasePressure",p:[24,14,764]}]},f:[{t:2,x:{r:["adata.releasePressure"],s:"Math.round(_0)"},p:[24,40,790]}," kPa"]}]}," ",{p:[26,3,861],t:7,e:"ui-section",a:{label:"Pressure Regulator"},f:[{p:[27,5,906],t:7,e:"ui-button",a:{icon:"refresh",state:[{t:2,x:{r:["data.releasePressure","data.defaultReleasePressure"],s:'_0!=_1?null:"disabled"'},p:[27,38,939]}],action:"pressure",params:'{"pressure": "reset"}'},f:["Reset"]}," ",{p:[29,5,1095],t:7,e:"ui-button",a:{icon:"minus",state:[{t:2,x:{r:["data.releasePressure","data.minReleasePressure"],s:'_0>_1?null:"disabled"'},p:[29,36,1126]}],action:"pressure",params:'{"pressure": "min"}'},f:["Min"]}," ",{p:[31,5,1273],t:7,e:"ui-button",a:{icon:"pencil",action:"pressure",params:'{"pressure": "input"}'},f:["Set"]}," ",{p:[32,5,1368],t:7,e:"ui-button",a:{icon:"plus",state:[{t:2,x:{r:["data.releasePressure","data.maxReleasePressure"],s:'_0<_1?null:"disabled"'},p:[32,35,1398]}],action:"pressure",params:'{"pressure": "max"}'},f:["Max"]}]}]}]},e.exports=a.extend(r.exports)},{340:340}],471:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[2,5,33],t:7,e:"ui-section",a:{label:"Temperature"},f:[{p:[3,9,75],t:7,e:"span",f:[{t:2,x:{r:["adata.temperature"],s:"Math.fixed(_0,2)"},p:[3,15,81]}," K"]}]}," ",{p:[5,5,151],t:7,e:"ui-section",a:{label:"Pressure"},f:[{p:[6,9,190],t:7,e:"span",f:[{t:2,x:{r:["adata.pressure"],s:"Math.fixed(_0,2)"},p:[6,15,196]}," kPa"]}]}]}," ",{p:[9,1,276],t:7,e:"ui-display",a:{title:"Controls"},f:[{p:[10,5,311],t:7,e:"ui-section",a:{label:"Power"},f:[{p:[11,9,347],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.on"],s:'_0?"power-off":"close"'},p:[11,26,364]}],style:[{t:2,x:{r:["data.on"],s:'_0?"selected":null'},p:[11,70,408]}],action:"power"},f:[{t:2,x:{r:["data.on"],s:'_0?"On":"Off"'},p:[12,28,469]}]}]}," ",{p:[14,5,531],t:7,e:"ui-section",a:{label:"Target Temperature"},f:[{p:[15,9,580],t:7,e:"ui-button",a:{icon:"fast-backward",state:[{t:2,x:{r:["data.target","data.min"],s:'_0==_1?"disabled":null'},p:[15,48,619]}],action:"target",params:'{"adjust": -20}'}}," ",{p:[17,9,733],t:7,e:"ui-button",a:{icon:"backward",state:[{t:2,x:{r:["data.target","data.min"],s:'_0==_1?"disabled":null'},p:[17,43,767]}],action:"target",params:'{"adjust": -5}'}}," ",{p:[19,9,880],t:7,e:"ui-button",a:{icon:"pencil",action:"target",params:'{"target": "input"}'},f:[{t:2,x:{r:["adata.target"],s:"Math.fixed(_0,2)"},p:[19,79,950]}]}," ",{p:[20,9,1003],t:7,e:"ui-button",a:{icon:"forward",state:[{t:2,x:{r:["data.target","data.max"],s:'_0==_1?"disabled":null'},p:[20,42,1036]}],action:"target",params:'{"adjust": 5}'}}," ",{p:[22,9,1148],t:7,e:"ui-button",a:{icon:"fast-forward",state:[{t:2,x:{r:["data.target","data.max"],s:'_0==_1?"disabled":null'},p:[22,47,1186]}],action:"target",params:'{"adjust": 20}'}}]}]}]},e.exports=a.extend(r.exports)},{340:340}],472:[function(t,e,n){var a=t(340),r={exports:{}};!function(t){"use strict";t.exports={data:{powerState:function(t){switch(t){case 1:return"good";default:return"bad"}}}}}(r),r.exports.template={v:3,t:[" ",{p:[13,1,173],t:7,e:"ui-notice",f:[{p:[14,2,187],t:7,e:"ui-section",a:{label:"Reconnect"},f:[{p:[15,3,221],t:7,e:"div",a:{style:"float:right"},f:[{p:[16,4,251],t:7,e:"ui-button",a:{icon:"refresh",action:"reconnect"},f:["Reconnect"]}]}]}]}," ",{p:[20,1,359],t:7,e:"ui-display",a:{title:"Turbine Controller"},f:[{p:[21,2,401],t:7,e:"ui-section",a:{label:"Status"},f:[{t:4,f:[{p:[23,4,456],t:7,e:"span",a:{"class":"bad"},f:["Broken"]}],n:50,r:"data.broken",p:[22,3,432]},{t:4,n:51,f:[{p:[25,4,504],t:7,e:"span",a:{"class":[{t:2,x:{r:["powerState","data.online"],s:"_0(_1)"},p:[25,17,517]}]},f:[{t:2,x:{r:["data.online","data.compressor_broke","data.turbine_broke"],s:'_0&&!(_1||_2)?"Online":"Offline"'},p:[25,46,546]}]}],r:"data.broken"}," ",{p:[27,3,656],t:7,e:"div",a:{style:"float:right"},f:[{p:[28,4,686],t:7,e:"ui-button",a:{icon:"power-off",action:"power-on",state:[{t:2,r:"data.broken",p:[28,57,739]}],style:[{t:2,x:{r:["data.online"],s:'_0?"selected":""'},p:[28,81,763]}]},f:["On"]}," ",{p:[29,4,817],t:7,e:"ui-button",a:{icon:"close",action:"power-off",state:[{t:2,r:"data.broken",p:[29,54,867]}],style:[{t:2,x:{r:["data.online"],s:'_0?"":"selected"'},p:[29,78,891]}]},f:["Off"]}]}," ",{t:4,f:[{p:[32,4,989],t:7,e:"br"}," [ ",{p:[33,6,1e3],t:7,e:"span",a:{"class":"bad"},f:["Compressor is inoperable"]}," ]"],n:50,r:"data.compressor_broke",p:[31,3,955]}," ",{t:4,f:[{p:[36,4,1097],t:7,e:"br"}," [ ",{p:[37,6,1108],t:7,e:"span",a:{"class":"bad"},f:["Turbine is inoperable"]}," ]"],n:50,r:"data.turbine_broke",p:[35,3,1066]}]}]}," ",{p:[41,1,1200],t:7,e:"ui-display",a:{title:"Status"},f:[{p:[42,2,1230],t:7,e:"ui-section",a:{label:"Turbine Speed"},f:[{p:[43,3,1268],t:7,e:"span",f:[{t:2,x:{r:["data.broken","data.rpm"],s:'_0?"--":_1'},p:[43,9,1274]}," RPM"]}]}," ",{p:[45,2,1337],t:7,e:"ui-section",a:{label:"Internal Temp"},f:[{p:[46,3,1375],t:7,e:"span",f:[{t:2,x:{r:["data.broken","data.temp"],s:'_0?"--":_1'},p:[46,9,1381]}," K"]}]}," ",{p:[48,2,1443],t:7,e:"ui-section",a:{label:"Generated Power"},f:[{p:[49,3,1483],t:7,e:"span",f:[{t:2,x:{r:["data.broken","data.power"],s:'_0?"--":_1'},p:[49,9,1489]}]}]}]}]},e.exports=a.extend(r.exports)},{340:340}],473:[function(t,e,n){var a=t(340),r={exports:{}};!function(t){"use strict";t.exports={data:{},oninit:function(){this.on({hover:function(t){var e=this.get("data.telecrystals");e>=t.context.params.cost&&this.set("hovered",t.context.params)},unhover:function(t){this.set("hovered")}})}}}(r),r.exports.template={v:3,t:[" ",{p:{button:[{t:4,f:[{p:[23,7,482],t:7,e:"ui-button",a:{icon:"lock",action:"lock"},f:["Lock"]}],n:50,r:"data.lockable",p:[22,5,453]}]},t:7,e:"ui-display",a:{title:"Uplink",button:0},f:[" ",{p:[26,3,568],t:7,e:"ui-section",a:{label:"Telecrystals",right:0},f:[{p:[27,5,613],t:7,e:"span",a:{"class":[{t:2,x:{r:["data.telecrystals"],s:'_0>0?"good":"bad"'},p:[27,18,626]}]},f:[{t:2,r:"data.telecrystals",p:[27,62,670]}," TC"]}]}]}," ",{t:4,f:[{p:[31,3,764],t:7,e:"ui-display",f:[{p:[32,2,779],t:7,e:"ui-button",a:{action:"select",params:['{"category": "',{t:2,r:"name",p:[32,51,828]},'"}']},f:[{t:2,r:"name",p:[32,63,840]}]}," ",{t:4,f:[{p:[34,4,883],t:7,e:"ui-section",a:{label:[{t:2,r:"name",p:[34,23,902]}],candystripe:0,right:0},f:[{p:[35,3,934],t:7,e:"ui-button",a:{tooltip:[{t:2,r:"name",p:[35,23,954]},": ",{t:2,r:"desc",p:[35,33,964]}],"tooltip-side":"left",state:[{t:2,x:{r:["data.telecrystals","hovered.cost","cost","hovered.item","name"],s:'_0<_2||(_0-_1<_2&&_3!=_4)?"disabled":null'},p:[36,12,1006]}],action:"buy",params:['{"category": "',{t:2,r:"category",p:[37,40,1165]},'", "item": ',{t:2,r:"name",p:[37,63,1188]},', "cost": ',{t:2,r:"cost",p:[37,81,1206]},"}"]},v:{hover:"hover",unhover:"unhover"},f:[{t:2,r:"cost",p:[38,43,1260]}," TC"]}]}],n:52,r:"items",p:[33,2,863]}]}],n:52,r:"data.categories",p:[30,1,735]}]},e.exports=a.extend(r.exports)},{340:340}],474:[function(t,e,n){var a=t(340),r={exports:{}};!function(t){"use strict";t.exports={data:{healthState:function(t){var e=this.get("data.vr_avatar.maxhealth");return t>e/1.5?"good":t>e/3?"average":"bad"}}}}(r),r.exports.template={v:3,t:[" ",{p:[14,1,292],t:7,e:"ui-display",f:[{t:4,f:[{p:[16,3,331],t:7,e:"ui-notice",f:[{p:[17,4,347],t:7,e:"span",f:["Safety restraints disabled."]}]}],n:50,r:"data.emagged",p:[15,2,307]}," ",{t:4,f:[{p:[21,3,442],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:[{p:[22,4,482],t:7,e:"ui-section",a:{label:"Name"},f:[{t:2,r:"data.vr_avatar.name",p:[23,5,513]}]}," ",{p:[25,4,559],t:7,e:"ui-section",a:{label:"Status"},f:[{t:2,r:"data.vr_avatar.status",p:[26,5,592]}]}," ",{p:[28,4,640],t:7,e:"ui-section",a:{label:"Health"},f:[{p:[29,5,673],t:7,e:"ui-bar",a:{min:"0",max:[{t:2,r:"adata.vr_avatar.maxhealth",p:[29,26,694]}],value:[{t:2,r:"adata.vr_avatar.health",p:[29,64,732]}],state:[{t:2,x:{r:["healthState","adata.vr_avatar.health"],s:"_0(_1)"},p:[29,99,767]}]},f:[{t:2,x:{r:["adata.vr_avatar.health"],s:"Math.round(_0)"},p:[29,140,808]},"/",{t:2,r:"adata.vr_avatar.maxhealth",p:[29,179,847]}]}]}]}],n:50,r:"data.vr_avatar",p:[20,2,416]},{t:4,n:51,f:[{p:[33,3,935],t:7,e:"ui-display",a:{title:"Virtual Avatar"},f:["No Virtual Avatar detected"]}],r:"data.vr_avatar"}," ",{p:[37,2,1031],t:7,e:"ui-display",a:{title:"VR Commands"},f:[{p:[38,3,1067],t:7,e:"ui-button",a:{icon:[{t:2,x:{r:["data.toggle_open"],s:'_0?"times":"plus"'},p:[38,20,1084]}],action:"toggle_open"},f:[{t:2,x:{r:["data.toggle_open"],s:'_0?"Close":"Open"'},p:[39,4,1151]}," the VR Sleeper"]}," ",{t:4,f:[{p:[42,4,1253],t:7,e:"ui-button",a:{icon:"signal",action:"vr_connect"},f:["Connect to VR"]}],n:50,r:"data.isoccupant",p:[41,3,1225]}," ",{t:4,f:[{p:[47,4,1376],t:7,e:"ui-button",a:{icon:"ban",action:"delete_avatar"},f:["Delete Virtual Avatar"]}],n:50,r:"data.vr_avatar",p:[46,3,1349]}]}]}]},e.exports=a.extend(r.exports)},{340:340}],475:[function(t,e,n){var a=t(340),r={exports:{}};r.exports.template={v:3,t:[{p:[1,1,0],t:7,e:"ui-display",f:[{t:4,f:[{p:[3,5,42],t:7,e:"ui-section",a:{label:[{t:2,r:"color",p:[3,24,61]},{t:2,x:{r:["wire"],s:'_0?" ("+_0+")":""'},p:[3,33,70]}],labelcolor:[{t:2,r:"color",p:[3,80,117]}],candystripe:0,right:0},f:[{p:[4,7,154],t:7,e:"ui-button",a:{action:"cut",params:['{"wire":"',{t:2,r:"color",p:[4,48,195]},'"}']},f:[{t:2,x:{r:["cut"],s:'_0?"Mend":"Cut"'},p:[4,61,208]}]}," ",{p:[5,7,252],t:7,e:"ui-button",a:{action:"pulse",params:['{"wire":"',{t:2,r:"color",p:[5,50,295]},'"}']},f:["Pulse"]}," ",{p:[6,7,333],t:7,e:"ui-button",a:{action:"attach",params:['{"wire":"',{t:2,r:"color",p:[6,51,377]},'"}']},f:[{t:2,x:{r:["attached"],s:'_0?"Detach":"Attach"'},p:[6,64,390]}]}]}],n:52,r:"data.wires",p:[2,3,16]}]}," ",{t:4,f:[{p:[11,3,508],t:7,e:"ui-display",f:[{t:4,f:[{p:[13,7,555],t:7,e:"ui-section",f:[{t:2,r:".",p:[13,19,567]}]}],n:52,r:"data.status",p:[12,5,526]}]}],n:50,r:"data.status",p:[10,1,485]}]},e.exports=a.extend(r.exports)},{340:340}],476:[function(t,e,n){(function(e){"use strict";var n=t(340),a=e.interopRequireDefault(n);t(330),t(1),t(326),t(329);var r=t(477),i=e.interopRequireDefault(r),o=t(478),s=t(327),p=t(328),u=e.interopRequireDefault(p);a["default"].DEBUG=/minified/.test(function(){}),Object.assign(Math,t(482)),window.initialize=function(e){window.tgui=window.tgui||new i["default"]({el:"#container",data:function(){var n=JSON.parse(e);return{constants:t(479),text:t(483),config:n.config,data:n.data,adata:n.data}}})};var c=document.getElementById("data"),l=c.textContent,d=c.getAttribute("data-ref");"{}"!==l&&(window.initialize(l),c.remove()),(0,o.act)(d,"tgui:initialize"),(0,s.loadCSS)("font-awesome.min.css");var f=new u["default"]("FontAwesome");f.check("").then(function(){return document.body.classList.add("icons")})["catch"](function(){return document.body.classList.add("no-icons")})}).call(this,t("babel/external-helpers"))},{1:1,326:326,327:327,328:328,329:329,330:330,
-340:340,477:477,478:478,479:479,482:482,483:483,"babel/external-helpers":"babel/external-helpers"}],477:[function(t,e,n){var a=t(340),r={exports:{}};!function(e){"use strict";var n=t(478),a=t(480);e.exports={components:{"ui-bar":t(342),"ui-button":t(343),"ui-display":t(344),"ui-input":t(345),"ui-linegraph":t(346),"ui-notice":t(347),"ui-section":t(349),"ui-subdisplay":t(350),"ui-tabs":t(351)},events:{enter:t(338).enter,space:t(338).space},transitions:{fade:t(339)},onconfig:function(){var e=this.get("config.interface"),n={ai_airlock:t(355),airalarm:t(356),"airalarm/back":t(357),"airalarm/modes":t(358),"airalarm/scrubbers":t(359),"airalarm/status":t(360),"airalarm/thresholds":t(361),"airalarm/vents":t(362),airlock_electronics:t(363),apc:t(364),atmos_alert:t(365),atmos_control:t(366),atmos_filter:t(367),atmos_mixer:t(368),atmos_pump:t(369),borgopanel:t(370),brig_timer:t(371),bsa:t(372),canister:t(373),cargo:t(374),cargo_express:t(375),cellular_emporium:t(376),centcom_podlauncher:t(377),chem_dispenser:t(378),chem_heater:t(379),chem_master:t(380),chem_synthesizer:t(381),clockwork_slab:t(382),codex_gigas:t(383),computer_fabricator:t(384),crayon:t(385),crew:t(386),cryo:t(387),disposal_unit:t(388),dna_vault:t(389),eightball:t(390),emergency_shuttle_console:t(391),engraved_message:t(392),error:t(393),exonet_node:t(394),gps:t(395),gulag_console:t(396),gulag_item_reclaimer:t(397),holodeck:t(398),implantchair:t(399),intellicard:t(400),keycard_auth:t(401),labor_claim_console:t(402),language_menu:t(403),launchpad_remote:t(404),mech_bay_power_console:t(405),mulebot:t(406),nanite_chamber_control:t(407),nanite_cloud_control:t(408),nanite_comm_remote:t(409),nanite_program_hub:t(410),nanite_programmer:t(411),nanite_remote:t(412),notificationpanel:t(413),ntnet_relay:t(414),ntos_ai_restorer:t(415),ntos_card:t(416),ntos_configuration:t(417),ntos_file_manager:t(418),ntos_main:t(419),ntos_net_chat:t(420),ntos_net_dos:t(421),ntos_net_downloader:t(422),ntos_net_monitor:t(423),ntos_net_transfer:t(424),ntos_power_monitor:t(425),ntos_revelation:t(426),ntos_station_alert:t(427),ntos_supermatter_monitor:t(428),ntosheader:t(429),nuclear_bomb:t(430),operating_computer:t(431),ore_redemption_machine:t(432),pandemic:t(433),personal_crafting:t(434),portable_generator:t(435),portable_pump:t(436),portable_scrubber:t(437),power_monitor:t(438),radio:t(439),rdconsole:t(440),"rdconsole/circuit":t(441),"rdconsole/designview":t(442),"rdconsole/destruct":t(443),"rdconsole/diskopsdesign":t(444),"rdconsole/diskopstech":t(445),"rdconsole/nodeview":t(446),"rdconsole/protolathe":t(447),"rdconsole/rdheader":t(448),"rdconsole/settings":t(449),"rdconsole/techweb":t(450),rpd:t(451),sat_control:t(452),scanner_gate:t(453),scrubbing_types:t(454),shuttle_manipulator:t(455),"shuttle_manipulator/modification":t(456),"shuttle_manipulator/status":t(457),"shuttle_manipulator/templates":t(458),sleeper:t(459),slime_swap_body:t(460),smartvend:t(461),smes:t(462),smoke_machine:t(463),solar_control:t(464),space_heater:t(465),spawners_menu:t(466),station_alert:t(467),suit_storage_unit:t(468),tank_dispenser:t(469),tanks:t(470),thermomachine:t(471),turbine_computer:t(472),uplink:t(473),vr_sleeper:t(474),wires:t(475)};e in n?this.components["interface"]=n[e]:this.components["interface"]=n.error},oninit:function(){this.observe("config.style",function(t,e,n){t&&document.body.classList.add(t),e&&document.body.classList.remove(e)})},oncomplete:function(){if(this.get("config.locked")){var t=(0,a.lock)(window.screenLeft,window.screenTop),e=t.x,r=t.y;(0,n.winset)(this.get("config.window"),"pos",e+","+r)}(0,n.winset)("mapwindow.map","focus",!0)}}}(r),r.exports.template={v:3,t:[" "," "," "," ",{p:[56,1,1874],t:7,e:"titlebar",f:[{t:3,r:"config.title",p:[56,11,1884]}]}," ",{p:[57,1,1915],t:7,e:"main",f:[{p:[58,3,1925],t:7,e:"warnings"}," ",{p:[59,3,1940],t:7,e:"interface"}]}," ",{t:4,f:[{p:[62,3,1990],t:7,e:"resize"}],n:50,r:"config.titlebar",p:[61,1,1963]}]},r.exports.components=r.exports.components||{};var i={warnings:t(354),titlebar:t(353),resize:t(348)};for(var o in i)i.hasOwnProperty(o)&&(r.exports.components[o]=i[o]);e.exports=a.extend(r.exports)},{338:338,339:339,340:340,342:342,343:343,344:344,345:345,346:346,347:347,348:348,349:349,350:350,351:351,353:353,354:354,355:355,356:356,357:357,358:358,359:359,360:360,361:361,362:362,363:363,364:364,365:365,366:366,367:367,368:368,369:369,370:370,371:371,372:372,373:373,374:374,375:375,376:376,377:377,378:378,379:379,380:380,381:381,382:382,383:383,384:384,385:385,386:386,387:387,388:388,389:389,390:390,391:391,392:392,393:393,394:394,395:395,396:396,397:397,398:398,399:399,400:400,401:401,402:402,403:403,404:404,405:405,406:406,407:407,408:408,409:409,410:410,411:411,412:412,413:413,414:414,415:415,416:416,417:417,418:418,419:419,420:420,421:421,422:422,423:423,424:424,425:425,426:426,427:427,428:428,429:429,430:430,431:431,432:432,433:433,434:434,435:435,436:436,437:437,438:438,439:439,440:440,441:441,442:442,443:443,444:444,445:445,446:446,447:447,448:448,449:449,450:450,451:451,452:452,453:453,454:454,455:455,456:456,457:457,458:458,459:459,460:460,461:461,462:462,463:463,464:464,465:465,466:466,467:467,468:468,469:469,470:470,471:471,472:472,473:473,474:474,475:475,478:478,480:480}],478:[function(t,e,n){"use strict";function a(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"byond://"+e+"?"+Object.keys(t).map(function(e){return o(e)+"="+o(t[e])}).join("&")}function r(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};window.location.href=a(Object.assign({src:t,action:e},n))}function i(t,e,n){var r;window.location.href=a((r={},r[t+"."+e]=n,r),"winset")}n.__esModule=!0,n.href=a,n.act=r,n.winset=i;var o=encodeURIComponent},{}],479:[function(t,e,n){"use strict";n.__esModule=!0;n.UI_INTERACTIVE=2,n.UI_UPDATE=1,n.UI_DISABLED=0,n.UI_CLOSE=-1},{}],480:[function(t,e,n){"use strict";function a(t,e){return 0>t?t=0:t+window.innerWidth>window.screen.availWidth&&(t=window.screen.availWidth-window.innerWidth),0>e?e=0:e+window.innerHeight>window.screen.availHeight&&(e=window.screen.availHeight-window.innerHeight),{x:t,y:e}}function r(t){if(t.preventDefault(),this.get("drag")){if(this.get("x")){var e=t.screenX-this.get("x")+window.screenLeft,n=t.screenY-this.get("y")+window.screenTop;if(this.get("config.locked")){var r=a(e,n);e=r.x,n=r.y}(0,s.winset)(this.get("config.window"),"pos",e+","+n)}this.set({x:t.screenX,y:t.screenY})}}function i(t,e){return t=Math.clamp(100,window.screen.width,t),e=Math.clamp(100,window.screen.height,e),{x:t,y:e}}function o(t){if(t.preventDefault(),this.get("resize")){if(this.get("x")){var e=t.screenX-this.get("x")+window.innerWidth,n=t.screenY-this.get("y")+window.innerHeight,a=i(e,n);e=a.x,n=a.y,(0,s.winset)(this.get("config.window"),"size",e+","+n)}this.set({x:t.screenX,y:t.screenY})}}n.__esModule=!0,n.lock=a,n.drag=r,n.sane=i,n.resize=o;var s=t(478)},{478:478}],481:[function(t,e,n){"use strict";function a(t,e){for(var n=t,a=Array.isArray(n),i=0,n=a?n:n[Symbol.iterator]();;){var o;if(a){if(i>=n.length)break;o=n[i++]}else{if(i=n.next(),i.done)break;o=i.value}var s=o;s.textContent.toLowerCase().includes(e)?(s.style.display="",r(s,e)):s.style.display="none"}}function r(t,e){for(var n=t.queryAll("section"),a=t.query("header").textContent.toLowerCase().includes(e),r=n,i=Array.isArray(r),o=0,r=i?r:r[Symbol.iterator]();;){var s;if(i){if(o>=r.length)break;s=r[o++]}else{if(o=r.next(),o.done)break;s=o.value}var p=s;a||p.textContent.toLowerCase().includes(e)?p.style.display="":p.style.display="none"}}n.__esModule=!0,n.filterMulti=a,n.filter=r},{}],482:[function(t,e,n){"use strict";function a(t,e,n){return Math.max(t,Math.min(n,e))}function r(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return+(Math.round(t+"e"+e)+"e-"+e)}n.__esModule=!0,n.clamp=a,n.fixed=r},{}],483:[function(t,e,n){"use strict";function a(t){return t[0].toUpperCase()+t.slice(1).toLowerCase()}function r(t){return t.replace(/\w\S*/g,a)}function i(t,e){for(t=""+t;t.length1){for(var p=Array(o),u=0;o>u;u++)p[u]=arguments[u+3];n.children=p}return{$$typeof:t,type:e,key:void 0===a?null:""+a,ref:null,props:n,_owner:null}}}(),e.asyncIterator=function(t){if("function"==typeof Symbol){if(Symbol.asyncIterator){var e=t[Symbol.asyncIterator];if(null!=e)return e.call(t)}if(Symbol.iterator)return t[Symbol.iterator]()}throw new TypeError("Object is not async iterable")},e.asyncGenerator=function(){function t(t){this.value=t}function e(e){function n(t,e){return new Promise(function(n,r){var s={key:t,arg:e,resolve:n,reject:r,next:null};o?o=o.next=s:(i=o=s,a(t,e))})}function a(n,i){try{var o=e[n](i),s=o.value;s instanceof t?Promise.resolve(s.value).then(function(t){a("next",t)},function(t){a("throw",t)}):r(o.done?"return":"normal",o.value)}catch(p){r("throw",p)}}function r(t,e){switch(t){case"return":i.resolve({value:e,done:!0});break;case"throw":i.reject(e);break;default:i.resolve({value:e,done:!1})}i=i.next,i?a(i.key,i.arg):o=null}var i,o;this._invoke=n,"function"!=typeof e["return"]&&(this["return"]=void 0)}return"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(t){return this._invoke("next",t)},e.prototype["throw"]=function(t){return this._invoke("throw",t)},e.prototype["return"]=function(t){return this._invoke("return",t)},{wrap:function(t){return function(){return new e(t.apply(this,arguments))}},await:function(e){return new t(e)}}}(),e.asyncGeneratorDelegate=function(t,e){function n(n,a){return r=!0,a=new Promise(function(e){e(t[n](a))}),{done:!1,value:e(a)}}var a={},r=!1;return"function"==typeof Symbol&&Symbol.iterator&&(a[Symbol.iterator]=function(){return this}),a.next=function(t){return r?(r=!1,t):n("next",t)},"function"==typeof t["throw"]&&(a["throw"]=function(t){if(r)throw r=!1,t;return n("throw",t)}),"function"==typeof t["return"]&&(a["return"]=function(t){return n("return",t)}),a},e.asyncToGenerator=function(t){return function(){var e=t.apply(this,arguments);return new Promise(function(t,n){function a(r,i){try{var o=e[r](i),s=o.value}catch(p){return void n(p)}return o.done?void t(s):Promise.resolve(s).then(function(t){a("next",t)},function(t){a("throw",t)})}return a("next")})}},e.classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},e.createClass=function(){function t(t,e){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n},e.possibleConstructorReturn=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},e.selfGlobal=void 0===t?self:t,e.set=function a(t,e,n,r){var i=Object.getOwnPropertyDescriptor(t,e);if(void 0===i){var o=Object.getPrototypeOf(t);null!==o&&a(o,e,n,r)}else if("value"in i&&i.writable)i.value=n;else{var s=i.set;void 0!==s&&s.call(r,n)}return n},e.slicedToArray=function(){function t(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(p){r=!0,i=p}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),e.slicedToArrayLoose=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t)){for(var n,a=[],r=t[Symbol.iterator]();!(n=r.next()).done&&(a.push(n.value),!e||a.length!==e););return a}throw new TypeError("Invalid attempt to destructure non-iterable instance")},e.taggedTemplateLiteral=function(t,e){return Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))},e.taggedTemplateLiteralLoose=function(t,e){return t.raw=e,t},e.temporalRef=function(t,e,n){if(t===n)throw new ReferenceError(e+" is not defined - temporal dead zone");return t},e.temporalUndefined={},e.toArray=function(t){return Array.isArray(t)?t:Array.from(t)},e.toConsumableArray=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"byond://"+e+"?"+Object.keys(t).map(function(e){return o(e)+"="+o(t[e])}).join("&")}function r(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};window.location.href=a(Object.assign({src:t,action:e},n))}function i(t,e,n){var r;window.location.href=a((r={},r[t+"."+e]=n,r),"winset")}n.__esModule=!0,n.href=a,n.act=r,n.winset=i;var o=encodeURIComponent},{}],479:[function(t,e,n){"use strict";n.__esModule=!0;n.UI_INTERACTIVE=2,n.UI_UPDATE=1,n.UI_DISABLED=0,n.UI_CLOSE=-1},{}],480:[function(t,e,n){"use strict";function a(t,e){return 0>t?t=0:t+window.innerWidth>window.screen.availWidth&&(t=window.screen.availWidth-window.innerWidth),0>e?e=0:e+window.innerHeight>window.screen.availHeight&&(e=window.screen.availHeight-window.innerHeight),{x:t,y:e}}function r(t){if(t.preventDefault(),this.get("drag")){if(this.get("x")){var e=t.screenX-this.get("x")+window.screenLeft,n=t.screenY-this.get("y")+window.screenTop;if(this.get("config.locked")){var r=a(e,n);e=r.x,n=r.y}(0,s.winset)(this.get("config.window"),"pos",e+","+n)}this.set({x:t.screenX,y:t.screenY})}}function i(t,e){return t=Math.clamp(100,window.screen.width,t),e=Math.clamp(100,window.screen.height,e),{x:t,y:e}}function o(t){if(t.preventDefault(),this.get("resize")){if(this.get("x")){var e=t.screenX-this.get("x")+window.innerWidth,n=t.screenY-this.get("y")+window.innerHeight,a=i(e,n);e=a.x,n=a.y,(0,s.winset)(this.get("config.window"),"size",e+","+n)}this.set({x:t.screenX,y:t.screenY})}}n.__esModule=!0,n.lock=a,n.drag=r,n.sane=i,n.resize=o;var s=t(478)},{478:478}],481:[function(t,e,n){"use strict";function a(t,e){for(var n=t,a=Array.isArray(n),i=0,n=a?n:n[Symbol.iterator]();;){var o;if(a){if(i>=n.length)break;o=n[i++]}else{if(i=n.next(),i.done)break;o=i.value}var s=o;s.textContent.toLowerCase().includes(e)?(s.style.display="",r(s,e)):s.style.display="none"}}function r(t,e){for(var n=t.queryAll("section"),a=t.query("header").textContent.toLowerCase().includes(e),r=n,i=Array.isArray(r),o=0,r=i?r:r[Symbol.iterator]();;){var s;if(i){if(o>=r.length)break;s=r[o++]}else{if(o=r.next(),o.done)break;s=o.value}var p=s;a||p.textContent.toLowerCase().includes(e)?p.style.display="":p.style.display="none"}}n.__esModule=!0,n.filterMulti=a,n.filter=r},{}],482:[function(t,e,n){"use strict";function a(t,e,n){return Math.max(t,Math.min(n,e))}function r(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return+(Math.round(t+"e"+e)+"e-"+e)}n.__esModule=!0,n.clamp=a,n.fixed=r},{}],483:[function(t,e,n){"use strict";function a(t){return t[0].toUpperCase()+t.slice(1).toLowerCase()}function r(t){return t.replace(/\w\S*/g,a)}function i(t,e){for(t=""+t;t.length1){for(var p=Array(o),u=0;o>u;u++)p[u]=arguments[u+3];n.children=p}return{$$typeof:t,type:e,key:void 0===a?null:""+a,ref:null,props:n,_owner:null}}}(),e.asyncIterator=function(t){if("function"==typeof Symbol){if(Symbol.asyncIterator){var e=t[Symbol.asyncIterator];if(null!=e)return e.call(t)}if(Symbol.iterator)return t[Symbol.iterator]()}throw new TypeError("Object is not async iterable")},e.asyncGenerator=function(){function t(t){this.value=t}function e(e){function n(t,e){return new Promise(function(n,r){var s={key:t,arg:e,resolve:n,reject:r,next:null};o?o=o.next=s:(i=o=s,a(t,e))})}function a(n,i){try{var o=e[n](i),s=o.value;s instanceof t?Promise.resolve(s.value).then(function(t){a("next",t)},function(t){a("throw",t)}):r(o.done?"return":"normal",o.value)}catch(p){r("throw",p)}}function r(t,e){switch(t){case"return":i.resolve({value:e,done:!0});break;case"throw":i.reject(e);break;default:i.resolve({value:e,done:!1})}i=i.next,i?a(i.key,i.arg):o=null}var i,o;this._invoke=n,"function"!=typeof e["return"]&&(this["return"]=void 0)}return"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(t){return this._invoke("next",t)},e.prototype["throw"]=function(t){return this._invoke("throw",t)},e.prototype["return"]=function(t){return this._invoke("return",t)},{wrap:function(t){return function(){return new e(t.apply(this,arguments))}},await:function(e){return new t(e)}}}(),e.asyncGeneratorDelegate=function(t,e){function n(n,a){return r=!0,a=new Promise(function(e){e(t[n](a))}),{done:!1,value:e(a)}}var a={},r=!1;return"function"==typeof Symbol&&Symbol.iterator&&(a[Symbol.iterator]=function(){return this}),a.next=function(t){return r?(r=!1,t):n("next",t)},"function"==typeof t["throw"]&&(a["throw"]=function(t){if(r)throw r=!1,t;return n("throw",t)}),"function"==typeof t["return"]&&(a["return"]=function(t){return n("return",t)}),a},e.asyncToGenerator=function(t){return function(){var e=t.apply(this,arguments);return new Promise(function(t,n){function a(r,i){try{var o=e[r](i),s=o.value}catch(p){return void n(p)}return o.done?void t(s):Promise.resolve(s).then(function(t){a("next",t)},function(t){a("throw",t)})}return a("next")})}},e.classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},e.createClass=function(){function t(t,e){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n},e.possibleConstructorReturn=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},e.selfGlobal=void 0===t?self:t,e.set=function a(t,e,n,r){var i=Object.getOwnPropertyDescriptor(t,e);if(void 0===i){var o=Object.getPrototypeOf(t);null!==o&&a(o,e,n,r)}else if("value"in i&&i.writable)i.value=n;else{var s=i.set;void 0!==s&&s.call(r,n)}return n},e.slicedToArray=function(){function t(t,e){var n=[],a=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(n.push(o.value),!e||n.length!==e);a=!0);}catch(p){r=!0,i=p}finally{try{!a&&s["return"]&&s["return"]()}finally{if(r)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),e.slicedToArrayLoose=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t)){for(var n,a=[],r=t[Symbol.iterator]();!(n=r.next()).done&&(a.push(n.value),!e||a.length!==e););return a}throw new TypeError("Invalid attempt to destructure non-iterable instance")},e.taggedTemplateLiteral=function(t,e){return Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))},e.taggedTemplateLiteralLoose=function(t,e){return t.raw=e,t},e.temporalRef=function(t,e,n){if(t===n)throw new ReferenceError(e+" is not defined - temporal dead zone");return t},e.temporalUndefined={},e.toArray=function(t){return Array.isArray(t)?t:Array.from(t)},e.toConsumableArray=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e