From 867fec60bce2df94e87be14b82a9b3a81a294149 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Aug 2025 12:21:13 +0200 Subject: [PATCH] sort cyborg modules (#18206) * sort cyborg modules * . * bunch of runtimes --------- Co-authored-by: ShadowLarkens --- code/__defines/admin_verb.dm | 2 ++ .../__defines/research/research_categories.dm | 10 +++---- code/modules/admin/admin_verbs.dm | 2 +- code/modules/admin/verbs/getlogs.dm | 4 +-- .../silicon/robot/robot_simple_items.dm | 8 +++--- code/modules/mob/login.dm | 1 + .../research/tg/designs/prosfab_designs.dm | 26 ++++++++++++++++++- code/modules/tickets/tickets.dm | 9 ++++--- 8 files changed, 44 insertions(+), 18 deletions(-) diff --git a/code/__defines/admin_verb.dm b/code/__defines/admin_verb.dm index 7bac7a17d7..bab78af4f7 100644 --- a/code/__defines/admin_verb.dm +++ b/code/__defines/admin_verb.dm @@ -81,6 +81,8 @@ _ADMIN_VERB(verb_path_name, verb_permissions, verb_name, verb_desc, verb_categor #define ADMIN_CATEGORY_FUN "Admin.Fun" #define ADMIN_CATEGORY_GAME "Admin.Game" #define ADMIN_CATEGORY_SHUTTLE "Admin.Shuttle" +#define ADMIN_CATEGORY_LOGS "Admin.Logs" +#define ADMIN_CATEGORY_MISC "Admin.Misc" // Special categories that are separated #define ADMIN_CATEGORY_DEBUG "Debug" diff --git a/code/__defines/research/research_categories.dm b/code/__defines/research/research_categories.dm index d7b8d455a8..55eda51003 100644 --- a/code/__defines/research/research_categories.dm +++ b/code/__defines/research/research_categories.dm @@ -166,13 +166,13 @@ #define RND_SUBCATEGORY_MECHFAB_CYBORG_INTERNALS "/Internals" #define RND_CATEGORY_MECHFAB_CYBORG_MODULES "/Cyborg Modules" -#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_ALL "/All Cyborgs" -#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MEDICAL "/Medical Cyborgs" -#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_ENGINEERING "/Engineering Cyborgs" -#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_JANITOR "/Janitorial Cyborgs" +#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_UTILITY "/Utility" +#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_BASIC "/Basic" +#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_ADVANCED "/Advanced" +#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_RESTRICTED "/Restricted" +#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SCIENCE "/Science Cyborgs" #define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SECURITY "/Security Cyborgs" #define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MINING "/Mining Cyborgs" -#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SERVICE "/Service Cyborgs" #define RND_CATEGORY_PROSFAB "/Prosthetics" #define RND_SUBCATEGORY_PROSFAB_EXTERNAL "/External" diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 5dd41cef93..dab54e532a 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -364,7 +364,7 @@ ADMIN_VERB(stealth, R_STEALTH, "Stealth Mode", "Toggle stealth.", "Admin.Game") log_admin("[key_name(usr)] used 'kill air'.") message_admins(span_blue("[key_name_admin(usr)] used 'kill air'."), 1) -ADMIN_VERB(deadmin, R_NONE, "DeAdmin", "Shed your admin powers.", ADMIN_CATEGORY_MAIN) +ADMIN_VERB(deadmin, R_NONE, "DeAdmin", "Shed your admin powers.", ADMIN_CATEGORY_MISC) user.holder.deactivate() to_chat(user, span_interface("You are now a normal player.")) log_admin("[key_name(user)] deadminned themselves.") diff --git a/code/modules/admin/verbs/getlogs.dm b/code/modules/admin/verbs/getlogs.dm index d45ad302bc..f224e5d93f 100644 --- a/code/modules/admin/verbs/getlogs.dm +++ b/code/modules/admin/verbs/getlogs.dm @@ -1,7 +1,7 @@ -ADMIN_VERB(get_server_logs, (R_ADMIN | R_SERVER), "Get Server Logs", "View or retrieve logfiles.", ADMIN_CATEGORY_MAIN) +ADMIN_VERB(get_server_logs, (R_ADMIN | R_SERVER), "Get Server Logs", "View or retrieve logfiles.", ADMIN_CATEGORY_LOGS) user.browseserverlogs() -ADMIN_VERB(get_current_logs, (R_ADMIN | R_SERVER), "Get Current Logs", "View or retrieve logfiles for the current round.", ADMIN_CATEGORY_MAIN) +ADMIN_VERB(get_current_logs, (R_ADMIN | R_SERVER), "Get Current Logs", "View or retrieve logfiles for the current round.", ADMIN_CATEGORY_LOGS) user.browseserverlogs(current=TRUE) /client/proc/browseserverlogs(current=FALSE) diff --git a/code/modules/mob/living/silicon/robot/robot_simple_items.dm b/code/modules/mob/living/silicon/robot/robot_simple_items.dm index ab4569acb2..7a84c977f9 100644 --- a/code/modules/mob/living/silicon/robot/robot_simple_items.dm +++ b/code/modules/mob/living/silicon/robot/robot_simple_items.dm @@ -596,9 +596,9 @@ ///Allows use of the gripper (and clears the weakref) after do_after is completed. Clears the weakref if the wrapped item is no longer in our borg's contents (items get moved into the borgs contents when using the gripper) /obj/item/gripper/proc/end_using() gripper_in_use = FALSE - if(!WR) - return var/obj/item/wrapped = get_current_pocket() + if(!wrapped) + return //Checks two things: //Is our wrapped object currently in our borg still? //AND Is it not a gripper pocket? If not, reset WR. @@ -883,9 +883,7 @@ //HELPER PROCS ///Use this to get what the current pocket is. Returns NULL if no /obj/item/gripper/proc/get_current_pocket() //done as a proc so snowflake code can be found later down the line and consolidated. - if(!WR) - return null - var/obj/item/wrapped = WR.resolve() + var/obj/item/wrapped = WR?.resolve() return wrapped /// Consolidates material stacks by searching our pockets to see if we currently have any stacks. Done in /obj/item/stack/attackby diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 6b780279ad..ef6613a0ae 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -87,3 +87,4 @@ SEND_SIGNAL(client, COMSIG_CLIENT_MOB_LOGIN, src) set_listening(LISTENING_PLAYER) + GLOB.tickets.ClientLogin(client, TRUE) diff --git a/code/modules/research/tg/designs/prosfab_designs.dm b/code/modules/research/tg/designs/prosfab_designs.dm index 91d09eea74..72c1c9d843 100644 --- a/code/modules/research/tg/designs/prosfab_designs.dm +++ b/code/modules/research/tg/designs/prosfab_designs.dm @@ -333,7 +333,7 @@ //////////////////// Cyborg Modules //////////////////// /datum/design_techweb/prosfab/robot_upgrade category = list( - RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_UTILITY ) build_type = PROSFAB materials = list(MAT_STEEL = 7500) @@ -360,6 +360,10 @@ build_path = /obj/item/borg/upgrade/utility/restart // Section for basic upgrades for all cyborgs +/datum/design_techweb/prosfab/robot_upgrade/basic + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_BASIC + ) /datum/design_techweb/prosfab/robot_upgrade/basic/sizeshift name = "Size Alteration Module" @@ -392,6 +396,10 @@ build_path = /obj/item/borg/upgrade/basic/language // Section for advanced upgrades for all cyborgs +/datum/design_techweb/prosfab/robot_upgrade/advanced + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_ADVANCED + ) /datum/design_techweb/prosfab/robot_upgrade/advanced/bellysizeupgrade name = "Robohound Capacity Expansion Module" @@ -424,6 +432,10 @@ /* Some job related borg upgrade modules, adding useful items for puppers. */ +/datum/design_techweb/prosfab/robot_upgrade/restricted + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_RESTRICTED + ) /datum/design_techweb/prosfab/robot_upgrade/restricted/bellycapupgrade name = "Robohound Capability Expansion Module" @@ -433,6 +445,9 @@ build_path = /obj/item/borg/upgrade/restricted/bellycapupgrade /datum/design_techweb/prosfab/robot_upgrade/restricted/advrped + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_RESTRICTED + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SCIENCE + ) name = "Advanced Rapid Part Exchange Device" desc = "Exactly the same as a standard Advanced RPED, but this one has mounting hardware for a Science Borg." id = "borg_advrped_module" @@ -441,6 +456,9 @@ build_path = /obj/item/borg/upgrade/restricted/advrped /datum/design_techweb/prosfab/robot_upgrade/restricted/diamonddrill + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_RESTRICTED + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MINING + ) name = "Diamond Drill" desc = "A mining drill with a diamond tip, made for use by Mining Borgs." id = "borg_ddrill_module" @@ -449,6 +467,9 @@ build_path = /obj/item/borg/upgrade/restricted/diamonddrill /datum/design_techweb/prosfab/robot_upgrade/restricted/pka + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_RESTRICTED + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MINING + ) name = "Proto-Kinetic Accelerator" desc = "A mining weapon designed for clearing rocks and hostile wildlife. This model is equiped with a self upgrade system, allowing it to attach modules hands free." id = "borg_pka_module" @@ -457,6 +478,9 @@ build_path = /obj/item/borg/upgrade/restricted/pka /datum/design_techweb/prosfab/robot_upgrade/restricted/tasercooler + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_RESTRICTED + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SECURITY + ) name = "Rapid Taser Cooling Module" desc = "Used to cool a mounted taser, increasing the potential current in it and thus its recharge rate." id = "borg_taser_module" diff --git a/code/modules/tickets/tickets.dm b/code/modules/tickets/tickets.dm index 1b44f6a5c3..788de9810d 100644 --- a/code/modules/tickets/tickets.dm +++ b/code/modules/tickets/tickets.dm @@ -157,19 +157,20 @@ GLOBAL_DATUM_INIT(tickets, /datum/tickets, new) return L //Reassociate still open ticket if one exists -/datum/tickets/proc/ClientLogin(client/C) +/datum/tickets/proc/ClientLogin(client/C, only_alert = FALSE) C.current_ticket = CKey2ActiveTicket(C.ckey) if(C.current_ticket) - C.current_ticket.AddInteraction("Client reconnected.") + if(!only_alert) + C.current_ticket.AddInteraction("Client reconnected.") C.current_ticket.initiator = C - C.current_ticket.initiator.mob.throw_alert("open ticket", /obj/screen/alert/open_ticket) + C.current_ticket.initiator.mob?.throw_alert("open ticket", /obj/screen/alert/open_ticket) //Dissasociate ticket /datum/tickets/proc/ClientLogout(client/C) if(C.current_ticket) var/datum/ticket/T = C.current_ticket T.AddInteraction("Client disconnected.") - T.initiator.mob?.clear_alert("open ticket") + T.initiator?.mob?.clear_alert("open ticket") T.initiator = null T = null