From 7d78fe93bf75595f1b559fac157b9d5bf696e52d Mon Sep 17 00:00:00 2001 From: Desolate Date: Sun, 16 Sep 2018 17:20:21 -0500 Subject: [PATCH] Refactors some reagent lists into global list Fixes an oversight with fly amanita from the BAYBOTANY to TGBOTANY change. --- code/_globalvars/lists/reagents.dm | 31 ++++++++++--------- code/game/objects/items/random_items.dm | 20 ++++++------ code/modules/food_and_drinks/drinks/drinks.dm | 4 +-- .../food_and_drinks/food/foods/baked_goods.dm | 2 +- .../food_and_drinks/food/foods/desserts.dm | 2 +- code/modules/hydroponics/grown/kudzu.dm | 2 +- code/modules/hydroponics/grown/mushrooms.dm | 6 ++-- .../chemistry/machinery/chem_master.dm | 2 +- .../reagents/chemistry/reagents/toxins.dm | 14 ++++++++- .../reagents/reagent_containers/hypospray.dm | 2 +- code/modules/surgery/organs/liver.dm | 2 +- 11 files changed, 51 insertions(+), 36 deletions(-) diff --git a/code/_globalvars/lists/reagents.dm b/code/_globalvars/lists/reagents.dm index 30809943a8a..97a5da68da8 100644 --- a/code/_globalvars/lists/reagents.dm +++ b/code/_globalvars/lists/reagents.dm @@ -1,9 +1,9 @@ // Base chemicals -var/list/base_chemicals = list("water","oxygen","nitrogen","hydrogen","potassium","mercury","carbon", +GLOBAL_LIST_INIT(base_chemicals, list("water","oxygen","nitrogen","hydrogen","potassium","mercury","carbon", "chlorine","fluorine","phosphorus","lithium","sulfur","sacid","radium", - "iron","aluminum","silicon","sugar","ethanol") + "iron","aluminum","silicon","sugar","ethanol")) // Standard chemicals -var/list/standard_chemicals = list("slimejelly","blood","water","lube","charcoal","toxin","cyanide", +GLOBAL_LIST_INIT(standard_chemicals, list("slimejelly","blood","water","lube","charcoal","toxin","cyanide", "morphine","epinephrine","space_drugs","serotrotium","oxygen","copper", "nitrogen","hydrogen","potassium","mercury","sulfur","carbon","chlorine", "fluorine","sodium","phosphorus","lithium","sugar","sacid","facid", @@ -15,21 +15,21 @@ var/list/standard_chemicals = list("slimejelly","blood","water","lube","charcoal "cryoxadone","spaceacillin","carpotoxin","lsd","fluorosurfactant", "fluorosurfactant","ethanol","ammonia","diethylamine","antihol","pancuronium", "lipolicide","condensedcapsaicin","frostoil","amanitin","psilocybin", - "enzyme","nothing","salglu_solution","antifreeze","neurotoxin") + "enzyme","nothing","salglu_solution","antifreeze","neurotoxin","amatoxin")) // Rare chemicals -var/list/rare_chemicals = list("minttoxin","syndicate_nanites", "xenomicrobes") +GLOBAL_LIST_INIT(rare_chemicals, list("minttoxin","syndicate_nanites", "xenomicrobes")) // Standard medicines -var/list/standard_medicines = list("charcoal","toxin","cyanide","morphine","epinephrine","space_drugs", +GLOBAL_LIST_INIT(standard_medicines, list("charcoal","toxin","cyanide","morphine","epinephrine","space_drugs", "serotrotium","mutadone","mutagen","teporone","lexorin","silver_sulfadiazine", "salbutamol","perfluorodecalin","omnizine","synaptizine","haloperidol", "potass_iodide","pen_acid","mannitol","oculine","styptic_powder", "methamphetamine","spaceacillin","carpotoxin","lsd","ethanol","ammonia", "diethylamine","antihol","pancuronium","lipolicide","condensedcapsaicin", - "frostoil","amanitin","psilocybin","nothing","salglu_solution","neurotoxin") + "frostoil","amanitin","psilocybin","nothing","salglu_solution","neurotoxin","amatoxin")) // Rare medicines -var/list/rare_medicines = list("syndicate_nanites","minttoxin","blood", "xenomicrobes") +GLOBAL_LIST_INIT(rare_medicines, list("syndicate_nanites","minttoxin","blood", "xenomicrobes")) // Drinks -var/list/drinks = list("beer2","hot_coco","orangejuice","tomatojuice","limejuice","carrotjuice", +GLOBAL_LIST_INIT(drinks, list("beer2","hot_coco","orangejuice","tomatojuice","limejuice","carrotjuice", "berryjuice","poisonberryjuice","watermelonjuice","lemonjuice","banana", "nothing","potato","milk","soymilk","cream","coffee","tea","icecoffee", "icetea","cola","nuka_cola","spacemountainwind","thirteenloko","dr_gibb", @@ -44,10 +44,13 @@ var/list/drinks = list("beer2","hot_coco","orangejuice","tomatojuice","limejuice "vodkatonic","ginfizz","bahama_mama","singulo","sbiten","devilskiss","red_mead", "mead","iced_beer","grog","aloe","andalusia","alliescocktail","soy_latte", "cafe_latte","acidspit","amasec","neurotoxin","hippiesdelight","bananahonk", - "silencer","changelingsting","irishcarbomb","syndicatebomb","erikasurprise","driestmartini", "flamingmoe") + "silencer","changelingsting","irishcarbomb","syndicatebomb","erikasurprise","driestmartini", "flamingmoe")) + +//Liver Toxins list +GLOBAL_LIST_INIT(liver_toxins, list("toxin", "plasma", "sacid", "facid", "cyanide","amatoxin","amanitin", "carpotoxin")) //Random chem blacklist -var/global/list/blocked_chems = list("polonium", "initropidril", "concentrated_initro", +GLOBAL_LIST_INIT(blocked_chems, list("polonium", "initropidril", "concentrated_initro", "sodium_thiopental", "ketamine", "coniine", "adminordrazine", "nanites", "hellwater", "mutationtoxin", "amutationtoxin", "venom", @@ -55,9 +58,9 @@ var/global/list/blocked_chems = list("polonium", "initropidril", "concentrated_i "syndicate_nanites", "ripping_tendrils", "boiling_oil", "envenomed_filaments", "lexorin_jelly", "kinetic", "cryogenic_liquid", "dark_matter", "b_sorium", - "reagent", "life","dragonsbreath", "nanocalcium") + "reagent", "life","dragonsbreath", "nanocalcium")) -var/global/list/safe_chem_list = list("antihol", "charcoal", "epinephrine", "insulin", "teporone","silver_sulfadiazine", "salbutamol", +GLOBAL_LIST_INIT(safe_chem_list, list("antihol", "charcoal", "epinephrine", "insulin", "teporone","silver_sulfadiazine", "salbutamol", "omnizine", "stimulants", "synaptizine", "potass_iodide", "oculine", "mannitol", "styptic_powder", "spaceacillin", "salglu_solution", "sal_acid", "cryoxadone", "blood", "synthflesh", "hydrocodone", - "mitocholide", "rezadone") \ No newline at end of file + "mitocholide", "rezadone")) \ No newline at end of file diff --git a/code/game/objects/items/random_items.dm b/code/game/objects/items/random_items.dm index ded05d6f795..7e50f21cf30 100644 --- a/code/game/objects/items/random_items.dm +++ b/code/game/objects/items/random_items.dm @@ -51,9 +51,9 @@ /obj/item/reagent_containers/glass/bottle/random_reagent/New() ..() var/list/possible_chems = chemical_reagents_list.Copy() - possible_chems -= blocked_chems.Copy() + possible_chems -= GLOB.blocked_chems.Copy() var/datum/reagent/R = pick(possible_chems) - if(rare_chemicals.Find(R)) + if(GLOB.rare_chemicals.Find(R)) reagents.add_reagent(R, 10) else reagents.add_reagent(R, rand(2, 3)*10) @@ -68,7 +68,7 @@ /obj/item/reagent_containers/glass/bottle/random_chem/New() ..() var/R = get_random_reagent_id() - if(rare_chemicals.Find(R)) + if(GLOB.rare_chemicals.Find(R)) reagents.add_reagent(R, 10) else reagents.add_reagent(R, rand(2, 3)*10) @@ -82,7 +82,7 @@ /obj/item/reagent_containers/glass/bottle/random_base_chem/New() ..() - var/datum/reagent/R = pick(base_chemicals) + var/datum/reagent/R = pick(GLOB.base_chemicals) reagents.add_reagent(R, rand(2, 6)*5) name = "unlabelled bottle" pixel_x = rand(-10, 10) @@ -94,7 +94,7 @@ /obj/item/reagent_containers/food/drinks/bottle/random_drink/New() ..() - var/list/possible_drinks = drinks.Copy() + var/list/possible_drinks = GLOB.drinks.Copy() if(prob(50)) possible_drinks += list("pancuronium","lsd","omnizine","blood") @@ -113,7 +113,7 @@ ..() var/R = get_random_reagent_id() - if(rare_chemicals.Find(R)) + if(GLOB.rare_chemicals.Find(R)) reagents.add_reagent(R, 10) else reagents.add_reagent(R, rand(3, 10)*10) @@ -131,13 +131,13 @@ /obj/item/storage/pill_bottle/random_meds/New() ..() for(var/i in 1 to storage_slots) - var/list/possible_medicines = standard_medicines.Copy() + var/list/possible_medicines = GLOB.standard_medicines.Copy() if(prob(50)) - possible_medicines += rare_medicines.Copy() + possible_medicines += GLOB.rare_medicines.Copy() var/datum/reagent/R = pick(possible_medicines) var/obj/item/reagent_containers/food/pill/P = new(src) - if(rare_medicines.Find(R)) + if(GLOB.rare_medicines.Find(R)) P.reagents.add_reagent(R, 10) else P.reagents.add_reagent(R, rand(2, 5)*10) @@ -182,7 +182,7 @@ /obj/structure/closet/crate/secure/chemicals/New() ..() - for(var/chem in standard_chemicals) + for(var/chem in GLOB.standard_chemicals) var/obj/item/reagent_containers/glass/bottle/B = new(src) B.reagents.add_reagent(chem, B.volume) if(prob(85)) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 91ee910c8d4..37352db4a01 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -35,7 +35,7 @@ var/mob/living/silicon/robot/borg = user borg.cell.use(30) var/refill = reagents.get_master_reagent_id() - if(refill in drinks) // Only synthesize drinks + if(refill in GLOB.drinks) // Only synthesize drinks spawn(600) reagents.add_reagent(refill, bitesize) return 1 @@ -99,7 +99,7 @@ to_chat(user, " You transfer [trans] units of the solution to [target].") if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell - if(refill in drinks) // Only synthesize drinks + if(refill in GLOB.drinks) // Only synthesize drinks var/mob/living/silicon/robot/bro = user var/chargeAmount = max(30,4*trans) bro.cell.use(chargeAmount) diff --git a/code/modules/food_and_drinks/food/foods/baked_goods.dm b/code/modules/food_and_drinks/food/foods/baked_goods.dm index 9da07f4f0b8..835c6f30e6c 100644 --- a/code/modules/food_and_drinks/food/foods/baked_goods.dm +++ b/code/modules/food_and_drinks/food/foods/baked_goods.dm @@ -244,7 +244,7 @@ icon_state = "amanita_pie" filling_color = "#FFCCCC" bitesize = 4 - list_reagents = list("nutriment" = 6, "amanitin" = 3, "psilocybin" = 1, "vitamin" = 4) + list_reagents = list("nutriment" = 6, "amatoxin" = 3, "psilocybin" = 1, "vitamin" = 4) /obj/item/reagent_containers/food/snacks/plump_pie name = "plump pie" diff --git a/code/modules/food_and_drinks/food/foods/desserts.dm b/code/modules/food_and_drinks/food/foods/desserts.dm index ff99efd07be..96f265efb4f 100644 --- a/code/modules/food_and_drinks/food/foods/desserts.dm +++ b/code/modules/food_and_drinks/food/foods/desserts.dm @@ -78,7 +78,7 @@ trash = /obj/item/trash/snack_bowl filling_color = "#ED0758" bitesize = 3 - list_reagents = list("nutriment" = 6, "amanitin" = 6, "psilocybin" = 3) + list_reagents = list("nutriment" = 6, "amatoxin" = 6, "psilocybin" = 3) /obj/item/reagent_containers/food/snacks/candiedapple name = "Candied Apple" diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm index 09c16544396..ff54ab8ab58 100644 --- a/code/modules/hydroponics/grown/kudzu.dm +++ b/code/modules/hydroponics/grown/kudzu.dm @@ -78,7 +78,7 @@ if(S.has_reagent("blood", 15)) adjust_production(rand(15, -5)) - if(S.has_reagent("amanitin", 5)) + if(S.has_reagent("amatoxin", 5)) adjust_production(rand(5, -15)) if(S.has_reagent("plasma", 5)) diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm index 56d032045c0..0ae43a2d3b6 100644 --- a/code/modules/hydroponics/grown/mushrooms.dm +++ b/code/modules/hydroponics/grown/mushrooms.dm @@ -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("psilocybin" = 0.04, "amanitin" = 0.35, "nutriment" = 0, "growthserum" = 0.1) + reagents_add = list("psilocybin" = 0.04, "amatoxin" = 0.35, "nutriment" = 0, "growthserum" = 0.1) /obj/item/reagent_containers/food/snacks/grown/mushroom/amanita seed = /obj/item/seeds/amanita @@ -74,14 +74,14 @@ growthstages = 3 genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' - reagents_add = list("psilocybin" = 0.04, "nutriment" = 0, "amanitin" = 0.3) + reagents_add = list("psilocybin" = 0.04, "nutriment" = 0, "amanitin" = 0.3, "amatoxin" = 0.1) rarity = 30 origin_tech = "biotech=5" /obj/item/reagent_containers/food/snacks/grown/mushroom/angel seed = /obj/item/seeds/angel name = "destroying angel" - desc = "Amanita Virosa: Deadly poisonous basidiomycete fungus filled with alpha amatoxins." + desc = "Amanita Virosa: Deadly poisonous basidiomycete fungus filled with alpha amanitin." icon_state = "angel" filling_color = "#C0C0C0" diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 90f9ed47eec..3a19160845e 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -372,7 +372,7 @@ /obj/machinery/chem_master/proc/chemical_safety_check(datum/reagents/R) var/all_safe = 1 for(var/datum/reagent/A in R.reagent_list) - if(!safe_chem_list.Find(A.id)) + if(!GLOB.safe_chem_list.Find(A.id)) all_safe = 0 return all_safe diff --git a/code/modules/reagents/chemistry/reagents/toxins.dm b/code/modules/reagents/chemistry/reagents/toxins.dm index a3fc113339e..1cca2a5151c 100644 --- a/code/modules/reagents/chemistry/reagents/toxins.dm +++ b/code/modules/reagents/chemistry/reagents/toxins.dm @@ -6,9 +6,21 @@ color = "#CF3600" // rgb: 207, 54, 0 /datum/reagent/toxin/on_mob_life(mob/living/M) - M.adjustToxLoss(2) + M.adjustToxLoss(2*REAGENTS_EFFECT_MULTIPLIER) ..() +/datum/reagent/amatoxin + name = "Amatoxin" + id = "amatoxin" + description = "A powerful poison derived from certain species of mushroom." + reagent_state = LIQUID + color = "#792300" // rgb: 121, 35, 0 + +/datum/reagent/amatoxin/on_mob_life(mob/living/M) + M.adjustToxLoss(3*REAGENTS_EFFECT_MULTIPLIER) + ..() + + /datum/reagent/spider_venom name = "Spider venom" id = "spidertoxin" diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index ced02f2e48f..3af51ac50a7 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -52,7 +52,7 @@ if(safety_hypo && !emagged) var/found_forbidden_reagent = FALSE for(var/datum/reagent/R in reagents.reagent_list) - if(!safe_chem_list.Find(R.id)) + if(!GLOB.safe_chem_list.Find(R.id)) reagents.del_reagent(R.id) found_forbidden_reagent = TRUE if(found_forbidden_reagent) diff --git a/code/modules/surgery/organs/liver.dm b/code/modules/surgery/organs/liver.dm index bf6f085275b..ba3112b6392 100644 --- a/code/modules/surgery/organs/liver.dm +++ b/code/modules/surgery/organs/liver.dm @@ -46,7 +46,7 @@ owner.adjustToxLoss(0.1 * PROCESS_ACCURACY) // Can't cope with toxins at all - for(var/toxin in list("toxin", "plasma", "sacid", "facid", "cyanide", "amanitin", "carpotoxin")) + for(var/toxin in GLOB.liver_toxins) if(owner.reagents.has_reagent(toxin)) owner.adjustToxLoss(0.3 * PROCESS_ACCURACY)