[MIRROR] Moves the GPS component from the upload computers and communications console to the boards themselves when used (#27291)

* Moves the GPS component from the upload computers and communications console to the boards themselves when used (#82574)

## About The Pull Request

Moves the GPS component on Upload computers and Communications Console
to be handled from the board, not the machine, when a board is used to
modify the AI or used to login.

## Why It's Good For The Game
Quite frankely, the mechanic already exists. But it does not work due to
the component being attatched to the computer.

Currently it's intended for these critical computers to give GPS signals
because they can be taken, and built extremely easily, anywhere, and
deconstructed. Especially the upload boards, since the AI and borgs are
directly in the center of it when people keep subverting and fixing
laws. This is extremely annoying for the silicons. On top of that, you
building a communications console to hack in maint somewhere will leave
some sort of a trace to justify the reward.

Yes, they have a computer that sends out the GPS signal. But anyone with
a brain could realize all that's needed to circumvent this mechanic is
the use of a screwdriver.

Now, the GPS is registered on the boards themselves. The boards get
stored in the contents of the computer. You can't circumvent this now.

## Changelog

🆑
balance: The upload and communication boards directly have trackers
installed, activated only when authenticated.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@ gmail.com>

* Moves the GPS component from the upload computers and communications console to the boards themselves when used

---------

Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
This commit is contained in:
SkyratBot
2024-04-15 22:19:29 -04:00
committed by GitHub
co-authored by Jacquerel The Sharkening
parent 65e5b22cc9
commit 40beaad0b3
4 changed files with 18 additions and 2 deletions
+10
View File
@@ -87,6 +87,16 @@
playsound(loc, 'sound/effects/glassbr3.ogg', 100, TRUE)
set_light(0)
/obj/machinery/computer/proc/imprint_gps(gps_tag) // Currently used by the upload computers and communications console
var/tracker = gps_tag
if(!tracker) // Don't give a null GPS signal if there is none
return
for(var/obj/item/circuitboard/computer/board in src.contents)
if(!contents || board.GetComponent(/datum/component/gps))
return
board.AddComponent(/datum/component/gps, "[tracker]")
balloon_alert_to_viewers("board tracker enabled", vision_distance = 1)
/obj/machinery/computer/emp_act(severity)
. = ..()
if (!(. & EMP_PROTECT_SELF))
@@ -98,7 +98,6 @@ GLOBAL_VAR_INIT(cops_arrived, FALSE)
REGISTER_REQUIRED_MAP_ITEM(1, INFINITY)
GLOB.shuttle_caller_list += src
AddComponent(/datum/component/gps, "Secured Communications Signal")
/// Are we NOT a silicon, AND we're logged in as the captain?
/obj/machinery/computer/communications/proc/authenticated_as_non_silicon_captain(mob/user)
@@ -445,6 +444,8 @@ GLOBAL_VAR_INIT(cops_arrived, FALSE)
state = STATE_MAIN
playsound(src, 'sound/machines/terminal_on.ogg', 50, FALSE)
imprint_gps(gps_tag = "Encrypted Communications Channel")
if ("toggleEmergencyAccess")
if(emergency_access_cooldown(usr)) //if were in cooldown, dont allow the following code
return
+1 -1
View File
@@ -7,7 +7,6 @@
/obj/machinery/computer/upload/Initialize(mapload)
. = ..()
AddComponent(/datum/component/gps, "Encrypted Upload")
if(!mapload)
log_silicon("\A [name] was created at [loc_name(src)].")
message_admins("\A [name] was created at [ADMIN_VERBOSEJMP(src)].")
@@ -29,6 +28,7 @@
current = null
return
M.install(current.laws, user)
imprint_gps(gps_tag = "Weak Upload Signal")
else
return ..()
@@ -2,6 +2,11 @@
name = "Generic"
name_extension = "(Computer Board)"
/obj/item/circuitboard/computer/examine()
. = ..()
if(GetComponent(/datum/component/gps))
. += span_info("there's a small, blinking light!")
//Command
/obj/item/circuitboard/computer/aiupload