From 41c03e03d996f6317acae567a10035033a278b7b Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Tue, 26 Mar 2019 18:29:11 -0400 Subject: [PATCH 1/2] Chem Dispenser Refactor --- code/datums/supplypacks.dm | 4 +- code/game/asteroid.dm | 2 +- code/game/machinery/constructable_frame.dm | 28 +- .../chemistry/machinery/chem_dispenser.dm | 494 ++++++------------ .../research/designs/machine_designs.dm | 4 +- icons/obj/chemical.dmi | Bin 36899 -> 36555 bytes nano/templates/chem_dispenser.tmpl | 2 + 7 files changed, 167 insertions(+), 367 deletions(-) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 5330be00665..328482f9892 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -1060,8 +1060,8 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /datum/supply_packs/organic/bar name = "Bar Starter Kit" contains = list(/obj/item/storage/box/drinkingglasses, - /obj/item/circuitboard/soda, - /obj/item/circuitboard/beer) + /obj/item/circuitboard/chem_dispenser/soda, + /obj/item/circuitboard/chem_dispenser/beer) cost = 20 containername = "beer starter kit" announce_beacons = list("Bar" = list("Bar")) diff --git a/code/game/asteroid.dm b/code/game/asteroid.dm index c6edd09575e..66124a9582e 100644 --- a/code/game/asteroid.dm +++ b/code/game/asteroid.dm @@ -104,7 +104,7 @@ var/global/max_secret_rooms = 6 theme = "hitech" walltypes = list(/turf/simulated/wall/r_wall=5,/turf/simulated/mineral/random=1) floortypes = list(/turf/simulated/floor/greengrid,/turf/simulated/floor/bluegrid) - treasureitems = list(/obj/item/stock_parts/cell/hyper=1, /obj/machinery/chem_dispenser/constructable=1,/obj/machinery/computer/telescience=1, /obj/machinery/r_n_d/protolathe=1, + treasureitems = list(/obj/item/stock_parts/cell/hyper=1, /obj/item/circuitboard/chem_dispenser=1,/obj/machinery/computer/telescience=1, /obj/machinery/r_n_d/protolathe=1, /obj/machinery/biogenerator=1) fluffitems = list(/obj/structure/table/reinforced=2,/obj/item/stock_parts/scanning_module/phasic=3, /obj/item/stock_parts/matter_bin/super=3,/obj/item/stock_parts/manipulator/pico=3, diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index ece6615b786..85738d3bb65 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -541,13 +541,12 @@ to destroy them and players will be able to make replacements. /obj/item/stock_parts/capacitor = 1) /obj/item/circuitboard/chem_dispenser - name = "circuit board (Portable Chem Dispenser)" - build_path = /obj/machinery/chem_dispenser/constructable + name = "circuit board (Chem Dispenser)" + build_path = /obj/machinery/chem_dispenser board_type = "machine" origin_tech = "materials=4;programming=4;plasmatech=4;biotech=3" frame_desc = "Requires 2 Matter Bins, 1 Capacitor, 1 Manipulator, 1 Console Screen, and 1 Power Cell." - req_components = list( - /obj/item/stock_parts/matter_bin = 2, + req_components = list( /obj/item/stock_parts/matter_bin = 2, /obj/item/stock_parts/capacitor = 1, /obj/item/stock_parts/manipulator = 1, /obj/item/stock_parts/console_screen = 1, @@ -617,30 +616,13 @@ to destroy them and players will be able to make replacements. /obj/item/stock_parts/manipulator = 2, /obj/item/reagent_containers/glass/beaker = 2) -/obj/item/circuitboard/soda +/obj/item/circuitboard/chem_dispenser/soda name = "Circuit board (Soda Machine)" build_path = /obj/machinery/chem_dispenser/soda - board_type = "machine" - frame_desc = "Requires 2 Matter Bins, 1 Manipulators, 1 Capacitor, 1 Console Screen, and 1 Power Cell." - req_components = list( - /obj/item/stock_parts/matter_bin = 2, - /obj/item/stock_parts/manipulator = 1, - /obj/item/stock_parts/capacitor = 1, - /obj/item/stock_parts/console_screen = 1, - /obj/item/stock_parts/cell = 1) -/obj/item/circuitboard/beer +/obj/item/circuitboard/chem_dispenser/beer name = "Circuit board (Beer Machine)" build_path = /obj/machinery/chem_dispenser/beer - board_type = "machine" - frame_desc = "Requires 2 Matter Bins, 1 Manipulators, 1 Capacitor, 1 Console Screen, and 1 Power Cell." - req_components = list( - /obj/item/stock_parts/matter_bin = 2, - /obj/item/stock_parts/manipulator = 1, - /obj/item/stock_parts/capacitor = 1, - /obj/item/stock_parts/console_screen = 1, - /obj/item/stock_parts/cell = 1) - /obj/item/circuitboard/circuit_imprinter name = "Circuit board (Circuit Imprinter)" diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index e827d282e21..300b1d85c67 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -1,38 +1,80 @@ /obj/machinery/chem_dispenser name = "chem dispenser" - density = 1 - anchored = 1 + density = TRUE + anchored = TRUE icon = 'icons/obj/chemical.dmi' icon_state = "dispenser" - use_power = NO_POWER_USE + use_power = IDLE_POWER_USE idle_power_usage = 40 var/ui_title = "Chem Dispenser 5000" - var/energy = 100 - var/max_energy = 100 - var/amount = 30 + var/cell_type = /obj/item/stock_parts/cell/high + var/obj/item/stock_parts/cell/cell + var/powerefficiency = 0.1 + var/amount = 10 + var/recharge_amount = 100 + var/recharge_counter = 0 + var/hackedcheck = FALSE var/obj/item/reagent_containers/beaker = null - var/recharged = 0 - var/hackedcheck = 0 + var/image/icon_beaker = null //cached overlay var/list/dispensable_reagents = list("hydrogen", "lithium", "carbon", "nitrogen", "oxygen", "fluorine", "sodium", "aluminum", "silicon", "phosphorus", "sulfur", "chlorine", "potassium", "iron", "copper", "mercury", "plasma", "radium", "water", "ethanol", "sugar", "iodine", "bromine", "silver") + var/list/upgrade_reagents = list("oil", "ash", "acetone", "saltpetre", "ammonia", "diethylamine", "fuel") var/list/hacked_reagents = list("toxin") var/hack_message = "You disable the safety safeguards, enabling the \"Mad Scientist\" mode." var/unhack_message = "You re-enable the safety safeguards, enabling the \"NT Standard\" mode." - var/list/broken_requirements = list() - var/broken_on_spawn = 0 - var/recharge_delay = 5 - var/image/icon_beaker = null //cached overlay + +/obj/machinery/chem_dispenser/New() + ..() + component_parts = list() + component_parts += new /obj/item/circuitboard/chem_dispenser(null) + component_parts += new /obj/item/stock_parts/matter_bin(null) + component_parts += new /obj/item/stock_parts/matter_bin(null) + component_parts += new /obj/item/stock_parts/capacitor(null) + component_parts += new /obj/item/stock_parts/manipulator(null) + component_parts += new /obj/item/stock_parts/console_screen(null) + component_parts += new cell_type(null) + RefreshParts() + dispensable_reagents = sortList(dispensable_reagents) + +/obj/machinery/chem_dispenser/RefreshParts() + recharge_amount = initial(recharge_amount) + var/newpowereff = 0.0666666 + for(var/obj/item/stock_parts/cell/P in component_parts) + cell = P + for(var/obj/item/stock_parts/matter_bin/M in component_parts) + newpowereff += 0.0166666666 * M.rating + for(var/obj/item/stock_parts/capacitor/C in component_parts) + recharge_amount *= C.rating + for(var/obj/item/stock_parts/manipulator/M in component_parts) + if(M.rating > 3) + dispensable_reagents |= upgrade_reagents + powerefficiency = round(newpowereff, 0.01) + +/obj/machinery/chem_dispenser/Destroy() + QDEL_NULL(beaker) + QDEL_NULL(cell) + return ..() + +/obj/machinery/chem_dispenser/examine(mob/user) + ..() + if(panel_open) + to_chat(user, "[src]'s maintenance hatch is open!") + if(in_range(user, src) || isobserver(user)) + to_chat(user, "The status display reads:
Recharging [recharge_amount] power units per interval.
Power efficiency increased by [round((powerefficiency * 1000) - 100, 1)]%.") -/obj/machinery/chem_dispenser/proc/recharge() - if(stat & (BROKEN|NOPOWER)) return - var/addenergy = 1 - var/oldenergy = energy - energy = min(energy + addenergy, max_energy) - if(energy != oldenergy) - use_power(1500) // This thing uses up alot of power (this is still low as shit for creating reagents from thin air) - SSnanoui.update_uis(src) // update all UIs attached to src +/obj/machinery/chem_dispenser/process() + if(recharge_counter >= 4) + if(!is_operational()) + return + var/usedpower = cell.give(recharge_amount) + if(usedpower) + use_power(15 * recharge_amount) + SSnanoui.update_uis(src) // update all UIs attached to src + recharge_counter = 0 + return + recharge_counter++ /obj/machinery/chem_dispenser/power_change() if(powered()) @@ -42,72 +84,19 @@ stat |= NOPOWER SSnanoui.update_uis(src) // update all UIs attached to src -/obj/machinery/chem_dispenser/process() - - if(recharged < 0) - recharge() - recharged = recharge_delay - else - recharged -= 1 - -/obj/machinery/chem_dispenser/New() - ..() - recharge() - dispensable_reagents = sortList(dispensable_reagents) - - if(broken_on_spawn) - overlays.Cut() - var/amount = pick(3,3,4) - var/list/options = list() - options[/obj/item/stock_parts/capacitor/adv] = "Add an advanced capacitor to fix it." - options[/obj/item/stock_parts/console_screen] = "Replace the console screen to fix it." - options[/obj/item/stock_parts/manipulator/pico] = "Upgrade to a pico manipulator to fix it." - options[/obj/item/stock_parts/matter_bin/super] = "Give it a super matter bin to fix it." - options[/obj/item/stock_parts/cell/super] = "Replace the reagent synthesizer with a super capacity cell to fix it." - options[/obj/item/reagent_scanner/adv] = "Replace the reagent scanner with an advanced reagent scanner to fix it" - options[/obj/item/stock_parts/micro_laser/high] = "Repair the reagent synthesizer with an high-power micro-laser to fix it" - options[/obj/item/reagent_scanner/adv] = "Replace the reagent scanner with an advanced reagent scanner to fix it" - options[/obj/item/stack/nanopaste] = "Apply some nanopaste to the broken nozzles to fix it." - options[/obj/item/stack/sheet/plasteel] = "Surround the outside with a plasteel cover to fix it." - options[/obj/item/stack/sheet/rglass] = "Insert a pane of reinforced glass to fix it." - - while(amount > 0) - amount -= 1 - - var/index = pick(options) - broken_requirements[index] = options[index] - options -= index - - /obj/machinery/chem_dispenser/ex_act(severity) switch(severity) - if(1.0) + if(1) qdel(src) - return - if(2.0) + if(2) if(prob(50)) qdel(src) - return /obj/machinery/chem_dispenser/blob_act() if(prob(50)) qdel(src) - /** - * The ui_interact proc is used to open and update Nano UIs - * If ui_interact is not used then the UI will not update correctly - * ui_interact is currently defined for /atom/movable - * - * @param user /mob The mob who is interacting with this ui - * @param ui_key string A string key to use for this ui. Allows for multiple unique uis on one obj/mob (defaut value "main") - * - * @return nothing - */ /obj/machinery/chem_dispenser/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1) - if(broken_requirements.len) - to_chat(user, "[src] is broken. [broken_requirements[broken_requirements[1]]]") - return - // update the ui if it exists, returns null if no ui is passed/found ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) @@ -121,8 +110,8 @@ var/data[0] data["amount"] = amount - data["energy"] = round(energy) - data["maxEnergy"] = round(max_energy) + data["energy"] = cell.charge ? cell.charge * powerefficiency : "0" //To prevent NaN in the UI. + data["maxEnergy"] = cell.maxcharge * powerefficiency data["isBeakerLoaded"] = beaker ? 1 : 0 var/beakerContents[0] @@ -151,26 +140,32 @@ /obj/machinery/chem_dispenser/Topic(href, href_list) if(..()) - return 1 + return TRUE if(href_list["amount"]) - amount = round(text2num(href_list["amount"]), 5) // round to nearest 5 + amount = round(text2num(href_list["amount"]), 1) // round to nearest 1 if(amount < 0) // Since the user can actually type the commands himself, some sanity checking amount = 0 if(amount > 100) amount = 100 if(href_list["dispense"]) - if(dispensable_reagents.Find(href_list["dispense"]) && beaker != null) - var/obj/item/reagent_containers/glass/B = beaker - var/datum/reagents/R = B.reagents - var/space = R.maximum_volume - R.total_volume + if(!is_operational() || QDELETED(cell)) + return + if(beaker && dispensable_reagents.Find(href_list["dispense"])) + var/datum/reagents/R = beaker.reagents + var/free = R.maximum_volume - R.total_volume + var/actual = min(amount, (cell.charge * powerefficiency) * 10, free) - R.add_reagent(href_list["dispense"], min(amount, energy * 10, space)) - energy = max(energy - min(amount, energy * 10, space) / 10, 0) + if(!cell.use(actual / powerefficiency)) + atom_say("Not enough energy to complete operation!") + return + + R.add_reagent(href_list["dispense"], actual) overlays.Cut() - icon_beaker = image('icons/obj/chemical.dmi', src, "disp_beaker") //randomize beaker overlay position. - icon_beaker.pixel_x = rand(-10,5) + if(!icon_beaker) + icon_beaker = image('icons/obj/chemical.dmi', src, "disp_beaker") //randomize beaker overlay position. + icon_beaker.pixel_x = rand(-10, 5) overlays += icon_beaker if(href_list["remove"]) @@ -178,75 +173,96 @@ if(href_list["removeamount"]) var/amount = text2num(href_list["removeamount"]) if(isnum(amount) && (amount > 0)) - var/obj/item/reagent_containers/glass/B = beaker - var/datum/reagents/R = B.reagents + var/datum/reagents/R = beaker.reagents var/id = href_list["remove"] R.remove_reagent(id, amount) + else if(isnum(amount) && (amount = -1)) //Isolate instead + var/datum/reagents/R = beaker.reagents + var/id = href_list["remove"] + R.isolate_reagent(id) if(href_list["ejectBeaker"]) if(beaker) - var/obj/item/reagent_containers/glass/B = beaker - B.forceMove(loc) + beaker.forceMove(loc) beaker = null overlays.Cut() - add_fingerprint(usr) - return 1 // update UIs attached to this object -/obj/machinery/chem_dispenser/attackby(obj/item/reagent_containers/B, mob/user, params) - if(isrobot(user)) + add_fingerprint(usr) + return TRUE // update UIs attached to this object + +/obj/machinery/chem_dispenser/attackby(obj/item/I, mob/user, params) + if(ismultitool(I)) + if(!hackedcheck) + to_chat(user, hack_message) + dispensable_reagents += hacked_reagents + hackedcheck = TRUE + else + to_chat(user, unhack_message) + dispensable_reagents -= hacked_reagents + hackedcheck = FALSE + SSnanoui.update_uis(src) return - if(broken_requirements.len && B.type == broken_requirements[1]) - if(istype(B,/obj/item/stack)) - var/obj/item/stack/S = B - S.use(1) - else - if(!user.drop_item()) - to_chat(user, "[B] is stuck to you!") - return - qdel(B) - broken_requirements -= broken_requirements[1] - to_chat(user, "You fix [src].") + if(default_deconstruction_screwdriver(user, "[initial(icon_state)]-o", "[initial(icon_state)]", I)) + return + + if(exchange_parts(user, I)) + SSnanoui.update_uis(src) + return + + if(iswrench(I)) + playsound(src, I.usesound, 50, 1) + if(anchored) + anchored = FALSE + to_chat(user, "[src] can now be moved.") + else if(!anchored) + anchored = TRUE + to_chat(user, "[src] is now secured.") + return + + if(panel_open) + if(iscrowbar(I)) + if(beaker) + beaker.forceMove(loc) + beaker = null + if(cell) + cell.forceMove(loc) + cell = null + default_deconstruction_crowbar(I) + return TRUE + + if(isrobot(user)) return if(beaker) to_chat(user, "Something is already loaded into the machine.") return - if(istype(B, /obj/item/reagent_containers/glass) || istype(B, /obj/item/reagent_containers/food/drinks)) - beaker = B - if(!user.drop_item()) - to_chat(user, "[B] is stuck to you!") + if(istype(I, /obj/item/reagent_containers/glass) || istype(I, /obj/item/reagent_containers/food/drinks)) + if(panel_open) + to_chat(user, "Close the maintenance panel first.") return - B.forceMove(src) - to_chat(user, "You set [B] on the machine.") + if(!user.drop_item()) + to_chat(user, "[I] is stuck to you!") + return + beaker = I + I.forceMove(src) + to_chat(user, "You set [I] on the machine.") SSnanoui.update_uis(src) // update all UIs attached to src if(!icon_beaker) icon_beaker = image('icons/obj/chemical.dmi', src, "disp_beaker") //randomize beaker overlay position. - icon_beaker.pixel_x = rand(-10,5) + icon_beaker.pixel_x = rand(-10, 5) overlays += icon_beaker return + return ..() -/obj/machinery/chem_dispenser/attackby(obj/item/B, mob/user, params) - ..() - if(istype(B, /obj/item/multitool)) - if(hackedcheck == 0) - to_chat(user, hack_message) - dispensable_reagents += hacked_reagents - hackedcheck = 1 - return - - else - to_chat(user, unhack_message) - dispensable_reagents -= hacked_reagents - hackedcheck = 0 - return /obj/machinery/chem_dispenser/attack_ai(mob/user) return attack_hand(user) /obj/machinery/chem_dispenser/attack_ghost(mob/user) - return attack_hand(user) + if(user.can_admin_interact()) + return attack_hand(user) /obj/machinery/chem_dispenser/attack_hand(mob/user) if(stat & BROKEN) @@ -259,245 +275,45 @@ name = "soda fountain" desc = "A drink fabricating machine, capable of producing many sugary drinks with just one touch." ui_title = "Soda Dispens-o-matic" - energy = 100 - max_energy = 100 dispensable_reagents = list("water", "ice", "milk", "soymilk", "coffee", "tea", "hot_coco", "cola", "spacemountainwind", "dr_gibb", "space_up", "tonic", "sodawater", "lemon_lime", "grapejuice", "sugar", "orangejuice", "lemonjuice", "limejuice", "tomatojuice", "banana", "watermelonjuice", "carrotjuice", "potato", "berryjuice") - var/list/special_reagents2 = list(list(""), - list("bananahonk", "milkshake", "cafe_latte", "cafe_mocha"), - list("triple_citrus", "icecoffe","icetea")) + upgrade_reagents = list("bananahonk", "milkshake", "cafe_latte", "cafe_mocha", "triple_citrus", "icecoffe","icetea") + hacked_reagents = list("thirteenloko") hack_message = "You change the mode from 'McNano' to 'Pizza King'." unhack_message = "You change the mode from 'Pizza King' to 'McNano'." - hacked_reagents = list("thirteenloko") /obj/machinery/chem_dispenser/soda/New() ..() - component_parts = list() - component_parts += new /obj/item/circuitboard/soda(null) + QDEL_LIST(component_parts) + component_parts += new /obj/item/circuitboard/chem_dispenser/soda(null) component_parts += new /obj/item/stock_parts/matter_bin(null) component_parts += new /obj/item/stock_parts/matter_bin(null) component_parts += new /obj/item/stock_parts/manipulator(null) component_parts += new /obj/item/stock_parts/capacitor(null) component_parts += new /obj/item/stock_parts/console_screen(null) - component_parts += new /obj/item/stock_parts/cell/super(null) + component_parts += new cell_type(null) RefreshParts() -/obj/machinery/chem_dispenser/soda/upgraded/New() - ..() - component_parts = list() - component_parts += new /obj/item/circuitboard/soda(null) - component_parts += new /obj/item/stock_parts/matter_bin/super(null) - component_parts += new /obj/item/stock_parts/matter_bin/super(null) - component_parts += new /obj/item/stock_parts/manipulator/pico(null) - component_parts += new /obj/item/stock_parts/capacitor/super(null) - component_parts += new /obj/item/stock_parts/console_screen(null) - component_parts += new /obj/item/stock_parts/cell/hyper(null) - RefreshParts() - -/obj/machinery/chem_dispenser/soda/RefreshParts() - for(var/obj/item/stock_parts/manipulator/M in component_parts) - for(var/i in 1 to M.rating) - dispensable_reagents = sortList(dispensable_reagents | special_reagents2[i]) - -/obj/machinery/chem_dispenser/soda/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/reagent_containers/glass)) - if(panel_open) - to_chat(user, "Close the maintenance panel first.") - return - return ..() - else - ..() - - if(default_deconstruction_screwdriver(user, "minidispenser-o", "minidispenser", I)) - return - - if(exchange_parts(user, I)) - return - - if(iswrench(I)) - playsound(src, I.usesound, 50, 1) - if(anchored) - anchored = FALSE - to_chat(user, "[src] can now be moved.") - else if(!anchored) - anchored = TRUE - to_chat(user, "[src] is now secured.") - - if(panel_open) - if(iscrowbar(I)) - if(beaker) - var/obj/item/reagent_containers/glass/B = beaker - B.forceMove(loc) - beaker = null - default_deconstruction_crowbar(I) - return TRUE - - /obj/machinery/chem_dispenser/beer icon_state = "booze_dispenser" name = "booze dispenser" ui_title = "Booze Portal 9001" - energy = 100 - max_energy = 100 desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one." dispensable_reagents = list("ice", "cream", "cider", "beer", "kahlua", "whiskey", "wine", "vodka", "gin", "rum", "tequila", "vermouth", "cognac", "ale", "mead", "synthanol") - var/list/special_reagents3 = list(list("iced_beer"), - list("irishcream", "manhattan",), - list("antihol", "synthignon", "bravebull")) + upgrade_reagents = list("iced_beer", "irishcream", "manhattan", "antihol", "synthignon", "bravebull") + hacked_reagents = list("goldschlager", "patron", "absinthe", "ethanol", "nothing", "sake") hack_message = "You disable the 'nanotrasen-are-cheap-bastards' lock, enabling hidden and very expensive boozes." unhack_message = "You re-enable the 'nanotrasen-are-cheap-bastards' lock, disabling hidden and very expensive boozes." - hacked_reagents = list("goldschlager", "patron", "absinthe", "ethanol", "nothing", "sake") /obj/machinery/chem_dispenser/beer/New() ..() - component_parts = list() - component_parts += new /obj/item/circuitboard/beer(null) + QDEL_LIST(component_parts) + component_parts += new /obj/item/circuitboard/chem_dispenser/beer(null) component_parts += new /obj/item/stock_parts/matter_bin(null) component_parts += new /obj/item/stock_parts/matter_bin(null) - component_parts += new /obj/item/stock_parts/manipulator(null) component_parts += new /obj/item/stock_parts/capacitor(null) - component_parts += new /obj/item/stock_parts/console_screen(null) - component_parts += new /obj/item/stock_parts/cell/super(null) - RefreshParts() - -/obj/machinery/chem_dispenser/beer/upgraded/New() - ..() - component_parts = list() - component_parts += new /obj/item/circuitboard/beer(null) - component_parts += new /obj/item/stock_parts/matter_bin/super(null) - component_parts += new /obj/item/stock_parts/matter_bin/super(null) - component_parts += new /obj/item/stock_parts/manipulator/pico(null) - component_parts += new /obj/item/stock_parts/capacitor/super(null) - component_parts += new /obj/item/stock_parts/console_screen(null) - component_parts += new /obj/item/stock_parts/cell/hyper(null) - RefreshParts() - -/obj/machinery/chem_dispenser/beer/RefreshParts() - for(var/obj/item/stock_parts/manipulator/M in component_parts) - for(var/i in 1 to M.rating) - dispensable_reagents = sortList(dispensable_reagents | special_reagents3[i]) - -/obj/machinery/chem_dispenser/beer/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/reagent_containers/glass)) - if(panel_open) - to_chat(user, "Close the maintenance panel first.") - return - return ..() - else - ..() - - if(default_deconstruction_screwdriver(user, "minidispenser-o", "minidispenser", I)) - return - - if(exchange_parts(user, I)) - return - - if(iswrench(I)) - playsound(src, I.usesound, 50, 1) - if(anchored) - anchored = FALSE - to_chat(user, "[src] can now be moved.") - else if(!anchored) - anchored = TRUE - to_chat(user, "[src] is now secured.") - - if(panel_open) - if(iscrowbar(I)) - if(beaker) - var/obj/item/reagent_containers/glass/B = beaker - B.forceMove(loc) - beaker = null - default_deconstruction_crowbar(I) - return TRUE - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/obj/machinery/chem_dispenser/constructable - name = "portable chem dispenser" - icon = 'icons/obj/chemical.dmi' - icon_state = "minidispenser" - energy = 5 - max_energy = 5 - amount = 5 - recharge_delay = 10 - dispensable_reagents = list() - var/list/special_reagents = list(list("hydrogen", "oxygen", "silicon", "phosphorus", "sulfur", "carbon", "nitrogen", "water"), - list("lithium", "sugar", "copper", "mercury", "sodium","iodine","bromine"), - list("ethanol", "chlorine", "potassium", "aluminum","plasma", "radium", "fluorine", "iron", "silver"), - list("oil", "ash", "acetone", "saltpetre", "ammonia", "diethylamine", "fuel")) - -/obj/machinery/chem_dispenser/constructable/New() - ..() - component_parts = list() - component_parts += new /obj/item/circuitboard/chem_dispenser(null) - component_parts += new /obj/item/stock_parts/matter_bin(null) - component_parts += new /obj/item/stock_parts/matter_bin(null) component_parts += new /obj/item/stock_parts/manipulator(null) - component_parts += new /obj/item/stock_parts/capacitor(null) component_parts += new /obj/item/stock_parts/console_screen(null) - component_parts += new /obj/item/stock_parts/cell/super(null) - RefreshParts() - -/obj/machinery/chem_dispenser/constructable/upgraded/New() - ..() - component_parts = list() - component_parts += new /obj/item/circuitboard/chem_dispenser(null) - component_parts += new /obj/item/stock_parts/matter_bin/super(null) - component_parts += new /obj/item/stock_parts/matter_bin/super(null) - component_parts += new /obj/item/stock_parts/manipulator/pico(null) - component_parts += new /obj/item/stock_parts/capacitor/super(null) - component_parts += new /obj/item/stock_parts/console_screen(null) - component_parts += new /obj/item/stock_parts/cell/hyper(null) - RefreshParts() - -/obj/machinery/chem_dispenser/constructable/RefreshParts() - var/time = 0 - var/temp_energy = 0 - var/i - for(var/obj/item/stock_parts/matter_bin/M in component_parts) - temp_energy += M.rating - temp_energy-- - max_energy = temp_energy * 5 //max energy = (bin1.rating + bin2.rating - 1) * 5, 5 on lowest 25 on highest - for(var/obj/item/stock_parts/capacitor/C in component_parts) - time += C.rating - for(var/obj/item/stock_parts/cell/P in component_parts) - time += round(P.maxcharge, 10000) / 10000 - recharge_delay = 10 / (time/2) //delay between recharges, double the usual time on lowest 33% less than usual on highest - for(var/obj/item/stock_parts/manipulator/M in component_parts) - for(i=1, i<=M.rating, i++) - dispensable_reagents = sortList(dispensable_reagents | special_reagents[i]) - -/obj/machinery/chem_dispenser/constructable/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/reagent_containers/glass)) - if(panel_open) - to_chat(user, "Close the maintenance panel first.") - return - ..() - else - ..() - - if(default_deconstruction_screwdriver(user, "minidispenser-o", "minidispenser", I)) - return - - if(exchange_parts(user, I)) - return - - if(istype(I, /obj/item/wrench)) - playsound(src, I.usesound, 50, 1) - if(anchored) - anchored = 0 - to_chat(user, "[src] can now be moved.") - else if(!anchored) - anchored = 1 - to_chat(user, "[src] is now secured.") - - if(panel_open) - if(istype(I, /obj/item/crowbar)) - if(beaker) - var/obj/item/reagent_containers/glass/B = beaker - B.forceMove(loc) - beaker = null - default_deconstruction_crowbar(I) - return 1 + component_parts += new cell_type(null) + RefreshParts() \ No newline at end of file diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index cc6305319c7..cc2f12e6714 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -163,8 +163,8 @@ category = list("Medical Machinery") /datum/design/chem_dispenser - name = "Machine Board (Portable Chem Dispenser)" - desc = "The circuit board for a Portable Chem Dispenser." + name = "Machine Board (Chem Dispenser)" + desc = "The circuit board for a Chem Dispenser." id = "chem_dispenser" req_tech = list("programming" = 5, "biotech" = 3, "materials" = 4, "plasmatech" = 4) build_type = IMPRINTER diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index 61390f3805725e1d1b04cff50458efbb5280b9c3..9c9f6d38e941aa1bf9d7c4a2e02833f31bab65bf 100644 GIT binary patch literal 36555 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 literal 36899 zcmb@t1yCGO*EZP0;1VE6upq%D5S-u^JV-t4OiII6b7Mw*6uR%%9!$PKqtuIR zGHK0c6L-dqf;ZPEJ+|xK;rrbxOuD_~2TODfQ#1iIM+&XG%}Nokp8c~!FUpN2)%4Cu z^A+wA^l>lC_TvE~Z&)rPIey22fP!9$fb|#D5a@Q?Uc@RldC=RIelo(v_uACjM!Cz3 zgm*DP{7hH$81*7J+dMWtWX&?+fy4?8f@Re^|4d@Cu$=c#6XL~8#6(2)J8poVqRdx0 zL)^~4sq{H1e4*}SKc$tN7S{}#lU&W2y`AUZ>G(z%Rr!wM?dGuWMR0ylSFl(Fr1I(HVcWmfWxAy!{p$B)?F6*vyn z%33uZTz1uFB|Qiitptq{4njZSH|yghVm8B#KT@HPA7)5e$n3W9O2tU~j0 z#?jN+UU251BUud+Kf%9L-uU`?@s!ydzfr@8;#O0$&ri(;+{pyMZ&wiz-001>0 zFD;?rnX%XE|A|1e?eS5N`)i)OzucF4xu~L~3Uouizb#1Yqe)Z`=7tqchb&2k+9=0S z#&b2=x~$d`acLD`()5GFDeq>qCI`7T?z&aK6=Qk#l6Q$u~Y)6WQ_8>84n z+fR0N`Ij#)dkLzvV|+yd9IJ`nCQd z<)yyN=5RV1z{JFazGo(5Ia6bC2A)CzG_fu!lG)0~ze;9$eYeYR_Gw?H}b z9#hY7Gakh@*P>V}wwA{diFuaAqG}MG-0h7>K>(`xk6b1pCt8>~4GxAwMtvVgL}c4b z?gb|spa6S+JBi1F+p|kVpM@!7`DhyI>cOYBztI2+0VjZfK?$Bt`!Hh!cO>__*vy8{ z=eA8%8j_fYm|B2ia$W0*Eh;X?*efk65|@{kH}UD|Nt+gR)E~W-9E>63#XQ{@URx0W zh21PJDam>B=FRhq!}%rxu-nnrxabDI6wVs8T$z#y;q7fDRMlw60DmLn z+HiZFkGT59=KH`2Ou%!6fB(=YJF0a@_o<|tn;Z4E$?Z>j&#mn6DraSa9rj07z+@-P zrb+5;-jtltdD2UF4`^(8rI4fhSyhQz(;kl+?!809{)M~1H^)Z zE5o&(Z*&F%jQNytC?2=w;*a(lmfUY1GS40X_{IJl=ZC*cOQ8x+wTSoLEUdR6_1fc3 zblq69?`+&&Oc*|Bm)&`jeS`GXPzcES2av*;bJ>7^f^W2qo?|SZT5puiW63apY4x@4 z#i`8Pd30xidzd+Y#acF16582LX{9^U$A|0v-gv5ZvQ5~dLp(=RwR!(jgVt-Zr5;Hj z6z--X_Wa$Bo_MX}E)KwDg=9M||FCE?X;4S##c|(Qx+a7Z&d~d&h#>X&^;#X;zSvrw zSrt80T}HR6u%~#Fo-TA?KmikARL+Pfx~n$p1ptpFUk?Lp&MB1&(c1+PPSH})gcIC7 z#{rbpOCP0rKc+H$8b(IOs>@_}_Z0iuT)jW`*o3>3LDo_n0=ibM1>0yXl`=vJv1(BMmJ5jq-qBFt}0}EZA1qzQt|FM?T!& zFCirbRZvt^Gct<%6J(mGT`8-q`~*DpL$AE~jacW-?PE{LlKuWr%&07tFClvI{z6NN z@;4r4YJ`c1@>u$H%HHVoTE0T+6#k%A*5ZJNQ&Y33EDW_omd~K@=AoTHc{Asyx9{H@{3f() z-`9GFXu!sBdiYGO)$QOsMX|dEHl;90z~P{=ws!bRSNK}XVH-36ZhHYWu{ftrqa6Je ztpx!no}fL9Q6m9Hx3iI@E{X8!N-eR1==yr1J~`>qO74oL4Kfpb+E?6Ia9*8i(>FPJ zbLSF)_HV^?6VA|%?!#Rsn#4>0w4dv)Q^ncO)xX~uN@L>SP>B;2?Nw^$C&c0WRj5N! zQM>P1dmiQyuy(k-Lmsg35YuqjcKgK3%d4og6pQ3V?ih)NyO2V&puG~^IP}K*{5$Z8 za%A2WcAVx@U1@Cncyj&l?#5GmMb5pHfV=h+QI^G&h2&-LN%`n%Qx8*OZ8H=o@!-jr%a<_#xlmMSijt5D|9l_f)k hW>&o*b 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
+ {{:helper.link('1', 'gear', {'amount' : 1}, (data.amount == 1) ? 'selected' : null)}} {{:helper.link('5', 'gear', {'amount' : 5}, (data.amount == 5) ? 'selected' : null)}} {{:helper.link('10', 'gear', {'amount' : 10}, (data.amount == 10) ? 'selected' : null)}} {{:helper.link('20', 'gear', {'amount' : 20}, (data.amount == 20) ? 'selected' : null)}} @@ -70,6 +71,7 @@ Used In File(s): \code\modules\reagents\Chemistry-Machinery.dm
+ {{:helper.link('Isolate', null, {'remove' : value.id, 'removeamount' : -1})}} {{:helper.link('1', null, {'remove' : value.id, 'removeamount' : 1})}} {{:helper.link('5', null, {'remove' : value.id, 'removeamount' : 5})}} {{:helper.link('10', null, {'remove' : value.id, 'removeamount' : 10})}} From f00596fe81ed469f9780fe3f6be6cd8c5a0c5eb2 Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Tue, 26 Mar 2019 18:54:28 -0400 Subject: [PATCH 2/2] oops --- code/modules/reagents/chemistry/machinery/chem_dispenser.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 300b1d85c67..258237f0ddd 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -176,7 +176,7 @@ var/datum/reagents/R = beaker.reagents var/id = href_list["remove"] R.remove_reagent(id, amount) - else if(isnum(amount) && (amount = -1)) //Isolate instead + else if(isnum(amount) && (amount == -1)) //Isolate instead var/datum/reagents/R = beaker.reagents var/id = href_list["remove"] R.isolate_reagent(id)