From f466efebef5ca20dd41ebf8648f3a45947ff8abb Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Fri, 29 Mar 2024 20:57:29 +0100 Subject: [PATCH] some more borg admin options (#15879) * some more borg admin options * . * rm comment * forgotten define --- code/__defines/admin_vr.dm | 1 + code/modules/admin/verbs/modify_robot.dm | 50 ++++++++++++++++-------- 2 files changed, 35 insertions(+), 16 deletions(-) diff --git a/code/__defines/admin_vr.dm b/code/__defines/admin_vr.dm index 299b290699..83eb907f3c 100644 --- a/code/__defines/admin_vr.dm +++ b/code/__defines/admin_vr.dm @@ -16,4 +16,5 @@ #define MODIFIY_ROBOT_SWAP_MODULE "Swap a Robot Module" #define MODIFIY_ROBOT_RESET_MODULE "Fully Reset Robot Module" #define MODIFIY_ROBOT_TOGGLE_ERT "Toggle ERT Module Overwrite" +#define MODIFIY_ROBOT_TOGGLE_STATION_ACCESS "Toggle All Station Access Codes" #define MODIFIY_ROBOT_TOGGLE_CENT_ACCESS "Toggle Central Access Codes" diff --git a/code/modules/admin/verbs/modify_robot.dm b/code/modules/admin/verbs/modify_robot.dm index e90e06bd27..68a7263fa2 100644 --- a/code/modules/admin/verbs/modify_robot.dm +++ b/code/modules/admin/verbs/modify_robot.dm @@ -6,14 +6,21 @@ if(!check_rights(R_ADMIN|R_FUN|R_VAREDIT|R_EVENT)) return - if(!istype(target) || !target.module) + if(!istype(target)) + return + + if(!target.module) + if(tgui_alert(usr, "This robot has not yet selected a module. Would you like to toggle combat module override?","Confirm",list("Yes","No"))!="Yes") + return + target.crisis_override = !target.crisis_override + to_chat(usr, "You [target.crisis_override? "enabled":"disabled"] [target]'s combat module overwrite.") return if(!target.module.modules) return var/list/modification_options = list(MODIFIY_ROBOT_MODULE_ADD,MODIFIY_ROBOT_MODULE_REMOVE, MODIFIY_ROBOT_APPLY_UPGRADE, MODIFIY_ROBOT_SUPP_ADD, MODIFIY_ROBOT_SUPP_REMOVE, MODIFIY_ROBOT_RADIOC_ADD, MODIFIY_ROBOT_RADIOC_REMOVE, - MODIFIY_ROBOT_COMP_ADD, MODIFIY_ROBOT_COMP_REMOVE, MODIFIY_ROBOT_SWAP_MODULE, MODIFIY_ROBOT_RESET_MODULE, MODIFIY_ROBOT_TOGGLE_ERT, MODIFIY_ROBOT_TOGGLE_CENT_ACCESS) + MODIFIY_ROBOT_COMP_ADD, MODIFIY_ROBOT_COMP_REMOVE, MODIFIY_ROBOT_SWAP_MODULE, MODIFIY_ROBOT_RESET_MODULE, MODIFIY_ROBOT_TOGGLE_ERT, MODIFIY_ROBOT_TOGGLE_STATION_ACCESS, MODIFIY_ROBOT_TOGGLE_CENT_ACCESS) while(TRUE) var/modification_choice = tgui_input_list(usr, "Select if you want to add or remove a module to/from [target]","Choice", modification_options) @@ -43,9 +50,10 @@ var/list/all_modules = robot.module.modules all_modules += robot.module.emag while(TRUE) - var/add_item = tgui_input_list(usr, "Please select the module to add", "Modules", all_modules) - if(!istype(add_item, /obj/item/)) + var/add_item_select = tgui_input_list(usr, "Please select the module to add", "Modules", all_modules) + if(!istype(add_item_select, /obj/item/)) break + var/obj/item/add_item = add_item_select robot.module.emag.Remove(add_item) robot.module.modules.Remove(add_item) robot.module.contents.Remove(add_item) @@ -117,7 +125,7 @@ if(!selected_module_upgrade || selected_module_upgrade == "Cancel") break if(selected_module_upgrade == "Reset Module") - if(tgui_alert(usr, "Are you sure that you want to install [selected_module_upgrade] and reset the robot's module?","Confirm",list("Yes","No"))=="No") + if(tgui_alert(usr, "Are you sure that you want to install [selected_module_upgrade] and reset the robot's module?","Confirm",list("Yes","No"))!="Yes") continue var/new_upgrade = upgrades[capitalize(selected_module_upgrade)] upgrades.Remove(selected_module_upgrade) @@ -293,23 +301,33 @@ target.hands.icon_state = target.get_hud_module_icon() target.hud_used.update_robot_modules_display() if(MODIFIY_ROBOT_RESET_MODULE) - if(tgui_alert(usr, "Are you sure that you want to reset the entire module?","Confirm",list("Yes","No"))=="No") + if(tgui_alert(usr, "Are you sure that you want to reset the entire module?","Confirm",list("Yes","No"))!="Yes") continue target.module_reset(FALSE) to_chat(usr, "You resetted [target]'s module selection.") if(MODIFIY_ROBOT_TOGGLE_ERT) target.crisis_override = !target.crisis_override to_chat(usr, "You [target.crisis_override? "enabled":"disabled"] [target]'s combat module overwrite.") - if(tgui_alert(usr, "Do you want to reset the module as well to allow selection?","Confirm",list("Yes","No"))=="No") + if(tgui_alert(usr, "Do you want to reset the module as well to allow selection?","Confirm",list("Yes","No"))!="Yes") continue target.module_reset(FALSE) + if(MODIFIY_ROBOT_TOGGLE_STATION_ACCESS) + if(target?.idcard?.access) + var/obj/item/weapon/card/id/synthetic/card = target.idcard + if(access_synth in card.access) + card.access -= get_all_station_access() + card.access -= access_synth + to_chat(usr, "You revoke station access from [target].") + else + card.access |= get_all_station_access() + card.access |= access_synth + to_chat(usr, "You grant station access to [target].") if(MODIFIY_ROBOT_TOGGLE_CENT_ACCESS) - for(var/obj in target.contents) - if(istype(obj, /obj/item/weapon/card/id/synthetic)) - var/obj/item/weapon/card/id/synthetic/card = obj - if(access_cent_specops in card.access) - card.access -= get_all_centcom_access() - to_chat(usr, "You revoke central access from [target].") - else - card.access += get_all_centcom_access() - to_chat(usr, "You grant central access to [target].") + if(target?.idcard?.access) + var/obj/item/weapon/card/id/synthetic/card = target.idcard + if(access_cent_specops in card.access) + card.access -= get_all_centcom_access() + to_chat(usr, "You revoke central access from [target].") + else + card.access |= get_all_centcom_access() + to_chat(usr, "You grant central access to [target].")