From d1932c0f64c512dbb9b4d470906475a55eba2f52 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Fri, 27 Mar 2015 05:41:45 -0400 Subject: [PATCH] [Goonchem] Transition to Goonchem --- code/datums/medical_effects.dm | 14 +- code/datums/supplypacks.dm | 12 +- code/game/gamemodes/blob/blobs/factory.dm | 4 +- .../gamemodes/changeling/powers/mutations.dm | 2 +- .../gamemodes/changeling/powers/panacea.dm | 6 +- code/game/machinery/Sleeper.dm | 16 +- code/game/machinery/adv_med.dm | 60 +- code/game/machinery/bots/medbot.dm | 26 +- code/game/machinery/cloning.dm | 6 +- code/game/machinery/hydroponics.dm | 8 +- code/game/machinery/rechargestation.dm | 8 +- code/game/machinery/vending.dm | 18 +- .../mecha/equipment/tools/medical_tools.dm | 6 +- code/game/objects/items/contraband.dm | 6 +- code/game/objects/items/devices/scanners.dm | 4 +- code/game/objects/items/random_items.dm | 8 +- code/game/objects/items/toys.dm | 2 +- code/game/objects/items/weapons/grenades.dm | 2 +- .../items/weapons/grenades/chem_grenade.dm | 2 +- .../objects/items/weapons/implants/implant.dm | 4 +- .../objects/items/weapons/storage/fancy.dm | 4 +- .../objects/items/weapons/storage/firstaid.dm | 49 +- .../crates_lockers/closets/secure/medical.dm | 39 +- .../crates_lockers/closets/secure/security.dm | 4 +- code/modules/crafting/recipes.dm | 2 +- code/modules/customitems/item_defines.dm | 2 +- code/modules/events/tgevents/vent_clog.dm | 8 +- code/modules/food/recipes_microwave.dm | 4 +- code/modules/genetics/side_effects.dm | 16 +- code/modules/hydroponics/seed_datums.dm | 28 +- code/modules/jungle/jungle_plants.dm | 2 +- code/modules/mining/surprises/tg.dm | 2 +- code/modules/mob/emote.dm | 2 +- .../mob/living/carbon/alien/humanoid/life.dm | 2 +- .../mob/living/carbon/alien/larva/life.dm | 2 +- code/modules/mob/living/carbon/human/emote.dm | 2 + code/modules/mob/living/carbon/human/life.dm | 6 +- .../modules/mob/living/carbon/metroid/life.dm | 6 +- .../mob/living/carbon/metroid/metroid.dm | 2 +- code/modules/mob/living/carbon/monkey/life.dm | 2 +- code/modules/mob/living/carbon/shock.dm | 6 - .../mob/living/silicon/robot/robot_modules.dm | 8 +- .../modules/mob/living/simple_animal/borer.dm | 2 +- .../simple_animal/hostile/giant_spider.dm | 2 +- .../living/simple_animal/hostile/mushroom.dm | 2 +- code/modules/organs/organ_external.dm | 9 +- code/modules/organs/organ_internal.dm | 6 +- .../modules/projectiles/projectile/bullets.dm | 2 +- code/modules/reagents/Chemistry-Holder.dm | 2 + code/modules/reagents/Chemistry-Machinery.dm | 2 +- code/modules/reagents/Chemistry-Reagents.dm | 530 +----------------- code/modules/reagents/Chemistry-Recipes.dm | 194 +------ code/modules/reagents/dartgun.dm | 4 +- code/modules/reagents/newchem/drugs.dm | 56 +- code/modules/reagents/newchem/food.dm | 76 +++ code/modules/reagents/newchem/medicine.dm | 186 ++++-- code/modules/reagents/newchem/other.dm | 75 --- code/modules/reagents/newchem/pyro.dm | 5 +- code/modules/reagents/newchem/toxins.dm | 36 +- .../reagents/reagent_containers/borghydro.dm | 10 +- .../reagents/reagent_containers/drugs.dm | 2 +- .../reagents/reagent_containers/food/cans.dm | 4 +- .../reagent_containers/food/snacks.dm | 39 +- .../reagent_containers/food/snacks/candy.dm | 2 +- .../reagent_containers/glass/bottle.dm | 157 ++++-- .../reagent_containers/glass/bottle/robot.dm | 20 +- .../reagents/reagent_containers/hypospray.dm | 6 +- .../reagents/reagent_containers/pill.dm | 66 +-- .../reagents/reagent_containers/spray.dm | 10 +- .../reagents/reagent_containers/syringes.dm | 47 +- .../artifact/artifact_unknown.dm | 2 +- .../xenoarchaeology/finds/finds_special.dm | 2 +- .../genetics/prehistoric_plants.dm | 7 +- .../machinery/geosample_scanner.dm | 9 +- code/modules/virus2/effect.dm | 53 +- code/setup.dm | 6 +- icons/obj/chemical.dmi | Bin 35957 -> 35403 bytes icons/obj/closet.dmi | Bin 90259 -> 91281 bytes maps/cyberiad.dmm | 26 +- paradise.dme | 1 + 80 files changed, 716 insertions(+), 1354 deletions(-) create mode 100644 code/modules/reagents/newchem/food.dm diff --git a/code/datums/medical_effects.dm b/code/datums/medical_effects.dm index 73900a56262..f7c027223de 100644 --- a/code/datums/medical_effects.dm +++ b/code/datums/medical_effects.dm @@ -80,8 +80,8 @@ // ======== /datum/medical_effect/headache name = "Headache" - triggers = list("cryoxadone" = 10, "bicaridine" = 15, "tricordrazine" = 15) - cures = list("alkysine", "tramadol", "paracetamol", "oxycodone") + triggers = list("cryoxadone" = 10) + cures = list("mannitol", "tramadol", "paracetamol", "oxycodone") cure_message = "Your head stops throbbing..." /datum/medical_effect/headache/on_life(mob/living/carbon/human/H, strength) @@ -97,8 +97,8 @@ // =========== /datum/medical_effect/bad_stomach name = "Bad Stomach" - triggers = list("kelotane" = 30, "dermaline" = 15) - cures = list("anti_toxin") + triggers = list() + cures = list() cure_message = "Your stomach feels a little better now..." /datum/medical_effect/bad_stomach/on_life(mob/living/carbon/human/H, strength) @@ -114,8 +114,8 @@ // ====== /datum/medical_effect/cramps name = "Cramps" - triggers = list("anti_toxin" = 30, "tramadol" = 15) - cures = list("inaprovaline") + triggers = list("tramadol" = 15) + cures = list("epinephrine") cure_message = "The cramps let up..." /datum/medical_effect/cramps/on_life(mob/living/carbon/human/H, strength) @@ -133,7 +133,7 @@ /datum/medical_effect/itch name = "Itch" triggers = list("space_drugs" = 10) - cures = list("inaprovaline") + cures = list("epinephrine") cure_message = "The itching stops..." /datum/medical_effect/itch/on_life(mob/living/carbon/human/H, strength) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index ea40af24232..025ef1610f2 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -535,12 +535,12 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /datum/supply_packs/medical/supplies name = "Medical Supplies Crate" - contains = list(/obj/item/weapon/reagent_containers/glass/bottle/antitoxin, - /obj/item/weapon/reagent_containers/glass/bottle/antitoxin, - /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline, - /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline, - /obj/item/weapon/reagent_containers/glass/bottle/stoxin, - /obj/item/weapon/reagent_containers/glass/bottle/stoxin, + contains = list(/obj/item/weapon/reagent_containers/glass/bottle/charcoal, + /obj/item/weapon/reagent_containers/glass/bottle/charcoal, + /obj/item/weapon/reagent_containers/glass/bottle/epinephrine, + /obj/item/weapon/reagent_containers/glass/bottle/epinephrine, + /obj/item/weapon/reagent_containers/glass/bottle/morphine, + /obj/item/weapon/reagent_containers/glass/bottle/morphine, /obj/item/weapon/reagent_containers/glass/bottle/toxin, /obj/item/weapon/reagent_containers/glass/bottle/toxin, /obj/item/weapon/reagent_containers/glass/beaker/large, diff --git a/code/game/gamemodes/blob/blobs/factory.dm b/code/game/gamemodes/blob/blobs/factory.dm index 7f015327444..8a6d9b11013 100644 --- a/code/game/gamemodes/blob/blobs/factory.dm +++ b/code/game/gamemodes/blob/blobs/factory.dm @@ -109,8 +109,8 @@ // Create the reagents to put into the air, s-acid is yellow and stings a little create_reagents(50) reagents.add_reagent("condensedcapsaicin", 10) - reagents.add_reagent("zombiepowder", 25) - reagents.add_reagent("impedrezene", 15) + reagents.add_reagent("neurotoxin2", 25) + reagents.add_reagent("haloperidol", 15) // Attach the smoke spreader and setup/start it. S.attach(location) diff --git a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm index 21bf8b6c129..3f8984ce1f0 100644 --- a/code/game/gamemodes/changeling/powers/mutations.dm +++ b/code/game/gamemodes/changeling/powers/mutations.dm @@ -274,7 +274,7 @@ /obj/item/clothing/suit/space/changeling/process() if(ishuman(loc)) var/mob/living/carbon/human/H = loc - H.reagents.add_reagent("dexalinp", REAGENTS_METABOLISM) + H.reagents.add_reagent("perfluorodecalin", REAGENTS_METABOLISM) /obj/item/clothing/head/helmet/space/changeling name = "flesh mass" diff --git a/code/game/gamemodes/changeling/powers/panacea.dm b/code/game/gamemodes/changeling/powers/panacea.dm index f6721af7f47..469283d1436 100644 --- a/code/game/gamemodes/changeling/powers/panacea.dm +++ b/code/game/gamemodes/changeling/powers/panacea.dm @@ -10,9 +10,9 @@ /obj/effect/proc_holder/changeling/panacea/sting_action(var/mob/user) user << "We cleanse impurities from our form." - user.reagents.add_reagent("ryetalyn", 10) - user.reagents.add_reagent("hyronalin", 10) - user.reagents.add_reagent("anti_toxin", 20) + user.reagents.add_reagent("mutadone", 10) + user.reagents.add_reagent("potass_iodide", 10) + user.reagents.add_reagent("charcoal", 20) if(istype(user, /mob/living/carbon)) var/mob/living/carbon/C = user diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 841916a9a74..fa2b030aeb2 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -68,7 +68,7 @@ src.connected = sleepernew return return - + /obj/machinery/sleeper/attack_animal(var/mob/living/simple_animal/M)//Stop putting hostile mobs in things guise if(M.environment_smash) M.do_attack_animation(src) @@ -177,7 +177,7 @@ if (src.connected.occupant) if (src.connected.occupant.stat == DEAD) usr << "\red \b This person has no life for to preserve anymore. Take them to a department capable of reanimating them." - else if(src.connected.occupant.health > src.connected.min_health || href_list["chemical"] == "inaprovaline") + else if(src.connected.occupant.health > src.connected.min_health || href_list["chemical"] == "epinephrine") src.connected.inject_chemical(usr,href_list["chemical"],text2num(href_list["amount"])) else usr << "\red \b This person is not in good enough condition for sleepers to be effective! Use another means of treatment, such as cryogenics!" @@ -209,9 +209,9 @@ dir = 8 var/orient = "LEFT" // "RIGHT" changes the dir suffix to "-r" var/mob/living/carbon/human/occupant = null - var/possible_chems = list(list("inaprovaline", "stoxin", "dexalin", "bicaridine", "kelotane"), - list("inaprovaline", "stoxin", "dexalinp", "bicaridine", "dermaline", "kelotane", "imidazoline"), - list("inaprovaline", "stoxin", "dexalinp", "bicaridine", "dermaline", "kelotane", "imidazoline", "anti_toxin", "ryetalyn", "alkysine", "arithrazine")) + var/possible_chems = list(list("epinephrine", "morphine", "salbutamol", "styptic_powder"), + list("epinephrine", "morphine", "salbutamol", "styptic_powder", "oculine"), + list("epinephrine", "smorphine", "salbutamol", "styptic_powder", "oculine", "charcoal", "mutadone", "mannitol")) var/amounts = list(5, 10) var/obj/item/weapon/reagent_containers/glass/beaker = null var/filtering = 0 @@ -246,7 +246,7 @@ component_parts += new /obj/item/weapon/stock_parts/console_screen(src) component_parts += new /obj/item/stack/cable_coil(src, 1) RefreshParts() - + /obj/machinery/sleeper/upgraded/New() ..() component_parts = list() @@ -415,8 +415,8 @@ M.AdjustParalysis(-4) M.AdjustWeakened(-4) M.AdjustStunned(-4) - if (M:reagents.get_reagent_amount("inaprovaline") < 5) - M:reagents.add_reagent("inaprovaline", 5) + if (M:reagents.get_reagent_amount("salglu_solution") < 5) + M:reagents.add_reagent("salglu_solution", 5) return /obj/machinery/sleeper/proc/toggle_filter() diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index c4994ebe746..c73af4710a2 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -11,7 +11,7 @@ active_power_usage = 2500 l_color = "#00FF00" - + power_change() ..() if(!(stat & (BROKEN|NOPOWER))) @@ -28,24 +28,24 @@ component_parts += new /obj/item/weapon/stock_parts/console_screen(src) component_parts += new /obj/item/stack/cable_coil(src, 2) RefreshParts() - -/obj/machinery/bodyscanner/RefreshParts() -/obj/machinery/bodyscanner/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob) +/obj/machinery/bodyscanner/RefreshParts() + +/obj/machinery/bodyscanner/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob) if (istype(G, /obj/item/weapon/screwdriver)) if(src.occupant) user << "The maintenance panel is locked." - return + return default_deconstruction_screwdriver(user, "bodyscanner-o", "bodyscanner-open", G) - return - + return + if (istype(G, /obj/item/weapon/wrench)) if(src.occupant) user << "The scanner is occupied." - return + return if(panel_open) user << "Close the maintenance panel first." - return + return if(dir == 4) dir = 8 else @@ -55,12 +55,12 @@ if(exchange_parts(user, G)) return - default_deconstruction_crowbar(G) - + default_deconstruction_crowbar(G) + if(istype(G, /obj/item/weapon/grab)) if(panel_open) user << "\blue Close the maintenance panel first." - return + return if(!ismob(G:affecting)) return if (src.occupant) @@ -84,7 +84,7 @@ //G = null del(G) return - + /obj/machinery/bodyscanner/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob) if(O.loc == user) //no you can't pull things out of your ass return @@ -104,7 +104,7 @@ return if(panel_open) user << "\blue Close the maintenance panel first." - return + return if(occupant) user << "\blue The body scanner is already occupied!" return @@ -255,7 +255,7 @@ spawn(rand(0, 15)) src.icon_state = "bodyscannerconsole-p" stat |= NOPOWER - + /obj/machinery/body_scanconsole/New() ..() component_parts = list() @@ -266,7 +266,7 @@ RefreshParts() findscanner() -/obj/machinery/body_scanconsole/RefreshParts() +/obj/machinery/body_scanconsole/RefreshParts() /obj/machinery/body_scanconsole/ex_act(severity) switch(severity) @@ -295,8 +295,8 @@ bodyscannernew = locate(/obj/machinery/bodyscanner, get_step(src, dir)) src.connected = bodyscannernew return - return - + return + /* /obj/machinery/body_scanconsole/process() //not really used right now @@ -323,22 +323,22 @@ /obj/machinery/body_scanconsole/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob, params) if (istype(G, /obj/item/weapon/screwdriver)) default_deconstruction_screwdriver(user, "bodyscannerconsole-p", "bodyscannerconsole", G) - return - + return + if (istype(G, /obj/item/weapon/wrench)) if(panel_open) user << "Close the maintenance panel first." - return + return if(dir == 4) dir = 8 else dir = 4 playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - + if(exchange_parts(user, G)) return - default_deconstruction_crowbar(G) + default_deconstruction_crowbar(G) /obj/machinery/body_scanconsole/attack_paw(user as mob) return src.attack_hand(user) @@ -352,7 +352,7 @@ if(stat & (NOPOWER|BROKEN)) return if (panel_open) - user << "Close the maintenance panel first." + user << "Close the maintenance panel first." return if(!src.connected) findscanner() @@ -409,11 +409,11 @@ blood_percent *= 100 dat += text("[]\tBlood Level %: [] ([] units)
", (blood_volume > 448 ?"" : ""), blood_percent, blood_volume) if(occupant.reagents) - dat += text("Inaprovaline units: [] units
", occupant.reagents.get_reagent_amount("inaprovaline")) - dat += text("Soporific (Sleep Toxin): [] units
", occupant.reagents.get_reagent_amount("stoxin")) - dat += text("[]\tDermaline: [] units

", (occupant.reagents.get_reagent_amount("dermaline") < 30 ? "" : ""), occupant.reagents.get_reagent_amount("dermaline")) - dat += text("[]\tBicaridine: [] units
", (occupant.reagents.get_reagent_amount("bicaridine") < 30 ? "" : ""), occupant.reagents.get_reagent_amount("bicaridine")) - dat += text("[]\tDexalin: [] units
", (occupant.reagents.get_reagent_amount("dexalin") < 30 ? "" : ""), occupant.reagents.get_reagent_amount("dexalin")) + dat += text("Epinephrine units: [] units
", occupant.reagents.get_reagent_amount("Epinephrine")) + dat += text("Morphine: [] units
", occupant.reagents.get_reagent_amount("morphine")) + dat += text("[]\tsilver_sulfadiazine: [] units

", (occupant.reagents.get_reagent_amount("silver_sulfadiazine") < 30 ? "" : ""), occupant.reagents.get_reagent_amount("silver_sulfadiazine")) + dat += text("[]\tstyptic_powder: [] units
", (occupant.reagents.get_reagent_amount("styptic_powder") < 30 ? "" : ""), occupant.reagents.get_reagent_amount("styptic_powder")) + dat += text("[]\tsalbutamol: [] units
", (occupant.reagents.get_reagent_amount("salbutamol") < 30 ? "" : ""), occupant.reagents.get_reagent_amount("salbutamol")) dat += "
" dat += "" @@ -521,7 +521,7 @@ /obj/machinery/body_scanconsole/Topic(href, href_list) if(..()) return 1 - + if (href_list["print_p"]) if (!(src.printing) && src.printing_text) src.printing = 1 diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index 078d9fff2b9..a3bf925ece1 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -32,10 +32,10 @@ var/stationary_mode = 0 //If enabled, the Medibot will not move automatically. radio_name = "Medical" //Setting which reagents to use to treat what by default. By id. - var/treatment_brute = "tricordrazine" - var/treatment_oxy = "tricordrazine" - var/treatment_fire = "tricordrazine" - var/treatment_tox = "tricordrazine" + var/treatment_brute = "salglu_solution" + var/treatment_oxy = "salbutamol" + var/treatment_fire = "salglu_solution" + var/treatment_tox = "charcoal" var/treatment_virus = "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 :) @@ -47,19 +47,19 @@ name = "Suspicious Medibot" desc = "You'd better have insurance!" skin = "bezerk" - treatment_oxy = "dexalin" - treatment_brute = "bicaridine" - treatment_fire = "kelotane" - treatment_tox = "anti_toxin" + treatment_oxy = "perfluorodecalin" + treatment_brute = "styptic_powder" + treatment_fire = "silver_sulfadiazine" + treatment_tox = "charcoal" /obj/machinery/bot/medbot/mysterious name = "\improper Mysterious Medibot" desc = "International Medibot of mystery." skin = "bezerk" - treatment_oxy = "dexalinp" - treatment_brute = "bicaridine" - treatment_fire = "kelotane" - treatment_tox = "anti_toxin" + treatment_oxy = "perfluorodecalin" + treatment_brute = "styptic_powder" + treatment_fire = "silver_sulfadiazine" + treatment_tox = "charcoal" /obj/item/weapon/firstaid_arm_assembly name = "incomplete medibot assembly." @@ -429,7 +429,7 @@ var/reagent_id = null if(emagged == 2) //Emagged! Time to poison everybody. - reagent_id = "toxin" + reagent_id = "pancuronium" else if(treat_virus) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 27e16c1be95..bf30b81edb6 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -301,10 +301,10 @@ src.occupant.adjustBrainLoss(-((speed_coeff/2))) //So clones don't die of oxyloss in a running pod. - if (src.occupant.reagents.get_reagent_amount("inaprovaline") < 30) - src.occupant.reagents.add_reagent("inaprovaline", 60) + if (src.occupant.reagents.get_reagent_amount("perfluorodecalin") < 5) + src.occupant.reagents.add_reagent("perfluorodecalin", 5) - //Also heal some oxyloss ourselves because inaprovaline is so bad at preventing it!! + //Also heal some oxyloss ourselves just in case!! src.occupant.adjustOxyLoss(-4) use_power(7500) //This might need tweaking. diff --git a/code/game/machinery/hydroponics.dm b/code/game/machinery/hydroponics.dm index e3aa2ae9624..41609e66d8e 100644 --- a/code/game/machinery/hydroponics.dm +++ b/code/game/machinery/hydroponics.dm @@ -45,12 +45,12 @@ // Reagent information for process(), consider moving this to a controller along // with cycle information under 'mechanical concerns' at some point. var/global/list/toxic_reagents = list( - "anti_toxin" = -2, + "charcoal" = -2, "toxin" = 2, "fluorine" = 2.5, "chlorine" = 1.5, "sacid" = 1.5, - "pacid" = 3, + "facid" = 3, "atrazine" = 3, "cryoxadone" = -3, "radium" = 2 @@ -75,7 +75,7 @@ "phosphorus" = -2, "sugar" = 2, "sacid" = -2, - "pacid" = -4, + "facid" = -4, "atrazine" = -8, "adminordrazine" = -5 ) @@ -104,7 +104,7 @@ "phosphorus" = list( -0.75, 0, 0 ), "sodawater" = list( 0.1, 0, 0 ), "sacid" = list( -1, 0, 0 ), - "pacid" = list( -2, 0, 0 ), + "facid" = list( -2, 0, 0 ), "atrazine" = list( -2, 0, 0.2 ), "cryoxadone" = list( 3, 0, 0 ), "ammonia" = list( 0.5, 0, 0 ), diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 6b26c084997..43a6eb339f2 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -170,8 +170,8 @@ if(O.reagents.get_reagent_amount("water") < 50) O.reagents.add_reagent("water", 2 * coeff) if(istype(O,/obj/item/weapon/reagent_containers/spray/alien/stun)) - if(O.reagents.get_reagent_amount("stoxin") < 250) - O.reagents.add_reagent("stoxin", 2 * coeff) + if(O.reagents.get_reagent_amount("morphine") < 250) + O.reagents.add_reagent("morphine", 2 * coeff) if(R) @@ -183,11 +183,11 @@ if(istype(R.module.emag, /obj/item/weapon/reagent_containers/spray)) var/obj/item/weapon/reagent_containers/spray/S = R.module.emag if(S.name == "polyacid spray") - S.reagents.add_reagent("pacid", 2 * coeff) + S.reagents.add_reagent("facid", 2 * coeff) if(S.name == "lube spray") S.reagents.add_reagent("lube", 2 * coeff) else if(S.name == "acid synthesizer") - S.reagents.add_reagent("pacid", 2 * coeff) + S.reagents.add_reagent("facid", 2 * coeff) S.reagents.add_reagent("sacid", 2 * coeff) /obj/machinery/recharge_station/verb/move_eject() diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index e1ba215acac..f2469cd91f2 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -888,12 +888,12 @@ icon_deny = "med-deny" product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!" req_access_txt = "5" - products = list(/obj/item/weapon/reagent_containers/glass/bottle/antitoxin = 4,/obj/item/weapon/reagent_containers/glass/bottle/morphine = 4,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline = 4, - /obj/item/weapon/reagent_containers/glass/bottle/stoxin = 4,/obj/item/weapon/reagent_containers/glass/bottle/toxin = 4, - /obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/syringe/insulin = 4,/obj/item/weapon/reagent_containers/syringe = 12, - /obj/item/device/healthanalyzer = 5,/obj/item/device/healthupgrade = 5,/obj/item/weapon/reagent_containers/glass/beaker = 4, /obj/item/weapon/reagent_containers/dropper = 2, - /obj/item/stack/medical/advanced/bruise_pack = 3, /obj/item/stack/medical/advanced/ointment = 3, /obj/item/stack/medical/splint = 2, /obj/item/device/sensor_device = 2) - contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/stox = 4,/obj/item/weapon/reagent_containers/pill/antitox = 6) + products = list(/obj/item/weapon/reagent_containers/glass/bottle/charcoal = 4,/obj/item/weapon/reagent_containers/glass/bottle/morphine = 4,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine = 4, + /obj/item/weapon/reagent_containers/glass/bottle/toxin = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/syringe/insulin = 4, + /obj/item/weapon/reagent_containers/syringe = 12,/obj/item/device/healthanalyzer = 5,/obj/item/device/healthupgrade = 5,/obj/item/weapon/reagent_containers/glass/beaker = 4, + /obj/item/weapon/reagent_containers/dropper = 2,/obj/item/stack/medical/advanced/bruise_pack = 3, /obj/item/stack/medical/advanced/ointment = 3, + /obj/item/stack/medical/bruise_pack = 3,/obj/item/stack/medical/splint = 2, /obj/item/device/sensor_device = 2) + contraband = list(/obj/item/weapon/reagent_containers/glass/bottle/pancuronium = 1,/obj/item/weapon/reagent_containers/glass/bottle/sulfonal = 1) //This one's from bay12 @@ -913,7 +913,7 @@ req_access_txt = "5" density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude products = list(/obj/item/stack/medical/bruise_pack = 2,/obj/item/stack/medical/ointment = 2,/obj/item/weapon/reagent_containers/hypospray/autoinjector = 4,/obj/item/device/healthanalyzer = 1) - contraband = list(/obj/item/weapon/reagent_containers/syringe/antitoxin = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/pill/tox = 1) + contraband = list(/obj/item/weapon/reagent_containers/syringe/charcoal = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/pill/tox = 1) /obj/machinery/vending/wallmed2 name = "NanoMed" @@ -922,7 +922,7 @@ icon_deny = "wallmed-deny" req_access_txt = "5" density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude - products = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector = 5,/obj/item/weapon/reagent_containers/syringe/antitoxin = 3,/obj/item/stack/medical/bruise_pack = 3, + products = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector = 5,/obj/item/weapon/reagent_containers/syringe/charcoal = 3,/obj/item/stack/medical/bruise_pack = 3, /obj/item/stack/medical/ointment =3,/obj/item/device/healthanalyzer = 3) contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3) @@ -934,7 +934,7 @@ product_ads = "Go end some lives!;The best stuff for your ship.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!" req_access_txt = "150" products = list(/obj/item/stack/medical/bruise_pack = 2,/obj/item/stack/medical/ointment = 2,/obj/item/weapon/reagent_containers/hypospray/autoinjector = 4,/obj/item/device/healthanalyzer = 1) - contraband = list(/obj/item/weapon/reagent_containers/syringe/antitoxin = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/pill/tox = 1) + contraband = list(/obj/item/weapon/reagent_containers/syringe/charcoal = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/pill/tox = 1) /obj/machinery/vending/security name = "SecTech" diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index b3bccaeac06..4d5f134662d 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -227,8 +227,8 @@ M.AdjustStunned(-4) M.AdjustWeakened(-4) M.AdjustStunned(-4) - if(M.reagents.get_reagent_amount("inaprovaline") < 5) - M.reagents.add_reagent("inaprovaline", 5) + if(M.reagents.get_reagent_amount("epinephrine") < 5) + M.reagents.add_reagent("epinephrine", 5) S.chassis.use_power(S.energy_drain) S.update_equip_info() return @@ -405,7 +405,7 @@ ..() flags |= NOREACT syringes = new - known_reagents = list("inaprovaline"="Inaprovaline","anti_toxin"="Anti-Toxin (Dylovene)") + known_reagents = list("epinephrine"="Epinephrine","charcoal"="Charcoal") processed_reagents = new create_reagents(max_volume) synth = new (list(src),0) diff --git a/code/game/objects/items/contraband.dm b/code/game/objects/items/contraband.dm index 47afd477a9d..18aaa20b2e4 100644 --- a/code/game/objects/items/contraband.dm +++ b/code/game/objects/items/contraband.dm @@ -40,9 +40,9 @@ name = pick("lunar","vorpal","hardcore","willow", "void","loopy","electro", "cyber","heavy", "ninja", "hydro", "blue", "red", "green", "purple", "strong", "divine","carp" ,"deadly","dead","vicious" ,"wild" ,"demon", "chill", "solid", "liquid", "crazy", "super", "hyper", "space", "wizard", "rainbow", "star", "turbo", "prism", "sticky") + " " + pick("jack","zero","null","beat","nip","bubbles" ,"ice","medicine","venom","shock","solar" ,"spice" ,"shredder", "heart" , "heat", "pill","hopper","scum","fruit", "bolt", "deck", "butter", "runoff", "grease", "flair", "sweat", "zone", "blast") - reagents.add_reagent(pick("chloralhydrate","neurotoxin","frostoil", "toxin","stoxin", "carpotoxin", "hippiesdelight","hyperzine","impedrezene" ,"cryptobiolin", "oxycodone", "psilocybin", "mindbreaker", "capsaicin", "space_drugs" , "inaprovaline", "serotrotium"), pick(5,7,10,13,15)) - reagents.add_reagent(pick("chloralhydrate","neurotoxin","frostoil", "toxin","stoxin", "carpotoxin", "hippiesdelight","hyperzine","impedrezene" ,"cryptobiolin", "oxycodone", "psilocybin", "mindbreaker", "capsaicin", "space_drugs" , "inaprovaline", "serotrotium"), pick(5,7,10,13,15)) - reagents.add_reagent(pick("chloralhydrate","neurotoxin","frostoil", "toxin","stoxin", "carpotoxin", "hippiesdelight","hyperzine","impedrezene" ,"cryptobiolin", "oxycodone", "psilocybin", "mindbreaker", "capsaicin", "space_drugs" , "inaprovaline", "serotrotium"), pick(5,7,10,13,15)) + reagents.add_reagent(pick("pancuronium","neurotoxin","frostoil", "toxin","morphine", "carpotoxin", "hippiesdelight","methamphetamine","haloperidol" ,"cryptobiolin", "oxycodone", "psilocybin", "mindbreaker", "capsaicin", "space_drugs" , "epinephrine", "serotrotium"), pick(5,7,10,13,15)) + reagents.add_reagent(pick("pancuronium","neurotoxin","frostoil", "toxin","morphine", "carpotoxin", "hippiesdelight","methamphetamine","haloperidol" ,"cryptobiolin", "oxycodone", "psilocybin", "mindbreaker", "capsaicin", "space_drugs" , "epinephrine", "serotrotium"), pick(5,7,10,13,15)) + reagents.add_reagent(pick("pancuronium","neurotoxin","frostoil", "toxin","morphine", "carpotoxin", "hippiesdelight","methamphetamine","haloperidol" ,"cryptobiolin", "oxycodone", "psilocybin", "mindbreaker", "capsaicin", "space_drugs" , "epinephrine", "serotrotium"), pick(5,7,10,13,15)) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index b40efbb0ffc..9cb6a20a3f8 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -202,8 +202,8 @@ REAGENT SCANNER user.show_message("Subject appears to be suffering from fatigue.") if (M.getCloneLoss()) user.show_message("Subject appears to have [M.getCloneLoss() > 30 ? "severe" : "minor"] cellular damage.") -// if (M.reagents && M.reagents.get_reagent_amount("inaprovaline")) -// user.show_message("\blue Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals.") +// if (M.reagents && M.reagents.get_reagent_amount("epinephrine")) +// user.show_message("\blue Bloodstream Analysis located [M.reagents:get_reagent_amount("epinephrine")] units of rejuvenation chemicals.") if (M.has_brain_worms()) user.show_message("\red Subject suffering from aberrant brain activity. Recommend further scanning.") else if (M.getBrainLoss() >= 100 || istype(M, /mob/living/carbon/human) && M:brain_op_stage == 4.0) diff --git a/code/game/objects/items/random_items.dm b/code/game/objects/items/random_items.dm index f1444bd0882..32c5d3da566 100644 --- a/code/game/objects/items/random_items.dm +++ b/code/game/objects/items/random_items.dm @@ -61,7 +61,7 @@ // identify_probability = 0 New() ..() - var/global/list/chems_only = list("slimejelly","blood","water","lube","anti_toxin","toxin","cyanide","stoxin","inaprovaline","space_drugs","serotrotium","oxygen","copper","nitrogen","hydrogen","potassium","mercury","sulfur","carbon","chlorine","fluorine","sodium","phosphorus","lithium","sugar","sacid","pacid","glycerol","radium","ryetalyn","thermite","mutagen","virusfood","iron","gold","silver","uranium","aluminum","silicon","fuel","cleaner","atrazine","plasma","leporazine","cryptobiolin","lexorin","kelotane","dermaline","dexalin","dexalinp","tricordrazine","synaptizine","impedrezene","hyronalin","arithrazine","alkysine","imidazoline","bicaridine","hyperzine","cryoxadone","clonexadone","spaceacillin","carpotoxin","zombiepowder","mindbreaker","fluorosurfactant","foaming_agent","ethanol","ammonia","diethylamine","ethylredoxrazine","chloralhydrate","lipozine","condensedcapsaicin","frostoil","amatoxin","psilocybin","enzyme","nothing","doctorsdelight","antifreeze","neurotoxin") + var/global/list/chems_only = 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","glycerol","radium","mutadone","thermite","mutagen","virusfood","iron","gold","silver","uranium","aluminum","silicon","fuel","cleaner","atrazine","plasma","leporazine","cryptobiolin","lexorin","silver_sulfadiazine","salbutamol","perfluorodecalin","omnizine","synaptizine","haloperidol","potass_iodide","pen_acid","mannitol","oculine","styptic_powder","methamphetamine","cryoxadone","clonexadone","spaceacillin","carpotoxin","mindbreaker","fluorosurfactant","foaming_agent","ethanol","ammonia","diethylamine","antihol","pancuronium","lipolicide","condensedcapsaicin","frostoil","amatoxin","psilocybin","enzyme","nothing","salglu_solution","antifreeze","neurotoxin") var/global/list/rare_chems = list("minttoxin","nanites","xenomicrobes","adminordrazine") var/datum/reagent/R = pick(chems_only + rare_chems) @@ -89,9 +89,9 @@ icon = 'icons/obj/drinks.dmi' New() ..() - var/list/drinks_only = 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","space_up","lemon_lime","beer","whiskey","gin","rum","vodka","holywater","tequilla","vermouth","wine","tonic","kahlua","cognac","hooch","ale","sodawater","ice","bilk","atomicbomb","threemileisland","goldschlager","patron","gintonic","cubalibre","whiskeycola","martini","vodkamartini","whiterussian","screwdrivercocktail","booger","bloodymary","gargleblaster","bravebull","tequillasunrise","toxinsspecial","beepskysmash","doctorsdelight","irishcream","manlydorf","longislandicedtea","moonshine","b52","irishcoffee","margarita","blackrussian","manhattan","manhattan_proj","whiskeysoda","antifreeze","barefoot","snowwhite","demonsblood","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") + var/list/drinks_only = 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","space_up","lemon_lime","beer","whiskey","gin","rum","vodka","holywater","tequilla","vermouth","wine","tonic","kahlua","cognac","hooch","ale","sodawater","ice","bilk","atomicbomb","threemileisland","goldschlager","patron","gintonic","cubalibre","whiskeycola","martini","vodkamartini","whiterussian","screwdrivercocktail","booger","bloodymary","gargleblaster","bravebull","tequillasunrise","toxinsspecial","beepskysmash","salglu_solution","irishcream","manlydorf","longislandicedtea","moonshine","b52","irishcoffee","margarita","blackrussian","manhattan","manhattan_proj","whiskeysoda","antifreeze","barefoot","snowwhite","demonsblood","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") if(prob(50)) - drinks_only += list("chloralhydrate","adminordrazine","mindbreaker","tricordrazine","blood") + drinks_only += list("pancuronium","adminordrazine","mindbreaker","omnizine","blood") var/datum/reagent/R = pick(drinks_only) reagents.add_reagent(R,volume) @@ -123,7 +123,7 @@ New() ..() - var/global/list/meds_only = list("anti_toxin","toxin","cyanide","stoxin","inaprovaline","space_drugs","serotrotium","ryetalyn","mutagen","leporazine","cryptobiolin","lexorin","kelotane","dermaline","dexalin","dexalinp","tricordrazine","synaptizine","impedrezene","hyronalin","arithrazine","alkysine","imidazoline","bicaridine","hyperzine","spaceacillin","carpotoxin","zombiepowder","mindbreaker","ethanol","ammonia","diethylamine","ethylredoxrazine","chloralhydrate","lipozine","condensedcapsaicin","frostoil","amatoxin","psilocybin","nothing","doctorsdelight","neurotoxin") + var/global/list/meds_only = list("charcoal","toxin","cyanide","morphine","epinephrine","space_drugs","serotrotium","mutadone","mutagen","leporazine","cryptobiolin","lexorin","silver_sulfadiazine","salbutamol","perfluorodecalin","omnizine","synaptizine","haloperidol","potass_iodide","pen_acid","mannitol","oculine","styptic_powder","methamphetamine","spaceacillin","carpotoxin","mindbreaker","ethanol","ammonia","diethylamine","antihol","pancuronium","lipolicide","condensedcapsaicin","frostoil","amatoxin","psilocybin","nothing","salglu_solution","neurotoxin") var/global/list/rare_meds = list("nanites","xenomicrobes","minttoxin","adminordrazine","blood") var/i = 1 diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index e5cd25994f5..aee0c667847 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -62,7 +62,7 @@ if(O.reagents.total_volume < 1) user << "The [O] is empty." else if(O.reagents.total_volume >= 1) - if(O.reagents.has_reagent("pacid", 1)) + if(O.reagents.has_reagent("facid", 1)) user << "The acid chews through the balloon!" O.reagents.reaction(user) del(src) diff --git a/code/game/objects/items/weapons/grenades.dm b/code/game/objects/items/weapons/grenades.dm index 5a902401639..27dfceca0e4 100644 --- a/code/game/objects/items/weapons/grenades.dm +++ b/code/game/objects/items/weapons/grenades.dm @@ -143,7 +143,7 @@ B1.reagents.add_reagent("glycerol",30) // todo: someone says NG is overpowered, test. B1.reagents.add_reagent("sacid",15) B2.reagents.add_reagent("sacid",15) - B2.reagents.add_reagent("pacid",30) + B2.reagents.add_reagent("facid",30) beakers += B1 beakers += B2 diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 2a941470364..9ff23eaba99 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -391,7 +391,7 @@ B1.reagents.add_reagent("aluminum", 30) B2.reagents.add_reagent("foaming_agent", 10) - B2.reagents.add_reagent("pacid", 10) + B2.reagents.add_reagent("facid", 10) beakers += B1 beakers += B2 diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 34d078e0497..8819d74df5a 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -434,8 +434,8 @@ the implant may become unstable and either pre-maturely inject the subject or si source.update_canmove() source.reagents.add_reagent("synaptizine", 10) - source.reagents.add_reagent("tricordrazine", 10) - source.reagents.add_reagent("hyperzine", 10) + source.reagents.add_reagent("omnizine", 10) + source.reagents.add_reagent("methamphetamine", 10) return diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 60704cb581e..3dc18e532ca 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -221,7 +221,7 @@ /obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate/New() ..() for(var/i = 1 to storage_slots) - reagents.add_reagent("doctorsdelight",15) + reagents.add_reagent("omnizine",15) /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift name = "\improper Uplift Smooth packet" @@ -267,7 +267,7 @@ /obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims/New() ..() for(var/i = 1 to storage_slots) - reagents.add_reagent("lipozine",4) + reagents.add_reagent("lipolicide",4) reagents.add_reagent("ammonia",2) reagents.add_reagent("atrazine",1) reagents.add_reagent("toxin",1.5) diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index a4ae17726d2..fb742a1bc29 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -146,7 +146,7 @@ new /obj/item/weapon/reagent_containers/hypospray/combat(src) new /obj/item/weapon/reagent_containers/pill/patch/styptic(src) new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) - new /obj/item/weapon/reagent_containers/ld50_syringe(src) + new /obj/item/weapon/reagent_containers/ld50_syringe/lethal(src) new /obj/item/clothing/glasses/hud/health/night(src) return @@ -188,48 +188,19 @@ return return -/obj/item/weapon/storage/pill_bottle/kelotane - name = "Pill bottle (kelotane)" - desc = "Contains pills used to treat burns." - - New() - ..() - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - -/obj/item/weapon/storage/pill_bottle/antitox - name = "Pill bottle (Anti-toxin)" +/obj/item/weapon/storage/pill_bottle/charcoal + name = "Pill bottle (Charcoal)" desc = "Contains pills used to counter toxins." New() ..() - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - -/obj/item/weapon/storage/pill_bottle/inaprovaline - name = "Pill bottle (inaprovaline)" - desc = "Contains pills used to stabilize patients." - - New() - ..() - new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) - new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) - new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) - new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) - new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) - new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) - new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) - + new /obj/item/weapon/reagent_containers/pill/charcoal( src ) + new /obj/item/weapon/reagent_containers/pill/charcoal( src ) + new /obj/item/weapon/reagent_containers/pill/charcoal( src ) + new /obj/item/weapon/reagent_containers/pill/charcoal( src ) + new /obj/item/weapon/reagent_containers/pill/charcoal( src ) + new /obj/item/weapon/reagent_containers/pill/charcoal( src ) + new /obj/item/weapon/reagent_containers/pill/charcoal( src ) /obj/item/weapon/storage/pill_bottle/dice name = "pack of dice" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index 6f9873a7f9b..bbb918e14df 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -19,10 +19,10 @@ new /obj/item/weapon/reagent_containers/dropper(src) new /obj/item/weapon/reagent_containers/glass/beaker(src) new /obj/item/weapon/reagent_containers/glass/beaker(src) - new /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline(src) - new /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline(src) - new /obj/item/weapon/reagent_containers/glass/bottle/antitoxin(src) - new /obj/item/weapon/reagent_containers/glass/bottle/antitoxin(src) + new /obj/item/weapon/reagent_containers/glass/bottle/epinephrine(src) + new /obj/item/weapon/reagent_containers/glass/bottle/epinephrine(src) + new /obj/item/weapon/reagent_containers/glass/bottle/charcoal(src) + new /obj/item/weapon/reagent_containers/glass/bottle/charcoal(src) return @@ -87,8 +87,8 @@ /obj/item/weapon/storage/pill_bottle/psychiatrist/New() ..() - new /obj/item/weapon/reagent_containers/pill/diphenhydramine(src) - new /obj/item/weapon/reagent_containers/pill/diphenhydramine(src) + new /obj/item/weapon/reagent_containers/pill/haloperidol(src) + new /obj/item/weapon/reagent_containers/pill/haloperidol(src) new /obj/item/weapon/reagent_containers/pill/methamphetamine(src) new /obj/item/weapon/reagent_containers/pill/methamphetamine(src) @@ -107,7 +107,7 @@ sleep(2) new /obj/item/clothing/suit/straight_jacket(src) new /obj/item/weapon/reagent_containers/syringe(src) - new /obj/item/weapon/reagent_containers/glass/bottle/stoxin(src) + new /obj/item/weapon/reagent_containers/glass/bottle/morphine(src) new /obj/item/weapon/storage/pill_bottle/psychiatrist(src) return @@ -236,4 +236,27 @@ new /obj/item/clothing/head/helmet/space/eva/paramedic(src) new /obj/item/clothing/head/helmet/space/eva/paramedic(src) new /obj/item/device/sensor_device(src) - return \ No newline at end of file + return + +/obj/structure/closet/secure_closet/reagents + name = "Chemical Storage Closet" + desc = "Store dangerous chemicals in here." + icon_state = "chemical1" + icon_closed = "chemical" + icon_locked = "chemical1" + icon_opened = "medicalopen" + icon_broken = "chemicalbroken" + icon_off = "chemicaloff" + req_access = list(access_chemistry) + + + New() + ..() + sleep(2) + new /obj/item/weapon/reagent_containers/glass/bottle/reagent/phenol(src) + new /obj/item/weapon/reagent_containers/glass/bottle/reagent/ammonia(src) + new /obj/item/weapon/reagent_containers/glass/bottle/reagent/oil(src) + new /obj/item/weapon/reagent_containers/glass/bottle/reagent/acetone(src) + new /obj/item/weapon/reagent_containers/glass/bottle/reagent/acid(src) + new /obj/item/weapon/reagent_containers/glass/bottle/reagent/diethylamine(src) + return diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 32162d519d4..c3595645efa 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -361,8 +361,8 @@ New() ..() sleep(2) - new /obj/item/weapon/reagent_containers/ld50_syringe/choral(src) - new /obj/item/weapon/reagent_containers/ld50_syringe/choral(src) + new /obj/item/weapon/reagent_containers/ld50_syringe/lethal(src) + new /obj/item/weapon/reagent_containers/ld50_syringe/lethal(src) return diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 30e46b62968..edbe871320a 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -123,7 +123,7 @@ reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, /datum/reagent/glycerol = 5, /datum/reagent/sacid = 5, - /datum/reagent/pacid = 5,) + /datum/reagent/facid = 5,) tools = list(/obj/item/weapon/screwdriver) time = 5 diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index e28992cf0ba..6a4a784ba8b 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -404,7 +404,7 @@ icon_state = "pill9" New() ..() - reagents.add_reagent("stoxin", 5) + reagents.add_reagent("morphine", 5) reagents.add_reagent("sugar", 10) reagents.add_reagent("ethanol", 5) diff --git a/code/modules/events/tgevents/vent_clog.dm b/code/modules/events/tgevents/vent_clog.dm index db8cbe2694c..e9cd02bd9e6 100755 --- a/code/modules/events/tgevents/vent_clog.dm +++ b/code/modules/events/tgevents/vent_clog.dm @@ -21,10 +21,10 @@ var/obj/vent = pick_n_take(vents) var/list/gunk = list("water","carbon","flour","radium","toxin","cleaner","nutriment","condensedcapsaicin","psilocybin","lube", - "atrazine","banana","anti_toxin","space_drugs","hyperzine","holywater","ethanol","hot_coco","pacid", - "blood","stoxin","fluorine","ryetalyn","mutagen","oxycodone","fuel","cryptobiolin", - "impedrezene","mindbreaker","nanites","lipozine","frostoil","doctorsdelight","beepskysmash", - "tricordrazine", "amatoxin", "adminordrazine", "neurotoxin", "zombiepowder", "synaptizine") + "atrazine","banana","charcoal","space_drugs","methamphetamine","holywater","ethanol","hot_coco","facid", + "blood","morphine","fluorine","mutadone","mutagen","oxycodone","fuel","cryptobiolin", + "haloperidol","mindbreaker","nanites","lipolicide","frostoil","salglu_solution","beepskysmash", + "omnizine", "amatoxin", "adminordrazine", "neurotoxin", "synaptizine") var/datum/reagents/R = new/datum/reagents(50) R.my_atom = vent R.add_reagent(pick(gunk), 50) diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm index 0cb7fa54f8f..f29a2579a77 100644 --- a/code/modules/food/recipes_microwave.dm +++ b/code/modules/food/recipes_microwave.dm @@ -41,7 +41,7 @@ result = /obj/item/weapon/reagent_containers/food/snacks/boiledegg /datum/recipe/microwave/dionaroast - reagents = list("pacid" = 5) //It dissolves the carapace. Still poisonous, though. + reagents = list("facid" = 5) //It dissolves the carapace. Still poisonous, though. items = list( /obj/item/weapon/holder/diona, /obj/item/weapon/reagent_containers/food/snacks/grown/apple @@ -221,7 +221,7 @@ result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket //SPECIAL proc/warm_up(var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked) being_cooked.warm = 1 - being_cooked.reagents.add_reagent("tricordrazine", 5) + being_cooked.reagents.add_reagent("omnizine", 15) being_cooked.bitesize = 6 being_cooked.name = "Warm " + being_cooked.name being_cooked.cooltime() diff --git a/code/modules/genetics/side_effects.dm b/code/modules/genetics/side_effects.dm index 74837433fc4..38f46945f03 100644 --- a/code/modules/genetics/side_effects.dm +++ b/code/modules/genetics/side_effects.dm @@ -16,7 +16,7 @@ /datum/genetics/side_effect/genetic_burn name = "Genetic Burn" symptom = "Subject's skin turns unusualy red." - treatment = "Inject small dose of dexalin." + treatment = "Inject small dose of salbutamol." effect = "Subject's skin burns." duration = 10*30 @@ -24,7 +24,7 @@ H.emote("me", 1, "starts turning very red..") finish(mob/living/carbon/human/H) - if(!H.reagents.has_reagent("dexalin")) + if(!H.reagents.has_reagent("salbutamol")) for(var/organ_name in list("chest","l_arm","r_arm","r_leg","l_leg","head","groin")) var/datum/organ/external/E = H.get_organ(organ_name) E.take_damage(0, 5, 0) @@ -32,7 +32,7 @@ /datum/genetics/side_effect/bone_snap name = "Bone Snap" symptom = "Subject's limbs tremble notably." - treatment = "Inject small dose of bicaridine." + treatment = "Inject small dose of Styptic Powder." effect = "Subject's bone breaks." duration = 10*60 @@ -40,7 +40,7 @@ H.emote("me", 1, "'s limbs start shivering uncontrollably.") finish(mob/living/carbon/human/H) - if(!H.reagents.has_reagent("bicaridine")) + if(!H.reagents.has_reagent("styptic_powder")) var/organ_name = pick("chest","l_arm","r_arm","r_leg","l_leg","head","groin") var/datum/organ/external/E = H.get_organ(organ_name) E.take_damage(20, 0, 0) @@ -49,7 +49,7 @@ /datum/genetics/side_effect/monkey name = "Monkey" symptom = "Subject starts drooling uncontrollably." - treatment = "Inject small dose of dylovene." + treatment = "Inject small dose of charcoal." effect = "Subject turns into monkey." duration = 10*90 @@ -57,13 +57,13 @@ H.emote("me", 1, "has drool running down from his mouth.") finish(mob/living/carbon/human/H) - if(!H.reagents.has_reagent("anti_toxin")) + if(!H.reagents.has_reagent("charcoal")) H.monkeyize() /datum/genetics/side_effect/confuse name = "Confuse" symptom = "Subject starts drooling uncontrollably." - treatment = "Inject small dose of dylovene." + treatment = "Inject small dose of charcoal." effect = "Subject becomes confused." duration = 10*30 @@ -71,7 +71,7 @@ H.emote("me", 1, "has drool running down from his mouth.") finish(mob/living/carbon/human/H) - if(!H.reagents.has_reagent("anti_toxin")) + if(!H.reagents.has_reagent("charcoal")) H.confused += 100 proc/trigger_side_effect(mob/living/carbon/human/H) diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm index 0d64d2d6fbc..eec48cc8521 100644 --- a/code/modules/hydroponics/seed_datums.dm +++ b/code/modules/hydroponics/seed_datums.dm @@ -588,7 +588,7 @@ proc/populate_seed_list() mutants = null packet_icon = "seed-deathnettle" plant_icon = "deathnettle" - chems = list("nutriment" = list(1,50), "pacid" = list(0,1)) + chems = list("nutriment" = list(1,50), "facid" = list(0,1)) maturation = 8 yield = 2 @@ -734,7 +734,7 @@ proc/populate_seed_list() packet_icon = "seed-ambrosiavulgaris" plant_icon = "ambrosiavulgaris" harvest_repeat = 1 - chems = list("nutriment" = list(1), "space_drugs" = list(1,8), "kelotane" = list(1,8,1), "bicaridine" = list(1,10,1), "toxin" = list(1,10)) + chems = list("nutriment" = list(1), "thc" = list(1,8), "silver_sulfadiazine" = list(1,8,1), "styptic_powder" = list(1,10,1), "toxin" = list(1,10)) lifespan = 60 maturation = 6 @@ -750,7 +750,7 @@ proc/populate_seed_list() mutants = null packet_icon = "seed-ambrosiadeus" plant_icon = "ambrosiadeus" - chems = list("nutriment" = list(1), "bicaridine" = list(1,8), "synaptizine" = list(1,8,1), "hyperzine" = list(1,10,1), "space_drugs" = list(1,10)) + chems = list("nutriment" = list(1), "styptic_powder" = list(1,8), "synaptizine" = list(1,8,1), "methamphetamine" = list(1,10,1), "thc" = list(1,10)) //Mushrooms/varieties. /datum/seed/mushroom @@ -823,7 +823,7 @@ proc/populate_seed_list() mutants = null packet_icon = "mycelium-liberty" plant_icon = "liberty" - chems = list("nutriment" = list(1), "stoxin" = list(3,3), "space_drugs" = list(1,25)) + chems = list("nutriment" = list(1), "morphine" = list(3,3), "space_drugs" = list(1,25)) lifespan = 25 production = 1 @@ -945,7 +945,7 @@ proc/populate_seed_list() packet_icon = "seed-poppy" products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/poppy) plant_icon = "poppy" - chems = list("nutriment" = list(1,20), "bicaridine" = list(1,10)) + chems = list("nutriment" = list(1,20), "styptic_powder" = list(1,10)) lifespan = 25 potency = 20 @@ -1020,7 +1020,7 @@ proc/populate_seed_list() products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/greengrapes) mutants = null plant_icon = "greengrape" - chems = list("nutriment" = list(1,10), "kelotane" = list(3,5)) + chems = list("nutriment" = list(1,10)) //Soybeans/varieties /datum/seed/soybean @@ -1085,7 +1085,7 @@ proc/populate_seed_list() products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/tobacco/space) plant_icon = "stobacco" harvest_repeat = 1 - chems = list("nutriment" = list(1,40), "nicotine" = list(1,20), "inaprovaline" = list(1,30)) + chems = list("nutriment" = list(1,40), "nicotine" = list(1,20), "epinephrine" = list(1,30)) lifespan = 25 maturation = 5 @@ -1104,7 +1104,7 @@ proc/populate_seed_list() products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/teaaspera) plant_icon = "teaaspera" harvest_repeat = 1 - chems = list("teapowder" = list(1,20), "anti_toxin" = list(1,30)) + chems = list("teapowder" = list(1,20), "charcoal" = list(1,30)) lifespan = 30 maturation = 5 @@ -1122,7 +1122,7 @@ proc/populate_seed_list() products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/teaastra) plant_icon = "teaastra" harvest_repeat = 1 - chems = list("teapowder" = list(1,20), "impedrezene" = list(1,30)) + chems = list("teapowder" = list(1,20), "haloperidol" = list(1,30)) lifespan = 30 maturation = 5 @@ -1158,7 +1158,7 @@ proc/populate_seed_list() products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/coffeer) plant_icon = "coffeer" harvest_repeat = 1 - chems = list("coffeepowder" = list(1,20), "synaptizine" = list(1,20), "hyperzine" = list(1,40)) + chems = list("coffeepowder" = list(1,20), "synaptizine" = list(1,20), "methamphetamine" = list(1,40)) lifespan = 30 maturation = 5 @@ -1208,7 +1208,7 @@ proc/populate_seed_list() packet_icon = "seed-shand" products = list(/obj/item/stack/medical/bruise_pack/tajaran) plant_icon = "shand" - chems = list("bicaridine" = list(0,10)) + chems = list("styptic_powder" = list(0,10)) lifespan = 50 maturation = 3 @@ -1224,7 +1224,7 @@ proc/populate_seed_list() packet_icon = "seed-mtear" products = list(/obj/item/stack/medical/ointment/tajaran) plant_icon = "mtear" - chems = list("honey" = list(1,10), "kelotane" = list(3,5)) + chems = list("honey" = list(1,10), "silver_sulfadiazine" = list(3,5)) lifespan = 50 maturation = 3 @@ -1318,7 +1318,7 @@ proc/populate_seed_list() packet_icon = "seed-carrot" products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/carrot) plant_icon = "carrot" - chems = list("nutriment" = list(1,20), "imidazoline" = list(3,5)) + chems = list("nutriment" = list(1,20), "oculine" = list(3,5)) lifespan = 25 maturation = 10 @@ -1513,7 +1513,7 @@ proc/populate_seed_list() products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/kudzupod) plant_icon = "kudzu" product_colour = "#96D278" - chems = list("nutriment" = list(1,50), "anti_toxin" = list(1,25)) + chems = list("nutriment" = list(1,50), "charcoal" = list(1,25)) lifespan = 20 maturation = 6 diff --git a/code/modules/jungle/jungle_plants.dm b/code/modules/jungle/jungle_plants.dm index 3bc0315c581..2a48dcf4f9b 100644 --- a/code/modules/jungle/jungle_plants.dm +++ b/code/modules/jungle/jungle_plants.dm @@ -58,7 +58,7 @@ //*******************************// var/list/fruit_icon_states = list("badrecipe","kudzupod","reishi","lime","grapes","boiledrorocore","chocolateegg") -var/list/reagent_effects = list("toxin","anti_toxin","stoxin","space_drugs","mindbreaker","zombiepowder","impedrezene") +var/list/reagent_effects = list("toxin","charcoal","morphine","space_drugs","mindbreaker","haloperidol") var/jungle_plants_init = 0 /proc/init_jungle_plants() diff --git a/code/modules/mining/surprises/tg.dm b/code/modules/mining/surprises/tg.dm index e80d3a87115..cadebb94841 100644 --- a/code/modules/mining/surprises/tg.dm +++ b/code/modules/mining/surprises/tg.dm @@ -175,7 +175,7 @@ /obj/structure/table/reinforced=2, /obj/machinery/portable_atmospherics/hydroponics=1, /obj/effect/glowshroom/single=2, - /obj/item/weapon/reagent_containers/syringe/antitoxin=2, + /obj/item/weapon/reagent_containers/syringe/charcoal=2, /obj/item/weapon/reagent_containers/glass/bottle/diethylamine=3, /obj/item/weapon/reagent_containers/glass/bottle/ammonia=3 ) \ No newline at end of file diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index 25c712354ce..132949eca3e 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -1,4 +1,4 @@ -#define EMOTE_COOLDOWN 50 //Time in deciseconds that the cooldown lasts +#define EMOTE_COOLDOWN 20 //Time in deciseconds that the cooldown lasts //Emote Cooldown System (it's so simple!) /mob/proc/handle_emote_CD() diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm index 22f9bec9e0c..fbb2e477081 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/life.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm @@ -123,7 +123,7 @@ if( health <= 20 && prob(1) ) spawn(0) emote("gasp") - if(!reagents.has_reagent("inaprovaline")) + if(!reagents.has_reagent("epinephrine")) adjustOxyLoss(1) Paralyse(3) diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index 6930ee09dd9..3b08794a76c 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -75,7 +75,7 @@ //if( health <= 20 && prob(1) ) // spawn(0) // emote("gasp") - if(!reagents.has_reagent("inaprovaline")) + if(!reagents.has_reagent("epinephrine")) adjustOxyLoss(1) Paralyse(3) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index bd0c6694da7..dfa3cb878b9 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -712,6 +712,8 @@ // Needed for M_TOXIC_FART if("fart") + if(reagents.has_reagent("simethicone")) + return // playsound(src.loc, 'sound/effects/fart.ogg', 50, 1, -3) //Admins still vote no to fun if(locate(/obj/item/weapon/storage/bible) in get_turf(src)) viewers(src) << "[src] farts on the Bible!" diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index e05fe59b2ac..bb3c69b525d 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -448,8 +448,6 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc if(!breath || (breath.total_moles() == 0) || suiciding) var/oxyloss = 0 - if(reagents.has_reagent("inaprovaline")) - return if(suiciding) oxyloss = 2 adjustOxyLoss(oxyloss)//If you are suiciding, you should die a little bit faster @@ -973,7 +971,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc if( health <= 20 && prob(1) ) spawn(0) emote("gasp") - if(!reagents.has_reagent("inaprovaline")) + if(!reagents.has_reagent("epinephrine")) adjustOxyLoss(1)*/ if(hallucination && !(species.flags & IS_SYNTHETIC)) @@ -1008,7 +1006,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc adjustStaminaLoss(-10) adjustHalLoss(-3) if (mind) - //Are they SSD? If so we'll keep them asleep but work off some of that sleep var in case of stoxin or similar. + //Are they SSD? If so we'll keep them asleep but work off some of that sleep var in case of morphine or similar. if(player_logged) sleeping = max(sleeping-1, 2) else diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm index 66eba695377..6ea67b70c6c 100644 --- a/code/modules/mob/living/carbon/metroid/life.dm +++ b/code/modules/mob/living/carbon/metroid/life.dm @@ -185,9 +185,9 @@ if (reagents.get_reagent_amount("plasma")>=5) mutation_chance = min(mutation_chance + 5,50) //Prevents mutation chance going >50% reagents.remove_reagent("plasma", 5) - if (reagents.get_reagent_amount("inaprovaline")>=5) + if (reagents.get_reagent_amount("epinephrine")>=5) mutation_chance = max(mutation_chance - 5,0) //Prevents muation chance going <0% - reagents.remove_reagent("inaprovaline", 5) + reagents.remove_reagent("epinephrine", 5) src.updatehealth() return //TODO: DEFERRED @@ -205,7 +205,7 @@ else if(src.health <= config.health_threshold_crit) - if(!src.reagents.has_reagent("inaprovaline")) + if(!src.reagents.has_reagent("epinephrine")) src.adjustOxyLoss(10) if(src.stat != DEAD) diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm index 7b00947daa2..8ee75f39be4 100644 --- a/code/modules/mob/living/carbon/metroid/metroid.dm +++ b/code/modules/mob/living/carbon/metroid/metroid.dm @@ -83,7 +83,7 @@ tally += (283.222 - bodytemperature) / 10 * 1.75 if(reagents) - if(reagents.has_reagent("hyperzine")) // Hyperzine slows slimes down + if(reagents.has_reagent("methamphetamine")) // Meth slows slimes down tally *= 2 if(reagents.has_reagent("frostoil")) // Frostoil also makes them move VEEERRYYYYY slow diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 1cc651fdc32..cd0db0092b4 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -503,7 +503,7 @@ if( health <= 20 && prob(1) ) spawn(0) emote("gasp") - if(!reagents.has_reagent("inaprovaline")) + if(!reagents.has_reagent("epinephrine")) adjustOxyLoss(1) Paralyse(3) if(halloss > 100) diff --git a/code/modules/mob/living/carbon/shock.dm b/code/modules/mob/living/carbon/shock.dm index d48d878f524..7ad544b9e82 100644 --- a/code/modules/mob/living/carbon/shock.dm +++ b/code/modules/mob/living/carbon/shock.dm @@ -11,12 +11,6 @@ 1 * src.getCloneLoss() + \ 1 * src.halloss - if(reagents.has_reagent("alkysine")) - src.traumatic_shock -= 5 - if(reagents.has_reagent("inaprovaline")) - src.traumatic_shock -= 15 - if(reagents.has_reagent("synaptizine")) - src.traumatic_shock -= 30 if(reagents.has_reagent("paracetamol")) src.traumatic_shock -= 40 if(reagents.has_reagent("tramadol")) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 3ef82b89f72..4f256f2a003 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -125,14 +125,14 @@ src.emag = new /obj/item/weapon/reagent_containers/spray(src) - src.emag.reagents.add_reagent("pacid", 250) + src.emag.reagents.add_reagent("facid", 250) src.emag.name = "Polyacid spray" return /obj/item/weapon/robot_module/medical/respawn_consumable(var/mob/living/silicon/robot/R) if(src.emag) var/obj/item/weapon/reagent_containers/spray/PS = src.emag - PS.reagents.add_reagent("pacid", 2) + PS.reagents.add_reagent("facid", 2) ..() /obj/item/weapon/robot_module/engineering @@ -365,13 +365,13 @@ src.modules += new /obj/item/device/flash/cyborg/alien(src) src.modules += new /obj/item/borg/sight/thermal/alien(src) var/obj/item/weapon/reagent_containers/spray/alien/stun/S = new /obj/item/weapon/reagent_containers/spray/alien/stun(src) - S.reagents.add_reagent("stoxin",250) //nerfed to sleeptoxin to make it less instant drop. + S.reagents.add_reagent("morphine",250) //nerfed to sleeptoxin to make it less instant drop. src.modules += S var/obj/item/weapon/reagent_containers/spray/alien/smoke/A = new /obj/item/weapon/reagent_containers/spray/alien/smoke(src) S.reagents.add_reagent("water",50) //Water is used as a dummy reagent for the smoke bombs. More of an ammo counter. src.modules += A src.emag = new /obj/item/weapon/reagent_containers/spray/alien/acid(src) - src.emag.reagents.add_reagent("pacid", 125) + src.emag.reagents.add_reagent("facid", 125) src.emag.reagents.add_reagent("sacid", 125) /obj/item/weapon/robot_module/alien/hunter/add_languages(var/mob/living/silicon/robot/R) diff --git a/code/modules/mob/living/simple_animal/borer.dm b/code/modules/mob/living/simple_animal/borer.dm index f8dd9e5c6fe..2044b3c0b77 100644 --- a/code/modules/mob/living/simple_animal/borer.dm +++ b/code/modules/mob/living/simple_animal/borer.dm @@ -259,7 +259,7 @@ if(chemicals < 50) src << "You don't have enough chemicals!" - var/chem = input("Select a chemical to secrete.", "Chemicals") as null|anything in list("alkysine","bicaridine","hyperzine","tramadol") + var/chem = input("Select a chemical to secrete.", "Chemicals") as null|anything in list("mannitol","styptic_powder","methamphetamine","tramadol") if(!chem || chemicals < 50 || !host || controlling || !src || stat) //Sanity check. return 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 2f4331f9245..a12992c2ea5 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -49,7 +49,7 @@ melee_damage_upper = 10 poison_per_bite = 10 var/atom/cocoon_target - poison_type = "stoxin" + poison_type = "morphine" var/fed = 0 //hunters have the most poison and move the fastest, so they can find prey diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index 5670f5e55de..046274a541c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -153,6 +153,6 @@ for(counter=0, counter<=powerlevel, counter++) var/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice/S = new /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice(src.loc) S.reagents.add_reagent("mushroomhallucinogen", powerlevel) - S.reagents.add_reagent("doctorsdelight", powerlevel) + S.reagents.add_reagent("omnizine", powerlevel) S.reagents.add_reagent("synaptizine", powerlevel) del(src) \ No newline at end of file diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 6767170003a..e83b7e4bff3 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -453,9 +453,8 @@ Note that amputating the affected organ does in fact remove the infection from t // Internal wounds get worse over time. Low temperatures (cryo) stop them. if(W.internal && !W.can_autoheal() && owner.bodytemperature >= 170) - var/bicardose = owner.reagents.get_reagent_amount("bicaridine") - var/inaprovaline = owner.reagents.get_reagent_amount("inaprovaline") - if(!bicardose || !inaprovaline) //bicaridine and inaprovaline stop internal wounds from growing bigger with time, and also stop bleeding + var/bicardose = owner.reagents.get_reagent_amount("styptic_powder") + if(!bicardose) //styptic powder stops internal wounds from growing bigger with time, and also stop bleeding W.open_wound(0.1 * wound_update_accuracy) owner.vessel.remove_reagent("blood",0.05 * W.damage * wound_update_accuracy) @@ -463,8 +462,8 @@ Note that amputating the affected organ does in fact remove the infection from t if(prob(1 * wound_update_accuracy)) owner.custom_pain("You feel a stabbing pain in your [display_name]!",1) - //overdose of bicaridine begins healing IB - if(owner.reagents.get_reagent_amount("bicaridine") >= 30) + //overdose of styptic powder begins healing IB + if(owner.reagents.get_reagent_amount("styptic_powder") >= 30) W.damage = max(0, W.damage - 0.2) // slow healing diff --git a/code/modules/organs/organ_internal.dm b/code/modules/organs/organ_internal.dm index e0872804ce3..73fe9200227 100644 --- a/code/modules/organs/organ_internal.dm +++ b/code/modules/organs/organ_internal.dm @@ -191,7 +191,7 @@ src.damage = 0 //High toxins levels are dangerous - if(owner.getToxLoss() >= 60 && !owner.reagents.has_reagent("anti_toxin")) + if(owner.getToxLoss() >= 60 && !owner.reagents.has_reagent("charcoal")) //Healthy liver suffers on its own if (src.damage < min_broken_damage) src.damage += 0.2 * process_accuracy @@ -202,7 +202,7 @@ O.damage += 0.2 * process_accuracy //Detox can heal small amounts of damage - if (src.damage && src.damage < src.min_bruised_damage && owner.reagents.has_reagent("anti_toxin")) + if (src.damage && src.damage < src.min_bruised_damage && owner.reagents.has_reagent("charcoal")) src.damage -= 0.2 * process_accuracy // Damaged liver means some chemicals are very dangerous @@ -213,7 +213,7 @@ owner.adjustToxLoss(0.1 * process_accuracy) // Can't cope with toxins at all - for(var/toxin in list("toxin", "plasma", "sacid", "pacid", "cyanide", "lexorin", "amatoxin", "chloralhydrate", "carpotoxin", "zombiepowder", "mindbreaker")) + for(var/toxin in list("toxin", "plasma", "sacid", "facid", "cyanide", "amatoxin", "carpotoxin", "mindbreaker")) if(owner.reagents.has_reagent(toxin)) owner.adjustToxLoss(0.3 * process_accuracy) diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index e8e27782ccb..1655470302b 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -174,7 +174,7 @@ ..() reagents.add_reagent("aluminum", 15) reagents.add_reagent("foaming_agent", 5) - reagents.add_reagent("pacid", 5) + reagents.add_reagent("facid", 5) //This one is for future syringe guns update /obj/item/projectile/bullet/dart/syringe diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index eec7eb1415d..b5a8ca98460 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -380,7 +380,9 @@ datum del(A) update_total() my_atom.on_reagent_change() + check_ignoreslow(my_atom) check_gofast(my_atom) + check_goreallyfast(my_atom) return 0 diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 6abe0deff5e..e704ce70950 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -995,7 +995,7 @@ /obj/item/stack/sheet/mineral/silver = list("silver" = 20), /obj/item/stack/sheet/mineral/gold = list("gold" = 20), /obj/item/weapon/grown/nettle = list("sacid" = 0), - /obj/item/weapon/grown/deathnettle = list("pacid" = 0), + /obj/item/weapon/grown/deathnettle = list("facid" = 0), /obj/item/weapon/grown/novaflower = list("capsaicin" = 0), //Blender Stuff diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index e08f7203444..c5f94b50bf4 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -85,7 +85,7 @@ datum on_mob_life(var/mob/living/M as mob, var/alien) if(!istype(M, /mob/living)) // YOU'RE A FUCKING RETARD NEO WHY CAN'T YOU JUST FIX THE PROBLEM ON THE REAGENT - Iamgoofball - return //Noticed runtime errors from pacid trying to damage ghosts, this should fix. --NEO + return //Noticed runtime errors from facid trying to damage ghosts, this should fix. --NEO // Certain elements in too large amounts cause side-effects holder.remove_reagent(src.id, metabolization_rate) //By default it slowly disappears. current_cycle++ @@ -318,25 +318,6 @@ datum T.wet_overlay = null return - anti_toxin - name = "Anti-Toxin (Dylovene)" - id = "anti_toxin" - description = "Dylovene is a broad-spectrum antitoxin." - reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 - - on_mob_life(var/mob/living/M as mob, var/alien) - if(!M) M = holder.my_atom - if(!alien || alien != IS_DIONA) - M.drowsyness = max(M.drowsyness-2*REM, 0) - M.hallucination = max(0, M.hallucination - 5*REM) - M.adjustToxLoss(-2*REM) - for(var/datum/reagent/R in M.reagents.reagent_list) - if(R != src) - M.reagents.remove_reagent(R.id,0.5) - ..() - return - toxin name = "Toxin" id = "toxin" @@ -433,50 +414,6 @@ datum ..() return - stoxin - name = "Sleep Toxin" - id = "stoxin" - description = "An effective hypnotic used to treat insomnia." - reagent_state = LIQUID - color = "#E895CC" // rgb: 232, 149, 204 - - on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - if(!data) data = 1 - switch(data) - if(1 to 12) - if(prob(5)) M.emote("yawn") - if(12 to 15) - M.eye_blurry = max(M.eye_blurry, 10) - if(15 to 25) - M.drowsyness = max(M.drowsyness, 20) - if(25 to INFINITY) - M.Paralyse(20) - M.drowsyness = max(M.drowsyness, 30) - data++ - ..() - return - - inaprovaline - name = "Inaprovaline" - id = "inaprovaline" - description = "Inaprovaline is a synaptic stimulant and cardiostimulant. Commonly used to stabilize patients." - reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 - - on_mob_life(var/mob/living/M as mob, var/alien) - if(!M) M = holder.my_atom - - if(alien && alien == IS_VOX) - M.adjustToxLoss(REAGENTS_METABOLISM) - else - if(M.losebreath >= 10) - M.losebreath = max(10, M.losebreath-5) - - holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM) - ..() - return - space_drugs name = "Space drugs" id = "space_drugs" @@ -852,90 +789,6 @@ datum M << "\red \the [O] melts." del(O) - pacid - name = "Polytrinic acid" - id = "pacid" - description = "Polytrinic acid is a an extremely corrosive chemical substance." - reagent_state = LIQUID - color = "#8E18A9" // rgb: 142, 24, 169 - - on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - M.adjustToxLoss(1*REM) - M.adjustFireLoss(1) - ..() - return - - reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume) - if(!istype(M, /mob/living)) - return //wooo more runtime fixin - if(method == TOUCH) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - - if(H.wear_mask) - if(!H.wear_mask.unacidable) - del (H.wear_mask) - H.update_inv_wear_mask() - H << "\red Your mask melts away but protects you from the acid!" - else - H << "\red Your mask protects you from the acid!" - return - - if(H.head) - if(prob(15) && !H.head.unacidable) - del(H.head) - H.update_inv_head() - H << "\red Your helmet melts away but protects you from the acid" - else - H << "\red Your helmet protects you from the acid!" - return - - if(!H.unacidable) - var/datum/organ/external/affecting = H.get_organ("head") - if(affecting.take_damage(15, 0)) - H.UpdateDamageIcon() - H.emote("scream") - else if(ismonkey(M)) - var/mob/living/carbon/monkey/MK = M - - if(MK.wear_mask) - if(!MK.wear_mask.unacidable) - del (MK.wear_mask) - MK.update_inv_wear_mask() - MK << "\red Your mask melts away but protects you from the acid!" - else - MK << "\red Your mask protects you from the acid!" - return - - if(!MK.unacidable) - MK.take_organ_damage(min(15, volume * 4)) // same deal as sulphuric acid - else - if(!M.unacidable) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - var/datum/organ/external/affecting = H.get_organ("head") - if(affecting.take_damage(15, 0)) - H.UpdateDamageIcon() - H.emote("scream") - H.status_flags |= DISFIGURED - else - M.take_organ_damage(min(15, volume * 4)) - - reaction_obj(var/obj/O, var/volume) - if(istype(O,/obj/item/weapon/organ/head)) - new/obj/item/weapon/skeleton/head(O.loc) - for(var/mob/M in viewers(5, O)) - M << "\red \the [O] melts." - del(O) - if((istype(O,/obj/item) || istype(O,/obj/effect/glowshroom))) - if(!O.unacidable) - var/obj/effect/decal/cleanable/molten_item/I = new/obj/effect/decal/cleanable/molten_item(O.loc) - I.desc = "Looks like this was \an [O] some time ago." - for(var/mob/M in viewers(5, O)) - M << "\red \the [O] melts." - del(O) - glycerol name = "Glycerol" id = "glycerol" @@ -983,34 +836,6 @@ datum new /obj/effect/decal/cleanable/greenglow(T) return - - ryetalyn - name = "Ryetalyn" - id = "ryetalyn" - description = "Ryetalyn can cure all genetic abnomalities." - reagent_state = SOLID - color = "#C8A5DC" // rgb: 200, 165, 220 - - on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - - var/needs_update = 1 //M.mutations.len > 0 - - for(var/block=1;block<=DNA_SE_LENGTH;block++) - M.dna.SetSEState(block,0) - genemutcheck(M,block,null,MUTCHK_FORCED) - M.update_mutations() - - M.dna.struc_enzymes = M.dna.struc_enzymes_original - - // Might need to update appearance for hulk etc. - if(needs_update && ishuman(M)) - var/mob/living/carbon/human/H = M - H.update_mutations() - - ..() - return - thermite name = "Thermite" id = "thermite" @@ -1033,7 +858,6 @@ datum ..() return - paracetamol name = "Paracetamol" id = "paracetamol" @@ -1052,7 +876,7 @@ datum id = "mutagen" description = "Might cause unpredictable mutations. Keep away from children." reagent_state = LIQUID - color = "#13BC5E" // rgb: 19, 188, 94 + color = "#00FF00" metabolization_rate = 0.3 reaction_mob(var/mob/M, var/method=TOUCH, var/volume) @@ -1088,7 +912,6 @@ datum ..() return - oxycodone name = "Oxycodone" id = "oxycodone" @@ -1102,8 +925,6 @@ datum ..() return - - virus_food name = "Virus Food" id = "virusfood" @@ -1136,22 +957,6 @@ datum reaction_turf(var/turf/T, var/volume) T.germ_level -= min(volume*20, T.germ_level) - /* reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume) - src = null - if (method==TOUCH) - if(istype(M, /mob/living/carbon/human)) - if(M.health >= -100 && M.health <= 0) - M.crit_op_stage = 0.0 - if (method==INGEST) - usr << "Well, that was stupid." - M.adjustToxLoss(3) - return - on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - M.apply_effect(3,IRRADIATE,0) - ..() - return - */ iron name = "Iron" id = "iron" @@ -1341,8 +1146,6 @@ datum on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - if(holder.has_reagent("inaprovaline")) - holder.remove_reagent("inaprovaline", 2*REM) M.adjustToxLoss(3*REM) ..() return @@ -1401,101 +1204,6 @@ datum ..() return - kelotane - name = "Kelotane" - id = "kelotane" - description = "Kelotane is a drug used to treat burns." - reagent_state = LIQUID - color = "#ECD540" // rgb: 236, 213, 64 - - on_mob_life(var/mob/living/M as mob) - if(M.stat == 2.0) - return - if(!M) M = holder.my_atom - //This needs a diona check but if one is added they won't be able to heal burn damage at all. - M.heal_organ_damage(0,2*REM) - ..() - return - - dermaline - name = "Dermaline" - id = "dermaline" - description = "Dermaline is the next step in burn medication. Works twice as good as kelotane and enables the body to restore even the direst heat-damaged tissue." - reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 - - on_mob_life(var/mob/living/M as mob, var/alien) - if(M.stat == 2.0) //THE GUY IS **DEAD**! BEREFT OF ALL LIFE HE RESTS IN PEACE etc etc. He does NOT metabolise shit anymore, god DAMN - return - if(!M) M = holder.my_atom - if(!alien || alien != IS_DIONA) - M.heal_organ_damage(0,3*REM) - ..() - return - - dexalin - name = "Dexalin" - id = "dexalin" - description = "Dexalin is used in the treatment of oxygen deprivation." - reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 - - on_mob_life(var/mob/living/M as mob, var/alien) - if(M.stat == 2.0) - return //See above, down and around. --Agouri - if(!M) M = holder.my_atom - - if(alien && alien == IS_VOX) - M.adjustToxLoss(2*REM) - else if(!alien || alien != IS_DIONA) - M.adjustOxyLoss(-2*REM) - - if(holder.has_reagent("lexorin")) - holder.remove_reagent("lexorin", 2*REM) - ..() - return - - dexalinp - name = "Dexalin Plus" - id = "dexalinp" - description = "Dexalin Plus is used in the treatment of oxygen deprivation. Its highly effective." - reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 - - on_mob_life(var/mob/living/M as mob, var/alien) - if(M.stat == 2.0) - return - if(!M) M = holder.my_atom - - if(alien && alien == IS_VOX) - M.adjustOxyLoss() - else if(!alien || alien != IS_DIONA) - M.adjustOxyLoss(-M.getOxyLoss()) - - if(holder.has_reagent("lexorin")) - holder.remove_reagent("lexorin", 2*REM) - ..() - return - - tricordrazine - name = "Tricordrazine" - id = "tricordrazine" - description = "Tricordrazine is a highly potent stimulant, originally derived from cordrazine. Can be used to treat a wide range of injuries." - reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 - - on_mob_life(var/mob/living/M as mob, var/alien) - if(M.stat == 2.0) - return - if(!M) M = holder.my_atom - if(!alien || alien != IS_DIONA) - if(M.getOxyLoss() && prob(80)) M.adjustOxyLoss(-1*REM) - if(M.getBruteLoss() && prob(80)) M.heal_organ_damage(1*REM,0) - if(M.getFireLoss() && prob(80)) M.heal_organ_damage(0,1*REM) - if(M.getToxLoss() && prob(80)) M.adjustToxLoss(-1*REM) - ..() - return - adminordrazine //An OP chemical for admins name = "Adminordrazine" id = "adminordrazine" @@ -1553,101 +1261,15 @@ datum synaptizine name = "Synaptizine" id = "synaptizine" - description = "Synaptizine is a synaptic stimulant that can also be used to treat certain diseases." + description = "Synaptizine is used to treat neuroleptic shock. Can be used to help remove disabling symptoms such as paralysis." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#FA46FA" on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - M.drowsyness = max(M.drowsyness-5, 0) M.AdjustParalysis(-1) M.AdjustStunned(-1) M.AdjustWeakened(-1) - if(holder.has_reagent("mindbreaker")) - holder.remove_reagent("mindbreaker", 5) - M.hallucination = max(0, M.hallucination - 10) - if(prob(60)) M.adjustToxLoss(1) - ..() - return - - - impedrezene - name = "Impedrezene" - id = "impedrezene" - description = "Impedrezene is a narcotic that impedes one's ability by slowing down the higher brain cell functions." - reagent_state = LIQUID - color = "#2C1608" // rgb: 44, 22, 8 - - on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - M.jitteriness = max(M.jitteriness-5,0) - if(prob(80)) M.adjustBrainLoss(1*REM) - if(prob(50)) M.drowsyness = max(M.drowsyness, 3) - if(prob(10)) M.emote("drool") - ..() - return - - hyronalin - name = "Hyronalin" - id = "hyronalin" - description = "Hyronalin is a medicinal drug used to counter the effect of radiation poisoning." - reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 - - on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - M.apply_effect(max(M.radiation-3*REM,0),IRRADIATE,0) - ..() - return - - arithrazine - name = "Arithrazine" - id = "arithrazine" - description = "Arithrazine is an unstable medication used for the most extreme cases of radiation poisoning." - reagent_state = LIQUID - color = "#BFFF00" // rgb: 191, 255, 0 - - on_mob_life(var/mob/living/M as mob) - if(M.stat == 2.0) - return //See above, down and around. --Agouri - if(!M) M = holder.my_atom - M.radiation = M.apply_effect(max(M.radiation-7*REM,0),IRRADIATE,0) - M.adjustToxLoss(-1*REM) - if(prob(15)) - M.take_organ_damage(1, 0) - ..() - return - - alkysine - name = "Alkysine" - id = "alkysine" - description = "Alkysine is a drug used to lessen the damage to neurological tissue after a catastrophic injury. Can heal brain tissue." - reagent_state = LIQUID - color = "#F77FBE" // rgb: 247, 127, 190 - - on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - M.adjustBrainLoss(-3*REM) - ..() - return - - imidazoline - name = "Imidazoline" - id = "imidazoline" - description = "Heals eye damage" - reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 - - on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - M.eye_blurry = max(M.eye_blurry-5 , 0) - M.eye_blind = max(M.eye_blind-5 , 0) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"] - if(istype(E)) - if(E.damage > 0) - E.damage -= 1 ..() return @@ -1685,44 +1307,12 @@ datum ..() return - - bicaridine - name = "Bicaridine" - id = "bicaridine" - description = "Bicaridine is an analgesic medication and can be used to treat blunt trauma." - reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 - - on_mob_life(var/mob/living/M as mob, var/alien) - if(M.stat == 2.0) - return - if(!M) M = holder.my_atom - if(alien != IS_DIONA) - M.heal_organ_damage(2*REM,0) - ..() - return - - hyperzine - name = "Hyperzine" - id = "hyperzine" - description = "Hyperzine is a highly effective, long lasting, muscle stimulant." - reagent_state = LIQUID - color = "#CCFF00" // rgb: 204, 255, 0 - - on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - if(prob(5)) M.emote(pick("twitch","blink_r","shiver")) - M.status_flags |= GOTTAGOFAST - holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM) - // ..() - return - cryoxadone name = "Cryoxadone" id = "cryoxadone" - description = "A chemical mixture with almost magical healing powers. Its main limitation is that the targets body temperature must be under 170K for it to metabolise correctly." + description = "A plasma mixture with almost magical healing powers. Its main limitation is that the targets body temperature must be under 265K for it to metabolise correctly." reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 + color = "#0000C8" // rgb: 200, 165, 220 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -1800,32 +1390,6 @@ datum ..() return - zombiepowder - name = "Zombie Powder" - id = "zombiepowder" - description = "A strong neurotoxin that puts the subject into a death-like state." - color = "#669900" // rgb: 102, 153, 0 - - on_mob_life(var/mob/living/carbon/M as mob) - if(!M) M = holder.my_atom - if(volume >= 1) //Hotfix for Fakedeath never ending. - M.status_flags |= FAKEDEATH - else - M.status_flags &= ~FAKEDEATH - M.adjustOxyLoss(0.5*REM) - M.adjustToxLoss(0.5*REM) - M.Weaken(5) - M.silent = max(M.silent, 5) - M.tod = worldtime2text() - ..() - return - - /*Del() - if(holder && ismob(holder.my_atom)) - var/mob/M = holder.my_atom - M.status_flags &= ~FAKEDEATH - ..()8*/ - staminatoxin name = "Tirizene" id = "tirizene" @@ -1949,23 +1513,6 @@ datum reagent_state = LIQUID color = "#604030" // rgb: 96, 64, 48 - ethylredoxrazine // FUCK YOU, ALCOHOL - name = "Ethylredoxrazine" - id = "ethylredoxrazine" - description = "A powerful oxidizer that reacts with ethanol." - reagent_state = SOLID - color = "#605048" // rgb: 96, 80, 72 - - on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - M.dizziness = 0 - M.drowsyness = 0 - M.stuttering = 0 - M.confused = 0 - M.reagents.remove_all_type(/datum/reagent/ethanol, 1*REM, 0, 1) - ..() - return - Spores name = "Spores" id = "spores" @@ -1981,30 +1528,6 @@ datum M.eye_blurry = max(M.eye_blurry, 3) return - chloralhydrate //Otherwise known as a "Mickey Finn" - name = "Chloral Hydrate" - id = "chloralhydrate" - description = "A powerful sedative." - reagent_state = SOLID - color = "#000067" // rgb: 0, 0, 103 - - on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - if(!data) data = 1 - data++ - switch(data) - if(1 to 10) - M.confused += 2 - M.drowsyness += 2 - if(10 to 50) - M.sleeping += 1 - if(51 to INFINITY) - M.sleeping += 1 - M.adjustToxLoss((data - 50)*REM) - holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM) - ..() - return - beer2 //disguised as normal beer for use by emagged brobots name = "Beer" id = "beer2" @@ -2043,23 +1566,6 @@ datum ..() return - lipozine - name = "Lipozine" // The anti-nutriment. - id = "lipozine" - description = "A chemical compound that causes a powerful fat-burning reaction." - reagent_state = LIQUID - nutriment_factor = 10 * REAGENTS_METABOLISM - color = "#BBEDA4" // rgb: 187, 237, 164 - - on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - M.nutrition -= nutriment_factor - M.overeatduration = 0 - if(M.nutrition < 0)//Prevent from going into negatives. - M.nutrition = 0 - ..() - return - soysauce name = "Soysauce" id = "soysauce" @@ -2274,9 +1780,9 @@ datum if (istype(holder.my_atom,/mob/living)) var/mob/living/M as mob var/to_remove = 0 - if (holder.has_reagent("anti_toxin")) - to_remove = min(holder.get_reagent_amount("anti_toxin"),data) - holder.remove_reagent("anti_toxin", to_remove, 0) + if (holder.has_reagent("charcoal")) + to_remove = min(holder.get_reagent_amount("charcoal"),data) + holder.remove_reagent("charcoal", to_remove, 0) data -= to_remove if(M) M.adjustToxLoss((data-1)*rand(2,4)) @@ -2371,11 +1877,11 @@ datum del(hotspot) enzyme - name = "Universal Enzyme" + name = "Denatured Enzyme" id = "enzyme" - description = "A universal enzyme used in the preperation of certain chemicals and foods." + description = "Heated beyond usefulness, this enzyme is now worthless." reagent_state = LIQUID - color = "#365E30" // rgb: 54, 94, 48 + color = "#282314" // rgb: 54, 94, 48 dry_ramen name = "Dry Ramen" @@ -2594,12 +2100,7 @@ datum on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - if(M.getOxyLoss() && prob(80)) M.adjustOxyLoss(-2) - if(M.getBruteLoss() && prob(80)) M.heal_organ_damage(2,0) - if(M.getFireLoss() && prob(80)) M.heal_organ_damage(0,2) - if(M.getToxLoss() && prob(80)) M.adjustToxLoss(-2) - if(M.dizziness !=0) M.dizziness = max(0,M.dizziness-15) - if(M.confused !=0) M.confused = max(0,M.confused - 5) + if(M.getToxLoss() && prob(20)) M.adjustToxLoss(-1) ..() return @@ -3332,11 +2833,6 @@ datum reagent_state = LIQUID color = "#664300" // rgb: 102, 67, 0 - on_mob_life(var/mob/living/M as mob) - M.Stun(2) - ..() - return - changelingsting name = "Changeling Sting" id = "changelingsting" diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 2bd3ec01812..63a551ac6b4 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -59,32 +59,12 @@ datum required_reagents = list("aluminum" = 1, "silicon" = 1, "oxygen" = 1) result_amount = 3 */ - stoxin - name = "Sleep Toxin" - id = "stoxin" - result = "stoxin" - required_reagents = list("chloralhydrate" = 1, "sugar" = 4) - result_amount = 5 sterilizine name = "Sterilizine" id = "sterilizine" result = "sterilizine" - required_reagents = list("ethanol" = 1, "anti_toxin" = 1, "chlorine" = 1) - result_amount = 3 - - inaprovaline - name = "Inaprovaline" - id = "inaprovaline" - result = "inaprovaline" - required_reagents = list("oxygen" = 1, "carbon" = 1, "sugar" = 1) - result_amount = 3 - - anti_toxin - name = "Anti-Toxin (Dylovene)" - id = "anti_toxin" - result = "anti_toxin" - required_reagents = list("silicon" = 1, "potassium" = 1, "nitrogen" = 1) + required_reagents = list("ethanol" = 1, "charcoal" = 1, "chlorine" = 1) result_amount = 3 mutagen @@ -93,12 +73,13 @@ datum result = "mutagen" required_reagents = list("radium" = 1, "plasma" = 1, "chlorine" = 1) result_amount = 3 + mix_message = "The substance turns neon green and bubbles unnervingly." tramadol name = "Tramadol" id = "tramadol" result = "tramadol" - required_reagents = list("inaprovaline" = 1, "ethanol" = 1, "oxygen" = 1) + required_reagents = list("epinephrine" = 1, "ethanol" = 1, "oxygen" = 1) result_amount = 3 paracetamol @@ -137,53 +118,11 @@ datum required_reagents = list("water" = 1, "silicon" = 1, "oxygen" = 1) result_amount = 4 - pacid - name = "Polytrinic acid" - id = "pacid" - result = "pacid" - required_reagents = list("sacid" = 1, "chlorine" = 1, "potassium" = 1) - result_amount = 3 - - synaptizine - name = "Synaptizine" - id = "synaptizine" - result = "synaptizine" - required_reagents = list("sugar" = 1, "lithium" = 1, "water" = 1) - result_amount = 3 - - hyronalin - name = "Hyronalin" - id = "hyronalin" - result = "hyronalin" - required_reagents = list("radium" = 1, "anti_toxin" = 1) - result_amount = 2 - - arithrazine - name = "Arithrazine" - id = "arithrazine" - result = "arithrazine" - required_reagents = list("hyronalin" = 1, "hydrogen" = 1) - result_amount = 2 - - impedrezene - name = "Impedrezene" - id = "impedrezene" - result = "impedrezene" - required_reagents = list("mercury" = 1, "oxygen" = 1, "sugar" = 1) - result_amount = 2 - - kelotane - name = "Kelotane" - id = "kelotane" - result = "kelotane" - required_reagents = list("silicon" = 1, "carbon" = 1) - result_amount = 2 - peridaxon name = "Peridaxon" id = "peridaxon" result = "peridaxon" - required_reagents = list("bicaridine" = 2, "clonexadone" = 2) + required_reagents = list("styptic_powder" = 2, "clonexadone" = 2) required_catalysts = list("plasma" = 5) result_amount = 2 @@ -216,69 +155,13 @@ datum required_reagents = list("potassium" = 1, "oxygen" = 1, "sugar" = 1) result_amount = 3 - tricordrazine - name = "Tricordrazine" - id = "tricordrazine" - result = "tricordrazine" - required_reagents = list("inaprovaline" = 1, "anti_toxin" = 1) - result_amount = 2 - - alkysine - name = "Alkysine" - id = "alkysine" - result = "alkysine" - required_reagents = list("chlorine" = 1, "nitrogen" = 1, "anti_toxin" = 1) - result_amount = 2 - - dexalin - name = "Dexalin" - id = "dexalin" - result = "dexalin" - required_reagents = list("oxygen" = 2) - required_catalysts = list("plasma" = 5) - result_amount = 1 - - dermaline - name = "Dermaline" - id = "dermaline" - result = "dermaline" - required_reagents = list("oxygen" = 1, "phosphorus" = 1, "kelotane" = 1) - result_amount = 3 - - dexalinp - name = "Dexalin Plus" - id = "dexalinp" - result = "dexalinp" - required_reagents = list("dexalin" = 1, "carbon" = 1, "iron" = 1) - result_amount = 3 - - bicaridine - name = "Bicaridine" - id = "bicaridine" - result = "bicaridine" - required_reagents = list("inaprovaline" = 1, "carbon" = 1) - result_amount = 2 - - hyperzine - name = "Hyperzine" - id = "hyperzine" - result = "hyperzine" - required_reagents = list("sugar" = 1, "phosphorus" = 1, "sulfur" = 1,) - result_amount = 3 - - ryetalyn - name = "Ryetalyn" - id = "ryetalyn" - result = "ryetalyn" - required_reagents = list("arithrazine" = 1, "carbon" = 1) - result_amount = 2 - cryoxadone name = "Cryoxadone" id = "cryoxadone" result = "cryoxadone" required_reagents = list("cryostylane" = 1, "plasma" = 1, "acetone" = 1, "mutagen" = 1) result_amount = 4 + mix_message = "The solution bubbles softly." clonexadone name = "Clonexadone" @@ -292,30 +175,16 @@ datum name = "Spaceacillin" id = "spaceacillin" result = "spaceacillin" - required_reagents = list("cryptobiolin" = 1, "inaprovaline" = 1) - result_amount = 2 - - imidazoline - name = "imidazoline" - id = "imidazoline" - result = "imidazoline" - required_reagents = list("carbon" = 1, "hydrogen" = 1, "anti_toxin" = 1) + required_reagents = list("cryptobiolin" = 1, "epinephrine" = 1) result_amount = 2 inacusiate name = "inacusiate" id = "inacusiate" result = "inacusiate" - required_reagents = list("water" = 1, "carbon" = 1, "anti_toxin" = 1) + required_reagents = list("water" = 1, "carbon" = 1, "charcoal" = 1) result_amount = 2 - ethylredoxrazine - name = "Ethylredoxrazine" - id = "ethylredoxrazine" - result = "ethylredoxrazine" - required_reagents = list("oxygen" = 1, "anti_toxin" = 1, "carbon" = 1) - result_amount = 3 - glycerol name = "Glycerol" id = "glycerol" @@ -327,7 +196,7 @@ datum name = "Nitroglycerin" id = "nitroglycerin" result = "nitroglycerin" - required_reagents = list("glycerol" = 1, "pacid" = 1, "sacid" = 1) + required_reagents = list("glycerol" = 1, "facid" = 1, "sacid" = 1) result_amount = 2 on_reaction(var/datum/reagents/holder, var/created_volume) var/datum/effect/effect/system/reagents_explosion/e = new() @@ -343,6 +212,7 @@ datum result = "sodiumchloride" required_reagents = list("sodium" = 1, "chlorine" = 1, "water" = 1) result_amount = 3 + mix_message = "The solution crystallizes with a brief flare of light." flash_powder name = "Flash powder" @@ -364,27 +234,6 @@ datum continue C.Stun(5) - chloralhydrate - name = "Chloral Hydrate" - id = "chloralhydrate" - result = "chloralhydrate" - required_reagents = list("ethanol" = 1, "chlorine" = 3, "water" = 1) - result_amount = 1 - - stoxin - name = "Sleep Toxin" - id = "stoxin" - result = "stoxin" - required_reagents = list("chloralhydrate" = 1, "sugar" = 4) - result_amount = 5 - - zombiepowder - name = "Zombie Powder" - id = "zombiepowder" - result = "zombiepowder" - required_reagents = list("carpotoxin" = 5, "stoxin" = 5, "copper" = 5) - result_amount = 2 - rezadone name = "Rezadone" id = "rezadone" @@ -396,21 +245,14 @@ datum name = "Mindbreaker Toxin" id = "mindbreaker" result = "mindbreaker" - required_reagents = list("silicon" = 1, "hydrogen" = 1, "anti_toxin" = 1) + required_reagents = list("silicon" = 1, "hydrogen" = 1, "charcoal" = 1) result_amount = 5 - lipozine - name = "Lipozine" - id = "Lipozine" - result = "lipozine" - required_reagents = list("sodiumchloride" = 1, "ethanol" = 1, "radium" = 1) - result_amount = 3 - plastication name = "Plastic" id = "solidplastic" result = null - required_reagents = list("pacid" = 10, "plasticide" = 20) + required_reagents = list("facid" = 10, "plasticide" = 20) result_amount = 1 on_reaction(var/datum/reagents/holder) var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/mineral/plastic @@ -515,7 +357,7 @@ datum name = "Metal Foam" id = "metalfoam" result = null - required_reagents = list("aluminum" = 3, "foaming_agent" = 1, "pacid" = 1) + required_reagents = list("aluminum" = 3, "foaming_agent" = 1, "facid" = 1) result_amount = 5 on_reaction(var/datum/reagents/holder, var/created_volume) @@ -535,7 +377,7 @@ datum name = "Iron Foam" id = "ironlfoam" result = null - required_reagents = list("iron" = 3, "foaming_agent" = 1, "pacid" = 1) + required_reagents = list("iron" = 3, "foaming_agent" = 1, "facid" = 1) result_amount = 5 on_reaction(var/datum/reagents/holder, var/created_volume) @@ -635,9 +477,9 @@ datum slimeinaprov - name = "Slime Inaprovaline" - id = "m_inaprov" - result = "inaprovaline" + name = "Slime Epinephrine" + id = "m_epinephrine" + result = "epinephrine" required_reagents = list("water" = 5) result_amount = 3 required_other = 1 @@ -1442,7 +1284,7 @@ datum name = "The Doctor's Delight" id = "doctordelight" result = "doctorsdelight" - required_reagents = list("limejuice" = 1, "tomatojuice" = 1, "orangejuice" = 1, "cream" = 1, "tricordrazine" = 1) + required_reagents = list("limejuice" = 1, "tomatojuice" = 1, "orangejuice" = 1, "cream" = 1) result_amount = 5 irish_cream @@ -1698,7 +1540,7 @@ datum name = "Neurotoxin" id = "neurotoxin" result = "neurotoxin" - required_reagents = list("gargleblaster" = 1, "stoxin" = 1) + required_reagents = list("gargleblaster" = 1, "morphine" = 1) result_amount = 2 snowwhite diff --git a/code/modules/reagents/dartgun.dm b/code/modules/reagents/dartgun.dm index 151b6ea1841..277a7c9708b 100644 --- a/code/modules/reagents/dartgun.dm +++ b/code/modules/reagents/dartgun.dm @@ -294,10 +294,10 @@ desc = "A small gas-powered dartgun, fitted for nonhuman hands." /obj/item/weapon/gun/dartgun/vox/medical - starting_chems = list("kelotane","bicaridine","anti_toxin") + starting_chems = list("silver_sulfadiazine","styptic_powder","charcoal") /obj/item/weapon/gun/dartgun/vox/raider - starting_chems = list("space_drugs","stoxin","impedrezene") + starting_chems = list("space_drugs","morphine","haloperidol") /obj/effect/syringe_gun_dummy //moved this shitty thing here name = "" diff --git a/code/modules/reagents/newchem/drugs.dm b/code/modules/reagents/newchem/drugs.dm index c9f51162080..d31da3512d2 100644 --- a/code/modules/reagents/newchem/drugs.dm +++ b/code/modules/reagents/newchem/drugs.dm @@ -18,8 +18,11 @@ datum/reagent/nicotine/on_mob_life(var/mob/living/M as mob) var/smoke_message = pick("You can just feel your lungs dying!", "You feel relaxed.", "You feel calmed.", "You feel the lung cancer forming.", "You feel the money you wasted.", "You feel like a space cowboy.", "You feel rugged.") if(prob(5)) M << "[smoke_message]" - M.AdjustStunned(-1) - M.adjustStaminaLoss(-1*REM) + if(prob(50)) + M.AdjustParalysis(-1) + M.AdjustStunned(-1) + M.AdjustWeakened(-1) + M.adjustStaminaLoss(-1*REM) ..() return @@ -84,12 +87,19 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob) mix_message = "The mixture violently reacts, leaving behind a few crystalline shards." required_temp = 390 +/datum/chemical_reaction/crank/on_reaction(var/datum/reagents/holder, var/created_volume) + var/turf/T = get_turf(holder.my_atom) + for(var/turf/turf in range(1,T)) + new /obj/fire(turf) + explosion(T,0,0,2) + return + /datum/reagent/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." + description = "A sketchy homemade opiate, often used by disgruntled Cosmonauts." reagent_state = LIQUID - color = "#60A584" // rgb: 96, 165, 132 + color = "#0264B4" overdose_threshold = 20 addiction_threshold = 15 @@ -157,10 +167,10 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob) var/high_message = pick("You feel hyper.", "You feel like you need to go faster.", "You feel like you can run the world.") if(prob(5)) M << "[high_message]" - M.AdjustParalysis(-3) - M.AdjustStunned(-3) - M.AdjustWeakened(-3) - M.adjustStaminaLoss(-3) + M.AdjustParalysis(-2) + M.AdjustStunned(-2) + M.AdjustWeakened(-2) + M.adjustStaminaLoss(-2) M.status_flags |= GOTTAGOREALLYFAST M.Jitter(3) M.adjustBrainLoss(0.5) @@ -170,9 +180,6 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob) return /datum/reagent/methamphetamine/overdose_process(var/mob/living/M as mob) - if(M.canmove && !istype(M.loc, /turf/space)) - for(var/i = 0, i < 4, i++) - step(M, pick(cardinal)) if(prob(20)) M.emote("laugh") if(prob(33)) @@ -200,9 +207,6 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob) ..() return /datum/reagent/methamphetamine/addiction_act_stage3(var/mob/living/M as mob) - if(M.canmove && !istype(M.loc, /turf/space)) - for(var/i = 0, i < 4, i++) - step(M, pick(cardinal)) M.Jitter(15) M.Dizzy(15) if(prob(40)) @@ -210,9 +214,6 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob) ..() return /datum/reagent/methamphetamine/addiction_act_stage4(var/mob/living/carbon/human/M as mob) - if(M.canmove && !istype(M.loc, /turf/space)) - for(var/i = 0, i < 8, i++) - step(M, pick(cardinal)) M.Jitter(20) M.Dizzy(20) M.adjustToxLoss(5) @@ -346,13 +347,13 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob) name = "aranesp" id = "aranesp" result = "aranesp" - required_reagents = list("epinephrine" = 1, "atropine" = 1, "morphine" = 1) + required_reagents = list("epinephrine" = 1, "atropine" = 1, "insulin" = 1) result_amount = 3 /datum/reagent/aranesp name = "Aranesp" id = "aranesp" - description = "Amps you up and gets you going, fixes all stamina damage you might have but can cause toxin and oxygen damage.." + description = "An illegal performance enhancing drug. Side effects might include chest pain, seizures, swelling, headache, fever... ... ..." reagent_state = LIQUID color = "#60A584" // rgb: 96, 165, 132 @@ -368,3 +369,20 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob) M.adjustOxyLoss(20) ..() return + +/datum/reagent/thc + name = "Tetrahydrocannabinol" + id = "thc" + description = "A mild psychoactive chemical extracted from the cannabis plant." + reagent_state = LIQUID + color = "#0FBE0F" + + +/datum/reagent/thc/on_mob_life(var/mob/living/M as mob) + if(!M) M = holder.my_atom + if(prob(8)) + M.emote(pick("smile","giggle","laugh")) + if(prob(50)) + M.stuttering += 2 + ..() + return \ No newline at end of file diff --git a/code/modules/reagents/newchem/food.dm b/code/modules/reagents/newchem/food.dm new file mode 100644 index 00000000000..3e4c4dbbce4 --- /dev/null +++ b/code/modules/reagents/newchem/food.dm @@ -0,0 +1,76 @@ +datum/reagent/egg + name = "Egg" + id = "egg" + description = "A runny and viscous mixture of clear and yellow fluids." + reagent_state = LIQUID + color = "#F0C814" + +datum/reagent/egg/on_mob_life(var/mob/living/M as mob) + if(!M) M = holder.my_atom + if(prob(5)) + M.emote("fart") + ..() + return + +datum/reagent/triple_citrus + name = "Triple Citrus" + id = "triple_citrus" + description = "A solution." + reagent_state = LIQUID + color = "#C8A5DC" + +/datum/chemical_reaction/triple_citrus + name = "triple_citrus" + id = "triple_citrus" + result = "triple_citrus" + required_reagents = list("lemonjuice" = 1, "limejuice" = 1, "orangejuice" = 1) + result_amount = 5 + +datum/reagent/corn_starch + name = "Corn Starch" + id = "corn_starch" + description = "The powdered starch of maize, derived from the kernel's endosperm. Used as a thickener for gravies and puddings." + reagent_state = LIQUID + color = "#C8A5DC" + +/datum/chemical_reaction/corn_syrup + name = "corn_syrup" + id = "corn_syrup" + result = "corn_syrup" + required_reagents = list("corn_starch" = 1, "sacid" = 1) + result_amount = 2 + required_temp = 374 + +datum/reagent/corn_syrup + name = "Corn Syrup" + id = "corn_syrup" + description = "A sweet syrup derived from corn starch that has had its starches converted into maltose and other sugars." + reagent_state = LIQUID + color = "#C8A5DC" + +datum/reagent/corn_syrup/on_mob_life(var/mob/living/M as mob) + if(!M) M = holder.my_atom + M.reagents.add_reagent("sugar", 1.2) + ..() + return + +/datum/chemical_reaction/vhfcs + name = "vhfcs" + id = "vhfcs" + result = "vhfcs" + required_reagents = list("corn_syrup" = 1) + required_catalysts = list("enzyme" = 1) + result_amount = 1 + +datum/reagent/vhfcs + name = "Very-high-fructose corn syrup" + id = "vhfcs" + description = "An incredibly sweet syrup, created from corn syrup treated with enzymes to convert its sugars into fructose." + reagent_state = LIQUID + color = "#C8A5DC" + +datum/reagent/vhfcs/on_mob_life(var/mob/living/M as mob) + if(!M) M = holder.my_atom + M.reagents.add_reagent("sugar", 2.4) + ..() + return \ No newline at end of file diff --git a/code/modules/reagents/newchem/medicine.dm b/code/modules/reagents/newchem/medicine.dm index 2ad2c3708ec..77720840bbc 100644 --- a/code/modules/reagents/newchem/medicine.dm +++ b/code/modules/reagents/newchem/medicine.dm @@ -7,9 +7,9 @@ datum/reagent/silver_sulfadiazine name = "Silver Sulfadiazine" id = "silver_sulfadiazine" - description = "On touch, quickly heals burn damage. Basic anti-burn healing drug. On ingestion, deals minor toxin damage." + description = "This antibacterial compound is used to treat burn victims." reagent_state = LIQUID - color = "#C8A5DC" + color = "#F0C814" metabolization_rate = 2 datum/reagent/silver_sulfadiazine/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume, var/show_message = 1) @@ -17,11 +17,11 @@ datum/reagent/silver_sulfadiazine/reaction_mob(var/mob/living/M as mob, var/meth if(method == TOUCH) M.adjustFireLoss(-volume) if(show_message) - M << "You feel your burns healing!" + M << "The silver sulfadiazine soothes your burns." if(method == INGEST) M.adjustToxLoss(0.5*volume) if(show_message) - M << "You probably shouldn't have eaten that. Maybe you should of splashed it on, or applied a patch?" + M << "You feel sick..." ..() return @@ -34,7 +34,7 @@ datum/reagent/silver_sulfadiazine/on_mob_life(var/mob/living/M as mob) datum/reagent/styptic_powder name = "Styptic Powder" id = "styptic_powder" - description = "On touch, quickly heals brute damage. Basic anti-brute healing drug. On ingestion, deals minor toxin damage." + description = "Styptic (aluminium sulfate) powder helps control bleeding and heal physical wounds." reagent_state = LIQUID color = "#C8A5DC" metabolization_rate = 2 @@ -44,12 +44,12 @@ datum/reagent/styptic_powder/reaction_mob(var/mob/living/M as mob, var/method=TO if(method == TOUCH) M.adjustBruteLoss(-volume) if(show_message) - M << "You feel your wounds knitting back together!" + M << "The styptic powder stings like hell as it closes some of your wounds!" M.emote("scream") if(method == INGEST) M.adjustToxLoss(0.5*volume) if(show_message) - M << "You probably shouldn't have eaten that. Maybe you should of splashed it on, or applied a patch?" + M << "You feel gross!" ..() return @@ -63,7 +63,7 @@ datum/reagent/styptic_powder/on_mob_life(var/mob/living/M as mob) datum/reagent/salglu_solution name = "Saline-Glucose Solution" id = "salglu_solution" - description = "Has a 33% chance per metabolism cycle to heal brute and burn damage." + description = "This saline and glucose solution can help stabilize critically injured patients and cleanse wounds." reagent_state = LIQUID color = "#C8A5DC" metabolization_rate = 0.15 @@ -79,9 +79,9 @@ datum/reagent/salglu_solution/on_mob_life(var/mob/living/M as mob) datum/reagent/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." + description = "A resorbable microfibrillar collagen and protein mixture that can rapidly heal injuries when applied topically." reagent_state = LIQUID - color = "#C8A5DC" + color = "#FFEBEB" datum/reagent/synthflesh/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume,var/show_message = 1) if(!M) M = holder.my_atom @@ -90,14 +90,14 @@ datum/reagent/synthflesh/reaction_mob(var/mob/living/M, var/method=TOUCH, var/vo M.adjustBruteLoss(-1.5*volume) M.adjustFireLoss(-1.5*volume) if(show_message) - M << "You feel your burns healing and your flesh knitting together!" + M << "The synthetic flesh integrates itself into your wounds, healing you." ..() return datum/reagent/charcoal name = "Charcoal" id = "charcoal" - description = "Heals toxin damage, and will also slowly remove any other chemicals." + description = "Activated charcoal helps to absorb toxins." reagent_state = LIQUID color = "#C8A5DC" @@ -125,6 +125,7 @@ datum/reagent/charcoal/on_mob_life(var/mob/living/M as mob) result = "silver_sulfadiazine" required_reagents = list("ammonia" = 1, "silver" = 1, "sulfur" = 1, "oxygen" = 1, "chlorine" = 1) result_amount = 5 + mix_message = "A strong and cloying odor begins to bubble from the mixture." /datum/chemical_reaction/salglu_solution name = "Saline-Glucose Solution" @@ -151,7 +152,7 @@ datum/reagent/charcoal/on_mob_life(var/mob/living/M as mob) datum/reagent/omnizine name = "Omnizine" id = "omnizine" - description = "Heals 1 of each damage type a cycle. If overdosed it will deal significant amounts of each damage type." + description = "Omnizine is a highly potent healing medication that can be used to treat a wide range of injuries." reagent_state = LIQUID color = "#C8A5DC" metabolization_rate = 0.2 @@ -177,9 +178,9 @@ datum/reagent/omnizine/overdose_process(var/mob/living/M as mob) datum/reagent/calomel name = "Calomel" id = "calomel" - description = "Quickly purges the body of all chemicals. If your health is above 20, toxin damage is dealt. When you hit 20 health or lower, the damage will cease." + description = "This potent purgative rids the body of impurities. It is highly toxic however and close supervision is required." reagent_state = LIQUID - color = "#C8A5DC" + color = "#1EA532" datum/reagent/calomel/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -204,9 +205,9 @@ datum/reagent/calomel/on_mob_life(var/mob/living/M as mob) datum/reagent/potass_iodide name = "Potassium Iodide" id = "potass_iodide" - description = "Reduces low radiation damage very effectively." + description = "Potassium Iodide is a medicinal drug used to counter the effects of radiation poisoning." reagent_state = LIQUID - color = "#C8A5DC" + color = "#B4DCBE" datum/reagent/potass_iodide/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -224,11 +225,12 @@ datum/reagent/potass_iodide/on_mob_life(var/mob/living/M as mob) result = "potass_iodide" required_reagents = list("potassium" = 1, "iodine" = 1) result_amount = 2 + mix_message = "The solution settles calmly and emits gentle fumes." datum/reagent/pen_acid name = "Pentetic Acid" id = "pen_acid" - description = "Reduces massive amounts of radiation and toxin damage while purging other chemicals from the body. Has a chance of dealing brute damage." + description = "Pentetic Acid is an aggressive chelation agent. May cause tissue damage. Use with caution." reagent_state = LIQUID color = "#C8A5DC" @@ -254,11 +256,12 @@ datum/reagent/pen_acid/on_mob_life(var/mob/living/M as mob) result = "pen_acid" required_reagents = list("fuel" = 1, "chlorine" = 1, "ammonia" = 1, "formaldehyde" = 1, "sodium" = 1, "cyanide" = 1) result_amount = 6 + mix_message = "The substance becomes very still, emitting a curious haze." datum/reagent/sal_acid name = "Salicylic Acid" id = "sal_acid" - description = "If you have less than 50 brute damage, there is a 50% chance to heal one unit. If overdosed it will have a 50% chance to deal 2 brute damage if the patient has less than 50 brute damage already." + description = "This is a is a standard salicylate pain reliever and fever reducer." reagent_state = LIQUID color = "#C8A5DC" overdose_threshold = 25 @@ -284,13 +287,14 @@ datum/reagent/sal_acid/overdose_process(var/mob/living/M as mob) result = "sal_acid" required_reagents = list("sodium" = 1, "phenol" = 1, "carbon" = 1, "oxygen" = 1, "sacid" = 1) result_amount = 5 + mix_message = "The mixture crystallizes." datum/reagent/salbutamol name = "Salbutamol" id = "salbutamol" - description = "Quickly heals oxygen damage while slowing down suffocation. Great for stabilizing critical patients!" + description = "Salbutamol is a common bronchodilation medication for asthmatics. It may help with other breathing problems as well." reagent_state = LIQUID - color = "#C8A5DC" + color = "#A5F0EE" metabolization_rate = 0.2 datum/reagent/salbutamol/on_mob_life(var/mob/living/M as mob) @@ -307,11 +311,12 @@ datum/reagent/salbutamol/on_mob_life(var/mob/living/M as mob) result = "salbutamol" required_reagents = list("sal_acid" = 1, "lithium" = 1, "aluminum" = 1, "bromine" = 1, "ammonia" = 1) result_amount = 5 + mix_message = "The solution bubbles freely, creating a head of bluish foam." datum/reagent/perfluorodecalin name = "Perfluorodecalin" id = "perfluorodecalin" - description = "Heals suffocation damage so quickly that you could have a spacewalk, but it mutes your voice. Has a 33% chance of healing brute and burn damage per cycle as well." + description = "This experimental perfluoronated solvent has applications in liquid breathing and tissue oxygenation. Use with caution." reagent_state = LIQUID color = "#C8A5DC" metabolization_rate = 0.2 @@ -338,7 +343,7 @@ datum/reagent/perfluorodecalin/on_mob_life(var/mob/living/carbon/human/M as mob) datum/reagent/ephedrine name = "Ephedrine" id = "ephedrine" - description = "Reduces stun times, increases run speed. If overdosed it will deal toxin and oxyloss damage." + description = "Ephedrine is a plant-derived stimulant." reagent_state = LIQUID color = "#C8A5DC" metabolization_rate = 0.3 @@ -397,9 +402,9 @@ datum/reagent/ephedrine/addiction_act_stage4(var/mob/living/M as mob) datum/reagent/diphenhydramine name = "Diphenhydramine" id = "diphenhydramine" - description = "Purges body of lethal Histamine and reduces jitteriness while causing minor drowsiness." + description = "Anti-allergy medication. May cause drowsiness, do not operate heavy machinery while using this." reagent_state = LIQUID - color = "#C8A5DC" + color = "#A5F0EE" datum/reagent/diphenhydramine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.drowsyness += 1 @@ -414,12 +419,12 @@ datum/reagent/diphenhydramine/on_mob_life(var/mob/living/M as mob) result = "diphenhydramine" required_reagents = list("oil" = 1, "carbon" = 1, "bromine" = 1, "diethylamine" = 1, "ethanol" = 1) result_amount = 4 - mix_message = "The mixture dries into a pale blue powder." + mix_message = "The mixture fizzes gently." datum/reagent/morphine name = "Morphine" id = "morphine" - description = "Will allow you to ignore slowdown from equipment and damage. Will eventually knock you out if you take too much. If overdosed it will cause jitteriness, dizziness, force the victim to drop items in their hands and eventually deal toxin damage." + description = "A strong but highly addictive opiate painkiller with sedative side effects." reagent_state = LIQUID color = "#C8A5DC" var/cycle_count = 0 @@ -502,14 +507,14 @@ datum/reagent/oculine/on_mob_life(var/mob/living/M as mob) name = "Oculine" id = "oculine" result = "oculine" - required_reagents = list("charcoal" = 1, "carbon" = 1, "hydrogen" = 1) + required_reagents = list("atropine" = 1, "spaceacillin" = 1, "salglu_solution" = 1) result_amount = 3 - mix_message = "The mixture sputters loudly and becomes a pale pink color." + mix_message = "The mixture settles, becoming a milky white." datum/reagent/oculine name = "Oculine" id = "oculine" - description = "Cures blindness and heals eye damage over time." + description = "Oculine is a saline eye medication with mydriatic and antibiotic effects." reagent_state = LIQUID color = "#C8A5DC" metabolization_rate = 0.4 @@ -518,9 +523,9 @@ datum/reagent/oculine datum/reagent/atropine name = "Atropine" id = "atropine" - description = "If patients health is below -25 it will heal 3 brute and burn damage per cycle, as well as stop any oxyloss. Good for stabilising critical patients." + description = "Atropine is a potent cardiac resuscitant but it can causes confusion, dizzyness and hyperthermia." reagent_state = LIQUID - color = "#C8A5DC" + color = "#000000" metabolization_rate = 0.2 overdose_threshold = 35 @@ -556,11 +561,12 @@ datum/reagent/atropine/overdose_process(var/mob/living/M as mob) result = "atropine" required_reagents = list("ethanol" = 1, "acetone" = 1, "diethylamine" = 1, "phenol" = 1, "sacid" = 1) result_amount = 5 + mix_message = "A horrid smell like something died drifts from the mixture." datum/reagent/epinephrine name = "Epinephrine" id = "epinephrine" - description = "Reduces most of the knockout/stun effects, minor stamina regeneration buff. Attempts to stop you taking too much oxygen damage. If the patient is in low to severe crit, heals toxins, brute, and burn very effectively. Will not heal patients who are almost dead. If overdosed will stun and deal toxin damage" + description = "Epinephrine is a potent neurotransmitter, used in medical emergencies to halt anaphylactic shock and prevent cardiac arrest." reagent_state = LIQUID color = "#C8A5DC" metabolization_rate = 0.2 @@ -578,11 +584,6 @@ datum/reagent/epinephrine/on_mob_life(var/mob/living/M as mob) M.losebreath -= 4 if(M.losebreath < 0) M.losebreath = 0 - M.adjustStaminaLoss(-1*REM) - if(prob(30)) - M.AdjustParalysis(-1) - M.AdjustStunned(-1) - M.AdjustWeakened(-1) ..() return @@ -600,22 +601,24 @@ datum/reagent/epinephrine/overdose_process(var/mob/living/M as mob) result = "epinephrine" required_reagents = list("phenol" = 1, "acetone" = 1, "diethylamine" = 1, "oxygen" = 1, "chlorine" = 1, "hydrogen" = 1) result_amount = 6 + mix_message = "Tiny white crystals precipitate out of the solution." datum/reagent/strange_reagent name = "Strange Reagent" id = "strange_reagent" - description = "A miracle drug that can bring a dead body back to life! If the corpse has suffered too much damage, however, no change will occur to the body. If used on a living person it will deal Brute and Burn damage." + description = "A glowing green fluid highly reminiscent of nuclear waste." reagent_state = LIQUID - color = "#C8A5DC" + color = "#60A584" datum/reagent/strange_reagent/reaction_mob(var/mob/living/carbon/human/M as mob, var/method=TOUCH, var/volume) if(M.stat == DEAD) if(M.getBruteLoss() >= 100 || M.getFireLoss() >= 100) - M.visible_message("[M]'s body convulses a bit, and then falls still once more.") + M.visible_message("[M]'s body starts convulsing!") + M.gib() return var/mob/dead/observer/ghost = M.get_ghost() - M.visible_message("[M]'s body convulses a bit.") if(!M.suiciding && !ghost && !(NOCLONE in M.mutations)) + M.visible_message("[M]'s appears to rise from the dead!") M.stat = 1 M.adjustOxyLoss(-20) M.adjustToxLoss(-20) @@ -721,12 +724,12 @@ proc/chemical_mob_spawn(var/datum/reagents/holder, var/amount_to_spawn, var/reac result = "mannitol" required_reagents = list("sugar" = 1, "hydrogen" = 1, "water" = 1) result_amount = 3 - mix_message = "The solution slightly bubbles, becoming thicker." + mix_message = "The mixture bubbles slowly, making a slightly sweet odor." /datum/reagent/mannitol name = "Mannitol" id = "mannitol" - description = "Heals brain damage effectively. Use it in cyro tubes alongside Cryoxadone." + description = "Mannitol is a sugar alcohol that can help alleviate cranial swelling." color = "#C8A5DC" /datum/reagent/mutadone/on_mob_life(var/mob/living/carbon/human/M as mob) @@ -753,19 +756,20 @@ proc/chemical_mob_spawn(var/datum/reagents/holder, var/amount_to_spawn, var/reac result = "mutadone" required_reagents = list("mutagen" = 1, "acetone" = 1, "bromine" = 1) result_amount = 3 + mix_message = "A foul astringent liquid emerges from the reaction." /datum/reagent/mutadone name = "Mutadone" id = "mutadone" - description = "Heals your genetic defects." - color = "#C8A5DC" + description = "Mutadone is an experimental bromide that can cure genetic abnomalities." + color = "#5096C8" datum/reagent/antihol name = "Antihol" id = "antihol" - description = "Helps remove Alcohol from someone's body, as well as eliminating its side effects." - color = "#C8A5DC" + description = "A medicine which quickly eliminates alcohol in the body." + color = "#009CA8" datum/reagent/antihol/on_mob_life(var/mob/living/M as mob) M.dizziness = 0 @@ -781,13 +785,7 @@ datum/reagent/antihol/on_mob_life(var/mob/living/M as mob) result = "antihol" required_reagents = list("ethanol" = 1, "charcoal" = 1) result_amount = 2 - -/datum/chemical_reaction/cryoxadone - name = "Cryoxadone" - id = "cryoxadone" - result = "cryoxadone" - required_reagents = list("plasma" = 1, "acetone" = 1, "mutagen" = 1) - result_amount = 3 + mix_message = "A minty and refreshing smell drifts from the effervescent mixture." /datum/reagent/stimulants name = "Stimulants" @@ -819,13 +817,85 @@ datum/reagent/stimulants/reagent_deleted(var/mob/living/M as mob) datum/reagent/insulin name = "Insulin" id = "insulin" - description = "Increases sugar depletion rates." + description = "A hormone generated by the pancreas responsible for metabolizing carbohydrates and fat in the bloodstream." reagent_state = LIQUID color = "#C8A5DC" datum/reagent/insulin/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - if(M.sleeping) - M.sleeping-- M.reagents.remove_reagent("sugar", 5) ..() return + + +/datum/reagent/simethicone + name = "Simethicone" + id = "simethicone" + description = "This strange liquid seems to have no bubbles on the surface." + color = "#14AA46" + +/datum/chemical_reaction/Simethicone + name = "Simethicone" + id = "simethicone" + result = "simethicone" + required_reagents = list("hydrogen" = 1, "chlorine" = 1, "silicon" = 1, "oxygen" = 1) + result_amount = 4 + + +datum/reagent/teporone + name = "Teporone" + id = "teporone" + description = "This experimental plasma-based compound seems to regulate body temperature." + reagent_state = LIQUID + color = "#D782E6" + +datum/reagent/teporone/on_mob_life(var/mob/living/M as mob) + if(!M) M = holder.my_atom + M.bodytemperature = 310 + ..() + return + +/datum/chemical_reaction/teporone + name = "Teporone" + id = "teporone" + result = "teporone" + required_reagents = list("acetone" = 1, "silicon" = 1, "plasma" = 1) + result_amount = 2 + mix_message = "The mixture turns an odd lavender color." + +datum/reagent/haloperidol + name = "Haloperidol" + id = "haloperidol" + description = "Haloperidol is a powerful antipsychotic and sedative. Will help control psychiatric problems, but may cause brain damage." + reagent_state = LIQUID + color = "#FFDCFF" + +datum/reagent/haloperidol/on_mob_life(var/mob/living/M as mob) + if(!M) M = holder.my_atom + M.reagents.remove_reagent("crank",5) + M.reagents.remove_reagent("methamphetamine",5) + M.reagents.remove_reagent("space_drugs",5) + M.reagents.remove_reagent("psilocybin",5) + M.reagents.remove_reagent("ephedrine",5) + M.reagents.remove_reagent("epinephrine",5) + M.reagents.remove_reagent("stimulants",5) + M.reagents.remove_reagent("bath_salts",5) + M.reagents.remove_reagent("mindbreaker",5) + M.druggy -= 5 + M.hallucination -= 5 + M.jitteriness -= 5 + if(prob(40)) + M.drowsyness = max(M.drowsyness, 2) + if(prob(10)) + M.emote("drool") + if(prob(20)) + M.adjustBrainLoss(1) + ..() + return + +/datum/chemical_reaction/haloperidol + name = "Haloperidol" + id = "haloperidol" + result = "haloperidol" + required_reagents = list("chlorine" = 1, "fluorine" = 1, "aluminum" = 1, "potass_iodide" = 1, "oil" = 1) + result_amount = 4 + mix_message = "The chemicals mix into an odd pink slush." \ No newline at end of file diff --git a/code/modules/reagents/newchem/other.dm b/code/modules/reagents/newchem/other.dm index 1b336a8df66..3df9450e73b 100644 --- a/code/modules/reagents/newchem/other.dm +++ b/code/modules/reagents/newchem/other.dm @@ -119,17 +119,6 @@ datum/reagent/colorful_reagent required_reagents = list("plasma" = 1, "radium" = 1, "space_drugs" = 1, "cryoxadone" = 1, "triple_citrus" = 1) result_amount = 5 -datum/reagent/colorful_reagent/on_mob_life(var/mob/living/M as mob) - if(M && isliving(M)) - M.color = pick(random_color_list) - ..() - return - -datum/reagent/colorful_reagent/reaction_mob(var/mob/living/M, var/volume) - if(M && isliving(M)) - M.color = pick(random_color_list) - ..() - return datum/reagent/colorful_reagent/reaction_obj(var/obj/O, var/volume) if(O) O.color = pick(random_color_list) @@ -141,70 +130,6 @@ datum/reagent/colorful_reagent/reaction_turf(var/turf/T, var/volume) ..() return - -datum/reagent/triple_citrus - name = "Triple Citrus" - id = "triple_citrus" - description = "A solution." - reagent_state = LIQUID - color = "#C8A5DC" - -/datum/chemical_reaction/triple_citrus - name = "triple_citrus" - id = "triple_citrus" - result = "triple_citrus" - required_reagents = list("lemonjuice" = 1, "limejuice" = 1, "orangejuice" = 1) - result_amount = 5 - -datum/reagent/corn_starch - name = "Corn Starch" - id = "corn_starch" - description = "The powdered starch of maize, derived from the kernel's endosperm. Used as a thickener for gravies and puddings." - reagent_state = LIQUID - color = "#C8A5DC" - -/datum/chemical_reaction/corn_syrup - name = "corn_syrup" - id = "corn_syrup" - result = "corn_syrup" - required_reagents = list("corn_starch" = 1, "sacid" = 1) - result_amount = 2 - required_temp = 374 - -datum/reagent/corn_syrup - name = "Corn Syrup" - id = "corn_syrup" - description = "A sweet syrup derived from corn starch that has had its starches converted into maltose and other sugars." - reagent_state = LIQUID - color = "#C8A5DC" - -datum/reagent/corn_syrup/on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - M.reagents.add_reagent("sugar", 1.2) - ..() - return - -/datum/chemical_reaction/vhfcs - name = "vhfcs" - id = "vhfcs" - result = "vhfcs" - required_reagents = list("corn_syrup" = 1) - required_catalysts = list("enzyme" = 1) - result_amount = 1 - -datum/reagent/vhfcs - name = "Very-high-fructose corn syrup" - id = "vhfcs" - description = "An incredibly sweet syrup, created from corn syrup treated with enzymes to convert its sugars into fructose." - reagent_state = LIQUID - color = "#C8A5DC" - -datum/reagent/vhfcs/on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - M.reagents.add_reagent("sugar", 2.4) - ..() - return - /datum/chemical_reaction/corgium name = "corgium" id = "corgium" diff --git a/code/modules/reagents/newchem/pyro.dm b/code/modules/reagents/newchem/pyro.dm index 6699a688ffe..20f9036870a 100644 --- a/code/modules/reagents/newchem/pyro.dm +++ b/code/modules/reagents/newchem/pyro.dm @@ -7,9 +7,9 @@ /datum/reagent/stabilizing_agent name = "Stabilizing Agent" id = "stabilizing_agent" - description = "Keeps unstable chemicals stable. This does not work on everything." + description = "A chemical that stabilises normally volatile compounds, preventing them from reacting immediately." reagent_state = LIQUID - color = "#FFFFFF" + color = "#FFFF00" /datum/chemical_reaction/stabilizing_agent name = "stabilizing_agent" @@ -17,6 +17,7 @@ result = "stabilizing_agent" required_reagents = list("iron" = 1, "oxygen" = 1, "hydrogen" = 1) result_amount = 3 + mix_message = "The mixture becomes a yellow liquid!" /datum/reagent/clf3 name = "Chlorine Trifluoride" diff --git a/code/modules/reagents/newchem/toxins.dm b/code/modules/reagents/newchem/toxins.dm index 91fb49b6b31..4f22123c78b 100644 --- a/code/modules/reagents/newchem/toxins.dm +++ b/code/modules/reagents/newchem/toxins.dm @@ -44,6 +44,7 @@ datum/reagent/histamine/on_mob_life(var/mob/living/M as mob) M.adjustBruteLoss(2*REM) ..() return + datum/reagent/histamine/overdose_process(var/mob/living/M as mob) M.adjustOxyLoss(pick(1,3)*REM) M.adjustBruteLoss(pick(1,3)*REM) @@ -54,7 +55,7 @@ datum/reagent/histamine/overdose_process(var/mob/living/M as mob) datum/reagent/formaldehyde name = "Formaldehyde" id = "formaldehyde" - description = "Deals a moderate amount of Toxin damage over time. 10% chance to decay into 10-15 histamine." + description = "Formaldehyde is a common industrial chemical and is used to preserve corpses and medical samples. It is highly toxic and irritating." reagent_state = LIQUID color = "#CF3600" @@ -62,8 +63,7 @@ datum/reagent/formaldehyde/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustToxLoss(1*REM) if(prob(10)) - M.reagents.add_reagent("histamine",pick(5,15)) - M.reagents.remove_reagent("formaldehyde",1) + M.reagents.add_reagent("histamine",rand(5,15)) ..() return @@ -74,6 +74,7 @@ datum/reagent/formaldehyde/on_mob_life(var/mob/living/M as mob) required_reagents = list("ethanol" = 1, "oxygen" = 1, "silver" = 1) result_amount = 3 required_temp = 420 + mix_message = "Ugh, it smells like the morgue in here." datum/reagent/venom name = "Venom" @@ -82,32 +83,38 @@ datum/reagent/venom reagent_state = LIQUID color = "#CF3600" metabolization_rate = 0.2 + overdose_threshold = 40 + datum/reagent/venom/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustToxLoss((0.1*volume)*REM) M.adjustBruteLoss((0.1*volume)*REM) if(prob(25)) - M.reagents.add_reagent("histamine",pick(5,10)) - M.reagents.remove_reagent("venom",1) + M.reagents.add_reagent("histamine",rand(5,10)) + ..() + return + +datum/reagent/venom/overdose_process(var/mob/living/M as mob) + if(volume >= 40) + if(prob(4)) + M.gib() ..() return datum/reagent/neurotoxin2 name = "Neurotoxin" id = "neurotoxin2" - description = "Deals toxin and brain damage up to 60 before it slows down, causing confusion and a knockout after 17 elapsed cycles." + description = "A dangerous toxin that attacks the nervous system." reagent_state = LIQUID - color = "#CF3600" - var/cycle_count = 0 + color = "#60A584" metabolization_rate = 1 datum/reagent/neurotoxin2/on_mob_life(var/mob/living/M as mob) - cycle_count++ if(M.brainloss < 60) M.adjustBrainLoss(1*REM) M.adjustToxLoss(1*REM) - if(cycle_count == 17) - M.sleeping += 10 // buffed so it works + if(current_cycle >= 17) + M.Paralyse(10) ..() return @@ -122,7 +129,7 @@ datum/reagent/neurotoxin2/on_mob_life(var/mob/living/M as mob) datum/reagent/cyanide name = "Cyanide" id = "cyanide" - description = "Deals toxin damage, alongside some oxygen loss. 8% chance of stun and some extra toxin damage." + description = "A highly toxic chemical with some uses as a building block for other things." reagent_state = LIQUID color = "#CF3600" metabolization_rate = 0.1 @@ -146,6 +153,7 @@ datum/reagent/cyanide/on_mob_life(var/mob/living/M as mob) required_reagents = list("oil" = 1, "ammonia" = 1, "oxygen" = 1) result_amount = 3 required_temp = 380 + mix_message = "The mixture gives off a faint scent of almonds." /datum/reagent/questionmark // food poisoning name = "????" @@ -324,9 +332,9 @@ datum/reagent/initropidril/on_mob_life(var/mob/living/M as mob) datum/reagent/pancuronium name = "Pancuronium" id = "pancuronium" - description = "Knocks you out after 30 seconds, 7% chance to cause some oxygen loss." + description = "Pancuronium bromide is a powerful skeletal muscle relaxant." reagent_state = LIQUID - color = "#CF3600" + color = "#1E4664" metabolization_rate = 0.2 datum/reagent/pancuronium/on_mob_life(var/mob/living/M as mob) diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index afe56a4f731..47be3be3568 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -14,14 +14,14 @@ var/recharge_time = 5 //Time it takes for shots to recharge (in seconds) var/list/datum/reagents/reagent_list = list() - var/list/reagent_ids = list("doctorsdelight", "inaprovaline", "spaceacillin") - //var/list/reagent_ids = list("dexalin", "kelotane", "bicaridine", "anti_toxin", "inaprovaline", "spaceacillin") + var/list/reagent_ids = list("salglu_solution", "epinephrine", "spaceacillin") + //var/list/reagent_ids = list("salbutamol", "silver_sulfadiazine", "styptic_powder", "charcoal", "epinephrine", "spaceacillin") /obj/item/weapon/reagent_containers/borghypo/surgeon - reagent_ids = list("bicaridine", "inaprovaline", "dexalin") + reagent_ids = list("styptic_powder", "epinephrine", "salbutamol") /obj/item/weapon/reagent_containers/borghypo/crisis - reagent_ids = list("doctorsdelight", "inaprovaline", "tramadol") + reagent_ids = list("salglu_solution", "epinephrine", "tramadol") /obj/item/weapon/reagent_containers/borghypo/New() ..() @@ -78,7 +78,7 @@ user << "\blue You inject [M] with the injector." M << "\red You feel a tiny prick!" - R.reaction(M, INGEST) + R.reaction(M) if(M.reagents) var/trans = R.trans_to(M, amount_per_transfer_from_this) user << "\blue [trans] units injected. [R.total_volume] units remaining." diff --git a/code/modules/reagents/reagent_containers/drugs.dm b/code/modules/reagents/reagent_containers/drugs.dm index ffa14dd2bf0..d1c0fe2b449 100644 --- a/code/modules/reagents/reagent_containers/drugs.dm +++ b/code/modules/reagents/reagent_containers/drugs.dm @@ -147,4 +147,4 @@ /obj/item/weapon/reagent_containers/drugs/baggie/meth New() ..() - reagents.add_reagent("hyperzine", 10) \ No newline at end of file + reagents.add_reagent("methamphetamine", 10) \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/food/cans.dm b/code/modules/reagents/reagent_containers/food/cans.dm index a2eee3c62ed..208cfbf4629 100644 --- a/code/modules/reagents/reagent_containers/food/cans.dm +++ b/code/modules/reagents/reagent_containers/food/cans.dm @@ -181,7 +181,7 @@ ..() reagents.add_reagent("admorinazine", 5) reagents.add_reagent("capsaicin", 5) - reagents.add_reagent("hyperzine", 20) + reagents.add_reagent("methamphetamine", 20) reagents.add_reagent("thirteenloko", 20) src.pixel_x = rand(-10.0, 10) src.pixel_y = rand(-10.0, 10) @@ -205,7 +205,7 @@ New() ..() reagents.add_reagent("mutagen", 25) - reagents.add_reagent("anti_toxin", 10) + reagents.add_reagent("charcoal", 10) reagents.add_reagent("thirteenloko", 15) src.pixel_x = rand(-10.0, 10) src.pixel_y = rand(-10.0, 10) diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 82031837c90..23996ac4a7a 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -316,7 +316,7 @@ New() ..() reagents.add_reagent("nutriment", 8) - reagents.add_reagent("tricordrazine", 8) + reagents.add_reagent("omnizine", 8) bitesize = 3 /* @@ -457,7 +457,7 @@ if(9) reagents.add_reagent("berryjuice", 3) if(10) - reagents.add_reagent("tricordrazine", 3) + reagents.add_reagent("omnizine", 3) if(prob(30)) src.icon_state = "donut2" src.name = "Frosted Chaos Donut" @@ -524,6 +524,7 @@ New() ..() reagents.add_reagent("nutriment", 1) + reagents.add_reagent("egg", 5) throw_impact(atom/hit_atom) ..() @@ -649,7 +650,7 @@ New() ..() reagents.add_reagent("nutriment", 12) - reagents.add_reagent("stoxin", 3) + reagents.add_reagent("morphine", 3) bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/stuffing @@ -719,7 +720,7 @@ New() ..() reagents.add_reagent("nutriment", 12) - reagents.add_reagent("hyperzine", 5) + reagents.add_reagent("methamphetamine", 5) src.bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/xenomeat @@ -789,7 +790,7 @@ if (src.warm) spawn( 4200 ) src.warm = 0 - src.reagents.del_reagent("tricordrazine") + src.reagents.del_reagent("omnizine") src.name = "donk-pocket" return @@ -802,7 +803,7 @@ New() ..() reagents.add_reagent("nutriment", 6) - reagents.add_reagent("alkysine", 6) + reagents.add_reagent("mannitol", 6) bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/ghostburger @@ -1088,7 +1089,7 @@ name = "exceptional plump pie" desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!" reagents.add_reagent("nutriment", 8) - reagents.add_reagent("tricordrazine", 5) + reagents.add_reagent("omnizine", 5) bitesize = 2 else reagents.add_reagent("nutriment", 8) @@ -1282,7 +1283,7 @@ New() ..() reagents.add_reagent("nutriment", 4) - reagents.add_reagent("doctorsdelight", 5) + reagents.add_reagent("salglu_solution", 5) bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato @@ -1499,7 +1500,7 @@ ..() reagents.add_reagent("nutriment", 8) reagents.add_reagent("water", 5) - reagents.add_reagent("tricordrazine", 5) + reagents.add_reagent("omnizine", 5) bitesize = 5 /obj/item/weapon/reagent_containers/food/snacks/mysterysoup @@ -1524,7 +1525,7 @@ if(3) reagents.add_reagent("nutriment", 5) reagents.add_reagent("water", 5) - reagents.add_reagent("tricordrazine", 5) + reagents.add_reagent("omnizine", 5) if(4) reagents.add_reagent("nutriment", 5) reagents.add_reagent("water", 10) @@ -1546,7 +1547,7 @@ if(10) reagents.add_reagent("nutriment", 6) reagents.add_reagent("tomatojuice", 5) - reagents.add_reagent("imidazoline", 5) + reagents.add_reagent("oculine", 5) bitesize = 5 /obj/item/weapon/reagent_containers/food/snacks/wishsoup @@ -1860,7 +1861,7 @@ ..() reagents.add_reagent("nutriment", 10) reagents.add_reagent("tomatojuice", 5) - reagents.add_reagent("imidazoline", 5) + reagents.add_reagent("oculine", 5) reagents.add_reagent("water", 5) bitesize = 10 @@ -2021,7 +2022,7 @@ New() ..() reagents.add_reagent("nutriment", 3) - reagents.add_reagent("imidazoline", 3) + reagents.add_reagent("oculine", 3) bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/superbiteburger @@ -2146,7 +2147,7 @@ name = "exceptional plump helmet biscuit" desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!" reagents.add_reagent("nutriment", 8) - reagents.add_reagent("tricordrazine", 5) + reagents.add_reagent("omnizine", 5) bitesize = 2 else reagents.add_reagent("nutriment", 5) @@ -2211,7 +2212,7 @@ New() ..() reagents.add_reagent("nutriment", 8) - reagents.add_reagent("doctorsdelight", 5) + reagents.add_reagent("omnizine", 5) bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/appletart @@ -2383,7 +2384,7 @@ New() ..() reagents.add_reagent("nutriment", 25) - reagents.add_reagent("imidazoline", 10) + reagents.add_reagent("oculine", 10) bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/carrotcakeslice @@ -2404,7 +2405,7 @@ New() ..() reagents.add_reagent("nutriment", 25) - reagents.add_reagent("alkysine", 10) + reagents.add_reagent("mannitol", 10) bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/braincakeslice @@ -2746,7 +2747,7 @@ ..() reagents.add_reagent("nutriment", 30) reagents.add_reagent("tomatojuice", 6) - reagents.add_reagent("imidazoline", 12) + reagents.add_reagent("oculine", 12) bitesize = 2 /obj/item/weapon/reagent_containers/food/snacks/vegetablepizzaslice @@ -3026,7 +3027,7 @@ New() ..() reagents.add_reagent("nutriment", 12) - reagents.add_reagent("stoxin", 3) + reagents.add_reagent("morphine", 3) bitesize = 3 /obj/item/weapon/reagent_containers/food/snacks/stuffing diff --git a/code/modules/reagents/reagent_containers/food/snacks/candy.dm b/code/modules/reagents/reagent_containers/food/snacks/candy.dm index bd593340012..22b5f10e73d 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/candy.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/candy.dm @@ -704,7 +704,7 @@ New() ..() - reagents.add_reagent("tricordrazine", 20) + reagents.add_reagent("omnizine", 20) reagents.del_reagent("sugar") reagents.update_total() bitesize = 4 diff --git a/code/modules/reagents/reagent_containers/glass/bottle.dm b/code/modules/reagents/reagent_containers/glass/bottle.dm index 72ad5b32575..7083019f866 100644 --- a/code/modules/reagents/reagent_containers/glass/bottle.dm +++ b/code/modules/reagents/reagent_containers/glass/bottle.dm @@ -55,29 +55,6 @@ var/image/lid = image(icon, src, "lid_bottle") overlays += lid -/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline - name = "inaprovaline bottle" - desc = "A small bottle. Contains inaprovaline - used to stabilize patients." - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle16" - - New() - ..() - reagents.add_reagent("inaprovaline", 30) - - -/obj/item/weapon/reagent_containers/glass/bottle/hyperzine - name = "hyperzine bottle" - desc = "A small bottle. Contains hyperzine - a powerful stimulant." - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle18" - - New() - ..() - reagents.add_reagent("hyperzine", 30) - - - /obj/item/weapon/reagent_containers/glass/bottle/toxin name = "toxin bottle" desc = "A small bottle of toxins. Do not drink, it is poisonous." @@ -98,36 +75,6 @@ ..() reagents.add_reagent("cyanide", 30) -/obj/item/weapon/reagent_containers/glass/bottle/stoxin - name = "sleep-toxin bottle" - desc = "A small bottle of sleep toxins. Just the fumes make you sleepy." - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle20" - - New() - ..() - reagents.add_reagent("stoxin", 30) - -/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate - name = "Chloral Hydrate Bottle" - desc = "A small bottle of Choral Hydrate. Mickey's Favorite!" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle20" - - New() - ..() - reagents.add_reagent("chloralhydrate", 15) //Intentionally low since it is so strong. Still enough to knock someone out. - -/obj/item/weapon/reagent_containers/glass/bottle/antitoxin - name = "anti-toxin bottle" - desc = "A small bottle of Anti-toxins. Counters poisons, and repairs damage, a wonder drug." - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle17" - - New() - ..() - reagents.add_reagent("anti_toxin", 30) - /obj/item/weapon/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." @@ -158,14 +105,14 @@ ..() reagents.add_reagent("diethylamine", 30) -/obj/item/weapon/reagent_containers/glass/bottle/pacid - name = "Polytrinic Acid Bottle" - desc = "A small bottle. Contains a small amount of Polytrinic Acid" +/obj/item/weapon/reagent_containers/glass/bottle/facid + name = "Fluorosulfuric Acid Bottle" + desc = "A small bottle. Contains a small amount of Fluorosulfuric Acid" icon = 'icons/obj/chemical.dmi' icon_state = "bottle17" New() ..() - reagents.add_reagent("pacid", 30) + reagents.add_reagent("facid", 30) /obj/item/weapon/reagent_containers/glass/bottle/adminordrazine name = "Adminordrazine Bottle" @@ -201,4 +148,98 @@ icon_state = "bottle17" New() ..() - reagents.add_reagent("morphine", 30) \ No newline at end of file + reagents.add_reagent("morphine", 30) + +/obj/item/weapon/reagent_containers/glass/bottle/charcoal + name = "Charcoal Bottle" + desc = "A small bottle. Contains charcoal." + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle17" + New() + ..() + reagents.add_reagent("charcoal", 30) + +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine + name = "Epinephrine Bottle" + desc = "A small bottle. Contains epinephrine." + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle17" + New() + ..() + reagents.add_reagent("epinephrine", 30) + +/obj/item/weapon/reagent_containers/glass/bottle/pancuronium + name = "Pancuronium Bottle" + desc = "A small bottle of pancuronium." + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle14" + + New() + ..() + reagents.add_reagent("pancuronium", 30) + +/obj/item/weapon/reagent_containers/glass/bottle/sulfonal + name = "Sulfonal Bottle" + desc = "A small bottle of Sulfonal." + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle19" + + New() + ..() + reagents.add_reagent("sulfonal", 30) + +//Reagent bottles + +/obj/item/weapon/reagent_containers/glass/bottle/reagent + name = "Reagent Bottle" + desc = "A bottle for storing reagents" + icon_state = "rbottle" + volume = 50 + +/obj/item/weapon/reagent_containers/glass/bottle/reagent/oil + name = "Oil Bottle" + desc = "A reagent bottle. Contains oil." + icon_state = "rbottle1" + New() + ..() + reagents.add_reagent("oil", 50) + +/obj/item/weapon/reagent_containers/glass/bottle/reagent/phenol + name = "Phenol Bottle" + desc = "A reagent bottle. Contains phenol." + icon_state = "rbottle2" + New() + ..() + reagents.add_reagent("phenol", 50) + +/obj/item/weapon/reagent_containers/glass/bottle/reagent/acetone + name = "Acetone Bottle" + desc = "A reagent bottle. Contains acetone." + icon_state = "rbottle3" + New() + ..() + reagents.add_reagent("acetone", 50) + +/obj/item/weapon/reagent_containers/glass/bottle/reagent/ammonia + name = "Ammonia Bottle" + desc = "A reagent bottle. Contains ammonia." + icon_state = "rbottle4" + New() + ..() + reagents.add_reagent("ammonia", 50) + +/obj/item/weapon/reagent_containers/glass/bottle/reagent/diethylamine + name = "Diethylamine Bottle" + desc = "A reagent bottle. Contains diethylamine." + icon_state = "rbottle5" + New() + ..() + reagents.add_reagent("diethylamine", 50) + +/obj/item/weapon/reagent_containers/glass/bottle/reagent/acid + name = "Acid Bottle" + desc = "A reagent bottle. Contains sulfuric acid." + icon_state = "rbottle6" + New() + ..() + reagents.add_reagent("sacid", 50) \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/glass/bottle/robot.dm b/code/modules/reagents/reagent_containers/glass/bottle/robot.dm index 7c8bf02a5bb..cb6a7cb0a8a 100644 --- a/code/modules/reagents/reagent_containers/glass/bottle/robot.dm +++ b/code/modules/reagents/reagent_containers/glass/bottle/robot.dm @@ -7,27 +7,27 @@ var/reagent = "" -/obj/item/weapon/reagent_containers/glass/bottle/robot/inaprovaline - name = "internal inaprovaline bottle" - desc = "A small bottle. Contains inaprovaline - used to stabilize patients." +/obj/item/weapon/reagent_containers/glass/bottle/robot/epinephrine + name = "internal epinephrine bottle" + desc = "A small bottle. Contains epinephrine - used to stabilize patients." icon = 'icons/obj/chemical.dmi' icon_state = "bottle16" - reagent = "inaprovaline" + reagent = "epinephrine" New() ..() - reagents.add_reagent("inaprovaline", 60) + reagents.add_reagent("epinephrine", 60) return -/obj/item/weapon/reagent_containers/glass/bottle/robot/antitoxin - name = "internal anti-toxin bottle" - desc = "A small bottle of Anti-toxins. Counters poisons, and repairs damage, a wonder drug." +/obj/item/weapon/reagent_containers/glass/bottle/robot/charcoal + name = "internal charcoal bottle" + desc = "A small bottle of charcoal. Counters poisons and repairs damage." icon = 'icons/obj/chemical.dmi' icon_state = "bottle17" - reagent = "anti_toxin" + reagent = "charcoal" New() ..() - reagents.add_reagent("anti_toxin", 60) + reagents.add_reagent("charcoal", 60) return \ 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 60e2b504cf5..0d9b44439d3 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -30,7 +30,7 @@ user << "\blue You inject [M] with [src]." M << "\red You feel a tiny prick!" - src.reagents.reaction(M, INGEST) + src.reagents.reaction(M) if(M.reagents) var/list/injected = list() @@ -53,7 +53,7 @@ /obj/item/weapon/reagent_containers/hypospray/CMO/New() ..() - reagents.add_reagent("doctorsdelight", 30) + reagents.add_reagent("omnizine", 30) /obj/item/weapon/reagent_containers/hypospray/combat name = "combat stimulant injector" @@ -133,7 +133,7 @@ /obj/item/weapon/reagent_containers/hypospray/autoinjector/stimpack/New() ..() reagents.remove_reagent("epinephrine", 10) - reagents.add_reagent("hyperzine", 9) + reagents.add_reagent("methamphetamine", 9) reagents.add_reagent("lexorin", 1) update_icon() return diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 38099ee851e..0511529fedb 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -97,14 +97,6 @@ //////////////////////////////////////////////////////////////////////////////// //Pills -/obj/item/weapon/reagent_containers/pill/antitox - name = "Anti-toxins pill" - desc = "Neutralizes many common toxins." - icon_state = "pill17" - New() - ..() - reagents.add_reagent("anti_toxin", 25) - /obj/item/weapon/reagent_containers/pill/tox name = "Toxins pill" desc = "Highly toxic." @@ -129,30 +121,6 @@ ..() reagents.add_reagent("adminordrazine", 50) -/obj/item/weapon/reagent_containers/pill/stox - name = "Sleeping pill" - desc = "Commonly used to treat insomnia." - icon_state = "pill8" - New() - ..() - reagents.add_reagent("stoxin", 30) - -/obj/item/weapon/reagent_containers/pill/kelotane - name = "Kelotane pill" - desc = "Used to treat burns." - icon_state = "pill11" - New() - ..() - reagents.add_reagent("kelotane", 30) - -/obj/item/weapon/reagent_containers/pill/dermaline - name = "Dermaline pill" - desc = "Used to treat severe burns." - icon_state = "pill12" - New() - ..() - reagents.add_reagent("dermaline", 30) - /obj/item/weapon/reagent_containers/pill/tramadol name = "Tramadol pill" desc = "A simple painkiller." @@ -170,13 +138,13 @@ ..() reagents.add_reagent("methamphetamine", 5) -/obj/item/weapon/reagent_containers/pill/diphenhydramine - name = "Diphenhydramine pill" - desc = "A mild tranquilizer and anti-psychotic." +/obj/item/weapon/reagent_containers/pill/haloperidol + name = "Haloperidol pill" + desc = "Haloperidol is an anti-psychotic use to treat psychiatric problems." icon_state = "pill8" New() ..() - reagents.add_reagent("diphenhydramine", 15) + reagents.add_reagent("haloperidol", 15) /obj/item/weapon/reagent_containers/pill/paroxetine name = "Paroxetine pill" @@ -186,29 +154,6 @@ ..() reagents.add_reagent("paroxetine", 15) -/obj/item/weapon/reagent_containers/pill/inaprovaline - name = "Inaprovaline pill" - desc = "Used to stabilize patients." - icon_state = "pill20" - New() - ..() - reagents.add_reagent("inaprovaline", 30) - -/obj/item/weapon/reagent_containers/pill/dexalin - name = "Dexalin pill" - desc = "Used to treat oxygen deprivation." - icon_state = "pill16" - New() - ..() - reagents.add_reagent("dexalin", 30) - -/obj/item/weapon/reagent_containers/pill/bicaridine - name = "Bicaridine pill" - desc = "Used to treat physical injuries." - icon_state = "pill18" - New() - ..() - reagents.add_reagent("bicaridine", 30) /obj/item/weapon/reagent_containers/pill/happy name = "Happy pill" @@ -225,9 +170,8 @@ icon_state = "pill18" New() ..() - reagents.add_reagent("impedrezene", 10) reagents.add_reagent("synaptizine", 5) - reagents.add_reagent("hyperzine", 5) + reagents.add_reagent("methamphetamine", 5) /obj/item/weapon/reagent_containers/pill/charcoal name = "Chacoal pill" diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 59ec5175f1a..351cb4af276 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -15,7 +15,7 @@ amount_per_transfer_from_this = 5 volume = 250 possible_transfer_amounts = null - banned_reagents = list("pacid","sacid") + banned_reagents = list("facid","sacid") /obj/item/weapon/reagent_containers/spray/afterattack(atom/A as mob|obj, mob/user as mob) @@ -51,9 +51,9 @@ if(reagents.has_reagent("sacid")) message_admins("[key_name_admin(user)] fired sulphuric acid from \a [src].") log_game("[key_name(user)] fired sulphuric acid from \a [src].") - if(reagents.has_reagent("pacid")) - message_admins("[key_name_admin(user)] fired Polyacid from \a [src].") - log_game("[key_name(user)] fired Polyacid from \a [src].") + if(reagents.has_reagent("facid")) + message_admins("[key_name_admin(user)] fired Fluorosulfuric Acid from \a [src].") + log_game("[key_name(user)] fired Fluorosulfuric Acid from \a [src].") if(reagents.has_reagent("lube")) message_admins("[key_name_admin(user)] fired Space lube from \a [src].") log_game("[key_name(user)] fired Space lube from \a [src].") @@ -211,7 +211,7 @@ reagents.add_reagent("spores", 150) reagents.add_reagent("cryptobiolin", 150) reagents.add_reagent("mutagen", 150) - reagents.add_reagent("chloralhydrate", 150) + reagents.add_reagent("pancuronium", 150) // Plant-B-Gone diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index f424e494f91..06b5d3f0bb5 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -442,25 +442,6 @@ //////////////////////////////////////////////////////////////////////////////// - -/obj/item/weapon/reagent_containers/syringe/inaprovaline - name = "Syringe (inaprovaline)" - desc = "Contains inaprovaline - used to stabilize patients." - New() - ..() - reagents.add_reagent("inaprovaline", 15) - mode = SYRINGE_INJECT - update_icon() - -/obj/item/weapon/reagent_containers/syringe/antitoxin - name = "Syringe (anti-toxin)" - desc = "Contains anti-toxins." - New() - ..() - reagents.add_reagent("anti_toxin", 15) - mode = SYRINGE_INJECT - update_icon() - /obj/item/weapon/reagent_containers/syringe/antiviral name = "Syringe (spaceacillin)" desc = "Contains antiviral agents." @@ -470,41 +451,43 @@ mode = SYRINGE_INJECT update_icon() -/obj/item/weapon/reagent_containers/ld50_syringe/choral +/obj/item/weapon/reagent_containers/ld50_syringe/lethal New() ..() - reagents.add_reagent("chloralhydrate", 50) + reagents.add_reagent("sulfonal", 4) + reagents.add_reagent("pancuronium", 6) + reagents.add_reagent("neurotoxin2", 40) mode = SYRINGE_INJECT update_icon() //Robot syringes //Not special in any way, code wise. They don't have added variables or procs. -/obj/item/weapon/reagent_containers/syringe/robot/antitoxin - name = "Syringe (anti-toxin)" - desc = "Contains anti-toxins." +/obj/item/weapon/reagent_containers/syringe/robot/charcoal + name = "Syringe (charcoal)" + desc = "Contains charcoal." New() ..() - reagents.add_reagent("anti_toxin", 15) + reagents.add_reagent("charcoal", 15) mode = SYRINGE_INJECT update_icon() -/obj/item/weapon/reagent_containers/syringe/robot/inoprovaline - name = "Syringe (inoprovaline)" - desc = "Contains inaprovaline - used to stabilize patients." +/obj/item/weapon/reagent_containers/syringe/robot/epinephrine + name = "Syringe (Epinephrine)" + desc = "Contains epinephrine - used to stabilize patients." New() ..() - reagents.add_reagent("inaprovaline", 15) + reagents.add_reagent("epinephrine", 15) mode = SYRINGE_INJECT update_icon() /obj/item/weapon/reagent_containers/syringe/robot/mixed name = "Syringe (mixed)" - desc = "Contains inaprovaline & anti-toxins." + desc = "Contains epinephrine & charcoal." New() ..() - reagents.add_reagent("inaprovaline", 7) - reagents.add_reagent("anti_toxin", 8) + reagents.add_reagent("epinephrine", 7) + reagents.add_reagent("charcoal", 8) mode = SYRINGE_INJECT update_icon() diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm b/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm index 1351af58f79..aeecd5ff2b2 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm @@ -252,7 +252,7 @@ var/list/valid_secondary_effect_types = list(\ my_effect.ToggleActivate() if(secondary_effect && secondary_effect.trigger == TRIGGER_WATER && prob(25)) secondary_effect.ToggleActivate(0) - else if(W.reagents.has_reagent("acid", 1) || W.reagents.has_reagent("pacid", 1) || W.reagents.has_reagent("diethylamine", 1)) + else if(W.reagents.has_reagent("acid", 1) || W.reagents.has_reagent("facid", 1) || W.reagents.has_reagent("diethylamine", 1)) if(my_effect.trigger == TRIGGER_ACID) my_effect.ToggleActivate() if(secondary_effect && secondary_effect.trigger == TRIGGER_ACID && prob(25)) diff --git a/code/modules/research/xenoarchaeology/finds/finds_special.dm b/code/modules/research/xenoarchaeology/finds/finds_special.dm index b2c0fb38986..10a89d3f4d6 100644 --- a/code/modules/research/xenoarchaeology/finds/finds_special.dm +++ b/code/modules/research/xenoarchaeology/finds/finds_special.dm @@ -8,7 +8,7 @@ /obj/item/weapon/reagent_containers/glass/replenishing/New() ..() processing_objects.Add(src) - spawning_id = pick("blood","holywater","lube","stoxin","ethanol","ice","glycerol","fuel","cleaner") + spawning_id = pick("blood","holywater","lube","morphine","ethanol","ice","glycerol","fuel","cleaner") /obj/item/weapon/reagent_containers/glass/replenishing/process() reagents.add_reagent(spawning_id, 0.3) diff --git a/code/modules/research/xenoarchaeology/genetics/prehistoric_plants.dm b/code/modules/research/xenoarchaeology/genetics/prehistoric_plants.dm index d9212ac5b01..c446b3e04ae 100644 --- a/code/modules/research/xenoarchaeology/genetics/prehistoric_plants.dm +++ b/code/modules/research/xenoarchaeology/genetics/prehistoric_plants.dm @@ -38,7 +38,6 @@ icon_state = "amaurifruit" New(var/loc, var/potency) ..() - reagents.add_reagent("zombiepowder", potency * 10) reagents.add_reagent("condensedcapsaicin", potency * 5) reagents.add_reagent("nutriment", potency) bitesize = 1+round(reagents.total_volume / 2, 1) @@ -51,7 +50,7 @@ New(var/loc, var/potency) ..() //this may prove a little strong - reagents.add_reagent("stoxin", (potency * potency) / 5) + reagents.add_reagent("morphine", (potency * potency) / 5) reagents.add_reagent("capsaicin", (potency * potency) / 5) reagents.add_reagent("nutriment", potency) bitesize = 1+round(reagents.total_volume / 2, 1) @@ -64,7 +63,7 @@ New(var/loc, var/potency) ..() reagents.add_reagent("paracetamol", potency * 5) - reagents.add_reagent("dexalin", potency * 2) + reagents.add_reagent("salbutamol", potency * 2) reagents.add_reagent("nutriment", potency) bitesize = 1+round(reagents.total_volume / 2, 1) @@ -75,7 +74,7 @@ icon_state = "surikfruit" New(var/loc, var/potency) ..() - reagents.add_reagent("impedrezene", potency * 3) + reagents.add_reagent("haloperidol", potency * 3) reagents.add_reagent("synaptizine", potency * 2) reagents.add_reagent("nutriment", potency) bitesize = 1+round(reagents.total_volume / 2, 1) \ No newline at end of file diff --git a/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm b/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm index 3e15764fee6..09a9f9d31ec 100644 --- a/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm +++ b/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm @@ -52,10 +52,7 @@ coolant_reagents_purity["icetea"] = 0.6 coolant_reagents_purity["milkshake"] = 0.6 coolant_reagents_purity["leporazine"] = 0.7 - coolant_reagents_purity["kelotane"] = 0.7 coolant_reagents_purity["sterilizine"] = 0.7 - coolant_reagents_purity["dermaline"] = 0.7 - coolant_reagents_purity["hyperzine"] = 0.8 coolant_reagents_purity["cryoxadone"] = 0.9 coolant_reagents_purity["coolant"] = 1 coolant_reagents_purity["adminordrazine"] = 2 @@ -144,15 +141,15 @@ data["radiation"] = round(radiation) data["t_left_radspike"] = round(t_left_radspike) data["rad_shield_on"] = rad_shield - + // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm ui = new(user, src, ui_key, "geoscanner.tmpl", "High Res Radiocarbon Spectrometer", 900, 825) // when the ui is first opened this is the data it will use - ui.set_initial_data(data) + ui.set_initial_data(data) // open the new ui window ui.open() // auto update every Master Controller tick diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm index 12183f91498..b247a0694b2 100644 --- a/code/modules/virus2/effect.dm +++ b/code/modules/virus2/effect.dm @@ -104,12 +104,12 @@ ////////////////////////STAGE 4///////////////////////////////// -/datum/disease2/effect/doctorsdelight +/datum/disease2/effect/omnizine name = "Panacea Effect" stage = 4 activate(var/mob/living/carbon/mob,var/multiplier) - if (mob.reagents.get_reagent_amount("doctorsdelight") < 1) - mob.reagents.add_reagent("doctorsdelight", 1) + if (mob.reagents.get_reagent_amount("omnizine") < 1) + mob.reagents.add_reagent("omnizine", 1) /datum/disease2/effect/viralsputum_major name = "Hemoptysis" @@ -291,7 +291,7 @@ name = "Spontaneous Cellular Collapse" stage = 4 activate(var/mob/living/carbon/mob,var/multiplier) - mob.reagents.add_reagent("pacid", 1) + mob.reagents.add_reagent("facid", 1) mob << " Your body burns as your cells break down." shake_camera(mob,5*multiplier) @@ -419,8 +419,8 @@ name = "Regenerative Synapse Effect" stage = 3 activate(var/mob/living/carbon/mob,var/multiplier) - if (mob.reagents.get_reagent_amount("alkysine") < 1) - mob.reagents.add_reagent("alkysine", 1) + if (mob.reagents.get_reagent_amount("mannitol") < 1) + mob.reagents.add_reagent("mannitol", 1) /datum/disease2/effect/paroxetine name = "Psyche Collapse Syndrome" @@ -686,37 +686,8 @@ var/list/compatible_mobs = list(/mob/living/carbon/human, /mob/living/carbon/mon flags |= NODROP //curses! ..() - -//Lets not make people nearly immortal. ~Alex-gh -/* -/datum/disease2/effect/spaceadapt - name = "Space Adaptation Effect" - stage = 3 - activate(var/mob/living/carbon/mob,var/multiplier) - var/mob/living/carbon/human/H = mob - if (mob.reagents.get_reagent_amount("dexalinp") < 10) - mob.reagents.add_reagent("dexalinp", 4) - if (mob.reagents.get_reagent_amount("leporazine") < 10) - mob.reagents.add_reagent("leporazine", 4) - if (mob.reagents.get_reagent_amount("bicaridine") < 10) - mob.reagents.add_reagent("bicaridine", 4) - if (mob.reagents.get_reagent_amount("dermaline") < 10) - mob.reagents.add_reagent("dermaline", 4) - mob.emote("me",1,"exhales slowly.") - var/datum/organ/external/chest/chest = H.get_organ("chest") - for(var/datum/organ/internal/I in chest.internal_organs) - I.damage = 0 -*/ - - ////////////////////////STAGE 2///////////////////////////////// -/datum/disease2/effect/methylphenidate - name = "Mental Stability Phenomenon" - stage = 2 - activate(var/mob/living/carbon/mob,var/multiplier) - if (mob.reagents.get_reagent_amount("methylphenidate") < 5) - mob.reagents.add_reagent("methylphenidate", 1) /datum/disease2/effect/pain name = "Acute Muscle Ache" @@ -827,8 +798,8 @@ var/list/compatible_mobs = list(/mob/living/carbon/human, /mob/living/carbon/mon name = "Adrenal Overload" stage = 2 activate(var/mob/living/carbon/mob,var/multiplier) - if (mob.reagents.get_reagent_amount("hyperzine") < 40) - mob.reagents.add_reagent("hyperzine", 4) + if (mob.reagents.get_reagent_amount("methamphetamine") < 40) + mob.reagents.add_reagent("methamphetamine", 4) if (prob(30)) mob << "You feel a rush of energy inside you!" mob.jitteriness += 10 @@ -904,8 +875,8 @@ var/list/compatible_mobs = list(/mob/living/carbon/human, /mob/living/carbon/mon stage = 2 activate(var/mob/living/carbon/mob,var/multiplier) mob << " You feel optimistic!" - if (mob.reagents.get_reagent_amount("tricordrazine") < 1) - mob.reagents.add_reagent("tricordrazine", 1) + if (mob.reagents.get_reagent_amount("salglu_solution") < 1) + mob.reagents.add_reagent("salglu_solution", 1) ////////////////////////STAGE 1///////////////////////////////// @@ -929,8 +900,8 @@ var/list/compatible_mobs = list(/mob/living/carbon/human, /mob/living/carbon/mon name = "Adrenaline Extra" stage = 1 activate(var/mob/living/carbon/mob,var/multiplier) - if (mob.reagents.get_reagent_amount("hyperzine") < 10) - mob.reagents.add_reagent("hyperzine", 4) + if (mob.reagents.get_reagent_amount("ephedrine") < 10) + mob.reagents.add_reagent("ephedrine", 4) if (prob(30)) mob << "You feel a rush of energy inside you!" mob.jitteriness += 10 diff --git a/code/setup.dm b/code/setup.dm index f841b9f6ab4..d5e032cd431 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -800,9 +800,9 @@ var/list/be_special_flags = list( #define PULSE_2FAST 4 //>120 bpm #define PULSE_THREADY 5 //occurs during hypovolemic shock //feel free to add shit to lists below -var/list/tachycardics = list("coffee", "inaprovaline", "hyperzine", "nitroglycerin", "thirteenloko", "nicotine") //increase heart rate -var/list/bradycardics = list("neurotoxin", "cryoxadone", "clonexadone", "space_drugs", "stoxin") //decrease heart rate -var/list/heartstopper = list("zombie_powder", "capulettium", "capulettium_plus") //this stops the heart +var/list/tachycardics = list("coffee", "methamphetamine", "nitroglycerin", "thirteenloko", "nicotine") //increase heart rate +var/list/bradycardics = list("neurotoxin", "cryoxadone", "clonexadone", "space_drugs") //decrease heart rate +var/list/heartstopper = list("capulettium", "capulettium_plus") //this stops the heart var/list/cheartstopper = list() //this stops the heart when overdose is met -- c = conditional //proc/get_pulse methods diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index a639e4bf6233b9e22098914e3f1f8493f42edfee..b072e46257e538e46cef0bd5966de45f6a3b041e 100644 GIT binary patch literal 35403 zcmd42Wmr`47cRPoPATb@l12gPZjclK=@1F&kcI(i5Jb8=rIhZF5RvXK>8>G%xtssF z|9d~(=eg%R=fn9hvuE$wvwyYLdf)Y~-$ZDrDd1vJU;zMttE4Ea1ptsv@Rfss23`>x zYhVQcByVqRJvUiPR|^*#CpQ~M2LSNQs7UULndiX|9T|9|*D`a!7CP#HXUL{Q9JZtz zp5duzm@!+Yx&zzwQDj6yy-_fbQ>61t#XR>CJ!QCixV5+&e&x8}Mz@`~JC{a0;*~~~ zh{I`6v-wO_UrUv;k5)Wf(r$>ReEgPPwZJ8-f?Pd5lZg7u$_U*PP3&-eX>Eumd-yGq zrV0HXYF@k9+o2aY-^Kg?jQqHDeGT;EIK77SQ#rjx>gV8CCt)KBDryXki}E3BY7CEy zN(T>-aZxScAv!K<0X)Q%4p-w(VvJG{g$qOGEs!+XC8J)`?V(!7W6BNz73PW4mYm+3 z$W6}=zv#SFwz=E~Og~p|;g7tFn?;UgPHdR;fgVgcx_E^+iw@%|_Y|My1jj6pB>*3; za)SNKE&_ReI?MXC`VZ@=a6Lp5VO+e75EJ4wBnlWMr^GXCn4J6N;DHoH-l$BZr0-kJ zzcJ@l81bqvOF@WmU_{}RR_zk^ot3{a9-oPZJbI_>lGco=Hft-olKq}oZ@LTCezU=W zxpB%|i;aw!*Y_`FadLdcju_l(5s~G;Bg++u6cnZgqn6|wL;v(?a=-V@%^cIX89oLE zJ>$?gw&!Tr27M@YdMrvXr7Sda5A9zY?IL@z?@kr}f{}`l{~`bXqk;; zdDP|s_x6UkpMCb%KL)jOY!(k15m7MtNRboe3oXD=@rm7=Fd9!P?{(*$xc*!#nlKt~ z!+(?Kzl~P}?9S^|5l9~bc7=V)!Uh0<4p5Sn()P?a$n;6k?oCB>yxn%YavQ^OAGITL9LP;5LoxP23E`pUKw zSpR}ilCugR{c*BF+a4EN@+(_jp%t6TApc-mR6Jsnvodo2mv{SNdRMr({ZgmxtpbNh zI~C3^9-Mf`--awuGqO-K7YH`pJ{6ds%jFJprn-j{)7|Fw@X->0?r*6L%(n0R-Tqo+ED^T2AGa!x6D4mz#oO|8yoQ!x2FCty zjy~zVaJkVjW$yRycU;z7z`tWhYO@ah2ESA3kpqPPdb0lP@l1;Vj7D&DJ;jk5k!}S` zUVM3)auqOTG1%tw;D0tj0*kU?xed)E>A$}(R`)R`Ypp-C;`2Jwvs-Q@A~oc}84+)p z)FrroxB1a+Zfd3TsO`?Vj~w}QySL-&ElPvqiW(8~>&^%Gou06XMZW)BLq zH*7(?CXLC%E%!(nm)6{dJhmJp+@*i@P((POZ>q9obp2iMp7A~*^{lGArhnM@rUC$M zDk>1*O8mZ>Ap!E4sXq~`BM(bN1o!YB?y-<-s^RPVHJx+IA7soSzW`{KJ~Hs& zI&_y6zWU98dAzO|vdxVw-Yi;I;SC#no*Az%w2yzXYrUFlxg5SanSGzor+$a#o#F2d zHiBrvGoj7YKc1+;2Y9Yhi5u@KB|LTh$27ZHlcPQ1=-L_*dEvGLBqTh&V-Aw|?)#Vh^}y!c`Oob4raGNaL!p+oet@6I{R%{9sUd`YML6WF1P3gzfVxNA@>QsIKigs$jTdX}2T@ zco8#=Ay+Y#`=J5uN{_H$wOU)bM&QPL=AwSF~Mj1IZjJ9BTu zt0r=yrMrSO&lp@mzTr0_j#lo*(FMT;C5(_q`5ZFa+Vtm2ywjOfUD8i0PcY}SuPm|s z3i5=44`a=V?1vuCLWAQ~8=jN(z}#$Ug9Vf-c&IMj_Za!W!xnLIyKL0rcZ{4dx?g== zF6uc7K1gaCrwcWJRVHqN`uOLw;9>;8+vNV${PFR$4GIu&UB_(Zag5btF`{1DA2GSTCUr+9Ft2UeS#-pG-tavvL0n>ipF#s$H(qG&UyDIGq9bRjAzd0nt;kxY$RxV)#Qh+CDPp<0_ zwe(lGz{y|Uk$(kvzi0o3T%W+RMPa;Wz+($sckB4AEj}1rWc(xnB_)g!a!ym_@Azy_ zOebHxT4$fh3R>Y#Q}T~oEx*$lYdlTP@t*NFyswgRoZlX|@dDym8|{O1}nx`#O}yZiPF9+l1xdZ49fP-=JfaKLBV< z*WDf00`1k-%$crRYgayqEO;ZVtQ3q_W$$Wsq7@n2+I<|w+Wig{!C(i@t@UUpWcSh@ z{mEMP!=?U;?0<%uOB7Z-v(b{@xHHXt^DHQegfkD5ha5d90msI%-iTEcq)Ggvw6e{feH-BIs=zTx6lbgX%D*l9C^hXQ20yBz_b{j`lS zt%O}9@PH6JW1IS$Ih6V7R}xsA^#}j{5S7wibbT3$>Np?Vn&@bCpG&lwta50BA7R5T zPd6S+9>&}UKalu)2g5s(%J(xg0t?h^1$G)rVMDb3z56o)gC3%gHqo3NLqlnY< zVi-7r_W8Su33Y?;uk<8Qn;~#9Zh<;{sb5KZ+hTPegSprc?WCS}EkO0EN8ww5XG8v2 zuDZ3g)%@aWD`5NQ1XNdC)t(aGcC(^%n7(QA#?;Hpt9PdCdlhS%;AvVtETF>C#3ab< z&)^`t|HFCqh!@MlJvwkw7eMKrZ}RE5J;&d@sx;A~e%YhiW$*L(_DDAG$0QFg4bV$Y zXTGWH2DptxG8|;PA2YSj9*Y#2UT&Z=wT@VH@z`)#?Oo`bQZaW|KHNib&t!09~PF7miv_|+c1Iwq(mbSXvW(J}Py%J__q zhs_G+_%QSqkHlQDcx1m8Fy`H)UvofPLhMSlc34$72J(=OWOFYL<=o-*RUg5P+EKgz zB6fSbmvC-(D{Uw3437=y{%%YJFoCy#!wVf66u2hD;I;hobWDeK6=uH>D>%%3XGJp` z%gL^LYk|NMh?w?+x}(D^2HB6qJN>d?kV>!fwFWd3F^8`{1~vFeUX~L>?Ab_GmyS(C z7`Zc4s`t~g4=A;G<>^jbF1p9|$;NNkk9+pswQC2>ujl*dEJnO*szF>|B`*rGBj1sW z@ynx7esVxv4R~5YASIhWi)cq^=E$Q!a;j$$&ovl=j@&!!e8^3|#lczMoOnqbBG!s@ zt^(q#U=VG7?B(rr#Hh&qe)jDqL^wUk48mN8FWMp6$zT8FMa;wzB6FDqBGO!OZweG; z`5Z97L&PMrMJ0dnzo8*a`L;V}w7q_F?y8SJ0#1=o-G~hBSyDs*!eBq|VZIj{5c|2t z=3UgKSNdubx}f87Yt!cDX6JI-3=k$JevVKtEabkPLb>U$zzbLn%dA(#T#CEigcJoI zDc+v}kBekKKQf8@*OLmww}%OD5;7UCd`Sr6gUo>L-QnCNJ2lJqM^rE)W9D8Pp?~qe znalq#r3JI88QP%VtQltuI4&<9FmCr$KSFTEwVOUL2s&UA$Gey4fKIudS^W*ObW{BZ zPg5oIhhKfR%3V`YZEeEeGnQ;$B%qo@<-JQqv}mWVRbMnYCru|RHp%rZur=>rY0_yp z&kY*8=TX!4R?21FcilT<$oo4x30;^f#p1sIypD1lLEH2KFM$+Er`k)4zUW9whek-U z$qSbt$&x#j06(9BXmVb*d%|49g~tb_yt1bl7Tzxx0#3#hXotAKOD8qJ??S)O0js}v zSBU{lx9Gxjl*alO{VTUO5ATwgg09r=O==#xtjJIRnQg8Py7>Kw&B0`kTgEHg?YxtL zIzI+!;N)Mt`c@C}-$K80LZFj(L^PfVk7ovUesg05b~gFg8Giaphogh+Il~6sCLCLI6B$jQ9j3M^WtTx^#a5 zP9ltV)8YA3_3)C2n*S_v-xDA@D*)~Rm>!lFXCvJoqPzJ(zw17B9B%F0TTiI~n8MHMkw{aPK}tb(r$5rnS!G zs&20qPNRGD@dsiw%5UsYy)bLOO8oBQ%t5-RdivcRR|jcf`oq6cxaZ|eWcKCU&S%=xK zf7!f8BABs)$abXSF$Ip`Rg~kf;~OsD9}+@Mc(HkoEr_+ogKMom}k0 z9hASK-lz%h7Mz2Hqn3N)1IlxF(!%t8pKD9#oyjcp{O;K1$6@AD@%0D9kI(4NgNU{j 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 diff --git a/icons/obj/closet.dmi b/icons/obj/closet.dmi index bc543261840f57708d495b6e35fd6899c9cd04f4..bb129c19067b20dd5b19640cf833b1d8f885b556 100644 GIT binary patch delta 6950 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 delta 5920 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