diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index ed1b9be0e0d..47877da718d 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -193,10 +193,13 @@
L[tmpname] = R
var/desc = input("Please select a telepad.", "RCS") in L
E.pad = L[desc]
+ if(!Adjacent(user))
+ to_chat(user, "Unable to teleport, too far from crate.")
+ return
playsound(E.loc, E.usesound, 50, 1)
to_chat(user, "Teleporting [name]...")
E.teleporting = 1
- if(!(do_after(user, 50 * E.toolspeed, target = src) && (E.rcell && (E.rcell.charge >= E.chargecost)) && Adjacent(user)))
+ if(!do_after(user, 50 * E.toolspeed, target = src))
E.teleporting = 0
return
E.teleporting = 0
@@ -204,21 +207,26 @@
to_chat(user, "Error: User located in container--aborting for safety.")
playsound(E.loc, 'sound/machines/buzz-sigh.ogg', 50, 1)
return
+ if(!(E.rcell && E.rcell.use(E.chargecost)))
+ to_chat(user, "Unable to teleport, insufficient charge.")
+ return
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
do_teleport(src, E.pad, 0)
- E.rcell.use(E.chargecost)
to_chat(user, "Teleport successful. [round(E.rcell.charge/E.chargecost)] charge\s left.")
return
else
E.rand_x = rand(50,200)
E.rand_y = rand(50,200)
var/L = locate(E.rand_x, E.rand_y, 6)
+ if(!Adjacent(user))
+ to_chat(user, "Unable to teleport, too far from crate.")
+ return
playsound(E.loc, E.usesound, 50, 1)
to_chat(user, "Teleporting [name]...")
E.teleporting = 1
- if(!(do_after(user, 50, E.toolspeed, target = src) && (E.rcell && (E.rcell.charge >= E.chargecost)) && Adjacent(user)))
+ if(!do_after(user, 50, E.toolspeed, target = src))
E.teleporting = 0
return
E.teleporting = 0
@@ -226,11 +234,13 @@
to_chat(user, "Error: User located in container--aborting for safety.")
playsound(E.loc, 'sound/machines/buzz-sigh.ogg', 50, 1)
return
+ if(!(E.rcell && E.rcell.use(E.chargecost)))
+ to_chat(user, "Unable to teleport, insufficient charge.")
+ return
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
do_teleport(src, L)
- E.rcell.use(E.chargecost)
to_chat(user, "Teleport successful. [round(E.rcell.charge/E.chargecost)] charge\s left.")
return
else
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index 79fd929dedb..010da69a834 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -102,36 +102,47 @@
L[tmpname] = R
var/desc = input("Please select a telepad.", "RCS") in L
E.pad = L[desc]
+ if(!Adjacent(user))
+ to_chat(user, "Unable to teleport, too far from crate.")
+ return
playsound(E.loc, E.usesound, 50, 1)
to_chat(user, "Teleporting [src.name]...")
E.teleporting = 1
- if(!(do_after(user, 50 * E.toolspeed, target = src) && (E.rcell && (E.rcell.charge >= E.chargecost)) && Adjacent(user)))
+ if(!do_after(user, 50 * E.toolspeed, target = src))
E.teleporting = 0
return
E.teleporting = 0
+ if(!(E.rcell && E.rcell.use(E.chargecost)))
+ to_chat(user, "Unable to teleport, insufficient charge.")
+ return
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
do_teleport(src, E.pad, 0)
- E.rcell.use(E.chargecost)
to_chat(user, "Teleport successful. [round(E.rcell.charge/E.chargecost)] charge\s left.")
return
+
else
E.rand_x = rand(50,200)
E.rand_y = rand(50,200)
var/L = locate(E.rand_x, E.rand_y, 6)
+ if(!Adjacent(user))
+ to_chat(user, "Unable to teleport, too far from crate.")
+ return
playsound(E.loc, E.usesound, 50, 1)
to_chat(user, "Teleporting [src.name]...")
E.teleporting = 1
- if(!(do_after(user, 50 * E.toolspeed, target = src) && (E.rcell && (E.rcell.charge >= E.chargecost)) && Adjacent(user)))
+ if(!do_after(user, 50 * E.toolspeed, target = src))
E.teleporting = 0
return
E.teleporting = 0
+ if(!(E.rcell && E.rcell.use(E.chargecost)))
+ to_chat(user, "Unable to teleport, insufficient charge.")
+ return
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
do_teleport(src, L)
- E.rcell.use(E.chargecost)
to_chat(user, "Teleport successful. [round(E.rcell.charge/E.chargecost)] charge\s left.")
return
else