diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 908fa397c06..70926d7ba2b 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -278,7 +278,6 @@
return 1
/atom/movable/proc/onTransitZ(old_z,new_z)
- SEND_SIGNAL(src, COMSIG_MOVABLE_Z_CHANGED, old_z, new_z)
for(var/item in src) // Notify contents of Z-transition. This can be overridden if we know the items contents do not care.
var/atom/movable/AM = item
AM.onTransitZ(old_z,new_z)
diff --git a/code/modules/awaymissions/mission_code/UO71-terrorspiders.dm b/code/modules/awaymissions/mission_code/UO71-terrorspiders.dm
index f396b57e3ee..8f562846e87 100644
--- a/code/modules/awaymissions/mission_code/UO71-terrorspiders.dm
+++ b/code/modules/awaymissions/mission_code/UO71-terrorspiders.dm
@@ -191,31 +191,25 @@
origin_tech = null
selfcharge = 1
can_charge = 0
- var/inawaymission = TRUE
+ // Selfcharge is enabled and disabled, and used as the away mission tracker
+ selfcharge = TRUE
/obj/item/gun/energy/laser/awaymission_aeg/Initialize(mapload)
. = ..()
- RegisterSignal(src, list(COMSIG_MOVABLE_Z_CHANGED), .proc/updateZ)
// Force update it incase it spawns outside an away mission and shouldnt be charged
- updateZ()
+ onTransitZ(new_z=loc.z)
-/obj/item/gun/energy/laser/awaymission_aeg/process()
- // Only call the self-recharge proc if inside an away mission
- if(inawaymission)
- ..()
-
-/obj/item/gun/energy/laser/awaymission_aeg/proc/updateZ()
- var/turf/my_loc = get_turf(src)
- if(is_away_level(my_loc.z))
+/obj/item/gun/energy/laser/awaymission_aeg/onTransitZ(old_z, new_z)
+ if(is_away_level(new_z))
if(ismob(loc))
to_chat(loc, "Your [src] activates, starting to draw power from a nearby wireless power source.")
- inawaymission = TRUE
+ selfcharge = TRUE
else
- if(inawaymission)
+ if(selfcharge)
if(ismob(loc))
to_chat(loc, "Your [src] deactivates, as it is out of range from its power source.")
cell.charge = 0
- inawaymission = FALSE
+ selfcharge = FALSE
update_icon()
/obj/item/reagent_containers/glass/beaker/terror_black_toxin