diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 09a0c72ed56..04de559235d 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -144,9 +144,29 @@ /obj/item/weapon/circuitboard/prisoner name = "Circuit board (Prisoner Management)" build_path = /obj/machinery/computer/prisoner + + +// RD console circuits, so that {de,re}constructing one of the special consoles doesn't ruin everything forever /obj/item/weapon/circuitboard/rdconsole name = "Circuit Board (RD Console)" build_path = /obj/machinery/computer/rdconsole/core + req_access = list(access_rd) // This is for adjusting the type of computer we're building - in case something messes up the pre-existing robotics or mechanics consoles + var/access_types = list("R&D Core", "Robotics", "E.X.P.E.R.I-MENTOR", "Mechanics") + id = 1 +/obj/item/weapon/circuitboard/rdconsole/robotics + name = "Circuit Board (RD Console - Robotics)" + build_path = /obj/machinery/computer/rdconsole/robotics + id = 2 +/obj/item/weapon/circuitboard/rdconsole/experiment + name = "Circuit Board (RD Console - E.X.P.E.R.I-MENTOR)" + build_path = /obj/machinery/computer/rdconsole/experiment + id = 3 +/obj/item/weapon/circuitboard/rdconsole/mechanics + name = "Circuit Board (RD Console - Mechanics)" + build_path = /obj/machinery/computer/rdconsole/mechanics + id = 4 + + /obj/item/weapon/circuitboard/mecha_control name = "Circuit Board (Exosuit Control Console)" build_path = /obj/machinery/computer/mecha @@ -285,16 +305,33 @@ return /obj/item/weapon/circuitboard/rdconsole/attackby(obj/item/I as obj, mob/user as mob, params) - if(istype(I,/obj/item/weapon/screwdriver)) - user.visible_message("\blue \the [user] adjusts the jumper on the [src]'s access protocol pins.", "\blue You adjust the jumper on the access protocol pins.") - if(src.build_path == "/obj/machinery/computer/rdconsole/core") - src.name = "Circuit Board (RD Console - Robotics)" - src.build_path = /obj/machinery/computer/rdconsole/robotics - user << "\blue Access protocols set to robotics." + if(istype(I,/obj/item/weapon/card/id)||istype(I, /obj/item/device/pda)) + if(allowed(user)) + user.visible_message("\the [user] waves their ID past the [src]'s access protocol scanner.", "You swipe your ID past the [src]'s access protocol scanner.") + var/console_choice = input(user, "What do you want to configure the access to?", "Configuration Modification", "R&D Core") as null|anything in access_types + if(console_choice == null) + return + switch(console_choice) + if("R&D Core") + name = "Circuit Board (RD Console)" + build_path = /obj/machinery/computer/rdconsole/core + id = 1 + if("Robotics") + name = "Circuit Board (RD Console - Robotics)" + build_path = /obj/machinery/computer/rdconsole/robotics + id = 2 + if("E.X.P.E.R.I-MENTOR") + name = "Circuit Board (RD Console - E.X.P.E.R.I-MENTOR)" + build_path = /obj/machinery/computer/rdconsole/experiment + id = 3 + if("Mechanics") + name = "Circuit Board (RD Console - Mechanics)" + build_path = /obj/machinery/computer/rdconsole/mechanics + id = 4 + + user << "Access protocols set to [console_choice]." else - src.name = "Circuit Board (RD Console)" - src.build_path = /obj/machinery/computer/rdconsole/core - user << "\blue Access protocols set to default." + user << "Access Denied" return /obj/structure/computerframe/attackby(obj/item/P as obj, mob/user as mob, params) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 0212dcf4834..e376b20808b 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -1164,14 +1164,17 @@ proc/CallMaterialName(ID) desc = "A console used to interface with R&D tools." id = 2 req_access = list(access_robotics) + circuit = /obj/item/weapon/circuitboard/rdconsole/robotics /obj/machinery/computer/rdconsole/experiment name = "\improper E.X.P.E.R.I-MENTOR R&D console" desc = "A console used to interface with R&D tools." id = 3 + circuit = /obj/item/weapon/circuitboard/rdconsole/experiment /obj/machinery/computer/rdconsole/mechanics name = "mechanics R&D console" desc = "A console used to interface with R&D tools." id = 4 req_access = list(access_mechanic) + circuit = /obj/item/weapon/circuitboard/rdconsole/mechanics