From 5eb8dec5c14667ebba0e4315706004972a93be6b Mon Sep 17 00:00:00 2001 From: Cameron Lennox Date: Tue, 9 Dec 2025 21:47:01 -0500 Subject: [PATCH] Tracking Jamming! (#18868) * Tracking Jamming! Adds a new belly mode 'BLOCKS TRACKING' that blocks GPS and tracking implants! Makes the location for tracking implants show up as 'E4R@4' Blocks GPS signals entirely Fixes a bug with the prisoner console that says 'no chemical implants found' for the tracking implant. * Combined --- code/game/machinery/computer/prisoner.dm | 2 ++ code/game/objects/items/devices/gps.dm | 2 +- code/game/objects/items/devices/radio/jammer.dm | 4 ++-- code/game/objects/items/weapons/teleportation.dm | 2 +- code/modules/tgui/modules/teleporter.dm | 2 +- tgui/packages/tgui/interfaces/PrisonerManagement.tsx | 2 +- tgui/packages/tgui/interfaces/VorePanel/constants.ts | 2 +- 7 files changed, 9 insertions(+), 7 deletions(-) diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm index 2b387697992..55abad72a98 100644 --- a/code/game/machinery/computer/prisoner.dm +++ b/code/game/machinery/computer/prisoner.dm @@ -56,6 +56,8 @@ loc_display = T.loc if(track.malfunction) loc_display = pick(GLOB.teleportlocs) + if(is_vore_jammed(track)) + loc_display = "E4R@4" trackImplants.Add(list(list( "host" = L, "ref" = "\ref[track]", diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index d49211d4aee..38fb41a3f84 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -99,7 +99,7 @@ GLOBAL_LIST_EMPTY(GPS_list) . = ..() /obj/item/gps/proc/can_track(var/obj/item/gps/other, var/reachable_z_levels) - if(!other.tracking || other.emped || other.hide_signal) + if(!other.tracking || other.emped || other.hide_signal || is_vore_jammed(other)) return FALSE var/turf/origin = get_turf(src) var/turf/target = get_turf(other) diff --git a/code/game/objects/items/devices/radio/jammer.dm b/code/game/objects/items/devices/radio/jammer.dm index 639eff8a0bd..da01a16e6b6 100644 --- a/code/game/objects/items/devices/radio/jammer.dm +++ b/code/game/objects/items/devices/radio/jammer.dm @@ -125,8 +125,8 @@ GLOBAL_LIST_EMPTY(active_radio_jammers) jam_range = 255 tick_cost = 0 -/proc/is_vore_jammed(var/obj/radio) - var/atom/current = radio +///Checks to see if the clothing is in a belly that jams sensors or blocks tracking. +/proc/is_vore_jammed(atom/current) while(current.loc) if(isbelly(current.loc)) var/obj/belly/B = current.loc diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm index 40fb4b4631f..4f9a3154fa1 100644 --- a/code/game/objects/items/weapons/teleportation.dm +++ b/code/game/objects/items/weapons/teleportation.dm @@ -80,7 +80,7 @@ Frequency: src.temp += span_bold("Extraneous Signals:") + "
" for (var/obj/item/implant/tracking/W in GLOB.all_tracking_implants) - if (!W.implanted || !(istype(W.loc,/obj/item/organ/external) || ismob(W.loc) || W.malfunction)) + if (!W.implanted || !(istype(W.loc,/obj/item/organ/external) || ismob(W.loc) || W.malfunction) || is_vore_jammed(W)) continue var/turf/tr = get_turf(W) diff --git a/code/modules/tgui/modules/teleporter.dm b/code/modules/tgui/modules/teleporter.dm index b8b6024160d..ea59561e373 100644 --- a/code/modules/tgui/modules/teleporter.dm +++ b/code/modules/tgui/modules/teleporter.dm @@ -40,7 +40,7 @@ L[tmpname] = R for(var/obj/item/implant/tracking/I in GLOB.all_tracking_implants) - if(!I.implanted || !ismob(I.loc)) + if(!I.implanted || !ismob(I.loc) || is_vore_jammed(I)) continue else var/mob/M = I.loc diff --git a/tgui/packages/tgui/interfaces/PrisonerManagement.tsx b/tgui/packages/tgui/interfaces/PrisonerManagement.tsx index 4481fbb4da4..47cd8514d42 100644 --- a/tgui/packages/tgui/interfaces/PrisonerManagement.tsx +++ b/tgui/packages/tgui/interfaces/PrisonerManagement.tsx @@ -98,7 +98,7 @@ export const PrisonerManagement = (props) => { ))} - )) || No chemical implants found.} + )) || No tracking implants found.} )} diff --git a/tgui/packages/tgui/interfaces/VorePanel/constants.ts b/tgui/packages/tgui/interfaces/VorePanel/constants.ts index 4fdad290e88..cbd97fdf417 100644 --- a/tgui/packages/tgui/interfaces/VorePanel/constants.ts +++ b/tgui/packages/tgui/interfaces/VorePanel/constants.ts @@ -82,7 +82,7 @@ export const modeToTooltip = { 'Leave Remains': 'Prey might leave remains like bones.', Muffles: 'Causes all prey messages to become subtles.', 'Affect Worn Items': 'Allows vorgan to coat and digest equipped items.', - 'Jams Sensors': 'Blocks medical sensors, but not GPS.', + 'Jams Sensors': 'Blocks trackers, such as GPS, sensors, and tracking implants.', 'Complete Absorb': 'Limits conversation to direct pred / prey.', 'Spare Prosthetics': 'Applies no damage to synthetic limbs. ', 'Slow Body Digestion': 'Continues to digest a body after the prey has died.',