diff --git a/code/modules/xenoarcheaology/effects/cellcharge.dm b/code/modules/xenoarcheaology/effects/cellcharge.dm
index 4bf859fcf3..e422e48b6b 100644
--- a/code/modules/xenoarcheaology/effects/cellcharge.dm
+++ b/code/modules/xenoarcheaology/effects/cellcharge.dm
@@ -19,17 +19,20 @@
var/atom/holder = get_master_holder()
if(holder)
var/turf/T = get_turf(holder)
- for (var/obj/machinery/power/apc/C in range(200, T))
- for (var/obj/item/cell/B in C.contents)
- B.charge += 25
- for (var/obj/machinery/power/smes/S in range (src.effectrange,src))
- S.charge += 25
- for (var/mob/living/silicon/robot/M in range(50, T))
- for (var/obj/item/cell/D in M.contents)
- D.charge += 25
- if(world.time - last_message > 200)
- to_chat(M, "SYSTEM ALERT: Energy boost detected!")
- last_message = world.time
+ for (var/obj/machinery/power/apc/C in GLOB.apcs)
+ if(get_dist(holder, C) <= 200)
+ for (var/obj/item/cell/B in C.contents)
+ B.charge += 25
+ for (var/obj/machinery/power/smes/S in GLOB.smeses)
+ if(get_dist(holder, S) <= src.effectrange)
+ S.charge += 25
+ for (var/mob/living/silicon/robot/M in global.silicon_mob_list)
+ if(get_dist(holder, M) < 50)
+ for (var/obj/item/cell/D in M.contents)
+ D.charge += 25
+ if(world.time - last_message > 200)
+ to_chat(M, "SYSTEM ALERT: Energy boost detected!")
+ last_message = world.time
return 1
/datum/artifact_effect/uncommon/cellcharge/DoEffectPulse()