diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index f08e6bffef1..aa1fa5f1dcb 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -427,6 +427,7 @@ var/global/floorIsLava = 0
Move Ferry
Move Mining Shuttle
+ Move Labor Shuttle
"}
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index f9fcfb99bf8..5aded3ba871 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1933,15 +1933,22 @@
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","ShM")
var/datum/shuttle_manager/s = shuttles["mining"]
- if(istype(s)) s.move_shuttle()
- message_admins("\blue [key_name_admin(usr)] moved mining shuttle", 1)
+ if(istype(s)) s.move_shuttle(0)
+ message_admins("[key_name_admin(usr)] moved mining shuttle", 1)
log_admin("[key_name(usr)] moved the mining shuttle")
+ if("movelaborshuttle")
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","ShL")
+ var/datum/shuttle_manager/s = shuttles["laborcamp"]
+ if(istype(s)) s.move_shuttle(0)
+ message_admins("[key_name_admin(usr)] moved labor shuttle", 1)
+ log_admin("[key_name(usr)] moved the labor shuttle")
if("moveferry")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","ShF")
var/datum/shuttle_manager/s = shuttles["ferry"]
- if(istype(s)) s.move_shuttle()
- message_admins("\blue [key_name_admin(usr)] moved the centcom ferry", 1)
+ if(istype(s)) s.move_shuttle(0)
+ message_admins("[key_name_admin(usr)] moved the centcom ferry", 1)
log_admin("[key_name(usr)] moved the centcom ferry")
if("kick_all_from_lobby")
if(ticker && ticker.current_state == GAME_STATE_PLAYING)
diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm
index 8fadd57ba3f..27e5221f934 100644
--- a/code/modules/shuttle/shuttle.dm
+++ b/code/modules/shuttle/shuttle.dm
@@ -29,26 +29,16 @@ datum/shuttle_manager/proc/move_shuttle(var/override_delay)
if(T.y < throwy)
throwy = T.y
- // hey you, get out of the way!
+ // Destroy everything in the destination area
for(var/turf/T in dstturfs)
- // find the turf to move things to
- var/turf/D = locate(T.x, throwy - 1, 1)
- //var/turf/E = get_step(D, SOUTH)
for(var/atom/movable/AM as mob|obj in T)
- AM.Move(D)
- // NOTE: Commenting this out to avoid recreating mass driver glitch
- /*
- spawn(0)
- AM.throw_at(E, 1, 1)
- return
- */
+ AM.ex_act(1) //splat
+ if(AM)
+ qdel(AM)
if(istype(T, /turf/simulated))
del(T)
- for(var/mob/living/carbon/bug in toArea) // If someone somehow is still in the shuttle's docking area...
- bug.gib()
-
fromArea.move_contents_to(toArea)
location = toArea.type
@@ -108,11 +98,11 @@ datum/shuttle_manager/proc/move_shuttle(var/override_delay)
if(id in shuttles)
var/datum/shuttle_manager/s = shuttles[id]
if (s.move_shuttle())
- usr << "\blue Shuttle recieved message and will be sent shortly."
+ usr << "Shuttle recieved message and will be sent shortly."
else
- usr << "\blue Shuttle is already moving."
+ usr << "Shuttle is already moving."
else
- usr << "\red Invalid shuttle requested."
+ usr << "Invalid shuttle requested."
/obj/machinery/computer/shuttle/attackby(I as obj, user as mob)