diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 3e0ec1b08c9c..2b0690ce6cf9 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -83,6 +83,7 @@ GLOBAL_PROTECT(admin_verbs_admin) /client/proc/respawn_character, /client/proc/discord_id_manipulation, /datum/admins/proc/open_borgopanel, + /datum/admins/proc/change_laws, /datum/admins/proc/restart, //yogs - moved from +server /client/proc/admin_pick_random_player, //yogs /client/proc/get_law_history, //yogs - silicon law history diff --git a/code/modules/admin/verbs/borgpanel.dm b/code/modules/admin/verbs/borgpanel.dm index 56c156beac2f..a5273a07f244 100644 --- a/code/modules/admin/verbs/borgpanel.dm +++ b/code/modules/admin/verbs/borgpanel.dm @@ -217,3 +217,25 @@ borg.lawsync() . = TRUE + +/datum/admins/proc/change_laws() + set category = "Admin.Player Interaction" + set name = "Change Silicon Laws" + set desc = "Change Silicon Laws" + + if(!check_rights(R_ADMIN)) + return + var/chosensilicon = input("Select a Silicon", "Select a Silicon", null, null) as null|anything in GLOB.silicon_mobs + if (!istype(chosensilicon, /mob/living/silicon)) + to_chat(usr, "Silicon is required for law changes", confidential=TRUE) + return + var/chosen = pick_closest_path(null, make_types_fancy(typesof(/obj/item/aiModule))) + if (!chosen) + return + var/new_board = new chosen(src) + var/obj/item/aiModule/chosenboard = new_board + var/mob/living/silicon/beepboop = chosensilicon + chosenboard.install(beepboop.laws, usr) + message_admins("[key_name_admin(usr)] added [chosenboard] to [ADMIN_LOOKUPFLW(beepboop)].") + log_admin("[key_name(usr)] added [chosenboard] to [key_name(beepboop)].") + qdel(new_board)