diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index bede2c3328b..9029f58965f 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -65,14 +65,47 @@ if(!COOLDOWN_FINISHED(src, next_apc_scan)) return - COOLDOWN_START(src, next_apc_scan, 1 SECONDS) + COOLDOWN_START(src, next_apc_scan, 2 SECONDS) var/area/local_area = get_area(src) - var/power_controller = local_area.apc - if(power_controller) - user.balloon_alert(user, "[get_dist(src, power_controller)]m [dir2text(get_dir(src, power_controller))]") - else + var/obj/machinery/power/apc/power_controller = local_area.apc + if(!power_controller) user.balloon_alert(user, "couldn't find apc!") + return + + var/dist = get_dist(src, power_controller) + var/dir = get_dir(user, power_controller) + var/balloon_message + var/arrow_color + + switch(dist) + if (0) + user.balloon_alert(user, "found apc!") + return + if(1 to 5) + arrow_color = COLOR_GREEN + if(6 to 10) + arrow_color = COLOR_YELLOW + if(11 to 15) + arrow_color = COLOR_ORANGE + else + arrow_color = COLOR_RED + + user.balloon_alert(user, balloon_message) + + var/datum/hud/user_hud = user.hud_used + if(!user_hud) + return + + var/atom/movable/screen/multitool_arrow/arrow = new(null, user_hud) + arrow.color = arrow_color + arrow.screen_loc = around_player + arrow.transform = matrix(dir2angle(dir), MATRIX_ROTATE) + + user_hud.infodisplay += arrow + user_hud.show_hud(user_hud.hud_version) + + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), arrow), 1.5 SECONDS) /obj/item/multitool/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] puts the [src] to [user.p_their()] chest. It looks like [user.p_theyre()] trying to pulse [user.p_their()] heart off!")) diff --git a/code/modules/engineering/tools/multitool.dm b/code/modules/engineering/tools/multitool.dm new file mode 100644 index 00000000000..48bb5140078 --- /dev/null +++ b/code/modules/engineering/tools/multitool.dm @@ -0,0 +1,5 @@ +/atom/movable/screen/multitool_arrow + icon = 'icons/effects/96x96.dmi' + icon_state = "multitool_arrow" + pixel_x = -32 + pixel_y = -32 diff --git a/icons/effects/96x96.dmi b/icons/effects/96x96.dmi index ed4a5b64d3c..a80322b6043 100644 Binary files a/icons/effects/96x96.dmi and b/icons/effects/96x96.dmi differ diff --git a/tgstation.dme b/tgstation.dme index c9c2613425c..16fdd0709de 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -4133,6 +4133,7 @@ #include "code\modules\economy\holopay.dm" #include "code\modules\emoji\emoji_parse.dm" #include "code\modules\emote_panel\emote_panel.dm" +#include "code\modules\engineering\tools\multitool.dm" #include "code\modules\error_handler\error_handler.dm" #include "code\modules\error_handler\error_viewer.dm" #include "code\modules\escape_menu\details.dm"