From d2789800669447ea32a2fe66f0d2a537dc8db663 Mon Sep 17 00:00:00 2001 From: Andrew Date: Sun, 11 Jun 2023 20:52:39 +0300 Subject: [PATCH] ChemMaster and CondiMaster refactored, prints items over time (#75849) ![ZceBfkJaFG](https://github.com/tgstation/tgstation/assets/3625094/aedf6178-dad7-40b2-a7ea-18da6f56e9e8) ## About The Pull Request Chem master has been using some hard coded styles for containers, pills and patches. Some people didn't bother to update styles, and they stayed outdated. Now it uses just a list of reagent containers instead, which makes it easy to add new containers - just one line of code. Also changed its sprite for better animations, emissive overlay, and to display buffer reagents on the sprite itself. Now it plays printing animation when you actually print containers and servos have a purpose now - they increase the amount of containers printed at once by up to 100% * part_tier. Pills and patches are always printed at double amount. And fixes #59734 ## Why It's Good For The Game Makes chem master easier to manage in code and easier to use in-game. Printing delay is added for consistency with other fabrication machines (like lathes), to give a purpose for the servo motor used in construction, for visuals (to show the printing animation only when something is being printed, and not just when you move stuff in and out of buffer as before) and to prevent people from spamming the world with unneeded objects with 0 second delay. ## Changelog :cl: qol: Chemmaster UI tweaked fix: Fixed chem master showing wrong data during reagent analysis fix: Fixed chem master not working with fermented drinks image: Chemmaster resprited, now has an indicator for buffer reagents refactor: Refactored chemmaster code, it now uses reagent containers instead of styles balance: Chemmaster now uses servos and has printing animation of 0.75 second duration. Outputs 1 container or up to 2 pills/patches per cycle by default. Can be upgraded to output up to 4 and 8 with t4 servos. /:cl: --- code/modules/asset_cache/assets/chemmaster.dm | 15 + .../chemistry/machinery/chem_master.dm | 905 ++++++++---------- .../reagents/reagent_containers/condiment.dm | 13 + .../reagents/reagent_containers/patch.dm | 43 + .../reagents/reagent_containers/pill.dm | 51 + icons/obj/medical/chemical.dmi | Bin 68321 -> 64080 bytes icons/obj/reagentfillings.dmi | Bin 7743 -> 8300 bytes tgstation.dme | 1 + tgui/packages/tgui/interfaces/ChemMaster.js | 438 --------- tgui/packages/tgui/interfaces/ChemMaster.tsx | 453 +++++++++ 10 files changed, 957 insertions(+), 962 deletions(-) create mode 100644 code/modules/asset_cache/assets/chemmaster.dm delete mode 100644 tgui/packages/tgui/interfaces/ChemMaster.js create mode 100644 tgui/packages/tgui/interfaces/ChemMaster.tsx diff --git a/code/modules/asset_cache/assets/chemmaster.dm b/code/modules/asset_cache/assets/chemmaster.dm new file mode 100644 index 00000000000..d37e6de91a5 --- /dev/null +++ b/code/modules/asset_cache/assets/chemmaster.dm @@ -0,0 +1,15 @@ +///Icons for containers printed in ChemMaster +/datum/asset/spritesheet/chemmaster + name = "chemmaster" + +/datum/asset/spritesheet/chemmaster/create_spritesheets() + var/list/ids = list() + for(var/category in GLOB.chem_master_containers) + for(var/obj/item/reagent_containers/container as anything in GLOB.chem_master_containers[category]) + var/icon_file = initial(container.icon) + var/icon_state = initial(container.icon_state) + var/id = sanitize_css_class_name("[container]") + if(id in ids) // exclude duplicate containers + continue + ids += id + Insert(id, icon_file, icon_state) diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 3d7570894db..941f46cec12 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -1,143 +1,188 @@ -/** - * Machine that allows to identify and separate reagents in fitting container - * as well as to create new containers with separated reagents in it. - * - * Contains logic for both ChemMaster and CondiMaster, switched by "condi". - */ +#define TRANSFER_MODE_DESTROY 0 +#define TRANSFER_MODE_MOVE 1 +#define TARGET_BEAKER "beaker" +#define TARGET_BUFFER "buffer" +#define CAT_CONDIMENTS "condiments" +#define CAT_TUBES "tubes" +#define CAT_PILLS "pills" +#define CAT_PATCHES "patches" + +/// List of containers the Chem Master machine can print +GLOBAL_LIST_INIT(chem_master_containers, list( + CAT_CONDIMENTS = list( + /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/condiment/flour, + /obj/item/reagent_containers/condiment/sugar, + /obj/item/reagent_containers/condiment/rice, + /obj/item/reagent_containers/condiment/cornmeal, + /obj/item/reagent_containers/condiment/milk, + /obj/item/reagent_containers/condiment/soymilk, + /obj/item/reagent_containers/condiment/yoghurt, + /obj/item/reagent_containers/condiment/saltshaker, + /obj/item/reagent_containers/condiment/peppermill, + /obj/item/reagent_containers/condiment/soysauce, + /obj/item/reagent_containers/condiment/bbqsauce, + /obj/item/reagent_containers/condiment/enzyme, + /obj/item/reagent_containers/condiment/hotsauce, + /obj/item/reagent_containers/condiment/coldsauce, + /obj/item/reagent_containers/condiment/mayonnaise, + /obj/item/reagent_containers/condiment/ketchup, + /obj/item/reagent_containers/condiment/quality_oil, + /obj/item/reagent_containers/condiment/cooking_oil, + /obj/item/reagent_containers/condiment/peanut_butter, + /obj/item/reagent_containers/condiment/cherryjelly, + /obj/item/reagent_containers/condiment/honey, + /obj/item/reagent_containers/condiment/pack, + ), + CAT_TUBES = list( + /obj/item/reagent_containers/cup/tube + ), + CAT_PILLS = typecacheof(list( + /obj/item/reagent_containers/pill/style + )), + CAT_PATCHES = typecacheof(list( + /obj/item/reagent_containers/pill/patch/style + )) +)) + /obj/machinery/chem_master name = "ChemMaster 3000" desc = "Used to separate chemicals and distribute them in a variety of forms." density = TRUE layer = BELOW_OBJ_LAYER icon = 'icons/obj/medical/chemical.dmi' - icon_state = "mixer0" - base_icon_state = "mixer" + icon_state = "chemmaster" + base_icon_state = "chemmaster" idle_power_usage = BASE_MACHINE_IDLE_CONSUMPTION * 0.2 resistance_flags = FIRE_PROOF | ACID_PROOF circuit = /obj/item/circuitboard/machine/chem_master - - /// Input reagents container + /// Icons for different percentages of buffer reagents + var/fill_icon = 'icons/obj/reagentfillings.dmi' + var/fill_icon_state = "chemmaster" + var/list/fill_icon_thresholds = list(10,20,30,40,50,60,70,80,90,100) + /// Inserted reagent container var/obj/item/reagent_containers/beaker - /// Pill bottle for newly created pills - var/obj/item/storage/pill_bottle/bottle - /// Whether separated reagents should be moved back to container or destroyed. 1 - move, 0 - destroy - var/mode = 1 - /// Decides what UI to show. If TRUE shows UI of CondiMaster, if FALSE - ChemMaster - var/condi = FALSE - /// Currently selected pill style - var/chosen_pill_style = 1 - /// Currently selected condiment bottle style - var/chosen_condi_style = CONDIMASTER_STYLE_AUTO - /// Current UI screen. On the moment of writing this comment there were two: 'home' - main screen, and 'analyze' - info about specific reagent - var/screen = "home" - /// Info to display on 'analyze' screen - var/analyze_vars[0] - /// List of available pill styles for UI - var/list/pill_styles - /// List of available condibottle styles for UI - var/list/condi_styles - /// Currently selected patch style - var/patch_style = DEFAULT_PATCH_STYLE - /// List of available patch styles for UI - var/list/patch_styles + /// Whether separated reagents should be moved back to container or destroyed. + var/transfer_mode = TRANSFER_MODE_MOVE + /// Whether reagent analysis screen is active + var/reagent_analysis_mode = FALSE + /// Reagent being analyzed + var/datum/reagent/analyzed_reagent + /// List of printable container types + var/list/printable_containers = list() + /// Container used by default to reset to (REF) + var/default_container + /// Selected printable container type (REF) + var/selected_container + /// Whether the machine has an option to suggest container + var/has_container_suggestion = FALSE + /// Whether to suggest container or not + var/do_suggest_container = FALSE + /// The container suggested by main reagent in the buffer + var/suggested_container + /// Whether the machine is busy with printing containers + var/is_printing = FALSE + /// Number of printed containers in the current printing cycle for UI progress bar + var/printing_progress + var/printing_total + /// Default duration of printing cycle + var/printing_speed = 0.75 SECONDS // Duration of animation + /// The amount of containers printed in one cycle + var/printing_amount = 1 /obj/machinery/chem_master/Initialize(mapload) create_reagents(100) - . = ..() + load_printable_containers() + default_container = REF(printable_containers[printable_containers[1]][1]) + selected_container = default_container + return ..() /obj/machinery/chem_master/Destroy() QDEL_NULL(beaker) - QDEL_NULL(bottle) return ..() +/obj/machinery/chem_master/on_deconstruction() + replace_beaker() + return ..() + +/obj/machinery/chem_master/handle_atom_del(atom/deleted_atom) + ..() + if(deleted_atom == beaker) + beaker = null + update_appearance(UPDATE_ICON) + /obj/machinery/chem_master/RefreshParts() . = ..() reagents.maximum_volume = 0 - for(var/obj/item/reagent_containers/cup/beaker/B in component_parts) - reagents.maximum_volume += B.reagents.maximum_volume + for(var/obj/item/reagent_containers/cup/beaker/beaker in component_parts) + reagents.maximum_volume += beaker.reagents.maximum_volume + printing_amount = 0 + for(var/datum/stock_part/servo/servo in component_parts) + printing_amount += servo.tier -/obj/machinery/chem_master/ex_act(severity, target) - if(severity <= EXPLODE_LIGHT) - return FALSE - return ..() - -/obj/machinery/chem_master/contents_explosion(severity, target) +/obj/machinery/chem_master/update_appearance(updates=ALL) . = ..() - switch(severity) - if(EXPLODE_DEVASTATE) - if(beaker) - SSexplosions.high_mov_atom += beaker - if(bottle) - SSexplosions.high_mov_atom += bottle - if(EXPLODE_HEAVY) - if(beaker) - SSexplosions.med_mov_atom += beaker - if(bottle) - SSexplosions.med_mov_atom += bottle - if(EXPLODE_LIGHT) - if(beaker) - SSexplosions.low_mov_atom += beaker - if(bottle) - SSexplosions.low_mov_atom += bottle - -/obj/machinery/chem_master/handle_atom_del(atom/A) - ..() - if(A == beaker) - beaker = null - reagents.clear_reagents() - update_appearance() - else if(A == bottle) - bottle = null - -/obj/machinery/chem_master/update_icon_state() - icon_state = "[base_icon_state][beaker ? 1 : 0][(machine_stat & BROKEN) ? "_b" : (powered() ? null : "_nopower")]" - return ..() + if(panel_open || (machine_stat & (NOPOWER|BROKEN))) + set_light(0) + else + set_light(1, 1, "#fffb00") /obj/machinery/chem_master/update_overlays() . = ..() + if(!isnull(beaker)) + . += mutable_appearance(icon, base_icon_state + "_overlay_container") if(machine_stat & BROKEN) - . += "waitlight" + . += mutable_appearance(icon, base_icon_state + "_overlay_broken") + if(panel_open) + . += mutable_appearance(icon, base_icon_state + "_overlay_panel") -/obj/machinery/chem_master/blob_act(obj/structure/blob/B) - if (prob(50)) - qdel(src) + if(is_printing) + . += mutable_appearance(icon, base_icon_state + "_overlay_extruder_active") + else + . += mutable_appearance(icon, base_icon_state + "_overlay_extruder") + + // Screen overlay + if(!panel_open && !(machine_stat & (NOPOWER | BROKEN))) + var/screen_overlay = base_icon_state + "_overlay_screen" + if(reagent_analysis_mode) + screen_overlay += "_analysis" + else if(is_printing) + screen_overlay += "_active" + else if(reagents.total_volume > 0) + screen_overlay += "_main" + . += mutable_appearance(icon, screen_overlay) + . += emissive_appearance(icon, base_icon_state + "_overlay_lightmask", src, alpha = src.alpha) + + // Buffer reagents overlay + if(reagents.total_volume) + var/threshold = null + for(var/i in 1 to fill_icon_thresholds.len) + if(ROUND_UP(100 * reagents.total_volume / reagents.maximum_volume) >= fill_icon_thresholds[i]) + threshold = i + if(threshold) + var/fill_name = "[fill_icon_state][fill_icon_thresholds[threshold]]" + var/mutable_appearance/filling = mutable_appearance(fill_icon, fill_name) + filling.color = mix_color_from_reagents(reagents.reagent_list) + . += filling /obj/machinery/chem_master/wrench_act(mob/living/user, obj/item/tool) . = ..() default_unfasten_wrench(user, tool) return TOOL_ACT_TOOLTYPE_SUCCESS -/obj/machinery/chem_master/attackby(obj/item/I, mob/user, params) - if(default_deconstruction_screwdriver(user, "mixer0_nopower", "mixer0", I)) +/obj/machinery/chem_master/attackby(obj/item/item, mob/user, params) + if(default_deconstruction_screwdriver(user, icon_state, icon_state, item)) + update_appearance(UPDATE_ICON) return - - else if(default_deconstruction_crowbar(I)) + if(default_deconstruction_crowbar(item)) return - - if(is_reagent_container(I) && !(I.item_flags & ABSTRACT) && I.is_open_container()) - . = TRUE // no afterattack - if(panel_open) - to_chat(user, span_warning("You can't use the [src.name] while its panel is opened!")) - return - var/obj/item/reagent_containers/B = I - . = TRUE // no afterattack - if(!user.transferItemToLoc(B, src)) - return - replace_beaker(user, B) - to_chat(user, span_notice("You add [B] to [src].")) - ui_interact(user) - update_appearance() - else if(!condi && istype(I, /obj/item/storage/pill_bottle)) - if(bottle) - to_chat(user, span_warning("A pill bottle is already loaded into [src]!")) - return - if(!user.transferItemToLoc(I, src)) - return - bottle = I - to_chat(user, span_notice("You add [I] into the dispenser slot.")) - ui_interact(user) - else - return ..() + if(is_reagent_container(item) && !(item.item_flags & ABSTRACT) && item.is_open_container()) + . = TRUE // No afterattack + var/obj/item/reagent_containers/beaker = item + replace_beaker(user, beaker) + if(!panel_open) + ui_interact(user) + return ..() /obj/machinery/chem_master/attack_hand_secondary(mob/user, list/modifiers) . = ..() @@ -154,62 +199,28 @@ /obj/machinery/chem_master/attack_ai_secondary(mob/user, list/modifiers) return attack_hand_secondary(user, modifiers) -/** - * Handles process of moving input reagents containers in/from machine - * - * When called checks for previously inserted beaker and gives it to user. - * Then, if new_beaker provided, places it into src.beaker. - * Returns `boolean`. TRUE if user provided (ignoring whether threre was any beaker change) and FALSE if not. - * - * Arguments: - * * user - Mob that initialized replacement, gets previously inserted beaker if there's any - * * new_beaker - New beaker to insert. Optional - */ +/// Insert new beaker and/or eject the inserted one /obj/machinery/chem_master/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker) - if(!user) + if(!user?.transferItemToLoc(new_beaker, src)) return FALSE if(beaker) try_put_in_hand(beaker, user) beaker = null if(new_beaker) beaker = new_beaker - update_appearance() + update_appearance(UPDATE_ICON) return TRUE -/obj/machinery/chem_master/on_deconstruction() - replace_beaker() - if(bottle) - bottle.forceMove(drop_location()) - adjust_item_drop_location(bottle) - bottle = null - return ..() - -/obj/machinery/chem_master/proc/load_styles() - //Calculate the span tags and ids fo all the available pill icons - var/datum/asset/spritesheet/simple/assets = get_asset_datum(/datum/asset/spritesheet/simple/pills) - pill_styles = list() - for (var/x in 1 to PILL_STYLE_COUNT) - var/list/SL = list() - SL["id"] = x - SL["className"] = assets.icon_class_name("pill[x]") - pill_styles += list(SL) - - var/datum/asset/spritesheet/simple/patches_assets = get_asset_datum(/datum/asset/spritesheet/simple/patches) - patch_styles = list() - for (var/raw_patch_style in PATCH_STYLE_LIST) - //adding class_name for use in UI - var/list/patch_style = list() - patch_style["style"] = raw_patch_style - patch_style["class_name"] = patches_assets.icon_class_name(raw_patch_style) - patch_styles += list(patch_style) - - condi_styles = strip_condi_styles_to_icons(get_condi_styles()) +/obj/machinery/chem_master/proc/load_printable_containers() + printable_containers = list( + CAT_TUBES = GLOB.chem_master_containers[CAT_TUBES], + CAT_PILLS = GLOB.chem_master_containers[CAT_PILLS], + CAT_PATCHES = GLOB.chem_master_containers[CAT_PATCHES], + ) /obj/machinery/chem_master/ui_assets(mob/user) return list( - get_asset_datum(/datum/asset/spritesheet/simple/pills), - get_asset_datum(/datum/asset/spritesheet/simple/condiments), - get_asset_datum(/datum/asset/spritesheet/simple/patches), + get_asset_datum(/datum/asset/spritesheet/chemmaster) ) /obj/machinery/chem_master/ui_interact(mob/user, datum/tgui/ui) @@ -218,42 +229,92 @@ ui = new(user, src, "ChemMaster", name) ui.open() +/obj/machinery/chem_master/ui_static_data(mob/user) + var/list/data = list() + data["categories"] = list() + for(var/category in printable_containers) + var/container_data = list() + for(var/obj/item/reagent_containers/container as anything in printable_containers[category]) + container_data += list(list( + "icon" = sanitize_css_class_name("[container]"), + "ref" = REF(container), + "name" = initial(container.name), + "volume" = initial(container.volume), + )) + data["categories"]+= list(list( + "name" = category, + "containers" = container_data, + )) + + return data + /obj/machinery/chem_master/ui_data(mob/user) var/list/data = list() - data["isBeakerLoaded"] = beaker ? 1 : 0 - data["beakerCurrentVolume"] = beaker ? round(beaker.reagents.total_volume, 0.01) : null - data["beakerMaxVolume"] = beaker ? beaker.volume : null - data["mode"] = mode - data["condi"] = condi - data["screen"] = screen - data["analyzeVars"] = analyze_vars - data["chosenPillStyle"] = chosen_pill_style - data["chosenCondiStyle"] = chosen_condi_style - data["autoCondiStyle"] = CONDIMASTER_STYLE_AUTO - data["isPillBottleLoaded"] = bottle ? 1 : 0 - if(bottle) - data["pillBottleCurrentAmount"] = bottle.contents.len - data["pillBottleMaxAmount"] = bottle.atom_storage.max_slots - var/beaker_contents[0] - if(beaker) - for(var/datum/reagent/R in beaker.reagents.reagent_list) - beaker_contents.Add(list(list("name" = R.name, "id" = ckey(R.name), "volume" = round(R.volume, 0.01)))) // list in a list because Byond merges the first list... - data["beakerContents"] = beaker_contents + data["reagentAnalysisMode"] = reagent_analysis_mode + if(reagent_analysis_mode && analyzed_reagent) + var/state + switch(analyzed_reagent.reagent_state) + if(SOLID) + state = "Solid" + if(LIQUID) + state = "Liquid" + if(GAS) + state = "Gas" + else + state = "Unknown" + data["analysisData"] = list( + "name" = analyzed_reagent.name, + "state" = state, + "pH" = analyzed_reagent.ph, + "color" = analyzed_reagent.color, + "description" = analyzed_reagent.description, + "purity" = analyzed_reagent.purity, + "metaRate" = analyzed_reagent.metabolization_rate, + "overdose" = analyzed_reagent.overdose_threshold, + "addictionTypes" = reagents.parse_addictions(analyzed_reagent), + ) + else + data["isPrinting"] = is_printing + data["printingProgress"] = printing_progress + data["printingTotal"] = printing_total + data["hasBeaker"] = beaker ? TRUE : FALSE + data["beakerCurrentVolume"] = beaker ? round(beaker.reagents.total_volume, 0.01) : null + data["beakerMaxVolume"] = beaker ? beaker.volume : null + var/list/beaker_contents = list() + if(beaker) + for(var/datum/reagent/reagent in beaker.reagents.reagent_list) + beaker_contents.Add(list(list("name" = reagent.name, "ref" = REF(reagent), "volume" = round(reagent.volume, 0.01)))) + data["beakerContents"] = beaker_contents - var/buffer_contents[0] - if(reagents.total_volume) - for(var/datum/reagent/N in reagents.reagent_list) - buffer_contents.Add(list(list("name" = N.name, "id" = ckey(N.name), "volume" = round(N.volume, 0.01)))) // ^ - data["bufferContents"] = buffer_contents + var/list/buffer_contents = list() + if(reagents.total_volume) + for(var/datum/reagent/reagent in reagents.reagent_list) + buffer_contents.Add(list(list("name" = reagent.name, "ref" = REF(reagent), "volume" = round(reagent.volume, 0.01)))) + data["bufferContents"] = buffer_contents + data["bufferCurrentVolume"] = round(reagents.total_volume, 0.01) + data["bufferMaxVolume"] = reagents.maximum_volume + + data["transferMode"] = transfer_mode + + data["hasContainerSuggestion"] = !!has_container_suggestion + if(has_container_suggestion) + data["doSuggestContainer"] = !!do_suggest_container + if(do_suggest_container) + if(reagents.total_volume > 0) + var/master_reagent = reagents.get_master_reagent() + suggested_container = get_suggested_container(master_reagent) + else + suggested_container = default_container + data["suggestedContainer"] = suggested_container + selected_container = suggested_container + else if (isnull(selected_container)) + selected_container = default_container + + data["selectedContainerRef"] = selected_container + var/obj/item/reagent_containers/container = locate(selected_container) + data["selectedContainerVolume"] = initial(container.volume) - //Calculated once since it'll never change - if(!pill_styles || !condi_styles || !patch_style || !patch_styles) - load_styles() - data["pillStyles"] = pill_styles - data["condiStyles"] = condi_styles - data["patch_style"] = patch_style - data["patch_styles"] = patch_styles return data /obj/machinery/chem_master/ui_act(action, params) @@ -265,379 +326,175 @@ replace_beaker(usr) return TRUE - if(action == "ejectPillBottle") - if(!bottle) - return FALSE - bottle.forceMove(drop_location()) - adjust_item_drop_location(bottle) - bottle = null - return TRUE - if(action == "transfer") - var/reagent = GLOB.name2reagent[params["id"]] + var/reagent_ref = params["reagentRef"] var/amount = text2num(params["amount"]) - var/to_container = params["to"] - // Custom amount - if (amount == -1) - amount = text2num(input( - "Enter the amount you want to transfer:", - name, "")) - if (amount == null || amount <= 0) - return FALSE - use_power(active_power_usage) - if (to_container == "beaker" && !mode) - reagents.remove_reagent(reagent, amount) - return TRUE - if (!beaker) - return FALSE - if (to_container == "buffer") - var/datum/reagent/R = beaker.reagents.get_reagent(reagent) - if(!check_reactions(R, beaker.reagents)) - return FALSE - beaker.reagents.trans_id_to(src, reagent, amount) - return TRUE - if (to_container == "beaker" && mode) - var/datum/reagent/R = reagents.get_reagent(reagent) - if(!check_reactions(R, reagents)) - return FALSE - reagents.trans_id_to(beaker, reagent, amount) - return TRUE - return FALSE + var/target = params["target"] + return transfer_reagent(reagent_ref, amount, target) - if(action == "toggleMode") - mode = !mode + if(action == "toggleTransferMode") + transfer_mode = !transfer_mode return TRUE - if(action == "pillStyle") - var/id = text2num(params["id"]) - chosen_pill_style = id + if(action == "analyze") + analyzed_reagent = locate(params["reagentRef"]) + if(analyzed_reagent) + reagent_analysis_mode = TRUE + update_appearance(UPDATE_ICON) + return TRUE + + if(action == "stopAnalysis") + reagent_analysis_mode = FALSE + analyzed_reagent = null + update_appearance(UPDATE_ICON) return TRUE - if(action == "condiStyle") - chosen_condi_style = params["id"] + if(action == "stopPrinting") + is_printing = FALSE + return TRUE + + if(action == "toggleContainerSuggestion") + do_suggest_container = !do_suggest_container + return TRUE + + if(action == "selectContainer") + selected_container = params["ref"] return TRUE if(action == "create") if(reagents.total_volume == 0) return FALSE - var/item_type = params["type"] - // Get amount of items - var/amount = text2num(params["amount"]) - if(amount == null) - amount = text2num(input(usr, - "Max 10. Buffer content will be split evenly.", - "How many to make?", 1)) - amount = clamp(round(amount), 0, 10) - if (amount <= 0) + var/item_count = text2num(params["itemCount"]) + if(item_count <= 0) return FALSE - // Get units per item - var/vol_each = text2num(params["volume"]) - var/vol_each_text = params["volume"] - var/vol_each_max = reagents.total_volume / amount - var/list/style - use_power(active_power_usage) - if (item_type == "pill") - vol_each_max = min(50, vol_each_max) - else if (item_type == "patch") - vol_each_max = min(40, vol_each_max) - else if (item_type == "bottle") - vol_each_max = min(30, vol_each_max) - else if (item_type == "condimentPack") - vol_each_max = min(10, vol_each_max) - else if (item_type == "condimentBottle") - var/list/styles = get_condi_styles() - if (chosen_condi_style == CONDIMASTER_STYLE_AUTO || !(chosen_condi_style in styles)) - style = guess_condi_style(reagents) - else - style = styles[chosen_condi_style] - vol_each_max = min(50, vol_each_max) - else - return FALSE - if(vol_each_text == "auto") - vol_each = vol_each_max - if(vol_each == null) - vol_each = text2num(input(usr, - "Maximum [vol_each_max] units per item.", - "How many units to fill?", - vol_each_max)) - vol_each = round(clamp(vol_each, 0, vol_each_max), 0.01) - if(vol_each <= 0) - return FALSE - // Get item name - var/name = strip_html(params["name"], limit = 100) - var/name_has_units = item_type == "pill" || item_type == "patch" - if(!name) - var/name_default - if (style && style["name"] && !style["generate_name"]) - name_default = style["name"] - else - name_default = reagents.get_master_reagent_name() - if (name_has_units) - name_default += " ([vol_each]u)" - name = tgui_input_text(usr, - "Give it a name!", - "Name", - name_default, - MAX_NAME_LEN) - if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.can_perform_action(src, ALLOW_SILICON_REACH)) - return FALSE - // Start filling - if(item_type == "pill") - var/obj/item/reagent_containers/pill/P - var/target_loc = drop_location() - var/drop_threshold = INFINITY - if(bottle) - if(bottle.atom_storage) - drop_threshold = bottle.atom_storage.max_slots - bottle.contents.len - target_loc = bottle - for(var/i in 1 to amount) - if(i-1 < drop_threshold) - P = new/obj/item/reagent_containers/pill(target_loc) - else - P = new/obj/item/reagent_containers/pill(drop_location()) - P.name = trim("[name] pill") - if(chosen_pill_style == RANDOM_PILL_STYLE) - P.icon_state ="pill[rand(1,21)]" - else - P.icon_state = "pill[chosen_pill_style]" - if(P.icon_state == "pill4") - P.desc = "A tablet or capsule, but not just any, a red one, one taken by the ones not scared of knowledge, freedom, uncertainty and the brutal truths of reality." - adjust_item_drop_location(P) - reagents.trans_to(P, vol_each, transfered_by = usr) - return TRUE - if(item_type == "patch") - var/obj/item/reagent_containers/pill/patch/P - for(var/i in 1 to amount) - P = new/obj/item/reagent_containers/pill/patch(drop_location()) - P.name = trim("[name] patch") - P.icon_state = patch_style - adjust_item_drop_location(P) - reagents.trans_to(P, vol_each, transfered_by = usr) - return TRUE - if(item_type == "bottle") - var/obj/item/reagent_containers/cup/tube/P - for(var/i in 1 to amount) - P = new/obj/item/reagent_containers/cup/tube(drop_location()) - P.name = trim("[name] test tube") - adjust_item_drop_location(P) - reagents.trans_to(P, vol_each, transfered_by = usr) - return TRUE - if(item_type == "condimentPack") - var/obj/item/reagent_containers/condiment/pack/P - for(var/i in 1 to amount) - P = new/obj/item/reagent_containers/condiment/pack(drop_location()) - P.originalname = name - P.name = trim("[name] pack") - P.desc = "A small condiment pack. The label says it contains [name]." - reagents.trans_to(P, vol_each, transfered_by = usr) - return TRUE - if(item_type == "condimentBottle") - var/obj/item/reagent_containers/condiment/P - for(var/i in 1 to amount) - P = new/obj/item/reagent_containers/condiment(drop_location()) - if (style) - apply_condi_style(P, style) - P.renamedByPlayer = TRUE - P.name = name - reagents.trans_to(P, vol_each, transfered_by = usr) - return TRUE - return FALSE - - if(action == "analyze") - var/datum/reagent/analyzed_reagent = GLOB.name2reagent[params["id"]] - if(analyzed_reagent) - var/state = "Unknown" - if(initial(analyzed_reagent.reagent_state) == SOLID) - state = "Solid" - else if(initial(analyzed_reagent.reagent_state) == LIQUID) - state = "Liquid" - else if(initial(analyzed_reagent.reagent_state) == GAS) - state = "Gas" - var/metabolization_rate = initial(analyzed_reagent.metabolization_rate) * (60 / SSMOBS_DT) - analyze_vars = list("name" = initial(analyzed_reagent.name), "state" = state, "color" = initial(analyzed_reagent.color), "description" = initial(analyzed_reagent.description), "metaRate" = metabolization_rate, "overD" = initial(analyzed_reagent.overdose_threshold), "pH" = initial(analyzed_reagent.ph)) - screen = "analyze" - return TRUE - - if(action == "goScreen") - screen = params["screen"] + create_containers(item_count) return TRUE - if(action == "change_patch_style") - patch_style = params["patch_style"] +/// Create N selected containers with reagents from buffer split between them +/obj/machinery/chem_master/proc/create_containers(item_count = 1) + var/obj/item/reagent_containers/container_style = locate(selected_container) + var/is_pill_subtype = ispath(container_style, /obj/item/reagent_containers/pill) + var/volume_in_each = reagents.total_volume / item_count + var/printing_amount_current = is_pill_subtype ? printing_amount * 2 : printing_amount + + // Generate item name + var/item_name_default = initial(container_style.name) + if(!(initial(container_style.reagent_flags) & OPENCONTAINER)) // Closed containers get reagent name and units in the name + item_name_default = "[reagents.get_master_reagent_name()] [item_name_default] ([volume_in_each]u)" + var/item_name = tgui_input_text(usr, + "Container name", + "Name", + item_name_default, + MAX_NAME_LEN) + + if(!item_name || !reagents.total_volume || QDELETED(src) || !usr.can_perform_action(src, ALLOW_SILICON_REACH)) + return FALSE + + // Print and fill containers + is_printing = TRUE + update_appearance(UPDATE_ICON) + printing_progress = 0 + printing_total = item_count + while(item_count > 0) + if(!is_printing) + break + use_power(active_power_usage) + stoplag(printing_speed) + for(var/i in 1 to printing_amount_current) + if(!item_count) + continue + var/obj/item/reagent_containers/item = new container_style(drop_location()) + adjust_item_drop_location(item) + item.name = item_name + item.reagents.clear_reagents() + reagents.trans_to(item, volume_in_each, transfered_by = src) + printing_progress++ + item_count-- + update_appearance(UPDATE_ICON) + is_printing = FALSE + update_appearance(UPDATE_ICON) + return TRUE + +/// Transfer reagents to specified target from the opposite source +/obj/machinery/chem_master/proc/transfer_reagent(reagent_ref, amount, target) + if (amount == -1) + amount = text2num(input("Enter the amount you want to transfer:", name, "")) + if (amount == null || amount <= 0) + return FALSE + if (!beaker && target == TARGET_BEAKER && transfer_mode == TRANSFER_MODE_MOVE) + return FALSE + var/datum/reagent/reagent = locate(reagent_ref) + if (!reagent) + return FALSE + + use_power(active_power_usage) + + if (target == TARGET_BUFFER) + if(!check_reactions(reagent, beaker.reagents)) + return FALSE + beaker.reagents.trans_id_to(src, reagent.type, amount) + update_appearance(UPDATE_ICON) + return TRUE + + if (target == TARGET_BEAKER && transfer_mode == TRANSFER_MODE_DESTROY) + reagents.remove_reagent(reagent.type, amount) + update_appearance(UPDATE_ICON) + return TRUE + if (target == TARGET_BEAKER && transfer_mode == TRANSFER_MODE_MOVE) + if(!check_reactions(reagent, reagents)) + return FALSE + reagents.trans_id_to(beaker, reagent.type, amount) + update_appearance(UPDATE_ICON) return TRUE return FALSE -/obj/machinery/chem_master/adjust_item_drop_location(atom/movable/AM) // Special version for chemmasters and condimasters - if (AM == beaker) - AM.pixel_x = AM.base_pixel_x - 8 - AM.pixel_y = AM.base_pixel_y + 8 - return null - else if (AM == bottle) - if (length(bottle.contents)) - AM.pixel_x = AM.base_pixel_x - 13 - else - AM.pixel_x = AM.base_pixel_x - 7 - AM.pixel_y = AM.base_pixel_y - 8 - return null - else - var/md5 = md5(AM.name) - for (var/i in 1 to 32) - . += hex2num(md5[i]) - . = . % 9 - AM.pixel_x = AM.base_pixel_x + ((.%3)*6) - AM.pixel_y = AM.base_pixel_y - 8 + (round( . / 3)*8) - -/** - * Translates styles data into UI compatible format - * - * Expects to receive list of availables condiment styles in its complete format, and transforms them in simplified form with enough data to get UI going. - * Returns list(list("id" = , "className" = , "title" = ),..). - * - * Arguments: - * * styles - List of styles for condiment bottles in internal format: [/obj/machinery/chem_master/proc/get_condi_styles] - */ -/obj/machinery/chem_master/proc/strip_condi_styles_to_icons(list/styles) - var/list/icons = list() - for (var/s in styles) - if (styles[s] && styles[s]["class_name"]) - var/list/icon = list() - var/list/style = styles[s] - icon["id"] = s - icon["className"] = style["class_name"] - icon["title"] = "[style["name"]]\n[style["desc"]]" - icons += list(icon) - - return icons - -/** - * Defines and provides list of available condiment bottle styles - * - * Uses typelist() for styles storage after initialization. - * For fallback style must provide style with key (const) CONDIMASTER_STYLE_FALLBACK - * Returns list( - * = list( - * "icon_state" = , - * "name" = , - * "desc" = , - * ?"generate_name" = , - * ?"icon_empty" = , - * ?"fill_icon_thresholds" = , - * ?"inhand_icon_state" = , - * ?"lefthand_file" = , - * ?"righthand_file" = , - * ), - * .. - * ) - * - */ -/obj/machinery/chem_master/proc/get_condi_styles() - var/list/styles = typelist("condi_styles") - if (!styles.len) - //Possible_states has the reagent type as key and a list of, in order, the icon_state, the name and the desc as values. Was used in the condiment/on_reagent_change(changetype) to change names, descs and sprites. - styles += list( - CONDIMASTER_STYLE_FALLBACK = list("icon_state" = "bottle", "icon_empty" = "", "name" = "bottle", "desc" = "Just your average condiment bottle.", "fill_icon_thresholds" = list(1, 20, 40, 60, 80, 100), "generate_name" = TRUE), - - "flour" = list("icon_state" = "flour", "icon_empty" = "", "name" = "flour sack", "desc" = "A big bag of flour. Good for baking!"), - "rice" = list("icon_state" = "rice", "icon_empty" = "", "name" = "rice sack", "desc" = "A big bag of rice. Good for cooking!"), - "sugar" = list("icon_state" = "sugar", "icon_empty" = "", "name" = "sugar sack", "desc" = "Tasty spacey sugar!"), - "enzyme" = list("icon_state" = "enzyme", "icon_empty" = "", "name" = "universal enzyme bottle", "desc" = "Used in cooking various dishes."), - "capsaicin" = list("icon_state" = "hotsauce", "icon_empty" = "", "name" = "hotsauce bottle", "desc" = "You can almost TASTE the stomach ulcers!"), - "frostoil" = list("icon_state" = "coldsauce", "icon_empty" = "", "name" = "coldsauce bottle", "desc" = "Leaves the tongue numb from its passage."), - "mayonnaise" = list("icon_state" = "mayonnaise", "icon_empty" = "", "name" = "mayonnaise bottle", "desc" = "An oily condiment made from egg yolks."), - "ketchup" = list("icon_state" = "ketchup", "icon_empty" = "", "name" = "ketchup bottle", "desc" = "A tomato slurry in a tall plastic bottle. Somehow still vaguely American."), - "blackpepper" = list("icon_state" = "peppermillsmall", "inhand_icon_state" = "", "icon_empty" = "emptyshaker", "name" = "pepper mill", "desc" = "Often used to flavor food or make people sneeze."), - "sodiumchloride" = list("icon_state" = "saltshakersmall", "inhand_icon_state" = "", "icon_empty" = "emptyshaker", "name" = "salt shaker", "desc" = "Salt. From dead crew, presumably."), - "milk" = list("icon_state" = "milk", "icon_empty" = "", "name" = "space milk", "desc" = "It's milk. White and nutritious goodness!"), - "soymilk" = list("icon_state" = "soymilk", "icon_empty" = "", "name" = "soy milk", "desc" = "It's soy milk. White and nutritious goodness!"), - "soysauce" = list("icon_state" = "soysauce", "inhand_icon_state" = "", "icon_empty" = "", "name" = "soy sauce bottle", "desc" = "A salty soy-based flavoring."), - "bbqsauce" = list("icon_state" = "bbqsauce", "icon_empty" = "", "name" = "bbq sauce bottle", "desc" = "Hand wipes not included."), - "oliveoil" = list("icon_state" = "oliveoil", "icon_empty" = "", "name" = "olive oil bottle", "desc" = "A delicious oil made from olives."), - "cooking_oil" = list("icon_state" = "cooking_oil", "icon_empty" = "", "name" = "cooking oil bottle", "desc" = "A cooking oil for deep frying."), - "peanut_butter" = list("icon_state" = "peanutbutter", "icon_empty" = "", "name" = "peanut butter jar", "desc" = "A creamy paste made from ground peanuts."), - "cherryjelly" = list("icon_state" = "cherryjelly", "icon_empty" = "", "name" = "cherry jelly jar", "desc" = "A jar of super-sweet cherry jelly."), - "honey" = list("icon_state" = "honey", "icon_empty" = "", "name" = "honey bottle", "desc" = "A cheerful bear-shaped bottle of tasty honey."), - ) - var/list/carton_in_hand = list( - "inhand_icon_state" = "carton", - "lefthand_file" = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi', - "righthand_file" = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' - ) - for (var/style_reagent in list("flour", "milk", "rice", "soymilk", "sugar")) - if (style_reagent in styles) - styles[style_reagent] += carton_in_hand - var/datum/asset/spritesheet/simple/assets = get_asset_datum(/datum/asset/spritesheet/simple/condiments) - for (var/reagent in styles) - styles[reagent]["class_name"] = assets.icon_class_name(reagent) - return styles - -/** - * Provides condiment bottle style based on reagents. - * - * Gets style from available by key, using last part of main reagent type (eg. "rice" for /datum/reagent/consumable/rice) as key. - * If not available returns fallback style, or null if no such thing. - * Returns list that is one of condibottle styles from [/obj/machinery/chem_master/proc/get_condi_styles] - */ -/obj/machinery/chem_master/proc/guess_condi_style(datum/reagents/reagents) - var/list/styles = get_condi_styles() - if (reagents.reagent_list.len > 0) - var/main_reagent = reagents.get_master_reagent_id() - if (main_reagent) - var/list/path = splittext("[main_reagent]", "/") - main_reagent = path[path.len] - if(main_reagent in styles) - return styles[main_reagent] - return styles[CONDIMASTER_STYLE_FALLBACK] - -/** - * Applies style to condiment bottle. - * - * Applies props provided in "style" assuming that "container" is freshly created with no styles applied before. - * User specified name for bottle applied after this method during bottle creation, - * so container.name overwritten here for consistency rather than with some purpose in mind. - * - * Arguments: - * * container - condiment bottle that gets style applied to it - * * style - assoc list, must probably one from [/obj/machinery/chem_master/proc/get_condi_styles] - */ -/obj/machinery/chem_master/proc/apply_condi_style(obj/item/reagent_containers/condiment/container, list/style) - container.name = style["name"] - container.desc = style["desc"] - container.icon_state = style["icon_state"] - container.icon_empty = style["icon_empty"] - container.fill_icon_thresholds = style["fill_icon_thresholds"] - if ("inhand_icon_state" in style) - container.inhand_icon_state = style["inhand_icon_state"] - if (style["lefthand_file"] || style["righthand_file"]) - container.lefthand_file = style["lefthand_file"] - container.righthand_file = style["righthand_file"] - - -//Checks to see if the target reagent is being created (reacting) and if so prevents transfer -//Only prevents reactant from being moved so that people can still manlipulate input reagents +/// Checks to see if the target reagent is being created (reacting) and if so prevents transfer +/// Only prevents reactant from being moved so that people can still manlipulate input reagents /obj/machinery/chem_master/proc/check_reactions(datum/reagent/reagent, datum/reagents/holder) if(!reagent) return FALSE var/canMove = TRUE - for(var/e in holder.reaction_list) - var/datum/equilibrium/E = e - if(E.reaction.reaction_flags & REACTION_COMPETITIVE) + for(var/datum/equilibrium/equilibrium as anything in holder.reaction_list) + if(equilibrium.reaction.reaction_flags & REACTION_COMPETITIVE) continue - for(var/result in E.reaction.required_reagents) - var/datum/reagent/R = result - if(R == reagent.type) + for(var/datum/reagent/result as anything in equilibrium.reaction.required_reagents) + if(result == reagent.type) canMove = FALSE if(!canMove) - say("Cannot move arrested chemical reaction reagents!") + say("Cannot move reagent during reaction!") return canMove -/** - * Machine that allows to identify and separate reagents in fitting container - * as well as to create new containers with separated reagents in it. - * - * All logic related to this is in [/obj/machinery/chem_master] and condimaster specific UI enabled by "condi = TRUE" - */ +/// Retrieve REF to the best container for provided reagent +/obj/machinery/chem_master/proc/get_suggested_container(datum/reagent/reagent) + var/preferred_container = reagent.default_container + for(var/category in printable_containers) + for(var/container in printable_containers[category]) + if(container == preferred_container) + return REF(container) + return default_container + +/obj/machinery/chem_master/examine(mob/user) + . = ..() + if(in_range(user, src) || isobserver(user)) + . += span_notice("The status display reads:
Reagent buffer capacity: [reagents.maximum_volume] units.
Number of containers printed at once increased by [100 * (printing_amount / initial(printing_amount)) - 100]%.") + /obj/machinery/chem_master/condimaster name = "CondiMaster 3000" desc = "Used to create condiments and other cooking supplies." - condi = TRUE + icon_state = "condimaster" + has_container_suggestion = TRUE + +/obj/machinery/chem_master/condimaster/load_printable_containers() + printable_containers = list( + CAT_CONDIMENTS = GLOB.chem_master_containers[CAT_CONDIMENTS], + ) + +#undef TRANSFER_MODE_DESTROY +#undef TRANSFER_MODE_MOVE +#undef TARGET_BEAKER +#undef TARGET_BUFFER +#undef CAT_CONDIMENTS +#undef CAT_TUBES +#undef CAT_PILLS +#undef CAT_PATCHES diff --git a/code/modules/reagents/reagent_containers/condiment.dm b/code/modules/reagents/reagent_containers/condiment.dm index 170246d45d8..47d408053e2 100644 --- a/code/modules/reagents/reagent_containers/condiment.dm +++ b/code/modules/reagents/reagent_containers/condiment.dm @@ -340,6 +340,19 @@ icon_state = "condi_chocolate" list_reagents = list(/datum/reagent/consumable/choccyshake = 10) + +/obj/item/reagent_containers/condiment/hotsauce + name = "hotsauce bottle" + desc= "You can almost TASTE the stomach ulcers!" + icon_state = "hotsauce" + list_reagents = list(/datum/reagent/consumable/capsaicin = 50) + +/obj/item/reagent_containers/condiment/coldsauce + name = "coldsauce bottle" + desc= "Leaves the tongue numb from its passage." + icon_state = "coldsauce" + list_reagents = list(/datum/reagent/consumable/frostoil = 50) + //Food packs. To easily apply deadly toxi... delicious sauces to your food! /obj/item/reagent_containers/condiment/pack diff --git a/code/modules/reagents/reagent_containers/patch.dm b/code/modules/reagents/reagent_containers/patch.dm index 5e166b36ce6..1682395ddb0 100644 --- a/code/modules/reagents/reagent_containers/patch.dm +++ b/code/modules/reagents/reagent_containers/patch.dm @@ -44,3 +44,46 @@ desc = "Helps with brute and burn injuries. Slightly toxic." list_reagents = list(/datum/reagent/medicine/c2/synthflesh = 20) icon_state = "bandaid_both" + +// Patch styles for chem master + +/obj/item/reagent_containers/pill/patch/style + icon_state = "bandaid_blank" +/obj/item/reagent_containers/pill/patch/style/brute + icon_state = "bandaid_brute_2" +/obj/item/reagent_containers/pill/patch/style/burn + icon_state = "bandaid_burn_2" +/obj/item/reagent_containers/pill/patch/style/bruteburn + icon_state = "bandaid_both" +/obj/item/reagent_containers/pill/patch/style/toxin + icon_state = "bandaid_toxin_2" +/obj/item/reagent_containers/pill/patch/style/oxygen + icon_state = "bandaid_suffocation_2" +/obj/item/reagent_containers/pill/patch/style/omni + icon_state = "bandaid_mix" +/obj/item/reagent_containers/pill/patch/style/bruteplus + icon_state = "bandaid_brute" +/obj/item/reagent_containers/pill/patch/style/burnplus + icon_state = "bandaid_burn" +/obj/item/reagent_containers/pill/patch/style/toxinplus + icon_state = "bandaid_toxin" +/obj/item/reagent_containers/pill/patch/style/oxygenplus + icon_state = "bandaid_suffocation" +/obj/item/reagent_containers/pill/patch/style/monkey + icon_state = "bandaid_monke" +/obj/item/reagent_containers/pill/patch/style/clown + icon_state = "bandaid_clown" +/obj/item/reagent_containers/pill/patch/style/one + icon_state = "bandaid_1" +/obj/item/reagent_containers/pill/patch/style/two + icon_state = "bandaid_2" +/obj/item/reagent_containers/pill/patch/style/three + icon_state = "bandaid_3" +/obj/item/reagent_containers/pill/patch/style/four + icon_state = "bandaid_4" +/obj/item/reagent_containers/pill/patch/style/exclamation + icon_state = "bandaid_exclaimationpoint" +/obj/item/reagent_containers/pill/patch/style/question + icon_state = "bandaid_questionmark" +/obj/item/reagent_containers/pill/patch/style/colonthree + icon_state = "bandaid_colonthree" diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index e01d0540717..72915b66420 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -302,3 +302,54 @@ icon_state = "pill8" list_reagents = list(/datum/reagent/iron = 30) rename_with_volume = TRUE + +// Pill styles for chem master + +/obj/item/reagent_containers/pill/style + icon_state = "pill0" +/obj/item/reagent_containers/pill/style/purplered + icon_state = "pill1" +/obj/item/reagent_containers/pill/style/greenwhite + icon_state = "pill2" +/obj/item/reagent_containers/pill/style/teal + icon_state = "pill3" +/obj/item/reagent_containers/pill/style/red + icon_state = "pill4" +/obj/item/reagent_containers/pill/style/redwhite + icon_state = "pill5" +/obj/item/reagent_containers/pill/style/tealbrown + icon_state = "pill6" +/obj/item/reagent_containers/pill/style/yellowflat + icon_state = "pill7" +/obj/item/reagent_containers/pill/style/tealflat + icon_state = "pill8" +/obj/item/reagent_containers/pill/style/whiteflat + icon_state = "pill9" +/obj/item/reagent_containers/pill/style/purpleflat + icon_state = "pill10" +/obj/item/reagent_containers/pill/style/limelat + icon_state = "pill11" +/obj/item/reagent_containers/pill/style/redflat + icon_state = "pill12" +/obj/item/reagent_containers/pill/style/greenpurpleflat + icon_state = "pill13" +/obj/item/reagent_containers/pill/style/yellowpurpleflat + icon_state = "pill14" +/obj/item/reagent_containers/pill/style/redyellowflat + icon_state = "pill15" +/obj/item/reagent_containers/pill/style/bluetealflat + icon_state = "pill16" +/obj/item/reagent_containers/pill/style/greenlimeflat + icon_state = "pill17" +/obj/item/reagent_containers/pill/style/white + icon_state = "pill18" +/obj/item/reagent_containers/pill/style/whitered + icon_state = "pill19" +/obj/item/reagent_containers/pill/style/purpleyellow + icon_state = "pill20" +/obj/item/reagent_containers/pill/style/blackwhite + icon_state = "pill21" +/obj/item/reagent_containers/pill/style/limewhite + icon_state = "pill22" +/obj/item/reagent_containers/pill/style/happy + icon_state = "pill_happy" diff --git a/icons/obj/medical/chemical.dmi b/icons/obj/medical/chemical.dmi index a8b360d4f1503ed972c4e6a1f15fa88d96aefeca..aaedc090f2d66ffc95449d134c9938a86b333d12 100644 GIT binary patch literal 64080 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%0A(gMGO>Q?-;Bko&OO zfmz(`A~f|Zs&GR~d!JVPQpD3><-l3#;io?hhhvx=!uUyHkBq;Ka$A7NUV?^w zu*DO`E~ol=!?jPcb|tuSJ?MNiLcwjf*YElI_e%}!kKv0xV}wU9xc_iOH+oHOj2Vxy zw@um$9iI4lu_gaKq;I~$`LuK%z8j4gGw$=f0y;4vwc7zntQ5f-!wYemBCASsULSpLYxsN>tzTR!3jf{)>7IIQ<=qY;Kw~%2=;dliS=qvFq`vlXw%Q(_nB;)I zSik0zKBy>wMW7&ZJtx<$ft710%00>bbuXPdzV*t~MC_U&mnTFBLi14k;a@Drf8gb3 z>?$7J&5s1ZZ)fssv{r5lhqXt&zM0?f3$anEqPPBro&J>O9NfnaR~+TYCE8%~2Jkqv z{kca_wWm_7Du=qlW@m?FGR|Wqmo4k@dJ~UzMG3EP=x8oK>&%+E@a>d0@d5U}^J^Q- zK|mK-C?WBVOlz(c`t@F^34rCso|1(mtgQ00$E-px!t^7&ud4ooREL~*rk;w@6AlZS z_%{DabK!=NIBGQ=tHp2<(pr%Ta#lieCL(xPnr~FBU<#eGu%Z);C{7cwSXSg-=DKD*8PjVb!=Wh)@)A z-_kM^yAALv+@}Gbfstgkyc?8q_>|WeA-%G?ifW8BS-@d2&)4Qio%dz0!RBkV?K4g^ zC{pg9PJxPO(E~IjVmnc08Rjrwugjo!<(ic__#!uHVqowU0ESO_E@kJtxSmKkMrZH8 z_kVD^-JHg^*|LP$48R0!Fk6MCJA;ud{nbL+rG7t)|MH^D&<;*@X0?b4-#9y&G)*^4FtcXYemo{%=ufM9%1b2VJ*XdQtD7vZe$ z_1bDSBl7Q_yx7lWZ^?l-f7l*g%+vQ(OTFr;V_J(Pef;cZ;~_{k27kOzAz%dWz;|W4 zG$-lI3*ePIEA3~`UZZOJw@q>YZN$>&PWFoK2mDm@3^j~9l&*ST%h;T4Oh04rjP#&lTUTme%JUc2L$l(aMBMo$*@*Ph+N z5dVWjE*g%H3*1J&r|%xZN1Z0miPZ>Z3U&CUW>h@b_n3X0^E7g9>t8)Q6Fw2E2xgh8 zbh;DA`9(dXmXFu^1!Y~_QqKKB8`RM%xQY70BEqvZ=6hNTl({9l>P*y zbR~i7hQ)w5;wzhS;wVr1ApT%Ch$gHNjh^M}H}y1c;mjC$kQ6kI_M{mJ>sTb$BLo1? zyBYXHf^y#nmoP_1d~&FxY{RG@eM%LJ;iM$m5DtP5KN0DJzNQFV=tT6u_9tgF;Syg# zu7bgQJ)akV={rq|F_w-BKms?0IO82 zW+Rx@`V8Zje3ojsr6lhHb$T{$C87~0##Ze6qEMnI&-hY%`*=-UWFdL^Rxe8bbGj=I zHF=ulc*h%j9E7?op5P!M%=8|N^tt;p(>%kV?nq!e*6UzlT^1B3PmSw#Ma&0lyarD7rU@kA5mf1{hrcC(M!@puflC&yprG)r}7!)cHmv`;IN zx<6vibJa<aurDzTMZ{;IyfM2qrb8L>XZ(nZXSJla zi6JcG?d+DT)q<4$bc#2k$F^?mH}XR64g2{oSLkwJIZV-btEmXG$cw$V+nEXakZvbL zhVS7Qzg0D*N$HG_W0`~7%6x{*X@oDI7JUm%P)wO>GE!P5W+0#c)~KQ*VOP>qj(p&# zG=q!3eH_#B`xVj!!ad|OklHwD%Kif4q(GX0mPKSfbLi;@A~$I->HMqoDuMfHuJhy?G6Fz zh>II{9#x=@%|`?=PyISARc6fq4YBU}w>Gx~VZ~#hvleaIV3^_FmMSK7wohuf>LZ|&5nfUKSjkzb`eh`hEXOHxQE9(Y+ z#xhH~eN6$a?M) z^pL0il6?#gzycWNilFu>epAy2&93*m3@q#JI5@>Wy~4*8blNZ9AAUDclIJ89$7PH_;N8U2*H9=J|{ z$oKVU0X{$e7|JTc!+6V%BQ2A$LcMfiC6t_7wl;RYUOZzwIpRT=`56(uEYjQh-($&g zdlKBIbynvjfFzx-HHVXk%R=KAb+p-u?(azRuZX)FGFEoC-bKA!%Ts!?eD=#i1)$TO zKa-{XE@VYU@`rXb3pN0;{;Q1ldj1PcySXUi)sO@Dr~Fev%sfTe}8nG z_zhliaR+$AUP8*DzNp=U^-R=@b_pJs6JtrmDm5~y&TjKgH1^rtCh;@Q&2Ys@PEU(4 zTANG16Ig4dnBMR!>kltZZw-xojR{GrM=xx*HjWuiUE}fFyOhpA0bV*X`uJ!#qw*hXx@rKB#@{r%#wCS zr3Kp0ddP2U_h-C{eGiBjzK&4dTmYd88liuusF%>LL{RS1eO-PiL%l@#w{ zi!5f+3s38~8IKK;Ithspk8_&@4`GqJTRU^)?t1)0?+d);ZEdEx;`4{J_)_rSK!~D( zGGpOHFWpt|-oMMti?uEwp^k}BZBHY0%^j=M^9|&f6jGPbWq(P z#DKB1>^uAvr3g)yoV3lhqueG8-y;r3GcG_@owr3S#TWwnm=E3d8r0|DOB&2YrfmxR zV0ZpI#$|0(`mOV3?*q))e#mb0e8)Y5PK8Q@_tR%rC{*Smip$}i4Lk{LnJIOnz@U@F znws-*iUv1ZM$blW1DXLJidr+OCA3gZ3<@22JYCOVA)Ilk(h=415Mq0Jy#|n#wTxi0 z`I|2ZWIh6*RsgdweAO|pWn^Z#o@{b`jb^lTI~;b4B6)C2R7uj-Q~j;*w{IR@+pE1g zPBV##9*RbeGY=9X(NX)7$@Uyq;IwRUnV6Rlksl?Fq7LNN6Yn?q1dbOIz}X*7AeNAsh_izTFQat+l%-qP3BhFVY$@gKGK zUc3mF4t~R0F*2ZrT5LfYyzd|V3N|y0aXGr3N=!>kQy1>{WLt}^Maj61jYEua z@oP%lyAr47< z4${sRG)uqs6oKM!nxrmv$pH+Q?f)V5@(jVA4M@CsrMddh|j`sp88N zu!;(dtsqNUU}rjUp2?sQzZ*lzRyUou-+3fkgDRDZiS3PgtZJ-~w-w&DPht&-RcVVswKT8$Vj;rQcY1#Hwd?odT!S`RJWOxn;Ckj<*(M@7H=>4JBcL(cN-aVmq zGL#<44Xdy`vzQdjUyqpVH*J2vnxU01$cN!GlHNZImt1!Pgti<&-&F!*g0VwCAP3v| z1b#G9dd9y)*<=&r3-xO# zHt7T*99b#I)F0y8&t*0^=IN(}_MPvW6h-K+7fnW7%ii+$12dW>SUp?ncx~U6lEbc= z$dZL^*mDssXLc-EIV|py9Y0_cU!h-@%;es_d1D87oYge=eEYO&hK^iCHzna;J!>;} zv!PwBmQZ|ULHUV6sb#qi^_KW@e4mfu!406ML3LR7O?L4eypsR|9#&VMcyB7kS*pbY z>i)GhxfIgk>xYkZ!lbbI2LKFH?#W6wjRwNk%L}HcSiiRYGn1?%G%vdK?FeP64|=|I zv-957fh_zAC(O&pAR-LeORkI*NI+!hMBjfWwl-ya{6$SOik)NEl4CAf=Iy+~?HfVB zvdm6(pX~qsasolN#}Q{siQ(Hmt6+|kyFnE8yhO1 z(%xywf1U3^w#xBfFtdw`%M=5}&eEXTV1NH-el~;aiB7!UmlQ@&&ilRW6e=9g2}YbB-2twxU&K%&ocr*O-8+vF+6)b zs{X}}`N32A+r|PDKzV->W`MqbK{9kPAVpJD5|C_CM01^r!T?ALL#Y<`K`?^=n^**- zLD!J(wZKHaK*irb^fj)>^P-REPb38Xr5{9&UE^?s)U0zFCG>OCC%;s1J26ksLIu~5 zp}?vPC=@v&X2FW?QOeu_g0c@56V*H2wDFlyGsQzl`ghX{Plb9dv!QTa(XN6toB685 z1z6z;>a^zBtSZ)o>3}A}{mD)r!yBrgjp++X6`eh<8|s5XvNxXn=NjOcg;*LDSR$X= zFh>^*-YyGzUp%<=;JyjB8w%qX4<1b@X^ux1Q4nosc9V%_(nYwVty_J2ug>}cVZ-M2 z$1gNDXqEo^B2Y3qSgh6jgo8{FpU1n6187&{=v6MPPzSWVA1OzOMX2usN>GsmA z^TBh=wQ2>QUB~$}81sis$SCybZc``p{m-Aw|J0+FTia27d?ifrpy{@aZ{}(1U+}6b zw;tT#-p*)T>yZo{n=A-;>HmYGYYZ}>R7+}Ai}HnSHJBuzUM$z42erQAaE{4jd+maA zdC8yOf(maw6)=4-ocjJ#fUb*t@zqRNn8x4DzXGPy?kXpnmz$UEsC~ySt94T!jJ?Kj zNgWiVUW4Dn!95x*c2(4;%E(s>*2J+k3h zF(A`;ldVkkSp0$fy81e300z4f6X}6&4jws4m&+JTVQ3>@ZOz-IvwnZoklN#XO6gAX zw+M28%U_@hwjU@Pd-cb=Q{|VwBi6KroE3%o)3gRnuf+n*Qh<1#h}IFEBvoNY@7{KE zGE*;<(J4?*&z&lJa8SpPSQFi2TT&G85_0{ECeb@zgj>4eurWuHNygjM7T|IlW{gJ^ z^z2@##ea(M?>7}?)BU3~a4sSncw#NjtF1STORCE_ze+(gHR&UuB98L}VF^$0-xUf6 zbwoP&2a_|7phCJ)nNY>G{;#zI6e({qO_51NWd#P@Kz0foXj1f8rZXo}P7wZ3wnWRK zk!WqRjzsg%jC$gSHc8~eL@(m*jep*fBjoqZYUt`(A9!w+eMR}~{B@Ny#WOQ9Zd*RD z$FIwTyK(#~Ag&||6GTxg6izYzaMzP)7J8N^Zoe|~r?-q}Q@m(--T0wO9#kMz*5zo- zAz^K8?bf&s3`b$y_yWC@1;29EhyQ&^32NS$bhc*o_8)q6mUbnODOCONOrfe?bcry;#S_I(XIJ_g7#MxoihXlQBlJ;7iH(nWRqsENQ8UEUa*MXc@+{ zvRZHX@KB^I!9?<^!zZydT@gZ9_~Zn$7bGJqdW1Q>9?D4Wix#0G6~Hx*9Pbts3jZKs z(0nYtW%C7f+q@RvH_KlHeTfc_0>-26#uwfAxld`lYfaS;(P>9a=x?MlmzvL;qpruk z(62vSYxLi*&`?Wkkn~%*#fSBouoh<1)=;O1n6M<=HGNi2N`J&ApxsKIarc1Tsc>s? z9LvT*P7wBfF%Or>8wA35C_RL){H40{tRU9 z9ZPUKlLKDyvuR@C)UtXqJWap&{(V(hyyGw5k9a)&AB46MMf(?|ASGBau#b_R1GM72 z3$=OTIj}dw=ZD9A!lr09+!6$*y&Zx%1zpuHU#eTut@P{v#h_vV#kT(tDL`Ih6wa<5 z0pqX*;8_8{@f;rnfFVCZ{`|$szu}(Hl<nAxVt_(a`Dg z9$<9*bhY8Z+-Wg8kd$F)Az4#k%z0Y;w>Mj5w;P6Ct(qf_Wxv}q$gJskSVxKrcKNe7 zkdtV5WECAzt`zqa8OkF4mhiz1pw;zr_;c~?{yiqB*R`DRd(cLlz3H9*hf>m*;K=rd zi1|{9dZ3s!SgOkIX07LPbqJ`s^a5>*Zlrz~piV^FzgqP0=^1Ybvtp^$@-~klpf!`0 zQ8yr@MPPio2VJc#Ekp>hkoi_^u_|H3lButSb6mH zYyetslE@1zG5LA0d<>i=WPT5xY+O|UYbq!g?Gl*o^ zjOOrJeA-{=KjT*02!CriGdlX_N9VlCZehaZVCA6UYELP{bJ=+tdph{FF0qv%j-VDDbt@OfWgZnnopRl_D ztpUXCnbF`UV}U^Ca7wXp)vwI#07iac?eqv*1|f?vs@`Msuh2!na@$A;G&Wt)AKt~m zXT0PLYoDp=`$lmK!kZ37+hB@xD^%;&=&>*Mygc#TtT#f79_<24yr&AUv$G|dEPKM) z>}B>4NTVi8W}$+W7ppSuvA-B#AHI-QXz2^WwKpWkTicGsZo$d(enqc4&4vhECc60v z*&I}spB|AUYgkhN_^>C647CV5Cuu-MGl~s>EqZ9L9T+ar+oe2?{{fLVFv%jes-?t0 zopWOE*YE{t+A>qi2pd;e4W3#1m)+hc_ySnjnCH*bmUm(;74goQ)q>t(6Dv+Fn@>I) zHYL^-onMsb062Y{8b=N}gRp?1qcMVd6=1{>mO)l;9f)ytNi}s|Lg1tQ=*7I)LOQBx3gP5)m11Wr zn30Cv4@$8xjEFjNx71R*;Rq0m=OL-7OkF)a{=jojdVC#l=Yz%G?DvXwNxR z9^L|SUy}y|2gKSKOB=hZk)GQk)g`J;6MT3>m+wmGyC;SZY>Hh2tP`MGJYC6lO*xem zQKyvmI$Hbm)su2c3Dr1~2OmBUZYeB9+!~ZVj>z{W*ROUFgp(-B)jhpS!B7UyX3Aej zzF6B-A-Y|!RV~NFRL`IGHKAvM!h6pw4M!<^X|g|AYAnaX{fPZ%>8Y!lPq$uF%z5G) z6}c_uPGNP)z4?xBsG_ckQejE5(}x`n38aPj_UPJ!!DC$BktH)LN~gV zmQvIaCbQBaj3GCW`_x^lcP3w=vF;5*i(uk{l3%JB=yz$m)b?|@o6|-2d?#} zkPW|OR9m==g2*Y10u5nU-|Dx7eW^j6OZ{W?H|kx99#*U`fkP75ED{VQWv2vzQ^ytb zq7zSuFI;(=Z*zu27X-)3hil2EGRWcz&l0(SU5?`a{9rObZcp*?@m6K9hr772JrVn( zB1=>T;(T+5$?~o$8al-|N^a=a*mSmG0eD%*u_I-N$V@clD@{!gZK>9OG!7f=R_l17 z%Z`uqHet>>CU$=fz86eI=?cn-w}Nr?cGY%%e+85KTDX3?ME*JWK+>gy6p z!&(W`RQ(gnXUc1p+V^YUprpe+1&7?8AtXdl7}IbW?eeNggQw*8sx(z4;(w{vLKSxs z{K*ePRbF_v3}j@VewWfSrY+8xDwGK^(n%vBv>7I`o-jkJ3|>G0(~)UG6#!N;R?!< z<*12tH<0Lq+%ZuiVFWId)czvpkXqyM78I_AaIk6~TjLRe zE4&FOVFp-}t31|K9Yc{YjA%hP%{1Zv-c+r#px# zLnrzC1`JK6)r+h5H)LK48d)sO{4m^E)5(3!Jnj3j_58=HKN4hg${jrXrMcModgh16 zpLrM+@n#z!?qGVaxIW`mv7bAP#1Wt4xqI7N3m-2owgw#7?A)8awE2ty2ShJ@d2auZ zkB?9I)P0c)oxkoJ|6;>0dNCpq939Y5do}k^+$zs6_kro-gOs(v4zQ)a>cqO_-cj)w zojXAp`f|QiHLsNaR+nGG)z+Pzy1T03e%?2f5X&SN+f^k2F0_p=1&(Yi2x-~i+JLFk z|MRWl3%NAwiQ7^37uHf*Q2_}sEGgrUkVZ1{HI_&l=$MzNek*+W=pxE*)M_v+?ANxS z@ksx@l-AvMDbG5qdQBhC@$Wwi@VFRy=*39WlRi>FLP*j()z`;|cEd8&jI2%BO ziA-^*Cw-kNj^7?axgYLzz1c(=;;Vts`;)7SWy+~K*Y$gjr9vv8Nrm+06I{)obJ=D- zdjg3ozm&yd0XUOzdQY8PaZAsd$M669OXHa9bN{}hJK9!iyKIBVBXch^GjkrXw)0)~ z2Ug{@Y2i^h$_KWhCspKboHLC*Z$B2Ra_vbu>$IFYZN4HMmWAleet6dh596eQsAmn_ zC(QT01^qCIf$x}mydDgJ!i&n9R4D6UGg}6HPNIiZoX&+={3S$hX@VumpD8!{ z`yvP>Kye64R*N$ONmG>25Zh?Ul!R3j2#^o>&MfK7OBg-QRSabeb$TqiIZ~j@sr(h9nSpDBi zL-dOaDFEWWj@w5urB%pDb2Kx4|D|ks>;N(21^tUv=@+$WkB0DW1|VD**tt(&Z|uV- zVDo>EjR{Iqa-!E#?ClB@K!jx79KEb{a(tgX?!71 zL0Sa`X3P9(nNmbGL??>OVFWVBks6R?7A-q!alBW;u^j5vYRST1`UyhBpsLRLzs>0Z zM6G|KbA!X5-L35_@ltWkf{XqcoD@%j#g|{m_>MV+kMplv0_e~T(%;k@pose=n5rOo z_=B;^9{6ZQd`g|nurKSJommf^T{_*HSN;bvUp?=9<0xYA3l#J5J*##}IeFDwwz+)r zT>O@iE4F{;a(_Wxm_@PV4P!OjKBNkf291MP2;>{1umx9uiyOFkn#YHKma# zU2OBUZ|FQo?u4{0t^0)NzB()IwO}uh2C_G|a0?#zTa=aTHs@;rB;buyy^% zW}S=ZI)0crc=f`Lt)K<(C)Ca$wGuBCSwFrhVn17Tx1f{`b^=7qZTKlCWW8IGKx)7S)vu0u(>JnwRAN8Fdk@q99-|1xMs=?uAs5&kbY?n7D1|1)!( zTJL{{`){m?9$FYQhzi$R57#ZI1cO`MN?Nt(VhCrw^xwfv8YqA``A1(DHJh53%Xr_k zko&0;UA{U*4!c;>*9Uj}5?0^7<^AA)odM!5eJ;>M415OA1Q`84A2IL^@~t}fM>gns zB#)Xy`75LK*}aSP7WoUn>e6(nhD2unc^H9bG=-%FT0YA^qK(yCXB9bYK(Id@1%Oii`x z8Dmq%>iL{c1BtNdurXrWUF|J>XPmJL+L&M}0ARSW7xN9f+8g>P+&<2!NM^3IdE?mF z=iq^z^w)tSOIa{U2S4g2*ms2mU>ZjFf1^KEJ0cN3-xX@t+;^9b05iB3X$+rp-PqcT z{KF4(w21KgXI3KmkQ449Ja%{Nqxg)SfFI2M*EBLQfEj9+cst*iOM~ zB*|le#kMEpf1P@DylRGG2Mo3V=gPOnkEX0fm=8x}je<*keALReFw(c6a#dRNPq1C@ zf319~P9umS`OWWfb!#~*G8U}!&p=kz?PPiFZb%FYO|o!#4Uq#zyWtO{)+;-)-H&5e zU3?7(xBWGdRs;;NI`RmNFZT|(Tz^0+hG?f>-5y3822WXaef$qv{|CVb=pyZYsY|IE zbbi`3SzhaRDM(~YDGpX^sBg$>E!ZCgbkrcPi3K2+NMkkjsx2gbOKP`p#`B4r-6b85 zel_7eUlfAtq0@CO{?FeqTG>d`Pk7Kxf#A#^AqwO$2*zOy2w15hUl{P2IllpR&OUo zTaGfNT+-#P+5w(c6I6&cByFhHnFdB-^BqBQT^WEET69!ZJA_iax`q!hCrNsu)%@lc zvl*R4b+!tAe&+9OB}(Jvp{ot0C3M4VX>jPyqw1!H5l&866Le}bQR3pub6JNfC#=1* zqr6)-g`JQ7S)|6R10*ONX7^02x=G48a_Cr$zzz+Cp17Lk0@En((i&YCZcM8>^2ZS% z$oZ_BIV`=I$g3aqUo%5$VQ2Pd7cohyOLhQY=o8)9N!+5drUzBpDdU)vw#i3{*Vq+dx$OK&{wMEmpq zFa=DJeU_g67!?z~frjs#FNO@r%1wNBCeqf_hgppUXmG)NIHXCa{ZEU*uxl<5hpEs5 zu?aBBy1X#iW7rFA2_1u{+J$%=*L1$@ZPCncI|a-%OgLm87=hS^hQCCS>ZVPT`zi>S8R%-_$JKNI;0$@g2kEgqeYS;*eNU(zhnU_` zpS~rOGZv`UaO>#ozWARv56~bxG+BCGdDEm8KS1?*i)`1vcrcJy7hP( z6*Gv#y&a(2&_BcqjY>iyTA)a;x1XT~&rQ*mLI*!a`Pe%D$2Zi-*f>+$-V3r48grIZ zVTGn8JZ;T5m z^QUY=L6Mwte4{*On1VFuP-1o=(&s+R8!(r)O|6r?J0ZO9&w1@kb=$yoG3Qq0hwGbPkEp2*mrt~JD;HP=$vWm z&5`W{pwC{%&4F}^G6eg57cJZ6aS(wR<-6Prg>Xj!ooYv7Kg&eMfy*&E$THdwr%xHS z?&x7y-gbtuubKXFOo?MMN<=iNdc4Hzti-eEox{(+w>2B?9^%%DCU&T0yl{*oa1x87 zDr)9EG79ZNE)bnR%N77!NC86$6qyHP*GultCh#L17#|xMPha1!3P`neA11INb&7u% zi!IzE_}GfNexK)f&-#W`<-Q&KY=ZlstzuAe_xW+IYCMk~x?=Qf>y%OVx2D<_^&s13 z@sJqLjj-bb!=rT*=oUvVKi`mS^X;Cyx>jj8kwf&U7CJY4j$5nQ9etI5vQNPcDJ*Rs zhc^RgNiwn42FkYYx-w-b^8k9#OT7IZe2@SjqIAqzG?v!kX8lMIICvDu3ADS%r&^=_ zy{s*?)7eF!N8Gi8=cUXEG`@Bi*OyWiQfdp0>|a`QZsXYQSH%Woz#=o`j%eu^Cp^qJ|p7Ww<1Vf6gad*%rm zT6eNcEQ)N8NY!fd9%-F`fLWOYwFW`*g21(As8%pz17=6TI6HrH^_GT)wURIA^H{Ym zTW>~PHj(j>c3+e+`3}N-lFTr8`rbg+_tz~_2=(jDo2kDUr#O9}DEL18Gc;z+@oaLP z`K%%&!ioB8FI2CQpP3BA`dzgXwf4DcsDBd{KU~{yr$o2tqDk+Sq9)IxTz49l5q<_0 zun`jM)8y+wLFmu~cy9?fMSVKLl(-__z@7IDy`_|8iiR1Kut){bg-ThZ20WjOn2bRe z{M8-zdl*;S#W;{bRAaSNE5G%W=krigRBYM+B{%2jDHo zCp+&GU%@S5wuPzbSP|3ST%)D*(Y(HsxcPR$&4gMwM=H8i)F5o2kE`TCGv5H%NX^s(V_YS!(Ac8i-SWH z<*yyF*bWdMg?=WCga1 zZP?=~C>Dg5$#aP3K)m0U%@mjYE6{k;tYh`esy)twoHkrk_wh2;*@hdLa4P-9HdV-J zDI&5(YYx}h6zlHeTSYQon{P;aZ-91F&GKlYxxmhNE;G4gSkQnd^k2AI%XMtxpN-@- zODakK1^UO0tb@WfEalh+SMAqVR+Ci^2weX}>7!$p5qrOHAPqZXhcqt3F>k#W@Cu4- z34L(&)@D^@_a=5Ys2SdnOywkmss#b>mm*$`>wy z99)2WMOFSXyLap&jZ=_z<28ll*U^3C6siM8-R`>sQteqMGbcwwK9av})Xc)gpu~%0$rpqOx}oC) zXc>Jk6=v(TFGL*hp7fajJy&eY(2P3u}@G=Qf?VfAW z2vJoHCtWTXldh09EOXYje3)!B#B)#s3@#bfPzOFK z%*-RI#-|3$8pM;AXEZ?@g0Q>Z-sKzea+(c00M>@4z3$0n+N;C-2MOWjj4shb>xmM| zs>Z@&vPyA|P>3xoPHcEX77BBi7 z3~a{+09XMBFY&Xeyplr-a1Ur;tZ`N`_|w%FyeTSSg?;&7u zx3J*+KOYMR38-t26iOX7-QP81%!6Lch$E&n2?mDIzbZXZ8g^S}KCJ7*1m?PL$l|PP zwQD0IIDG9`v1IN-pj~6j->q?w16fatijULN3-|2*tO+lZwO6YC;AGvw_3!EcQSvts zfgJWT#rysG@zt_$>my4pJ`6F~t(>gK>k|3@nRA85jy-`r+h<=yWi(iPRrx0Bf&H4r z)-X87Ywzs-Uw9{PxwHQecNYhTs9Vu+nmpqt6gdC!pp`iuEb^-wQI$-nAa{KXHTq={&y zEUGhT9D&cFzM}=K#$7x7g3=)yvMjgIJ~IVk%N#Y?j(@6=xZ8(9#GX^zYQ{KDUF&x1 zG|mz%HR!kRl&_I*;0(D{L@~JbBHP0bMK#Z+3dzbkfBzkAI)VA6hEVzRiF&v8C)M-M z^9HJgQ82BK=I4Q?VVPm{m0EfqtzZl~0Qli!)QWbSQhTPzrKi{J+#O2uyIX9Xbg|U3 zcwVll!N0tTuZYsfl*=RX(VsP0>k2k_p}3dLt6$8MOwxZTrIEFZpHWTOJXR!GN%i%> z>NqVY=}*za@S>B=nq4&c8XG;bWl@xKX%PklD+vr*z=~}UCJD&RAOMU`q~uV|bEteH zOpXs}Q?C>Gx?iyM1Lb3*Ew&*Lt&8(+&DCJrZ9ihsi=3p$S0jpxh*~O$jTX833SCeI znj*joYLK9jl}Vc444p`8r|FRUpdI=6G&Yl@oznmb@K11_T#0TwTlRZ;bs-X1^bqsi zeFV%;xLdYuj2(Qp`gEvI`02%w$nKR(3%u#LwCb56vmxmHk5p&05VW)kOvwn!rZOJ9 z1j-oq#0OdqK?|{Aeq^$|2fH8=Mtxp3Kg)aj~^2#zIyr}y=;&GXEn+7?bN3N)poQDqD7$&66pakUW*QPDFXk@ zhffoIxg;ng-ynXAKGEgsM++1i-~ytHdX|=8BA3K`XFU0M?q7k5LD2#4ePwC#GZbY? z{RwCtv^1DjPCa%%MX_SR!(@d0)?V z@bRmaw4F6l2=S!RbB~3DC^{U=c7-5R8-5fGRnFUfvk@l)z1shoT0ph{7vD?9 z2lW8&)y{wyXMdYwWrHp_*1nhM1Q?=_{3B2t znC|hNXI}n~dVV|z1Mz%12>e?@bLgyyLh$o7h{s${pnnw!!PQ;m$dL{B#KviBEx;(< zizkHmd-lrg-xnV{sMo>O&9x7OH{TDdz5dELj3fJK!4ZI0oC!b>-fYHnSfT1F;t|Xy zd*v!eFb=sz-?=D~!+Znf_70~G>(v~ZCAvwyMu8eoBK3egh|H1#|4H*BgHKzfQdP72!$WFTwN9Jy5}f3BVVa@;-c3IZ_HL z+WX&`6iajTL(IcAus=mzMpzsynkdwl))jWM(oJk5n+M6<_uzG=37|kU+s1oa7cfb_ z9#BS#2294sjnpR=%L8qjUa6&0t!%*@hkdhvV&t_U7vg|#3sDL(GTmDloRiYmX?;QW zZz}fK*X9U$)L*Z{cR~Bh?-j*`nO`^AOsH;ws+)Y;9IRQcysJ!$KssCuVq*1oJ2a`Q z-06S))G+O#T5Z0w{zuQkb8R!NnxFk4~l9b{j7lUQH6PD!Dp5R(CO2 zqyZX|_RU>^_4FENKa=^~gPNIJq1@}>v&1c|NX@hFSz*>)GhQJwYbUD()?_8%h+X4M z*)a=;B8t1t+mFU#A`UClaqsSghz3TLh=9T@8fCk@(N^Th2T#d8>HDTn$xT)C3|IP# ztCj;BEbX1=U*D!y$l)Ik?g&}pGZi!W zWG?L$m^XIlqFu;XQ3Li`Y}`1s&!})iyqYRHPB*GXwj)xJ?Wf3f8SCXzXZYIEce}@F zE7LTs@ZVbti#1?=V6EBi5$In&ZhB{;X7iDVlN#}nny6)}z~?b{#ir03*M*Rp9IP$r zj8Q5}S)?Bt{BPh%^C?`@Ut%V9hfbp4)%eM+Odo6oJNXfNltrS zTC?YFm(Xt@#9;Ih(~bM}8%`V9_4W`g;%~2KcwPr9^AUak@X0vK4=^K|4EVWgB%%qg zV>kxo*ChSd)isY{11I)IzE1H!UZg*vX($0rZo7=C`&uP7PRHGuljKvFW4I)ZnY8PV z3aXFX*_C#p)!FQdEOaXoiOVggaKoTB=cClm#eMATs=_>dX;7X4Hn+Zp}J0BXzDHA4b5Z|v|xys;Q(Y;q@9|hKwTAdSvg1eIr&)e5`OUCm9t4)M?XD#_t-P(p<_=`4-f^Pt zK4e5ZH|I#l_O;R(M_p`-xe&gb)av2I^rYNq=WjIe5*S5mSYO%169+|9nIXa^SW*?zUBMX}i*!zDhr=Y|Pf^jD0#5?+@eAwEb@A?8; z+kRVgpMYD%cK$*cAx}ZBqq`li7x@c|K=wZ&>Nzocw&-cv=c1=jq%JmAdTYahGLBih6QRAj9G<3uqxC})+->V1fi3@ zhe=MEUvhP{ZZbV?i@7ROU`R%!=h=?##YX8rVFF0qP~}|NwzqT!k5d+Sr{K22L!C*FF}$nD&?yEgF+ z!;@JOf(t3$2qqg+!;`ms_xCnb-aE?zS{^f+Z-g*33_a4k?^80&|L*d9H~rtpP`E?W z$EJUoLgbt#?!}~90(7i7=9lN__bQ4jO_<^9DUaVk9XF(wMdV7WWUOZTTl^F?X@JkB z7J5R*kYm+|VSWYN`*v%NsU{!ouMlCCx?>TybUH6270e3pSiIfH2*CC}d{cB2_lvTM8$#nir9rdiYEU(UMTKFk~6|T#jt)d#gZzlYn7IGlow|%31MFSs>MHlW=mFY?fPa=Hu z+mP|M#{{i5r&|ioWc!$xDmH=)lWRR6V!8?*wmG%#oWWW+wM%{*rL@o?3bdN7masy5 zRj_y{+f$m3u3$n9I2=Se1Lki-?WC}o+@(v1kJdV&ishGpux7aL`9mn75GUEMzjFJ$ z*=zB$?jrKM*``POoYxehIgmeLFOquAmxf{Id9@xSeSjIx^raAi!8%XK!D zn^QLFciQ72Zz3M*+jae#1evSa-~SRRw#)VO)V zM1`Sqv&CR_k5!G2U^QBSD7x6mJqD3JfF00MARJryOG$!P0mB}YuuA>v9f@BDomQYk z%}OW-bJj|so4M_Ag$0^Y4*QAr)~0u@{MWvh9HJy>ACQT@isY#?Bk$yf2VVC^-_;fM zkk@ov-qM&gwPPQmnRQechry0;AA(mcwCbr{Y&J5M^iykyWYgZHA&O|G< zBB!B%P_lTa#bb}Al}q%xy|saosfKD24{eLbg~@B~qg^&5gkJsLueZ?d{op1T2CEwG zR$i}(4h#oD)$71dGv@ai%u#<)j0W@PRki>EKYmxDOOZh%3E%QsfXiAmL1B0Meq(R2ycBhSGDzwrO0KoF`sax)?Z+hd^Q+IxpEh3a`TdqpBbcAoteD&v@_@m|yACliYJ zXvvyZ7sD@-0>{w!AK>+qLz+zu`YspK0@*2Q{PIFjqIY`H`zlv`eOP z&B=90DaHu2aZ6|QcLXR^sg3~}8Oc&Dy4Q&$F>|ihv3&!co&&i}v&J<>9>k47-K3cU zqb_l1aKqx${>Z9~eUOUU?rfla2^ixt3kL~Ob4Qr8ISgZGVnyEuDD>o!u>{YFX1kvy z$B*b1R!lN>aK8yQE=_{_j_6t)C{BjG;`E z^?z+A{5MZeyWdB`{?g~c%7?@zzY%*}8!ARK+p&pd`u3Rk^$KwlUEK+7QPLx@r0RnKO@&tQ}s}M)t_f`u5~FX&KrL;Dj_Wt z#hanKDzq*G$L^rS=IfD3ei`XF$p@0Pl&xXi+!J+^s25Xy~Y z=F{MJM@zCeBQ}#e{D~k~tNazdniF$V@7t?@H^VIw5(oO@7ppY=BZWIg-z5F4h=9z_ z8hfI%Pa%F46i*``W!Ua@-j`f~!Xb|w&b7ghj=CMouDCx21!h6Wg%RPB?Q;*(pb#w$ z>_Qg+LJ3ezOdiSpS2!G@Dw$+nx;Z?eH#Cd)#e7=BjjBeT(8vkDa(P!*Wf?d)W>Img)nxp}dv&RL-cM;r@_Z zU97v4FB`F%yg~7bnm=3MIN;f7X4z^!ysn@jRxG1e4<{!L8&ZqU4pv~XWWH!+HEG+b ztH8bn6~&d2nMkQ=rMeA-xuhUt*jxB|=nlfZ%&W?({;su?LJ_gLmMaPmB$VEc{ur3ueHTP0%Pu{@4!+aLHDafs^GS^M5d&V5xO zbyi^or)C?)<1Z|*90D5DOlQfmArIxRLYAXf*5on&Aad9GVb4s$Z zvSu$*+HH$oh`=W!cL{IR28l%aC*(t{eLv4SgMHz<3N zD;^i57Ru}kJx=+FJeDwI%m%~4%xy$0XZcT`_SVp>=w3I$k0+Y-uAXz>U;cm&XhS~B zn8Z!w$6teetysT#qM$vyLNiQf@l=5;tj*u2Ps}po0-4b{yW3h2Zncx+f==XD?Vx5Z zJIWTLEzNeF1Wuh&zAvw{GXA-e9yFmjN^hEElNn1BwkZYjN&u-1g z?SO{LWJF4=GKMLpdY(z^IW7&)b;m^aHJ=&C!t-J#-z6`2T9jUro?M@-e$c=Q1q2=& zorn~280Lc#$1w0v8+ne{A}Jz{T;^5$1EU%gJ=kT)z)jw7$jht+;P$>y`|f>H?rY&e z>!F>3)R#o*O`CB+*F#0!#vWW?Zhl^gdeN~g)>6XNGYO`2Jk+O)H8nv1M4Eyi2?D&C-=-#p&{ zBGx`#VhjXO2*XSV2Gp=8@RZx^`D`ZG2x4R(FBv(4^W>L?I1Sfc=1JfXk$Ma$lD50Y z0$_Mtq9(KMT0D6v$eXl{MvNL1(8P7%8$@wo@S)7uHuywoGik9m^sflxgUh2#Oad2< zXhU1P=%RV1)Ot1$6>dHJw((8xc+QYZCo3##DoD>+dk*GBx`l{erXec><%V2RM9LeVk)N)n zO`Ro+1#ll>puac{VYL#*Cf|-u@)gwa52et%(rK9|%Ny_Xc`J?6mBt$bg)sYk8jbq0 zWLW!peZtUrP;&cgE&a1;O# z&93qTx=Za}#1UKYZa{lz+*yGTzVhJCQXQAYK^_e(&)@vj7$#J!DQ~Ol-yX1;sChLl z1}F_Z{QX~0n!I=M3oC@aT?wZN6CQNWpI4m;&=UTa<4|R_8W`)lvB`f4W5yGiTCDxX zn=@1D`rK0EU)19kBFT9_ko0&P+(Q7YR%JE9_bLmlYlpS5j=TL!8^f9X?ujM6WBVA6K zd5;*u3OC{L>wKko!wTBHD?skD_eE9T-HQw#-6I97tvO7!MNECAB>gh~s1LBqQmVFh06UprtAP8H(@ z7T@C{#aXEbM!!ES6rJVo=H5K8I#e}RO->+=_3Tto7fY$iRkk(sa?6u^P47kUlRFai zdOI^Xy`E6mJ?B9F0$uvqa+_5=GC8BzuyB+J|jhd<+OCx1{MAwZK`(k zzod9)lUUv6U6@RC&5yR!$Y{-M&RLCzyG+#!GM1iMUyZ@kMS3lVOM(LIb7wYvjrLI) zTO6u4d|AxV1SR(~$(=M`ker9tYXN#r7%tG<^5e+Usgn?#3NX2eI#QJBOiG`CQk{$= zk#jhwJqF#BhH@lNRC%7TC>W)+ZB!xKS=o6Sl7G5PR=q*Cv%^mm>Qs5PMd8{#WY~E& zQPN9s;rhhycNS?Q1NiywHoZq;sdJdCUL1?;VppQ&Xt%PJ&$-t*%2039SUIH)J171XaT^`u#zQIa(1{qxP&BewMf_f~r; zNB}s1aiB$j2ep&vB}YMU<5%5I%;yq1#XW{rXG>s|sFGbIf^ianyoC&X9qCrJ*nN?B zMs%lZx!tLL9TxKw-ma1N41^#Fv_2TTlZ)?H}!@G`D&qS)LT70AxD??`kg6W@;FJeZtS~ z7Afwq(2>~DAeKj8EdYCqG$ZAS_;#Z^ckVbV!blcwrpO9ew*iDqW@G_jC!laTO&(Q@ zEP2My7>Tk}J0MoCXER?IJM52~#P4wG>~B3^si9-1w?FnDeBE%Z&e6wuqQ1_|)s5YH zI{{NEyN>fT;YOO)($nQi++k|%ilRjtaD|^g(tS&S9~pbR+?PVmiSl@4GLixU=$99} zY`LI1>4ZdZ{=3<+%sE_gX_MBN9YiYIb9u~$HJ zn+?^9N}f| z*TE){Ar=z=pa8c5%qh=%Wkm^UXc2oQG&(K8z?w#Nk|gpcmmSZE8MbT3TmCtem- z^8r4~HUyV1A_r&JXU!#^Qy>X{Zr8mVrhb`z2Vs8UtigSpf%6ew?7|>z375(+)e8Kh8%uv>zNGS~upD?8 z0leJjCetp;07|iAC%jV1AodNEUuuDStiR^J(q_DfpBj&{Jc^Ilj5q=Sv@}GyfnM$& zA&Z%@9vI84qpfoqDn*&>`CJV9DR^i{~=7%*%(Fs%DJ(?RVd&pjqu$L$9;U*Kt%{G5=q8N`00Gnm6*&KfdG4_?9ZW6*0ROMVw=IBDd6rp&^h2YaU$n;95mJa6 z5;W{)+E-e@4MD$F3g{~JAs5mp`FI9aRu7|P68)&zueZtLPK!h#`HeP@D>P7#HLfYe zVvocEFca|t1^|R#ws$TYS^e1TEE>nMexXX$hT{soZenaF=KZ*lVcRD%XV9J!BicV| zh;){E@JF6(0D$+n4olvunEDVDIGZRo>o>zAWg-GKf$O0yJRY_YAcRw=PU%x^7&FeS z!W!X@Pu#_n#GfNpgeoT|G7s=R6%a%{Y$5L$U}bf9J&nh8?R!hhm_Du8oB%Jj0e}>Z_{A&? zx29S86L77Wvb&K?Vi9kqn0vy8psD1^WyZr&A8x>`kasGn7!NB@O9vG=DNEg_0^1PR z4vIU|QbeQGam!Ly_6a=d^^XEiyk7;W4M7)@k?TNB^SO~X&@ol@w@_I3CexF*8>gDo z3n;QvchS$}bEGI7W-$8a2Jjw@U0me*Wf>W6n=A;g!U0~+K>oXN;|L<;5fSW_%LAqC(P9O9tU2P++5{*YM F{|6Vaw!HuV literal 68321 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 diff --git a/icons/obj/reagentfillings.dmi b/icons/obj/reagentfillings.dmi index 11f23391089fe7d37fc764d8d5e26d7343e9ae41..b00c622c315f0792fc890dbc06d5c2242de9afb1 100644 GIT binary patch literal 8300 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 AQvd(} literal 7743 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 SMDE2fU~6e_@!H%o@xK5%fe|bK diff --git a/tgstation.dme b/tgstation.dme index a1a3f61a7a4..fa13b25dc4a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2778,6 +2778,7 @@ #include "code\modules\asset_cache\assets\bibles.dm" #include "code\modules\asset_cache\assets\body_zones.dm" #include "code\modules\asset_cache\assets\chat.dm" +#include "code\modules\asset_cache\assets\chemmaster.dm" #include "code\modules\asset_cache\assets\circuits.dm" #include "code\modules\asset_cache\assets\common.dm" #include "code\modules\asset_cache\assets\condiments.dm" diff --git a/tgui/packages/tgui/interfaces/ChemMaster.js b/tgui/packages/tgui/interfaces/ChemMaster.js deleted file mode 100644 index 3e19a45bc1d..00000000000 --- a/tgui/packages/tgui/interfaces/ChemMaster.js +++ /dev/null @@ -1,438 +0,0 @@ -import { useBackend, useSharedState } from '../backend'; -import { AnimatedNumber, Box, Button, ColorBox, LabeledList, NumberInput, Section, Table } from '../components'; -import { Window } from '../layouts'; - -export const ChemMaster = (props, context) => { - const { data } = useBackend(context); - const { screen } = data; - return ( - - - {(screen === 'analyze' && ) || } - - - ); -}; - -const ChemMasterContent = (props, context) => { - const { act, data } = useBackend(context); - const { - screen, - beakerContents = [], - bufferContents = [], - beakerCurrentVolume, - beakerMaxVolume, - isBeakerLoaded, - isPillBottleLoaded, - pillBottleCurrentAmount, - pillBottleMaxAmount, - } = data; - if (screen === 'analyze') { - return ; - } - return ( - <> -

- - - {` / ${beakerMaxVolume} units`} - -
-
- - Mode: - -
-
- -
- {!!isPillBottleLoaded && ( -
- - {pillBottleCurrentAmount} / {pillBottleMaxAmount} pills - - - ))} - - )} - {!condi && ( - setPillAmount(value)} - onCreate={() => - act('create', { - type: 'pill', - amount: pillAmount, - volume: 'auto', - }) - } - /> - )} - {!condi && ( - - {patch_styles.map((patch) => ( - - ))} - - )} - {!condi && ( - setPatchAmount(value)} - onCreate={() => - act('create', { - type: 'patch', - amount: patchAmount, - volume: 'auto', - }) - } - /> - )} - {!condi && ( - setBottleAmount(value)} - onCreate={() => - act('create', { - type: 'bottle', - amount: bottleAmount, - volume: 'auto', - }) - } - /> - )} - {!!condi && ( - - - act('condiStyle', { - id: autoCondiStyleChosen ? condiStyles[0].id : autoCondiStyle, - }) - } - checked={autoCondiStyleChosen} - disabled={!condiStyles.length}> - Guess from contents - - - )} - {!!condi && !autoCondiStyleChosen && ( - - {condiStyles.map((style) => ( - - ))} - - )} - {!!condi && ( - setBottleAmount(value)} - onCreate={() => - act('create', { - type: 'condimentBottle', - amount: bottleAmount, - volume: 'auto', - }) - } - /> - )} - {!!condi && ( - setPackAmount(value)} - onCreate={() => - act('create', { - type: 'condimentPack', - amount: packAmount, - volume: 'auto', - }) - } - /> - )} - - ); -}; - -const AnalysisResults = (props, context) => { - const { act, data } = useBackend(context); - const { analyzeVars } = data; - return ( -
- act('goScreen', { - screen: 'home', - }) - } - /> - }> - - {analyzeVars.name} - {analyzeVars.state} - {analyzeVars.ph} - - - {analyzeVars.color} - - - {analyzeVars.description} - - - {analyzeVars.metaRate} u/minute - - - {analyzeVars.overD} - - - {analyzeVars.addicD} - - -
- ); -}; diff --git a/tgui/packages/tgui/interfaces/ChemMaster.tsx b/tgui/packages/tgui/interfaces/ChemMaster.tsx new file mode 100644 index 00000000000..d5de45c4d93 --- /dev/null +++ b/tgui/packages/tgui/interfaces/ChemMaster.tsx @@ -0,0 +1,453 @@ +import { BooleanLike, classes } from 'common/react'; +import { capitalize } from 'common/string'; +import { useBackend, useLocalState } from '../backend'; +import { AnimatedNumber, Box, Button, Section, Table, NumberInput, Tooltip, LabeledList, ColorBox, ProgressBar, Stack, Divider } from '../components'; +import { Window } from '../layouts'; + +type Data = { + reagentAnalysisMode: BooleanLike; + analysisData: Analysis; + isPrinting: BooleanLike; + printingProgress: number; + printingTotal: number; + transferMode: BooleanLike; + hasBeaker: BooleanLike; + beakerCurrentVolume: number; + beakerMaxVolume: number; + beakerContents: Reagent[]; + bufferContents: Reagent[]; + bufferCurrentVolume: number; + bufferMaxVolume: number; + categories: Category[]; + selectedContainerRef: string; + selectedContainerVolume: number; + hasContainerSuggestion: BooleanLike; + doSuggestContainer: BooleanLike; + suggestedContainer: string; +}; + +type Analysis = { + name: string; + state: string; + pH: number; + color: string; + description: string; + purity: number; + metaRate: number; + overdose: number; + addictionTypes: string[]; +}; + +type Category = { + name: string; + containers: Container[]; +}; + +type Reagent = { + ref: string; + name: string; + volume: number; +}; + +type Container = { + icon: string; + ref: string; + name: string; + volume: number; +}; + +export const ChemMaster = (props, context) => { + const { data } = useBackend(context); + const { reagentAnalysisMode } = data; + return ( + + + {reagentAnalysisMode ? : } + + + ); +}; + +const ChemMasterContent = (props, context) => { + const { act, data } = useBackend(context); + const { + isPrinting, + printingProgress, + printingTotal, + transferMode, + hasBeaker, + beakerCurrentVolume, + beakerMaxVolume, + beakerContents, + bufferContents, + bufferCurrentVolume, + bufferMaxVolume, + categories, + selectedContainerVolume, + hasContainerSuggestion, + doSuggestContainer, + suggestedContainer, + } = data; + + const [itemCount, setItemCount] = useLocalState(context, 'itemCount', 1); + + return ( + +
+ + + {` / ${beakerMaxVolume} units`} + +
+
+ + + {` / ${bufferMaxVolume} units`} + +
+ {!isPrinting && ( +
+ { + setItemCount(value); + }} + /> + + {`${ + Math.round( + Math.min( + selectedContainerVolume, + bufferCurrentVolume / itemCount + ) * 100 + ) / 100 + } u. each`} + +
+ )} + {!!isPrinting && ( +
act('stopPrinting')} + /> + }> + + + {`Printing ${printingProgress} out of ${printingTotal}`} + + +
+ )} +
+ ); +}; + +const ReagentEntry = (props, context) => { + const { data, act } = useBackend(context); + const { chemical, transferTo } = props; + const { isPrinting } = data; + return ( + + + {`${chemical.name} `} + + {`u`} + + + + + ) as any; +}; + +const AnalysisResults = (props, context) => { + const { act, data } = useBackend(context); + const { + name, + state, + pH, + color, + description, + purity, + metaRate, + overdose, + addictionTypes, + } = data.analysisData; + const purityLevel = + purity <= 0.5 ? 'bad' : purity <= 0.75 ? 'average' : 'good'; // Color names + return ( +
act('stopAnalysis')} + /> + }> + + {name} + + + {purityLevel} + + + {pH} + {state} + + + {color} + + {description} + + {metaRate} units/second + + + {overdose > 0 ? `${overdose} units` : 'N/A'} + + + {addictionTypes.length ? addictionTypes.toString() : 'N/A'} + + +
+ ); +}; + +const GroupTitle = ({ title }) => { + return ( + + + + + + {title} + + + + + + ) as any; +};