diff --git a/code/modules/shuttle/elevator.dm b/code/modules/shuttle/elevator.dm
new file mode 100644
index 0000000000..12f9c24f9a
--- /dev/null
+++ b/code/modules/shuttle/elevator.dm
@@ -0,0 +1,10 @@
+/obj/docking_port/mobile/elevator
+ name = "elevator"
+ id = "elevator"
+ dwidth = 3
+ width = 7
+ height = 7
+ knockdown = FALSE
+
+/obj/docking_port/mobile/elevator/request(obj/docking_port/stationary/S) //No transit, no ignition, just a simple up/down platform
+ dock(S, TRUE)
\ No newline at end of file
diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm
index 756fad25b3..b5571164ff 100644
--- a/code/modules/shuttle/on_move.dm
+++ b/code/modules/shuttle/on_move.dm
@@ -3,7 +3,7 @@
return
// Called when shuttle attempts to move an atom.
-/atom/movable/proc/onShuttleMove(turf/T1, rotation)
+/atom/movable/proc/onShuttleMove(turf/T1, rotation, knockdown = TRUE)
if(rotation)
shuttleRotate(rotation)
loc = T1
@@ -47,11 +47,11 @@
else
shake_camera(src, 7, 1)
-/mob/living/carbon/onShuttleMove()
+/mob/living/carbon/onShuttleMove(turf/T1, rotation, knockdown = TRUE)
. = ..()
if(!.)
return
- if(!buckled)
+ if(!buckled && knockdown)
Weaken(3)
/obj/effect/abstract/proximity_checker/onShuttleMove()
diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm
index 00ddecb7f8..656ba24da6 100644
--- a/code/modules/shuttle/shuttle.dm
+++ b/code/modules/shuttle/shuttle.dm
@@ -217,6 +217,8 @@
var/launch_status = NOLAUNCH
+ var/knockdown = TRUE //Will it knock down mobs when it docks?
+
// A timid shuttle will not register itself with the shuttle subsystem
// All shuttle templates are timid
var/timid = FALSE
@@ -517,7 +519,7 @@
//move mobile to new location
for(var/atom/movable/AM in T0)
- if(AM.onShuttleMove(T1, rotation))
+ if(AM.onShuttleMove(T1, rotation, knockdown))
moved_atoms += AM
if(rotation)
@@ -578,10 +580,7 @@
if(M.pulledby)
M.pulledby.stop_pulling()
M.stop_pulling()
- M.visible_message("[M] is hit by \
- a hyperspace ripple!",
- "You feel an immense \
- crushing pressure as the space around you ripples.")
+ M.visible_message("[src] slams into [M]!")
if(M.key || M.get_ghost(TRUE))
SSblackbox.add_details("shuttle_gib", "[type]")
else
diff --git a/tgstation.dme b/tgstation.dme
index bff0d9a902..e10d48ca49 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -2013,6 +2013,7 @@
#include "code\modules\shuttle\arrivals.dm"
#include "code\modules\shuttle\assault_pod.dm"
#include "code\modules\shuttle\computer.dm"
+#include "code\modules\shuttle\elevator.dm"
#include "code\modules\shuttle\emergency.dm"
#include "code\modules\shuttle\ferry.dm"
#include "code\modules\shuttle\manipulator.dm"