From 6811b43f5b2e9da3ede66074aaf537e0564310b3 Mon Sep 17 00:00:00 2001 From: Geeves Date: Tue, 17 Mar 2020 18:19:08 +0200 Subject: [PATCH] Debugger Improvements (#8419) --- code/game/machinery/vending.dm | 18 +++++++++++++++++- code/game/objects/items/devices/debugger.dm | 10 +++++----- code/modules/power/apc.dm | 12 ++++++------ .../geeves-debuggers_worth_a_damn.yml | 7 +++++++ 4 files changed, 35 insertions(+), 12 deletions(-) create mode 100644 html/changelogs/geeves-debuggers_worth_a_damn.yml diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index e1fad17a871..d8d8ecdc453 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -184,7 +184,23 @@ to_chat(user, "You short out the product lock on \the [src]") return 1 -/obj/machinery/vending/attackby(obj/item/W as obj, mob/user as mob) +/obj/machinery/vending/attackby(obj/item/W, mob/user) + if(istype(W, /obj/item/device/debugger)) + if(!shut_up) + to_chat(user, SPAN_WARNING("\The [W] reads, \"Software error detected. Rectifying.\".")) + if(do_after(user, 100 / W.toolspeed, act_target = src)) + to_chat(user, SPAN_NOTICE("\The [W] reads, \"Solution found. Fix applied.\".")) + shut_up = TRUE + if(shoot_inventory) + if(wires.IsIndexCut(VENDING_WIRE_THROW)) + to_chat(user, SPAN_WARNING("\The [W] reads, \"Hardware error detected. Manual repair required.\".")) + return + to_chat(user, SPAN_WARNING("\The [W] reads, \"Software error detected. Rectifying.\".")) + if(do_after(user, 100 / W.toolspeed, act_target = src)) + to_chat(user, SPAN_NOTICE("\The [W] reads, \"Solution found. Fix applied. Have a NanoTrasen day!\".")) + shoot_inventory = FALSE + else + to_chat(user, SPAN_NOTICE("\The [W] reads, \"All systems nominal.\".")) var/obj/item/card/id/I = W.GetID() var/datum/money_account/vendor_account = SSeconomy.get_department_account("Vendor") diff --git a/code/game/objects/items/devices/debugger.dm b/code/game/objects/items/devices/debugger.dm index fd790538b5d..b15b8f5facb 100644 --- a/code/game/objects/items/devices/debugger.dm +++ b/code/game/objects/items/devices/debugger.dm @@ -5,12 +5,12 @@ icon = 'icons/obj/hacktool.dmi' icon_state = "hacktool-g" flags = CONDUCT - force = 5.0 - w_class = 2.0 - throwforce = 5.0 + force = 5 + w_class = ITEMSIZE_SMALL + throwforce = 5 throw_range = 15 throw_speed = 3 - matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 20) + matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 20) - origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1) + origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1) \ No newline at end of file diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index dd9d48a1ac4..e24993c8292 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -661,25 +661,25 @@ else if (istype(W, /obj/item/device/debugger)) if(emagged || hacker || infected) to_chat(user, "There is a software error with the device. Attempting to fix...") - if(do_after(user, 10/W.toolspeed SECONDS, act_target = src)) + if(do_after(user, 5/W.toolspeed SECONDS, act_target = src)) to_chat(user, "Problem diagnosed, searching for solution...") - if(do_after(user, 30/W.toolspeed SECONDS, act_target = src)) + if(do_after(user, 15/W.toolspeed SECONDS, act_target = src)) to_chat(user, "Solution found. Applying fixes...") - if(do_after(user, 60/W.toolspeed SECONDS, act_target = src)) + if(do_after(user, 30/W.toolspeed SECONDS, act_target = src)) if(prob(15)) to_chat(user, "Error while applying fixes. Please try again.") return to_chat(user, "Applied default software. Restarting APC...") - if(do_after(user, 10/W.toolspeed SECONDS, act_target = src)) + if(do_after(user, 5/W.toolspeed SECONDS, act_target = src)) to_chat(user, "APC Reset. Fixes applied.") if(hacker) hacker.hacked_apcs -= src hacker = null update_icon() if(emagged) - emagged = 0 + emagged = FALSE if(infected) - infected = 0 + infected = FALSE else to_chat(user, "There has been a connection issue.") return diff --git a/html/changelogs/geeves-debuggers_worth_a_damn.yml b/html/changelogs/geeves-debuggers_worth_a_damn.yml new file mode 100644 index 00000000000..b28861b0605 --- /dev/null +++ b/html/changelogs/geeves-debuggers_worth_a_damn.yml @@ -0,0 +1,7 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Debuggers can now fix software errors in vending machines, shooting their inventory and advertising aggressively." + - tweak: "The time it takes for the debugger to fix APCs have been reduced by half." \ No newline at end of file