diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index 73e5b86a69eb..0017e41219e5 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -52,10 +52,32 @@ next_scan = world.time + 15 var/area/A = get_area(src) - var/APC = A? A.get_apc() : null + var/atom/APC = A? A.get_apc() : null if(APC) to_chat(user, SPAN_NOTICE("The local APC is located at [SPAN_BOLD("[get_dist(src, APC)] units [dir2text(Get_Compass_Dir(src, APC))]")].")) user.balloon_alert(user, "[get_dist(src, APC)] units [dir2text(Get_Compass_Dir(src, APC))]") + if(user.client) + //Create the appearance so we have something to apply the filter to. + var/mutable_appearance/apc_appearance = new(APC) + apc_appearance.filters += list("type" = "outline", "size" = 1, "color" = COLOR_GREEN) + //Make it an image we can give to the client + var/image/final_image = image(apc_appearance) + + final_image.layer = WALL_OBJ_LAYER + final_image.plane = GAME_PLANE + final_image.loc = get_turf(APC) + final_image.dir = apc_appearance.dir + final_image.alpha = 225 + user.client.images += final_image + addtimer(CALLBACK(src, PROC_REF(remove_apc_highlight), user.client, final_image), 1.4 SECONDS) + + else to_chat(user, SPAN_WARNING("ERROR: Could not locate local APC.")) user.balloon_alert(user, "could not locate!") + +/obj/item/device/multitool/proc/remove_apc_highlight(client/user_client, image/highlight_image) + if(!user_client) + return + user_client.images -= highlight_image +