From efc7a388a0a2aa725f480ecda30157e4272cba50 Mon Sep 17 00:00:00 2001 From: Matthew J Date: Thu, 15 Apr 2021 13:43:12 -0400 Subject: [PATCH] [Bug Fix] Multi-Cell chargers no longer only care about the last capacitor (#4914) * Update multi_cell_charger.dm * I can math I promise 250 * 4 * 4 is 4000 not 2000 Co-authored-by: Matthew --- .../multicellcharger/code/multi_cell_charger.dm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/modular_skyrat/modules/multicellcharger/code/multi_cell_charger.dm b/modular_skyrat/modules/multicellcharger/code/multi_cell_charger.dm index ca9057b8366..db2deab23ee 100644 --- a/modular_skyrat/modules/multicellcharger/code/multi_cell_charger.dm +++ b/modular_skyrat/modules/multicellcharger/code/multi_cell_charger.dm @@ -12,6 +12,8 @@ var/list/charging_batteries = list() //The list of batteries we are gonna charge! var/max_batteries = 4 var/charge_rate = 250 + var/charge_rate_base = 250 // Amount of charge we gain from a level one capacitor + var/charge_rate_max = 4000 // The highest we allow the charge rate to go /obj/machinery/cell_charger_multi/update_overlays() . = ..() @@ -97,9 +99,14 @@ return COMPONENT_CANCEL_ATTACK_CHAIN /obj/machinery/cell_charger_multi/RefreshParts() - charge_rate = 250 + charge_rate = 0 // No, you cant get free charging speed! for(var/obj/item/stock_parts/capacitor/C in component_parts) - charge_rate = clamp((charge_rate *= C.rating), 0, 1500) + charge_rate += charge_rate_base * C.rating + if(charge_rate >= charge_rate_max) // We've hit the charge speed cap, stop iterating. + charge_rate = charge_rate_max + break + if(charge_rate < charge_rate_base) // This should never happen; but we need to pretend it can. + charge_rate = charge_rate_base /obj/machinery/cell_charger_multi/emp_act(severity) . = ..()