From a57b41f6eb86e0ef50f63beb10fce979c57facd4 Mon Sep 17 00:00:00 2001
From: Kubisopplay <38842052+Kubisopplay@users.noreply.github.com>
Date: Tue, 8 Feb 2022 23:21:43 +0100
Subject: [PATCH] Changes how robotics control console works (#64608)
* First touch to this code for last decade
Removes remote detonation, changes the ease of use for robotics console
* Removes detonation.
Reqiested by kyler
* fixes description
* Back to robotics it is
* required changes
---
code/game/machinery/computer/robot.dm | 29 +++++++++----------
.../mob/living/silicon/robot/robot_defines.dm | 3 +-
.../research/designs/comp_board_designs.dm | 1 +
.../tgui/interfaces/RoboticsControlConsole.js | 7 -----
4 files changed, 17 insertions(+), 23 deletions(-)
diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm
index 5b0d47027ae..5d288c18f0c 100644
--- a/code/game/machinery/computer/robot.dm
+++ b/code/game/machinery/computer/robot.dm
@@ -1,6 +1,6 @@
/obj/machinery/computer/robotics
name = "robotics control console"
- desc = "Used to remotely lockdown or detonate linked Cyborgs and Drones."
+ desc = "Used to remotely lockdown linked Cyborgs and Drones."
icon_screen = "robot"
icon_keyboard = "rd_key"
req_access = list(ACCESS_ROBOTICS)
@@ -77,24 +77,23 @@
return
switch(action)
- if("killbot")
- if(allowed(usr))
- var/mob/living/silicon/robot/R = locate(params["ref"]) in GLOB.silicon_mobs
- if(can_control(usr, R) && !..())
- R.self_destruct(usr)
- else
- to_chat(usr, span_danger("Access Denied."))
if("stopbot")
if(allowed(usr))
var/mob/living/silicon/robot/R = locate(params["ref"]) in GLOB.silicon_mobs
if(can_control(usr, R) && !..())
- message_admins(span_notice("[ADMIN_LOOKUPFLW(usr)] [!R.lockcharge ? "locked down" : "released"] [ADMIN_LOOKUPFLW(R)]!"))
- log_silicon("[key_name(usr)] [!R.lockcharge ? "locked down" : "released"] [key_name(R)]!")
- log_combat(usr, R, "[!R.lockcharge ? "locked down" : "released"] cyborg")
- R.SetLockdown(!R.lockcharge)
- to_chat(R, !R.lockcharge ? span_notice("Your lockdown has been lifted!") : span_alert("You have been locked down!"))
- if(R.connected_ai)
- to_chat(R.connected_ai, "[!R.lockcharge ? span_notice("NOTICE - Cyborg lockdown lifted") : span_alert("ALERT - Cyborg lockdown detected")]: [R.name]
")
+ if(isAI(usr) && (R.ai_lockdown && R.lockcharge || !R.lockcharge) || !isAI(usr))
+ R.ai_lockdown = FALSE
+ if(isAI(usr)&&!R.lockcharge)
+ R.ai_lockdown = TRUE
+ message_admins(span_notice("[ADMIN_LOOKUPFLW(usr)] [!R.lockcharge ? "locked down" : "released"] [ADMIN_LOOKUPFLW(R)]!"))
+ log_silicon("[key_name(usr)] [!R.lockcharge ? "locked down" : "released"] [key_name(R)]!")
+ log_combat(usr, R, "[!R.lockcharge ? "locked down" : "released"] cyborg")
+ R.SetLockdown(!R.lockcharge)
+ to_chat(R, !R.lockcharge ? span_notice("Your lockdown has been lifted!") : span_alert("You have been locked down!"))
+ if(R.connected_ai)
+ to_chat(R.connected_ai, "[!R.lockcharge ? span_notice("NOTICE - Cyborg lockdown lifted") : span_alert("ALERT - Cyborg lockdown detected")]: [R.name]
")
+ else
+ to_chat(usr, span_danger("Cyborg locked by an user with superior permissions."))
else
to_chat(usr, span_danger("Access Denied."))
if("magbot")
diff --git a/code/modules/mob/living/silicon/robot/robot_defines.dm b/code/modules/mob/living/silicon/robot/robot_defines.dm
index f8cee801b3d..8334ad36c51 100644
--- a/code/modules/mob/living/silicon/robot/robot_defines.dm
+++ b/code/modules/mob/living/silicon/robot/robot_defines.dm
@@ -94,7 +94,8 @@
var/scrambledcodes = FALSE
///Boolean of whether the borg is locked down or not
var/lockcharge = FALSE
-
+ ///Boolean of whether the borg was locked by its AI or nothing
+ var/ai_lockdown = FALSE
///Random serial number generated for each cyborg upon its initialization
var/ident = 0
var/locked = TRUE
diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm
index 3d1d0b998fa..259655ae867 100644
--- a/code/modules/research/designs/comp_board_designs.dm
+++ b/code/modules/research/designs/comp_board_designs.dm
@@ -141,6 +141,7 @@
name = "Computer Design (Robotics Control Console)"
desc = "Allows for the construction of circuit boards used to build a Robotics Control console."
id = "robocontrol"
+ materials = list(/datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000, /datum/material/bluespace = 2000)
build_path = /obj/item/circuitboard/computer/robotics
category = list("Computer Boards")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
diff --git a/tgui/packages/tgui/interfaces/RoboticsControlConsole.js b/tgui/packages/tgui/interfaces/RoboticsControlConsole.js
index 256e32a8fdc..569721fa30e 100644
--- a/tgui/packages/tgui/interfaces/RoboticsControlConsole.js
+++ b/tgui/packages/tgui/interfaces/RoboticsControlConsole.js
@@ -75,13 +75,6 @@ const Cyborgs = (props, context) => {
onClick={() => act('stopbot', {
ref: cyborg.ref,
})} />
- act('killbot', {
- ref: cyborg.ref,
- })} />
>
)}>