diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index e722223bc6a..47020fbc330 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -98,6 +98,33 @@ user << "You need a working light!" return + if(istype(W, /obj/item/weapon/storage)) + var/obj/item/weapon/storage/S = W + var/found_good_light = 0 + var/replaced_something = 0 + + for(var/obj/item/I in S.contents) + if(istype(I,/obj/item/weapon/light)) + var/obj/item/weapon/light/L = I + if(L.status == LIGHT_OK) + found_good_light = 1 + if(src.uses < max_uses) + qdel(L) + AddUses(1) + replaced_something = 1 + else + break + + if(!found_good_light) + user << "\The [S] contains no useable lights!" + return + + if(!replaced_something && src.uses == max_uses) + user << "\The [src] is full!" + return + + user << "You fill \the [src] with lights from \the [S]. You have [uses] lights remaining." + /obj/item/device/lightreplacer/emag_act() if(!emagged) Emag()