diff --git a/code/game/objects/devices/PDA/cart.dm b/code/game/objects/devices/PDA/cart.dm
index 643231bb193..f2253bda569 100644
--- a/code/game/objects/devices/PDA/cart.dm
+++ b/code/game/objects/devices/PDA/cart.dm
@@ -554,8 +554,8 @@ Code:
if(ml)
if (ml.z != cl.z)
continue
-
- ldat += "Mop - \[[ml.x],[ml.y]\] - [M.reagents.total_volume ? "Wet" : "Dry"]
"
+ var/direction = get_dir(src, M)
+ ldat += "Mop - \[[ml.x],[ml.y] ([uppertext(dir2text(direction))])\] - [M.reagents.total_volume ? "Wet" : "Dry"]
"
if (!ldat)
menu += "None"
@@ -571,8 +571,8 @@ Code:
if(bl)
if (bl.z != cl.z)
continue
-
- ldat += "Bucket - \[[bl.x],[bl.y]\] - Water level: [B.reagents.total_volume]/100
"
+ var/direction = get_dir(src, B)
+ ldat += "Bucket - \[[bl.x],[bl.y] ([uppertext(dir2text(direction))])\] - Water level: [B.reagents.total_volume]/100
"
if (!ldat)
menu += "None"
@@ -588,8 +588,8 @@ Code:
if(bl)
if (bl.z != cl.z)
continue
-
- ldat += "Cleanbot - \[[bl.x],[bl.y]\] - [B.on ? "Online" : "Offline"]
"
+ var/direction = get_dir(src, B)
+ ldat += "Cleanbot - \[[bl.x],[bl.y] ([uppertext(dir2text(direction))])\] - [B.on ? "Online" : "Offline"]
"
if (!ldat)
menu += "None"
@@ -598,6 +598,7 @@ Code:
else
menu += "ERROR: Unable to determine current location."
+ menu += "
Refresh GPS Locator"
proc/add_data(atom/A as mob|obj|turf|area)
//I love hashtables.
diff --git a/code/game/objects/devices/flash.dm b/code/game/objects/devices/flash.dm
index 55541e87d3c..2040228e4a4 100644
--- a/code/game/objects/devices/flash.dm
+++ b/code/game/objects/devices/flash.dm
@@ -94,7 +94,8 @@
else if(issilicon(M))
M.Weaken(rand(5,10))
- flashfail++
+ else
+ flashfail = 1
if(isrobot(user))
spawn(0)
@@ -109,11 +110,19 @@
if(!flashfail)
flick("flash2", src)
- for(var/mob/O in viewers(user, null))
- O.show_message("[user] blinds [M] with the flash!")
+ if(!issilicon(M))
+
+ for(var/mob/O in viewers(user, null))
+ O.show_message("[user] blinds [M] with the flash!")
+ else
+
+ for(var/mob/O in viewers(user, null))
+ O.show_message("[user] overloads [M]'s sensors with the flash!")
else
+
for(var/mob/O in viewers(user, null))
O.show_message("[user] fails to blind [M] with the flash!")
+
return
diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm
index dd067716314..50d4d536375 100644
--- a/code/modules/chemical/Chemistry-Tools.dm
+++ b/code/modules/chemical/Chemistry-Tools.dm
@@ -2654,7 +2654,8 @@
//Creates a shattering noise and replaces the bottle with a broken_bottle
user.drop_item()
- var/obj/item/weapon/broken_bottle/B = new /obj/item/weapon/broken_bottle(user)
+ var/obj/item/weapon/broken_bottle/B = new /obj/item/weapon/broken_bottle(user.loc)
+ user.put_in_active_hand(B)
if(prob(33))
new/obj/item/weapon/shard(target.loc) // Create a glass shard at the target's location!
B.icon_state = src.icon_state
@@ -2675,7 +2676,7 @@
if(!target)
return
- if(user.a_intent != "hurt" || user == target || !isGlass)
+ if(user.a_intent != "hurt" || !isGlass)
return ..()
@@ -2722,8 +2723,8 @@
//Display an attack message.
for(var/mob/O in viewers(user, null))
- O.show_message(text("\red [target] has been hit over the head with a bottle of [src.name], by [user]!"), 1)
-
+ if(target != user) O.show_message(text("\red [target] has been hit over the head with a bottle of [src.name], by [user]!"), 1)
+ else O.show_message(text("\red [target] has hit himself with a bottle of [src.name] over his head!"), 1)
//Weaken the target for the duration that we calculated and divide it by 5.
if(armor_duration)
target.apply_effect(min(armor_duration, 10) , WEAKEN) // Never weaken more than a flash!
@@ -2731,7 +2732,8 @@
else
//Default attack message and don't weaken the target.
for(var/mob/O in viewers(user, null))
- O.show_message(text("\red [target] has been attacked with a bottle of [src.name], by [user]!"), 1)
+ if(target != user) O.show_message(text("\red [target] has been attacked with a bottle of [src.name], by [user]!"), 1)
+ else O.show_message(text("\red [target] has attacked himself with a bottle of [src.name]!"), 1)
//Attack logs
user.attack_log += text("\[[time_stamp()]\] Has attacked [target.name] ([target.ckey]) with a bottle!")
diff --git a/maps/tgstation.2.0.9.dmm b/maps/tgstation.2.0.9.dmm
index 63b2271ead6..c9c01cd7c27 100644
--- a/maps/tgstation.2.0.9.dmm
+++ b/maps/tgstation.2.0.9.dmm
@@ -1383,7 +1383,7 @@
"aAE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/requests_console{department = "Tech storage"; pixel_x = -30},/turf/simulated/floor/plating,/area/storage/tech)
"aAF" = (/obj/machinery/light,/obj/machinery/light_switch{pixel_y = -23},/turf/simulated/floor/plating,/area/storage/tech)
"aAG" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor/plating,/area/storage/tech)
-"aAH" = (/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/item/weapon/circuitboard/message_monitor{step_x = 3; step_y = 29},/turf/simulated/floor/plating,/area/storage/tech)
+"aAH" = (/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = "Streight"},/obj/item/weapon/circuitboard/message_monitor,/turf/simulated/floor/plating,/area/storage/tech)
"aAI" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor/plating,/area/storage/tech)
"aAJ" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/machinery/camera{c_tag = "Tech Storage South"; dir = 1; network = "SS13"},/turf/simulated/floor/plating,/area/storage/tech)
"aAK" = (/obj/machinery/camera{c_tag = "Secure Construction Area"; dir = 4; network = "SS13"},/obj/item/weapon/crowbar,/obj/item/weapon/extinguisher,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/table/reinforced,/turf/simulated/floor/plating,/area/teleporter/gateway)