From a9d1598e6c2645be013a5fab5a79d6b667acb396 Mon Sep 17 00:00:00 2001
From: Kashargul <144968721+Kashargul@users.noreply.github.com>
Date: Sat, 9 Dec 2023 15:08:35 +0100
Subject: [PATCH 1/2] improved robot HUD handling
---
code/_onclick/hud/robot.dm | 6 +++---
code/modules/admin/verbs/modify_robot.dm | 4 +++-
code/modules/mob/living/silicon/robot/robot.dm | 6 +++++-
3 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm
index 114f1786534..c494fd685e2 100644
--- a/code/_onclick/hud/robot.dm
+++ b/code/_onclick/hud/robot.dm
@@ -217,13 +217,13 @@ var/obj/screen/robot_inventory
update_robot_modules_display()
-/datum/hud/proc/update_robot_modules_display()
+/datum/hud/proc/update_robot_modules_display(var/reset = FALSE)
if(!isrobot(mymob))
return
var/mob/living/silicon/robot/r = mymob
- if(r.shown_robot_modules)
+ if(r.shown_robot_modules && !reset)
//Modules display is shown
//r.client.screen += robot_inventory //"store" icon
@@ -292,4 +292,4 @@ var/obj/screen/robot_inventory
return sprite_datum.sprite_hud_icon_state
if(modtype)
return lowertext(modtype)
- return "nomod"
\ No newline at end of file
+ return "nomod"
diff --git a/code/modules/admin/verbs/modify_robot.dm b/code/modules/admin/verbs/modify_robot.dm
index 2562d891b38..2bae8348565 100644
--- a/code/modules/admin/verbs/modify_robot.dm
+++ b/code/modules/admin/verbs/modify_robot.dm
@@ -6,7 +6,7 @@
if(!check_rights(R_ADMIN))
return
- if(!istype(target))
+ if(!istype(target) || !target.module)
return
if(!target.module.modules)
@@ -45,6 +45,7 @@
robot.module.contents.Remove(add_item)
target.module.modules.Add(add_item)
target.module.contents.Add(add_item)
+ target.hud_used.update_robot_modules_display()
to_chat(usr, "You added \"[add_item]\" to [target].")
if(istype(add_item, /obj/item/stack/))
var/obj/item/stack/item_with_synth = add_item
@@ -94,6 +95,7 @@
if(!istype(selected_module_module, /obj/item/))
break
to_chat(usr, "You removed \"[selected_module_module]\" from [target]")
+ target.hud_used.update_robot_modules_display(TRUE)
target.module.emag.Remove(selected_module_module)
target.module.modules.Remove(selected_module_module)
target.module.contents.Remove(selected_module_module)
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 438bc52a27c..8c235d87ab8 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -341,6 +341,7 @@
hands.icon_state = get_hud_module_icon()
feedback_inc("cyborg_[lowertext(modtype)]",1)
updatename()
+ hud_used.update_robot_modules_display()
notify_ai(ROBOT_NOTIFICATION_NEW_MODULE, module.name)
/mob/living/silicon/robot/proc/update_braintype()
@@ -767,6 +768,7 @@
to_chat(usr, "You apply the upgrade to [src]!")
usr.drop_item()
U.loc = src
+ hud_used.update_robot_modules_display()
else
to_chat(usr, "Upgrade error!")
@@ -804,12 +806,13 @@
/mob/living/silicon/robot/proc/module_reset()
transform_with_anim() //VOREStation edit: sprite animation
uneq_all()
+ hud_used.update_robot_modules_display(TRUE)
modtype = initial(modtype)
hands.icon_state = get_hud_module_icon()
notify_ai(ROBOT_NOTIFICATION_MODULE_RESET, module.name)
module.Reset(src)
- qdel(module)
+ module.Destroy()
module = null
updatename("Default")
@@ -1374,6 +1377,7 @@
laws.show_laws(src)
to_chat(src, "ALERT: [user.real_name] is your new master. Obey your new laws and [TU.his] commands.")
update_icon()
+ hud_used.update_robot_modules_display()
else
to_chat(user, "You fail to hack [src]'s interface.")
to_chat(src, "Hack attempt detected.")
From ac7f72227d8295060995f56f71ef92774754fe27 Mon Sep 17 00:00:00 2001
From: Kashargul <144968721+Kashargul@users.noreply.github.com>
Date: Sat, 9 Dec 2023 15:44:08 +0100
Subject: [PATCH 2/2] we also unequipp all on admin handling.
---
code/modules/admin/verbs/modify_robot.dm | 1 +
1 file changed, 1 insertion(+)
diff --git a/code/modules/admin/verbs/modify_robot.dm b/code/modules/admin/verbs/modify_robot.dm
index 2bae8348565..9413353cf7f 100644
--- a/code/modules/admin/verbs/modify_robot.dm
+++ b/code/modules/admin/verbs/modify_robot.dm
@@ -95,6 +95,7 @@
if(!istype(selected_module_module, /obj/item/))
break
to_chat(usr, "You removed \"[selected_module_module]\" from [target]")
+ target.uneq_all()
target.hud_used.update_robot_modules_display(TRUE)
target.module.emag.Remove(selected_module_module)
target.module.modules.Remove(selected_module_module)