Skip to content

Commit

Permalink
[MIRROR] Moves the GPS component from the upload computers and commun…
Browse files Browse the repository at this point in the history
…ications console to the boards themselves when used (#1943) (#2858)

* 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


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

---------



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

---------

Co-authored-by: NovaBot <[email protected]>
Co-authored-by: The Sharkening <[email protected]>
Co-authored-by: Jacquerel <[email protected]>
  • Loading branch information
4 people authored Apr 13, 2024
1 parent a57c5fd commit 0690c09
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 2 deletions.
10 changes: 10 additions & 0 deletions code/game/machinery/computer/_computer.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
3 changes: 2 additions & 1 deletion code/game/machinery/computer/communications.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -443,6 +442,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
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/computer/law.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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)].")
Expand All @@ -29,6 +28,7 @@
current = null
return
M.install(current.laws, user)
imprint_gps(gps_tag = "Weak Upload Signal")
else
return ..()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 0690c09

Please sign in to comment.