From 0a63f55771f9285b9cb3915229556acfaa899849 Mon Sep 17 00:00:00 2001 From: vuonojenmustaturska Date: Wed, 28 Mar 2018 16:00:22 +0300 Subject: [PATCH] Makes chem dispenser recharging far less glacial (#36700) * meme * Makes chem dispenser recharging far less glacial * Update chem_dispenser.dm --- .../chemistry/machinery/chem_dispenser.dm | 31 +++++++++---------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 32096125dd..c826b623cc 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -14,8 +14,8 @@ var/obj/item/stock_parts/cell/cell var/powerefficiency = 0.1 var/amount = 30 - var/recharged = 0 - var/recharge_delay = 5 + var/recharge_amount = 10 + var/recharge_counter = 0 var/mutable_appearance/beaker_overlay var/working_state = "dispenser_working" var/nopower_state = "dispenser_nopower" @@ -62,7 +62,6 @@ /obj/machinery/chem_dispenser/Initialize() . = ..() cell = new cell_type - recharge() dispensable_reagents = sortList(dispensable_reagents) update_icon() @@ -72,11 +71,15 @@ return ..() /obj/machinery/chem_dispenser/process() - if(recharged < 0) - recharge() - recharged = recharge_delay - else - recharged -= 1 + if (recharge_counter >= 4) + if(!is_operational()) + return + var/usedpower = cell.give(recharge_amount) + if(usedpower) + use_power(250*recharge_amount) + recharge_counter = 0 + return + recharge_counter++ /obj/machinery/chem_dispenser/proc/display_beaker() ..() @@ -102,12 +105,7 @@ obj/machinery/chem_dispenser/update_icon() beaker_overlay = display_beaker() add_overlay(beaker_overlay) -/obj/machinery/chem_dispenser/proc/recharge() - if(stat & (BROKEN|NOPOWER)) - return - var/usedpower = cell.give( 1 / powerefficiency) //Should always be a gain of one on the UI. - if(usedpower) - use_power(2500) + /obj/machinery/chem_dispenser/emag_act(mob/user) if(obj_flags & EMAGGED) @@ -313,15 +311,14 @@ obj/machinery/chem_dispenser/update_icon() /obj/machinery/chem_dispenser/RefreshParts() - var/time = 0 + 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) - time += C.rating - recharge_delay = 30/(time/2) //delay between recharges, double the usual time on lowest 50% less than usual on highest + recharge_amount *= C.rating for(var/obj/item/stock_parts/manipulator/M in component_parts) if (M.rating > macrotier) macrotier = M.rating