From 8f067fe78556982feb4efdaab20083999bcc1a61 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Wed, 21 Aug 2019 13:42:08 -0800 Subject: [PATCH 1/2] Chemistry Expansion --- code/datums/supplypacks/medical.dm | 16 +- .../atmoalter/portable_atmospherics.dm | 6 +- code/game/machinery/frame.dm | 6 + .../items/weapons/circuitboards/frame.dm | 9 + code/modules/mob/_modifiers/medical.dm | 17 + code/modules/reagents/Chemistry-Machinery.dm | 22 ++ .../Chemistry-Reagents-Medicine.dm | 83 +++++ .../Chemistry-Reagents-Modifiers.dm | 58 ++++ .../Chemistry-Reagents-Toxins.dm | 6 + code/modules/reagents/Chemistry-Recipes.dm | 1 + .../reagents/distilling/Distilling-Recipes.dm | 170 ++++++++++ .../modules/reagents/distilling/distilling.dm | 317 ++++++++++++++++++ .../reagents/reagent_containers/glass.dm | 3 +- .../reagents/reagent_containers/patch.dm | 82 +++++ .../reagents/reagent_containers/pill.dm | 5 +- icons/mob/radial.dmi | Bin 15818 -> 16285 bytes icons/obj/chemical.dmi | Bin 37540 -> 38171 bytes icons/obj/machines/reagent.dmi | Bin 0 -> 1748 bytes nano/templates/chem_master.tmpl | 1 + vorestation.dme | 11 + 20 files changed, 808 insertions(+), 5 deletions(-) create mode 100644 code/modules/mob/_modifiers/medical.dm create mode 100644 code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Modifiers.dm create mode 100644 code/modules/reagents/distilling/Distilling-Recipes.dm create mode 100644 code/modules/reagents/distilling/distilling.dm create mode 100644 code/modules/reagents/reagent_containers/patch.dm create mode 100644 icons/obj/machines/reagent.dmi diff --git a/code/datums/supplypacks/medical.dm b/code/datums/supplypacks/medical.dm index 5596d95f03..e345b18505 100644 --- a/code/datums/supplypacks/medical.dm +++ b/code/datums/supplypacks/medical.dm @@ -334,4 +334,18 @@ contains = list(/obj/item/device/defib_kit = 2) cost = 30 containertype = /obj/structure/closet/crate/medical - containername = "Defibrillator crate" \ No newline at end of file + containername = "Defibrillator crate" + +/datum/supply_pack/med/distillery + name = "Chemical distiller crate" + contains = list(/obj/machinery/portable_atmospherics/powered/reagent_distillery = 1) + cost = 175 + containertype = /obj/structure/largecrate + containername = "Chemical distiller crate" + +/datum/supply_pack/med/advdistillery + name = "Industrial Chemical distiller crate" + contains = list(/obj/machinery/portable_atmospherics/powered/reagent_distillery/industrial = 1) + cost = 250 + containertype = /obj/structure/largecrate + containername = "Industrial Chemical distiller crate" diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm index 8778b4e5f3..085c070f7d 100644 --- a/code/game/machinery/atmoalter/portable_atmospherics.dm +++ b/code/game/machinery/atmoalter/portable_atmospherics.dm @@ -149,6 +149,8 @@ var/power_losses var/last_power_draw = 0 var/obj/item/weapon/cell/cell + var/use_cell = TRUE + var/removeable_cell = TRUE /obj/machinery/portable_atmospherics/powered/powered() if(use_power) //using area power @@ -158,7 +160,7 @@ return 0 /obj/machinery/portable_atmospherics/powered/attackby(obj/item/I, mob/user) - if(istype(I, /obj/item/weapon/cell)) + if(use_cell && istype(I, /obj/item/weapon/cell)) if(cell) to_chat(user, "There is already a power cell installed.") return @@ -173,7 +175,7 @@ power_change() return - if(I.is_screwdriver()) + if(I.is_screwdriver() && removeable_cell) if(!cell) to_chat(user, "There is no power cell installed.") return diff --git a/code/game/machinery/frame.dm b/code/game/machinery/frame.dm index 88bf735f53..0baa68cf22 100644 --- a/code/game/machinery/frame.dm +++ b/code/game/machinery/frame.dm @@ -102,6 +102,12 @@ circuit = /obj/item/weapon/circuitboard/grinder frame_size = 3 +/datum/frame/frame_types/reagent_distillery + name = "Distillery" + frame_class = FRAME_CLASS_MACHINE + circuit = /obj/item/weapon/circuitboard/distiller + frame_size = 4 + /datum/frame/frame_types/display name = "Display" frame_class = FRAME_CLASS_DISPLAY diff --git a/code/game/objects/items/weapons/circuitboards/frame.dm b/code/game/objects/items/weapons/circuitboards/frame.dm index 63308e6caa..6b59d13ea5 100644 --- a/code/game/objects/items/weapons/circuitboards/frame.dm +++ b/code/game/objects/items/weapons/circuitboards/frame.dm @@ -170,6 +170,15 @@ /obj/item/weapon/stock_parts/gear = 1, /obj/item/weapon/reagent_containers/glass/beaker/large = 1) +/obj/item/weapon/circuitboard/distiller + build_path = /obj/machinery/portable_atmospherics/powered/reagent_distillery + board_type = new /datum/frame/frame_types/reagent_distillery + req_components = list( + /obj/item/weapon/stock_parts/capacitor = 1, + /obj/item/weapon/stock_parts/micro_laser = 1, + /obj/item/weapon/stock_parts/motor = 2, + /obj/item/weapon/stock_parts/gear = 1) + /obj/item/weapon/circuitboard/teleporter_hub name = T_BOARD("teleporter hub") build_path = /obj/machinery/teleport/hub diff --git a/code/modules/mob/_modifiers/medical.dm b/code/modules/mob/_modifiers/medical.dm new file mode 100644 index 0000000000..46a8877d1f --- /dev/null +++ b/code/modules/mob/_modifiers/medical.dm @@ -0,0 +1,17 @@ +/* + * Modifiers caused by chemicals or organs specifically. + */ + +/datum/modifier/cryogelled + name = "cryogelled" + desc = "Your body begins to freeze." + mob_overlay_state = "chilled" + + on_created_text = "You feel like you're going to freeze! It's hard to move." + on_expired_text = "You feel somewhat warmer and more mobile now." + stacks = MODIFIER_STACK_ALLOWED + + slowdown = 0.1 + evasion = -5 + attack_speed_percent = 1.1 + disable_duration_percent = 1.05 diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index dee4cabfa6..a481cfaf33 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -281,6 +281,28 @@ var/obj/item/weapon/reagent_containers/food/condiment/P = new/obj/item/weapon/reagent_containers/food/condiment(src.loc) reagents.trans_to_obj(P,50) + else if (href_list["createpatch"]) + if(reagents.total_volume < 1) //Sanity checking. + return + + var/name = sanitizeSafe(input(usr,"Name:","Name your patch!","[reagents.get_master_reagent_name()] ([round(reagents.total_volume)]u)") as null|text, MAX_NAME_LEN) + + if(!name) //Blank name (sanitized to nothing, or left empty) or cancel + return + + if(reagents.total_volume < 1) //Sanity checking. + return + var/obj/item/weapon/reagent_containers/pill/patch/P = new/obj/item/weapon/reagent_containers/pill/patch(src.loc) + if(!name) name = reagents.get_master_reagent_name() + P.name = "[name] patch" + P.pixel_x = rand(-7, 7) //random position + P.pixel_y = rand(-7, 7) + + reagents.trans_to_obj(P, 60) + if(src.loaded_pill_bottle) + if(loaded_pill_bottle.contents.len < loaded_pill_bottle.max_storage_space) + P.loc = loaded_pill_bottle + else if(href_list["pill_sprite"]) pillsprite = href_list["pill_sprite"] else if(href_list["bottle_sprite"]) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm index e2724f0647..d1213eb783 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm @@ -16,6 +16,28 @@ M.add_chemical_effect(CE_STABLE, 15) M.add_chemical_effect(CE_PAINKILLER, 10) +/datum/reagent/inaprovaline/topical + name = "Inaprovalaze" + id = "inaprovalaze" + description = "Inaprovalaze is a topical variant of Inaprovaline." + taste_description = "bitterness" + reagent_state = LIQUID + color = "#00BFFF" + overdose = REAGENTS_OVERDOSE * 2 + metabolism = REM * 0.5 + scannable = 1 + touch_met = REM * 0.75 + +/datum/reagent/inaprovaline/topical/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + if(alien != IS_DIONA) + ..() + M.adjustToxLoss(2 * removed) + +/datum/reagent/inaprovaline/topical/affect_touch(var/mob/living/carbon/M, var/alien, var/removed) + if(alien != IS_DIONA) + M.add_chemical_effect(CE_STABLE, 20) + M.add_chemical_effect(CE_PAINKILLER, 12) + /datum/reagent/bicaridine name = "Bicaridine" id = "bicaridine" @@ -51,6 +73,33 @@ if(W.damage <= 0) O.wounds -= W +/datum/reagent/bicaridine/topical + name = "Bicaridaze" + id = "bicaridaze" + description = "Bicaridaze is a topical variant of the chemical Bicaridine." + taste_description = "bitterness" + taste_mult = 3 + reagent_state = LIQUID + color = "#BF0000" + overdose = REAGENTS_OVERDOSE * 0.75 + scannable = 1 + touch_met = REM * 0.75 + +/datum/reagent/bicaridine/topical/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + var/chem_effective = 1 + if(alien == IS_SLIME) + chem_effective = 0.75 + if(alien != IS_DIONA) + ..(M, alien, removed * chem_effective) + M.adjustToxLoss(2 * removed) + +/datum/reagent/bicaridine/topical/affect_touch(var/mob/living/carbon/M, var/alien, var/removed) + var/chem_effective = 1 + if(alien == IS_SLIME) + chem_effective = 0.75 + if(alien != IS_DIONA) + M.heal_organ_damage(6 * removed * chem_effective, 0) + /datum/reagent/kelotane name = "Kelotane" id = "kelotane" @@ -87,6 +136,33 @@ if(alien != IS_DIONA) M.heal_organ_damage(0, 8 * removed * chem_effective) //VOREStation edit +/datum/reagent/dermaline/topical + name = "Dermalaze" + id = "dermalaze" + description = "Dermalaze is a topical variant of the chemical Dermaline." + taste_description = "bitterness" + taste_mult = 1.5 + reagent_state = LIQUID + color = "#FF8000" + overdose = REAGENTS_OVERDOSE * 0.4 + scannable = 1 + touch_met = REM * 0.75 + +/datum/reagent/dermaline/topical/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + var/chem_effective = 1 + if(alien == IS_SLIME) + chem_effective = 0.75 + if(alien != IS_DIONA) + ..(M, alien, removed * chem_effective) + M.adjustToxLoss(2 * removed) + +/datum/reagent/dermaline/topical/affect_touch(var/mob/living/carbon/M, var/alien, var/removed) + var/chem_effective = 1 + if(alien == IS_SLIME) + chem_effective = 0.75 + if(alien != IS_DIONA) + M.heal_organ_damage(0, 12 * removed * chem_effective) + /datum/reagent/dylovene name = "Dylovene" id = "anti_toxin" @@ -203,6 +279,10 @@ M.heal_organ_damage(1.5 * removed, 1.5 * removed * chem_effective) M.adjustToxLoss(-1.5 * removed * chem_effective) +/datum/reagent/tricordrazine/affect_touch(var/mob/living/carbon/M, var/alien, var/removed) + if(alien != IS_DIONA) + affect_blood(M, alien, removed * 0.4) + /datum/reagent/cryoxadone name = "Cryoxadone" id = "cryoxadone" @@ -865,6 +945,9 @@ to_chat(M, "Your senses feel unfocused, and divided.") M.add_chemical_effect(CE_ANTIBIOTIC, dose >= overdose ? ANTIBIO_OD : ANTIBIO_NORM) +/datum/reagent/spaceacillin/affect_touch(var/mob/living/carbon/M, var/alien, var/removed) + affect_blood(M, alien, removed * 0.8) // Not 100% as effective as injections, though still useful. + /datum/reagent/corophizine name = "Corophizine" id = "corophizine" diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Modifiers.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Modifiers.dm new file mode 100644 index 0000000000..d9a7483ec1 --- /dev/null +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Modifiers.dm @@ -0,0 +1,58 @@ +/* + * Modifier-applying chemicals. + */ + +/datum/reagent/modapplying + name = "brute juice" + id = "berserkmed" + description = "A liquid that is capable of causing a prolonged state of heightened aggression and durability." + taste_description = "metal" + reagent_state = LIQUID + color = "#ff5555" + metabolism = REM + + var/modifier_to_add = /datum/modifier/berserk + var/modifier_duration = 2 SECONDS // How long, per unit dose, will this last? + +/datum/reagent/modapplying/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + if(alien == IS_DIONA) + return + M.add_modifier(modifier_to_add, dose * modifier_duration) + +/datum/reagent/modapplying/cryofluid + name = "cryogenic slurry" + id = "cryoslurry" + description = "An incredibly strange liquid that rapidly absorbs thermal energy from materials it contacts." + taste_description = "siberian hellscape" + color = "#4CDBDB" + metabolism = REM * 0.5 + + modifier_to_add = /datum/modifier/cryogelled + modifier_duration = 3 SECONDS + +/datum/reagent/modapplying/cryofluid/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + ..(M, alien, removed) + M.bodytemperature -= removed * 20 + +/datum/reagent/modapplying/cryofluid/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) + affect_blood(M, alien, removed * 2.5) + +/datum/reagent/modapplying/cryofluid/affect_touch(var/mob/living/carbon/M, var/alien, var/removed) + affect_blood(M, alien, removed * 0.6) + +/datum/reagent/modapplying/cryofluid/touch_mob(var/mob/M, var/amount) + if(isliving(M)) + var/mob/living/L = M + for(var/I = 1 to rand(1, round(amount + 1))) + L.add_modifier(modifier_to_add, amount * rand(modifier_duration / 2, modifier_duration * 2)) + return + +/datum/reagent/modapplying/cryofluid/touch_turf(var/turf/T, var/amount) + if(istype(T, /turf/simulated/floor/water) && prob(amount)) + T.visible_message("\The [T] crackles loudly as the cryogenic fluid causes it to boil away, leaving behind a hard layer of ice.") + T.ChangeTurf(/turf/simulated/floor/outdoors/ice, 1, 1, TRUE) + else + if(istype(T, /turf/simulated)) + var/turf/simulated/S = T + S.freeze_floor() + return diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm index 79304733dd..32ed5bc81f 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm @@ -11,6 +11,7 @@ metabolism = REM * 0.25 // 0.05 by default. Hopefully enough to get some help, or die horribly, whatever floats your boat filtered_organs = list(O_LIVER, O_KIDNEYS) var/strength = 4 // How much damage it deals per unit + var/skin_danger = 0.2 // The multiplier for how effective the toxin is when making skin contact. /datum/reagent/toxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) if(strength && alien != IS_DIONA) @@ -23,6 +24,9 @@ M.heal_organ_damage((10/strength) * removed, (10/strength) * removed) //Doses of toxins below 10 units, and 10 strength, are capable of providing useful compounds for repair. M.adjustToxLoss(strength * removed) +/datum/reagent/toxin/affect_touch(var/mob/living/carbon/M, var/alien, var/removed) + affect_blood(M, alien, removed * 0.2) + /datum/reagent/toxin/plasticide name = "Plasticide" id = "plasticide" @@ -58,6 +62,7 @@ reagent_state = LIQUID color = "#005555" strength = 8 + skin_danger = 0.4 /datum/reagent/toxin/neurotoxic_protein/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) ..() @@ -121,6 +126,7 @@ color = "#9D14DB" strength = 30 touch_met = 5 + skin_danger = 1 /datum/reagent/toxin/phoron/touch_mob(var/mob/living/L, var/amount) if(istype(L)) diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 5b37335647..40cd1b7123 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -34,6 +34,7 @@ var/reaction_sound = 'sound/effects/bubbles.ogg' var/log_is_important = 0 // If this reaction should be considered important for logging. Important recipes message admins when mixed, non-important ones just log to file. + /datum/chemical_reaction/proc/can_happen(var/datum/reagents/holder) //check that all the required reagents are present if(!holder.has_all_reagents(required_reagents)) diff --git a/code/modules/reagents/distilling/Distilling-Recipes.dm b/code/modules/reagents/distilling/Distilling-Recipes.dm new file mode 100644 index 0000000000..f7fae18178 --- /dev/null +++ b/code/modules/reagents/distilling/Distilling-Recipes.dm @@ -0,0 +1,170 @@ +/datum/chemical_reaction/distilling +// name = null +// id = null +// result = null +// required_reagents = list() +// catalysts = list() +// inhibitors = list() +// result_amount = 0 + + //how far the reaction proceeds each time it is processed. Used with either REACTION_RATE or HALF_LIFE macros. + reaction_rate = HALF_LIFE(6) + + //if less than 1, the reaction will be inhibited if the ratio of products/reagents is too high. + //0.5 = 50% yield -> reaction will only proceed halfway until products are removed. +// yield = 1.0 + + //If limits on reaction rate would leave less than this amount of any reagent (adjusted by the reaction ratios), + //the reaction goes to completion. This is to prevent reactions from going on forever with tiny reagent amounts. +// min_reaction = 2 + + mix_message = "The solution churns." + reaction_sound = 'sound/effects/slosh.ogg' + +// log_is_important = 0 // If this reaction should be considered important for logging. Important recipes message admins when mixed, non-important ones just log to file. + + var/list/temp_range = list(T0C, T20C) + var/temp_shift = 0 // How much the temperature changes when the reaction occurs. + +/datum/chemical_reaction/distilling/can_happen(var/datum/reagents/holder) + //check that all the required reagents are present + if(!holder.has_all_reagents(required_reagents)) + return 0 + + //check that all the required catalysts are present in the required amount + if(!holder.has_all_reagents(catalysts)) + return 0 + + //check that none of the inhibitors are present in the required amount + if(holder.has_any_reagent(inhibitors)) + return 0 + + if(!istype(holder.my_atom, /obj/item/weapon/reagent_containers/glass/distilling)) + return 0 + + else // Super special temperature check. + var/obj/item/weapon/reagent_containers/glass/distilling/D = holder.my_atom + var/obj/machinery/portable_atmospherics/powered/reagent_distillery/RD = D.Master + if(RD.current_temp < temp_range[1] || RD.current_temp > temp_range[2]) + return 0 + + return 1 + +/datum/chemical_reaction/distilling/on_reaction(var/datum/reagents/holder, var/created_volume) + if(istype(holder.my_atom, /obj/item/weapon/reagent_containers/glass/distilling)) + var/obj/item/weapon/reagent_containers/glass/distilling/D = holder.my_atom + var/obj/machinery/portable_atmospherics/powered/reagent_distillery/RD = D.Master + RD.current_temp += temp_shift + return + +// Subtypes // + +// Biomass +/datum/chemical_reaction/distilling/biomass + name = "Distilling Biomass" + id = "distill_biomass" + result = "biomass" + required_reagents = list("blood" = 1, "sugar" = 1, "phoron" = 0.5) + result_amount = 1 // 40 units per sheet, requires actually using the machine, and having blood to spare. + + temp_range = list(T20C + 80, T20C + 130) + temp_shift = -2 + +// Medicinal +/datum/chemical_reaction/distilling/inaprovalaze + name = "Distilling Inaprovalaze" + id = "distill_inaprovalaze" + result = "inaprovalaze" + required_reagents = list("inaprovaline" = 2, "foaming_agent" = 1) + result_amount = 2 + + reaction_rate = HALF_LIFE(10) + + temp_range = list(T0C + 100, T0C + 120) + +/datum/chemical_reaction/distilling/bicaridaze + name = "Distilling Bicaridaze" + id = "distill_bicaridaze" + result = "bicaridaze" + required_reagents = list("bicaridine" = 2, "foaming_agent" = 1) + result_amount = 2 + + reaction_rate = HALF_LIFE(10) + + temp_range = list(T0C + 110, T0C + 130) + +/datum/chemical_reaction/distilling/dermalaze + name = "Distilling Dermalaze" + id = "distill_dermalaze" + result = "dermalaze" + required_reagents = list("dermaline" = 2, "foaming_agent" = 1) + result_amount = 2 + + reaction_rate = HALF_LIFE(10) + + temp_range = list(T0C + 115, T0C + 130) + +// Alcohol +/datum/chemical_reaction/distilling/beer + name = "Distilling Beer" + id = "distill_beer" + result = "beer" + required_reagents = list("nutriment" = 1, "water" = 1, "sugar" = 1) + result_amount = 2 + + reaction_rate = HALF_LIFE(30) + + temp_range = list(T20C, T20C + 2) + +/datum/chemical_reaction/distilling/ale + name = "Distilling Ale" + id = "distill_ale" + result = "ale" + required_reagents = list("nutriment" = 1, "beer" = 1) + inhibitors = list("water" = 1) + result_amount = 2 + + reaction_rate = HALF_LIFE(30) + + temp_shift = 0.5 + temp_range = list(T0C + 7, T0C + 13) + +// Unique +/datum/chemical_reaction/distilling/berserkjuice + name = "Distilling Brute Juice" + id = "distill_brutejuice" + result = "berserkmed" + required_reagents = list("biomass" = 1, "hyperzine" = 3, "synaptizine" = 2, "phoron" = 1) + result_amount = 3 + + temp_range = list(T0C + 600, T0C + 700) + temp_shift = 4 + +/datum/chemical_reaction/distilling/berserkjuice/on_reaction(var/datum/reagents/holder, var/created_volume) + ..() + + if(prob(1)) + var/turf/T = get_turf(holder.my_atom) + explosion(T, -1, rand(-1, 1), rand(1,2), rand(3,5)) + return + +/datum/chemical_reaction/distilling/cryogel + name = "Distilling Cryogellatin" + id = "distill_cryoslurry" + result = "cryoslurry" + required_reagents = list("frostoil" = 7, "enzyme" = 3, "plasticide" = 3, "foaming_agent" = 2) + inhibitors = list("water" = 5) + result_amount = 1 + + temp_range = list(0, 15) + temp_shift = 20 + +/datum/chemical_reaction/distilling/cryogel/on_reaction(var/datum/reagents/holder, var/created_volume) + ..() + + if(prob(1)) + var/turf/T = get_turf(holder.my_atom) + var/datum/effect/effect/system/smoke_spread/frost/F = new (holder.my_atom) + F.set_up(6, 0, T) + F.start() + return diff --git a/code/modules/reagents/distilling/distilling.dm b/code/modules/reagents/distilling/distilling.dm new file mode 100644 index 0000000000..b86bcc7435 --- /dev/null +++ b/code/modules/reagents/distilling/distilling.dm @@ -0,0 +1,317 @@ + +/* + * Distillery, used for over-time temperature-based mixes. + */ + +/obj/machinery/portable_atmospherics/powered/reagent_distillery + name = "chemical distillery" + desc = "A complex machine utilizing state-of-the-art components to mix chemicals at different temperatures." + use_power = 1 + + icon = 'icons/obj/machines/reagent.dmi' + icon_state = "distiller" + var/base_state // The string var used in update icon for overlays, either set manually or initialized. + + power_rating = 3000 + power_losses = 240 + + var/on = FALSE + + var/target_temp = T20C + + var/max_temp = T20C + 300 + var/min_temp = T0C - 10 + + var/current_temp = T20C + + var/use_atmos = FALSE // If true, this machine will be connectable to ports, and use gas mixtures as the source of heat, rather than its internal controls. + + var/static/radial_examine = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_examine") + var/static/radial_use = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_use") + + var/static/radial_pump = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_pump") + + var/static/radial_eject_input = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_eject_input") + var/static/radial_eject_output = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_eject_output") + + var/static/radial_adjust_temp = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_temp") + + var/static/radial_install_input = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_add") + var/static/radial_install_output = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_add") + + var/static/radial_inspectgauges = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_lookat") + + var/static/radial_mix = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_mix") + +// Overlay holders so we don't have to constantly remake them. + var/image/overlay_output_beaker + var/image/overlay_input_beaker + var/image/overlay_off + var/image/overlay_ready + var/image/overlay_cooling + var/image/overlay_heating + var/image/overlay_dumping + var/image/overlay_connected + +// Our unique beaker, used in its unique recipes to ensure things can only react inside this machine and minimize oddities from trying to transfer to a machine and back. + var/obj/item/weapon/reagent_containers/glass/distilling/Reservoir + + var/obj/item/weapon/reagent_containers/glass/InputBeaker + var/obj/item/weapon/reagent_containers/glass/OutputBeaker + +// A multiplier for the production amount. This should really only ever be lower than one, otherwise you end up with duping. + var/efficiency = 1 + +/obj/item/weapon/reagent_containers/glass/distilling + name = "distilling chamber" + desc = "You should not be seeing this." + volume = 600 + + var/obj/machinery/portable_atmospherics/powered/reagent_distillery/Master + +/obj/item/weapon/reagent_containers/glass/distilling/Destroy() + Master = null + ..() + +/obj/machinery/portable_atmospherics/powered/reagent_distillery/Initialize() + ..() + + Reservoir = new (src) + Reservoir.Master = src + + if(!base_state) + base_state = icon_state + + setup_overlay_vars() + + update_icon() + +/obj/machinery/portable_atmospherics/powered/reagent_distillery/proc/setup_overlay_vars() + overlay_output_beaker = image(icon = src.icon, icon_state = "[base_state]-output") + overlay_input_beaker = image(icon = src.icon, icon_state = "[base_state]-input") + overlay_off = image(icon = src.icon, icon_state = "[base_state]-bad") + overlay_ready = image(icon = src.icon, icon_state = "[base_state]-good") + overlay_cooling = image(icon = src.icon, icon_state = "[base_state]-cool") + overlay_heating = image(icon = src.icon, icon_state = "[base_state]-heat") + overlay_dumping = image(icon = src.icon, icon_state = "[base_state]-dump") + overlay_connected = image(icon = src.icon, icon_state = "[base_state]-connector") + +/obj/machinery/portable_atmospherics/powered/reagent_distillery/Destroy() + qdel(Reservoir) + Reservoir = null + if(InputBeaker) + qdel(InputBeaker) + InputBeaker = null + if(OutputBeaker) + qdel(OutputBeaker) + OutputBeaker = null + + ..() + +/obj/machinery/portable_atmospherics/powered/reagent_distillery/attack_hand(mob/user) + var/list/options = list() + options["examine"] = radial_examine + options["use"] = radial_use + options["inspect gauges"] = radial_inspectgauges + options["pulse agitator"] = radial_mix + + if(InputBeaker) + options["eject input"] = radial_eject_input + if(OutputBeaker) + options["eject output"] = radial_eject_output + + if(!use_atmos) + options["adjust temp"] = radial_adjust_temp + + if(length(options) < 1) + return + + var/list/choice = list() + if(length(options) == 1) + for(var/key in options) + choice = key + else + choice = show_radial_menu(user, src, options, require_near = !issilicon(user)) + + switch(choice) + if("examine") + examine(user) + + if("use") + if(powered()) + on = !on + to_chat(user, "You turn \the [src] [on ? "on" : "off"].") + + if("inspect gauges") + to_chat(user, "\The [src]'s gauges read:") + if(!use_atmos) + to_chat(user, "- Target Temperature: [target_temp]") + to_chat(user, "- Temperature: [current_temp]") + + if("pulse agitator") + to_chat(user, "You press \the [src]'s chamber agitator button.") + if(on) + visible_message("\The [src] rattles to life.") + Reservoir.reagents.handle_reactions() + else + spawn(1 SECOND) + to_chat(user, "Nothing happens..") + + if("eject input") + if(InputBeaker) + InputBeaker.forceMove(get_turf(src)) + InputBeaker = null + + if("eject output") + if(OutputBeaker) + OutputBeaker.forceMove(get_turf(src)) + OutputBeaker = null + + if("adjust temp") + target_temp = input("Choose a target temperature.", "Temperature.", T20C) as num + target_temp = CLAMP(target_temp, min_temp, max_temp) + + update_icon() + +/obj/machinery/portable_atmospherics/powered/reagent_distillery/attackby(obj/item/weapon/W as obj, mob/user as mob) + var/list/options = list() + if(istype(W, /obj/item/weapon/reagent_containers/glass)) + if(!InputBeaker) + options["install input"] = radial_install_input + if(!OutputBeaker) + options["install output"] = radial_install_output + + if(!options || !options.len) + update_icon() + return ..() + + var/list/choice = list() + if(length(options) == 1) + for(var/key in options) + choice = key + else + choice = show_radial_menu(user, src, options, require_near = TRUE) // No telekinetics. + + switch(choice) + if("install input") + if(!InputBeaker) + user.drop_from_inventory(W) + W.add_fingerprint(user) + W.forceMove(src) + InputBeaker = W + + if("install output") + if(!OutputBeaker) + user.drop_from_inventory(W) + W.add_fingerprint(user) + W.forceMove(src) + OutputBeaker = W + + update_icon() + +/obj/machinery/portable_atmospherics/powered/reagent_distillery/use_power(var/amount, var/chan = -1) + last_power_draw = amount + if(use_cell && cell && cell.charge) + var/cellcharge = cell.charge + cell.use(amount) + + var/celldifference = max(0, cellcharge - cell.charge) + + amount = celldifference + + var/area/A = get_area(src) + if(!A || !isarea(A)) + return + if(chan == -1) + chan = power_channel + A.use_power(amount, chan) + +/obj/machinery/portable_atmospherics/powered/reagent_distillery/process() + ..() + + var/run_pump = FALSE + + if(InputBeaker || OutputBeaker) + run_pump = TRUE + + var/avg_temp = 0 + var/avg_pressure = 0 + + if(connected_port && connected_port.network.line_members.len) + var/list/members = list() + var/datum/pipe_network/Net = connected_port.network + members = Net.line_members.Copy() + + for(var/datum/pipeline/Line in members) + avg_pressure += Line.air.return_pressure() + avg_temp += Line.air.temperature + + avg_temp /= members.len + avg_pressure /= members.len + + if(!powered()) + on = FALSE + + if(!on || (use_atmos && (!connected_port || avg_pressure < 1000))) + current_temp = round((current_temp + T20C) / 2) + + else if(on) + if(!use_atmos) + if(current_temp != round(target_temp)) + var/shift_mod = 0 + if(current_temp < target_temp) + shift_mod = 1 + else if(current_temp > target_temp) + shift_mod = -1 + current_temp = CLAMP(round((current_temp + 1 * shift_mod) + (rand(-5, 5) / 10)), min_temp, max_temp) + use_power(power_rating * CELLRATE) + else if(connected_port && avg_pressure > 1000) + current_temp = round((current_temp + avg_temp) / 2) + else if(!run_pump) + visible_message("\The [src]'s motors wind down.") + on = FALSE + + if(InputBeaker && Reservoir.reagents.total_volume < Reservoir.reagents.maximum_volume) + InputBeaker.reagents.trans_to_holder(Reservoir.reagents, amount = rand(10,20)) + + if(OutputBeaker && OutputBeaker.reagents.total_volume < OutputBeaker.reagents.maximum_volume) + use_power(power_rating * CELLRATE * 0.5) + Reservoir.reagents.trans_to_holder(OutputBeaker.reagents, amount = rand(1, 5)) + + update_icon() + +/obj/machinery/portable_atmospherics/powered/reagent_distillery/update_icon() + ..() + cut_overlays() + + if(InputBeaker) + add_overlay(overlay_input_beaker) + + if(OutputBeaker) + add_overlay(overlay_output_beaker) + + if(on) + if(OutputBeaker && OutputBeaker.reagents.total_volume < OutputBeaker.reagents.maximum_volume) + add_overlay(overlay_dumping) + else if(current_temp == round(target_temp)) + add_overlay(overlay_ready) + else if(current_temp < target_temp) + add_overlay(overlay_heating) + else + add_overlay(overlay_cooling) + + else + add_overlay(overlay_off) + + if(connected_port) + add_overlay(overlay_connected) + +/* + * Subtypes + */ + +/obj/machinery/portable_atmospherics/powered/reagent_distillery/industrial + name = "industrial chemical distillery" + desc = "A gas-operated variant of a chemical distillery. Able to reach much higher, and lower, temperatures through the use of treated gas." + + use_atmos = TRUE diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 92e01c8ede..3c9fdcba6f 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -44,7 +44,8 @@ /obj/machinery/smartfridge/, /obj/machinery/biogenerator, /obj/structure/frame, - /obj/machinery/radiocarbon_spectrometer + /obj/machinery/radiocarbon_spectrometer, + /obj/machinery/portable_atmospherics/powered/reagent_distillery ) /obj/item/weapon/reagent_containers/glass/Initialize() diff --git a/code/modules/reagents/reagent_containers/patch.dm b/code/modules/reagents/reagent_containers/patch.dm new file mode 100644 index 0000000000..007669286e --- /dev/null +++ b/code/modules/reagents/reagent_containers/patch.dm @@ -0,0 +1,82 @@ + +/* + * Patches. A subtype of pills, in order to inherit the possible future produceability within chem-masters, and dissolving. + */ + +/obj/item/weapon/reagent_containers/pill/patch + name = "patch" + desc = "A patch." + icon = 'icons/obj/chemical.dmi' + icon_state = null + item_state = "pill" + + base_state = "patch" + + possible_transfer_amounts = null + w_class = ITEMSIZE_TINY + slot_flags = SLOT_EARS + volume = 60 + + var/pierce_material = FALSE // If true, the patch can be used through thick material. + +/obj/item/weapon/reagent_containers/pill/patch/attack(mob/M as mob, mob/user as mob) + var/mob/living/L = user + + if(M == L) + if(istype(M, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + var/obj/item/organ/external/affecting = H.get_organ(check_zone(L.zone_sel.selecting)) + if(!affecting) + to_chat(user, "The limb is missing!") + return + if(affecting.status >= ORGAN_ROBOT) + to_chat(user, "\The [src] won't work on a robotic limb!") + return + + if(!H.can_inject(user, FALSE, L.zone_sel.selecting, pierce_material)) + to_chat(user, "\The [src] can't be applied through such a thick material!") + return + + to_chat(H, "\The [src] is placed on your [affecting].") + M.drop_from_inventory(src) //icon update + if(reagents.total_volume) + reagents.trans_to_mob(M, reagents.total_volume, CHEM_TOUCH) + qdel(src) + return 1 + + else if(istype(M, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + var/obj/item/organ/external/affecting = H.get_organ(check_zone(L.zone_sel.selecting)) + if(!affecting) + to_chat(user, "The limb is missing!") + return + if(affecting.status >= ORGAN_ROBOT) + to_chat(user, "\The [src] won't work on a robotic limb!") + return + + if(!H.can_inject(user, FALSE, L.zone_sel.selecting, pierce_material)) + to_chat(user, "\The [src] can't be applied through such a thick material!") + return + + user.visible_message("[user] attempts to place \the [src] onto [H]`s [affecting].") + + user.setClickCooldown(user.get_attack_speed(src)) + if(!do_mob(user, M)) + return + + user.drop_from_inventory(src) //icon update + user.visible_message("[user] applies \the [src] to [H].") + + var/contained = reagentlist() + add_attack_logs(user,M,"Applied a patch containing [contained]") + + to_chat(H, "\The [src] is placed on your [affecting].") + M.drop_from_inventory(src) //icon update + + if(reagents.total_volume) + reagents.trans_to_mob(M, reagents.total_volume, CHEM_TOUCH) + qdel(src) + + return 1 + + return 0 \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index c0b647e53b..5ca47a6d3b 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -7,6 +7,9 @@ icon = 'icons/obj/chemical.dmi' icon_state = null item_state = "pill" + + var/base_state = "pill" + possible_transfer_amounts = null w_class = ITEMSIZE_TINY slot_flags = SLOT_EARS @@ -15,7 +18,7 @@ /obj/item/weapon/reagent_containers/pill/Initialize() . = ..() if(!icon_state) - icon_state = "pill[rand(1, 4)]" //preset pills only use colour changing or unique icons + icon_state = "[base_state][rand(1, 4)]" //preset pills only use colour changing or unique icons /obj/item/weapon/reagent_containers/pill/attack(mob/M as mob, mob/user as mob) if(M == user) diff --git a/icons/mob/radial.dmi b/icons/mob/radial.dmi index cfdd0e549a04e9de6df56b619c29afb9220831d4..da1f69840c6843e9fdc1af99486fc56a8c1ee59d 100644 GIT binary patch literal 16285 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 U4kaguWA^}M1r7O1S<}$}3+bS21^@s6 literal 15818 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 Iol`;+0K4062><{9 diff --git a/icons/obj/machines/reagent.dmi b/icons/obj/machines/reagent.dmi new file mode 100644 index 0000000000000000000000000000000000000000..d11f34270d5eee41aac79a89de1686dd79606b05 GIT binary patch literal 1748 zcmb`IeKga19LK+VvW7M!$@NrGYt|!Wxh}g!CK_s$Tat>QN6VB}GSSfToTK!BQXZ;h zv1pi;rP%d2C1PZxTI8V?#?RgT|DJo!J?EbD`h4DheBOV2&gXp2=acA7b(^nkq749; z?@n>qp;7kVF;7dAYn={CHB!l<`7&LC!VjMc4P%C$JOM!D&0A?T*jP)w_~6LPT;4mH zvY{=+1RaGY&?u?4?BmlaGgAi|TG(UVdnS5Z`k_lMgk_8FdJV?@jyC-wyPlqv=7Wg$ za82AzZ(|(YZ0G}v_srHy5;O!~r6>?#_?2fP*FAUyS?l;Ip41_qSJ*+T1L2P{Nyh#@ zOEVXq?DOVV7jX4kAtg0oWpG1;ziMo{vN+J%rjzG<~!n!`LLx~%``N*eKRahrg~?lo}Ttp|CGsOsp_!TJ0}XYy$P9~ zE2If?p@s1FrfH@_k}r`Xm-_=U-`6G2Tin)`jwvxgCZ=XovWJI{hX(|J))2$m+FHPV z_H2_b77GWuwc;;d2p}Lj+G1#Eh~(r{Cy^jsM>j>-h*hem&qSi+qN0`H4HAdL?ZcEG z_JXFT9l*7#;$D&nIWTb+knK!fLJ$=D-ps;c-+P0(oqO2lol-hG{|H>a*qGyE|BQ1G z0D5pRUm&=Yn3(v{Wt-!3AB(=x(H10ID)n$nI(_;y9B?=sUnna1u7`MJg!khtlW9oa z#qnH@$Ynk4NI%hgIwYhpG$y^0IWu)*>gyYiV^G=Hrv;5^AR{9qFK~V6Th?s(CK9Q{ zX^}R{m=iNN7<7Bqd_rTKfo5^Mt}rHsQXr!fjS$}3!;)B1BO@bxOf!Q9)2%Hr*r&#w z_pFM#9%a!VZHie-B1I~Q=wkO8FD$(d zdgFboAsPXdn>}-g|7m+!{%5=Iq>7pv3r#tVGSDQXSY4zME@@_ZALUk6U`%p?X7p{_cAf)8yG-xxm+CYfS;eFzCKZzoBh1zo6ZmWafaIKk|Isa=dZIn zwJ5cDD2Hh^+ObA7Ern*^M?)u$;Chs*U9Bx7_N-4y6tiWmZeVHWxu0hVRaD9YtC@`v zHss^xecj#Nw<2;(<`p*@_s@`{cb3D?U+anp)_&K}aQVk3BksWq7a;j8X^Etll&x>K zaUr`49%J)OSX!%?-zoRclI(%$A< zb1v2^^1zFKhhfcryU<>6h7sh9E2!q)*qbF(tPtAS7KAn==g91ATL(ubM+jmpo3UqA z#o?JPy2V&$>{q-a)I{B&Wk1R&344du!=nCwl5Jq}3sY~e*qnEE&XWDIPS>1KF-(Jz*_)Ac{7I2K_sU{l}Vrp=frYcz6mj90Iz5{q8Q83;t z!CzWPCK-}RF;z$+k$COij?Z;ZMn+EL%RZ;xNrij#5y<_nFNm4j@LAGA8bOo)CUYC5 zih@7qzN`>QWp_A>o;Hmul}dDnelU^>fW}e0C1f#tB?vW-SrEWtbqSlw1-sNGW@cuu z>7~TE6ie?jFd^@TARj>{nQkSS(#QAfX)aI^ZG?DuyyrtPyj`A@bG`GsBSz!;5H?x2 zetGY2JR9-Os=JSs!p@$aq%I5bfW6M1g#mQBt(~pxq4!M&i*;Eb*s#3DeNwcbP$^uT z=t7HceKNTh?C)s2ecN2AZf(_XhL$Ui!jAau-~XY%|6=`5wzymCiELU literal 0 HcmV?d00001 diff --git a/nano/templates/chem_master.tmpl b/nano/templates/chem_master.tmpl index b8b8300b4a..f1b981ba6e 100644 --- a/nano/templates/chem_master.tmpl +++ b/nano/templates/chem_master.tmpl @@ -67,6 +67,7 @@ {{:helper.link('Create pill (60 units max)', null, {'createpill' : 1})}} {{:helper.link('Create multiple pills', null, {'createpill_multiple' : 1})}} {{:helper.link('Create bottle (60 units max)', null, {'createbottle' : 1})}} + {{:helper.link('Create patch (60 units max)', null, {'createpatch' : 1})}}
{{:helper.link('', 'pill pill' + data.pillSprite, {'tab_select' : 'pill'}, null, 'link32')}} diff --git a/vorestation.dme b/vorestation.dme index 9bddf5ab23..bf058cb1b2 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2090,6 +2090,7 @@ #include "code\modules\mob\update_icons.dm" #include "code\modules\mob\_modifiers\aura.dm" #include "code\modules\mob\_modifiers\cloning.dm" +#include "code\modules\mob\_modifiers\medical.dm" #include "code\modules\mob\_modifiers\modifiers.dm" #include "code\modules\mob\_modifiers\modifiers_misc.dm" #include "code\modules\mob\_modifiers\traits.dm" @@ -2850,7 +2851,11 @@ #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Food-Drinks.dm" #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Food-Drinks_vr.dm" #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Medicine.dm" +<<<<<<< HEAD:vorestation.dme #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Medicine_vr.dm" +======= +#include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Modifiers.dm" +>>>>>>> 0069b9d... Merge pull request #6396 from Mechoid/ChemistryAdvancement:polaris.dme #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Other.dm" #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Toxins.dm" #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Vore_vr.dm" @@ -2864,6 +2869,8 @@ #include "code\modules\reagents\dispenser\dispenser_presets.dm" #include "code\modules\reagents\dispenser\dispenser_presets_vr.dm" #include "code\modules\reagents\dispenser\supply.dm" +#include "code\modules\reagents\distilling\Distilling-Recipes.dm" +#include "code\modules\reagents\distilling\distilling.dm" #include "code\modules\reagents\reagent_containers\blood_pack.dm" #include "code\modules\reagents\reagent_containers\blood_pack_vr.dm" #include "code\modules\reagents\reagent_containers\borghydro.dm" @@ -2871,7 +2878,11 @@ #include "code\modules\reagents\reagent_containers\glass.dm" #include "code\modules\reagents\reagent_containers\glass_vr.dm" #include "code\modules\reagents\reagent_containers\hypospray.dm" +<<<<<<< HEAD:vorestation.dme #include "code\modules\reagents\reagent_containers\hypospray_vr.dm" +======= +#include "code\modules\reagents\reagent_containers\patch.dm" +>>>>>>> 0069b9d... Merge pull request #6396 from Mechoid/ChemistryAdvancement:polaris.dme #include "code\modules\reagents\reagent_containers\pill.dm" #include "code\modules\reagents\reagent_containers\pill_vr.dm" #include "code\modules\reagents\reagent_containers\spray.dm" From ec3bee10b6fbae7871894aac63f7b2144141f694 Mon Sep 17 00:00:00 2001 From: Novacat <35587478+Novacat@users.noreply.github.com> Date: Wed, 21 Aug 2019 17:51:50 -0400 Subject: [PATCH 2/2] Update vorestation.dme --- vorestation.dme | 6 ------ 1 file changed, 6 deletions(-) diff --git a/vorestation.dme b/vorestation.dme index bf058cb1b2..3ae7dcafc2 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2851,11 +2851,8 @@ #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Food-Drinks.dm" #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Food-Drinks_vr.dm" #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Medicine.dm" -<<<<<<< HEAD:vorestation.dme #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Medicine_vr.dm" -======= #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Modifiers.dm" ->>>>>>> 0069b9d... Merge pull request #6396 from Mechoid/ChemistryAdvancement:polaris.dme #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Other.dm" #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Toxins.dm" #include "code\modules\reagents\Chemistry-Reagents\Chemistry-Reagents-Vore_vr.dm" @@ -2878,11 +2875,8 @@ #include "code\modules\reagents\reagent_containers\glass.dm" #include "code\modules\reagents\reagent_containers\glass_vr.dm" #include "code\modules\reagents\reagent_containers\hypospray.dm" -<<<<<<< HEAD:vorestation.dme #include "code\modules\reagents\reagent_containers\hypospray_vr.dm" -======= #include "code\modules\reagents\reagent_containers\patch.dm" ->>>>>>> 0069b9d... Merge pull request #6396 from Mechoid/ChemistryAdvancement:polaris.dme #include "code\modules\reagents\reagent_containers\pill.dm" #include "code\modules\reagents\reagent_containers\pill_vr.dm" #include "code\modules\reagents\reagent_containers\spray.dm"