diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm
index e870d1507d7..0598b6604ca 100644
--- a/code/game/machinery/status_display.dm
+++ b/code/game/machinery/status_display.dm
@@ -101,7 +101,7 @@
disp2 = "STATN"
else
disp1 = "SPPLY"
- disp2 = "DOCK"
+ disp2 = "AWAY"
update_display(disp1, disp2)
diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm
index df9981a9337..bd1f2e8534e 100644
--- a/code/game/supplyshuttle.dm
+++ b/code/game/supplyshuttle.dm
@@ -151,6 +151,7 @@ var/ordernum=0
/proc/supply_can_move()
if(supply_shuttle_moving) return 0
+//I know this is an absolutly horrendous way to do this, very inefficient, but it's the only reliable way I can think of.
//Check for mobs
for(var/mob/living/M in world)
var/area/A = get_area(M)
@@ -417,10 +418,10 @@ This method wont take into account storage items developed in the future and doe
dat = src.temp
else
dat += {"
Supply shuttle
- \nLocation: [supply_shuttle_moving ? "Moving to station ([supply_shuttle_timeleft] Mins.)":supply_shuttle_at_station ? "Station":"Dock"]
+ \nLocation: [supply_shuttle_moving ? "Moving to station ([supply_shuttle_timeleft] Mins.)":supply_shuttle_at_station ? "Station":"Away"]
\nSupply points: [supply_shuttle_points]
\n
- [supply_shuttle_moving ? "\n*Must be at dock to order items*
\n
":supply_shuttle_at_station ? "\n*Must be at dock to order items*
\n
":"\nOrder items
\n
"]
- [supply_shuttle_moving ? "\n*Shuttle already called*
\n
":supply_shuttle_at_station ? "\nSend to Dock
\n
":"\nSend to station
\n
"]
+ [supply_shuttle_moving ? "\n*Must be away to order items*
\n
":supply_shuttle_at_station ? "\n*Must be away to order items*
\n
":"\nOrder items
\n
"]
+ [supply_shuttle_moving ? "\n*Shuttle already called*
\n
":supply_shuttle_at_station ? "\nSend away
\n
":"\nSend to station
\n
"]
\nView requests
\n
\nView orders
\n
\nClose"}
@@ -473,6 +474,7 @@ This method wont take into account storage items developed in the future and doe
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
+ //From Station to Centcomm
if (href_list["sendtodock"])
if(!supply_shuttle_at_station || supply_shuttle_moving) return
@@ -498,6 +500,7 @@ This method wont take into account storage items developed in the future and doe
send_supply_shuttle()
+ //From Centcomm to Station
else if (href_list["sendtostation"])
if(supply_shuttle_at_station || supply_shuttle_moving) return
@@ -628,9 +631,11 @@ This method wont take into account storage items developed in the future and doe
if (supply_shuttle_moving) return
- if (!supply_can_move())
- usr << "\red The supply shuttle can not transport station employees, exosuits, classified nuclear codes, or homing beacons."
- return
+ var/area/the_shuttles_way = locate(SUPPLY_STATION_AREATYPE)
+
+ //Do I really need to explain this loop?
+ for(var/mob/living/unlucky_person in the_shuttles_way)
+ unlucky_person.gib()
var/shuttleat = supply_shuttle_at_station ? SUPPLY_STATION_AREATYPE : SUPPLY_DOCK_AREATYPE
var/shuttleto = !supply_shuttle_at_station ? SUPPLY_STATION_AREATYPE : SUPPLY_DOCK_AREATYPE
diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm
index b7a0fdc4d76..5f3c07144b5 100644
--- a/code/modules/assembly/infrared.dm
+++ b/code/modules/assembly/infrared.dm
@@ -123,7 +123,7 @@
Topic(href, href_list)
..()
- if(get_dist(src, usr) > 1)
+ if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr << browse(null, "window=infra")
onclose(usr, "infra")
return
diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm
index d92fc53a80d..e19dd999730 100644
--- a/code/modules/assembly/proximity.dm
+++ b/code/modules/assembly/proximity.dm
@@ -119,7 +119,7 @@
Topic(href, href_list)
..()
- if(get_dist(src, usr) > 1)
+ if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr << browse(null, "window=prox")
onclose(usr, "prox")
return
diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm
index b925c1770f6..296d80680d1 100644
--- a/code/modules/assembly/signaler.dm
+++ b/code/modules/assembly/signaler.dm
@@ -76,9 +76,9 @@
Topic(href, href_list)
..()
- if(get_dist(src, usr) > 1)
- usr << browse(null, "window=signal")
- onclose(usr, "signal")
+ if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
+ usr << browse(null, "window=radio")
+ onclose(usr, "radio")
return
if (href_list["freq"])
diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm
index 747e87e000f..5b8963e7cb1 100644
--- a/code/modules/assembly/timer.dm
+++ b/code/modules/assembly/timer.dm
@@ -86,7 +86,7 @@
Topic(href, href_list)
..()
- if(get_dist(src, usr) > 1)
+ if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr << browse(null, "window=timer")
onclose(usr, "timer")
return
diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm
index 0e7d305fb86..17e40de2800 100644
--- a/code/modules/mining/mine_turfs.dm
+++ b/code/modules/mining/mine_turfs.dm
@@ -339,7 +339,7 @@
else
..(W,user)
- if ((istype(W,/obj/item/weapon/pickaxe/diamonddrill)))
+ if ((istype(W,/obj/item/weapon/pickaxe/diamonddrill)) || (istype(W,/obj/item/weapon/pickaxe/borgdrill)))
var/turf/T = user.loc
if (!( istype(T, /turf) ))
return
diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm
index 7d7f7efdc18..bcd36a3e277 100644
--- a/code/modules/mob/mob_movement.dm
+++ b/code/modules/mob/mob_movement.dm
@@ -40,10 +40,7 @@
/client/Southwest()
if(iscarbon(usr))
var/mob/living/carbon/C = usr
- if(!C.get_active_hand())
- usr << "\red You have nothing in your hand to throw."
- return
- toggle_throw_mode()
+ C.toggle_throw_mode()
else
usr << "\red This mob type cannot throw items."
return
@@ -115,10 +112,12 @@
/client/verb/toggle_throw_mode()
set hidden = 1
- if(!istype(mob, /mob/living/carbon)) return
- if((mob.stat || mob.restrained()) || !(isturf(mob.loc))) return
- mob:toggle_throw_mode()
- return
+ if(!istype(mob, /mob/living/carbon))
+ return
+ if (!mob.stat && isturf(mob.loc) && !mob.restrained())
+ mob:toggle_throw_mode()
+ else
+ return
/client/verb/drop_item()