From 6a72cdb79a158b7fbbd761a53a9f6e0b7076aed2 Mon Sep 17 00:00:00 2001 From: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com> Date: Sun, 25 Jul 2021 04:10:44 -0500 Subject: [PATCH] [TGUI] Cyborg self diagnosis report (#16345) * tgui diagnosis * mochi and sabre review * final tweaks (maybe) moves getDamageColor out of component makes silicon subsystems GC better * Update tgui.bundle.js --- .../mob/living/silicon/robot/component.dm | 8 ++ .../modules/mob/living/silicon/robot/robot.dm | 25 +----- code/modules/mob/living/silicon/silicon.dm | 4 + code/modules/mob/living/silicon/subsystems.dm | 21 +++++ .../tgui/modules/robot_self_diagnosis.dm | 30 +++++++ paradise.dme | 1 + .../tgui/interfaces/RobotSelfDiagnosis.js | 84 +++++++++++++++++++ tgui/packages/tgui/public/tgui.bundle.js | 4 +- 8 files changed, 151 insertions(+), 26 deletions(-) create mode 100644 code/modules/tgui/modules/robot_self_diagnosis.dm create mode 100644 tgui/packages/tgui/interfaces/RobotSelfDiagnosis.js diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm index 2d59fa71b3b..9b553d58b39 100644 --- a/code/modules/mob/living/silicon/robot/component.dm +++ b/code/modules/mob/living/silicon/robot/component.dm @@ -48,6 +48,8 @@ if(brute_damage + electronics_damage >= max_damage) destroy() + SStgui.update_uis(owner.self_diagnosis) + /datum/robot_component/proc/heal_damage(brute, electronics, updating_health = TRUE) if(installed != 1) // If it's not installed, can't repair it. @@ -59,6 +61,8 @@ brute_damage = max(0, brute_damage - brute) electronics_damage = max(0, electronics_damage - electronics) + SStgui.update_uis(owner.self_diagnosis) + /datum/robot_component/proc/is_powered() return (installed == 1) && (brute_damage + electronics_damage < max_damage) && (powered) @@ -68,6 +72,8 @@ return powered = 1 + SStgui.update_uis(owner.self_diagnosis) + /datum/robot_component/proc/disable() if(!component_disabled) go_offline() @@ -85,6 +91,8 @@ else go_offline() + SStgui.update_uis(owner.self_diagnosis) + /datum/robot_component/proc/go_online() return diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 8bcd14a8d9e..439c29f4490 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -306,6 +306,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( QDEL_NULL(cell) QDEL_NULL(robot_suit) QDEL_NULL(spark_system) + QDEL_NULL(self_diagnosis) return ..() /mob/living/silicon/robot/proc/pick_module() @@ -506,30 +507,6 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( set name = "Show Station Manifest" show_station_manifest() -/mob/living/silicon/robot/proc/self_diagnosis() - if(!is_component_functioning("diagnosis unit")) - return null - - var/dat = "
| Brute Damage: | [C.brute_damage] |
| Electronics Damage: | [C.electronics_damage] |
| Powered: | [C.is_powered() ? "Yes" : "No"] |
| Toggled: | [ C.toggled ? "Yes" : "No"] |