diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm
index 1f75c11e42b..553f8f8aead 100644
--- a/code/game/objects/structures/transit_tubes/station.dm
+++ b/code/game/objects/structures/transit_tubes/station.dm
@@ -6,12 +6,11 @@
name = "station tube station"
icon = 'icons/obj/pipes/transit_tube_station.dmi'
icon_state = "closed"
- exit_delay = 2
- enter_delay = 3
+ exit_delay = 1
+ enter_delay = 2
tube_construction = /obj/structure/c_transit_tube/station
var/pod_moving = 0
- var/automatic_launch_time = 100
- var/cooldown_delay = 200
+ var/cooldown_delay = 50
var/launch_cooldown = 0
var/reverse_launch = 0
@@ -67,7 +66,7 @@
else if(icon_state == "open")
if(pod.contents.len && user.loc != pod)
user.visible_message("[user] starts emptying [pod]'s contents onto the floor!")
- if(do_after(user, 40)) //So it doesn't default to close_animation() on fail
+ if(do_after(user, 10)) //So it doesn't default to close_animation() on fail
if(pod.loc == loc)
for(var/atom/movable/AM in pod)
AM.loc = get_turf(user)
@@ -87,7 +86,7 @@
var/mob/GM = G.affecting
for(var/obj/structure/transit_tube_pod/pod in loc)
pod.visible_message("[user] starts putting [GM] into the [pod]!")
- if(do_after(user, 60) && GM && G && G.affecting == GM)
+ if(do_after(user, 15) && GM && G && G.affecting == GM)
GM.Weaken(5)
src.Bumped(GM)
qdel(G)
diff --git a/code/game/objects/structures/transit_tubes/transit_tube.dm b/code/game/objects/structures/transit_tubes/transit_tube.dm
index 152820d77dc..a170353f1ce 100644
--- a/code/game/objects/structures/transit_tubes/transit_tube.dm
+++ b/code/game/objects/structures/transit_tubes/transit_tube.dm
@@ -10,8 +10,8 @@
anchored = 1.0
var/tube_construction = /obj/structure/c_transit_tube
var/list/tube_dirs = null
- var/exit_delay = 2
- var/enter_delay = 1
+ var/exit_delay = 1
+ var/enter_delay = 0
// alldirs in global.dm is the same list of directions, but since
// the specific order matters to get a usable icon_state, it is
@@ -51,7 +51,7 @@ obj/structure/transit_tube/ex_act(severity)
/obj/structure/transit_tube/attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/weapon/wrench))
if(copytext(icon_state, 1, 3) != "D-") //decorative diagonals cannot be unwrenched directly
- for(var/obj/structure/transit_tube_pod/pod in loc)
+ for(var/obj/structure/transit_tube_pod/pod in src.loc)
user << "Remove the pod first."
return
user.visible_message("[user] starts to deattach the [src]!", "You start deattaching the [name]...")
@@ -64,6 +64,9 @@ obj/structure/transit_tube/ex_act(severity)
R.add_fingerprint(user)
src.destroy_diagonals()
qdel(src)
+ if(istype(W, /obj/item/weapon/crowbar))
+ for(var/obj/structure/transit_tube_pod/pod in src.loc)
+ pod.attackby(W, user)
//destroys disconnected decorative diagonals
/obj/structure/transit_tube/proc/destroy_diagonals()
diff --git a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm
index 0f3fbc65760..ed395cc19e5 100644
--- a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm
+++ b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm
@@ -32,8 +32,7 @@
return
if(src.contents.len)
user.visible_message("[user] empties the [src].", "You empty the [src].")
- for(var/atom/movable/M in src.contents)
- M.loc = src.loc
+ src.empty()
return
else
user << "You free the [src]."
@@ -42,6 +41,20 @@
R.add_fingerprint(user)
qdel(src)
+/obj/structure/transit_tube_pod/container_resist()
+ var/mob/living/user = usr
+ if(!moving)
+ user.changeNext_move(CLICK_CD_BREAKOUT)
+ user.last_special = world.time + CLICK_CD_BREAKOUT
+ user << "You start trying to escape from the pod."
+ if(do_after(user, 600))
+ user << "You manage to open the pod."
+ src.empty()
+
+/obj/structure/transit_tube_pod/proc/empty()
+ for(var/atom/movable/M in src.contents)
+ M.loc = src.loc
+
/obj/structure/transit_tube_pod/proc/follow_tube(var/reverse_launch)
if(moving)
return