diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 2a5569bd430..375ddd49d2d 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -283,11 +283,14 @@ return TRUE return FALSE -/obj/item/lightreplacer/proc/Charge(mob/user) - charge += 1 - if(charge > 3) - add_uses(1) - charge = 1 +#define LIGHT_CHARGE_COEFF 30000 +/obj/item/lightreplacer/proc/Charge(mob/user, coeff) + charge += coeff + if(charge > LIGHT_CHARGE_COEFF) + add_uses(floor(charge / LIGHT_CHARGE_COEFF)) + charge = charge % LIGHT_CHARGE_COEFF + +#undef LIGHT_CHARGE_COEFF /obj/item/lightreplacer/proc/replace_light(obj/machinery/light/target, mob/living/user) //Confirm that it's a light we're testing, because afterattack runs this for everything on a given turf and will runtime diff --git a/code/modules/mob/living/silicon/robot/robot_model.dm b/code/modules/mob/living/silicon/robot/robot_model.dm index 6f674f44c87..10f758aa5f4 100644 --- a/code/modules/mob/living/silicon/robot/robot_model.dm +++ b/code/modules/mob/living/silicon/robot/robot_model.dm @@ -657,8 +657,7 @@ ..() var/obj/item/lightreplacer/light_replacer = locate(/obj/item/lightreplacer) in basic_modules if(light_replacer) - for(var/charge in 1 to coeff) - light_replacer.Charge(cyborg) + light_replacer.Charge(cyborg, coeff) var/obj/item/reagent_containers/spray/cyborg_drying/drying_agent = locate(/obj/item/reagent_containers/spray/cyborg_drying) in basic_modules if(drying_agent)