diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 6db9a26fd8d..d5b966c7d98 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -193,6 +193,9 @@ 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 @@ -204,17 +207,22 @@ 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 @@ -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 07a738a8c94..010da69a834 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -102,6 +102,9 @@ 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 @@ -109,17 +112,23 @@ 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 @@ -127,11 +136,13 @@ 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 diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index e05c7bc924a..d24853a7948 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -245,6 +245,7 @@ /obj/machinery/teleport/station, /obj/machinery/teleport/hub, /obj/machinery/telepad, + /obj/machinery/telepad_cargo, /obj/machinery/clonepod, /obj/effect/hierophant, /obj/item/device/warp_cube,