diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index aa1082cdf82..25454eefcff 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -14,4 +14,5 @@ var/global/list/chemical_reagents_list //list of all /datum/reagent datums in var/global/list/surgeries_list = list() //list of all surgeries by name, associated with their path. var/global/list/table_recipes = list() //list of all table craft recipes var/global/list/rcd_list = list() //list of Rapid Construction Devices. -var/global/list/apcs_list = list() //list of all Area Power Controller machines, seperate from machines for powernet speeeeeeed. \ No newline at end of file +var/global/list/apcs_list = list() //list of all Area Power Controller machines, seperate from machines for powernet speeeeeeed. +var/global/list/tracking_implants = list() //list of all tracking implants to work out what treks everyone are on. Sadly not on lavaworld not implemented... \ No newline at end of file diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm index ed568709958..679d9282e31 100644 --- a/code/game/machinery/computer/prisoner.dm +++ b/code/game/machinery/computer/prisoner.dm @@ -33,7 +33,7 @@ dat += "

Prisoner Implant Management

" dat += "
Chemical Implants
" var/turf/Tr = null - for(var/obj/item/weapon/implant/chem/C in world) + for(var/obj/item/weapon/implant/chem/C in tracking_implants) Tr = get_turf(C) if((Tr) && (Tr.z != src.z)) continue//Out of range if(!C.implanted) continue @@ -43,7 +43,7 @@ dat += "((10))
" dat += "********************************
" dat += "
Tracking Implants
" - for(var/obj/item/weapon/implant/tracking/T in world) + for(var/obj/item/weapon/implant/tracking/T in tracking_implants) if(!iscarbon(T.imp_in)) continue if(!T.implanted) diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 1cbf53376ea..c53ee120311 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -180,7 +180,7 @@ areaindex[tmpname] = 1 L[tmpname] = R - for (var/obj/item/weapon/implant/tracking/I in world) + for (var/obj/item/weapon/implant/tracking/I in tracking_implants) if (!I.implanted || !ismob(I.loc)) continue else diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index 1522d73b8f5..a01bfb82ca1 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -87,6 +87,15 @@ origin_tech = "materials=2;magnets=2;programming=2;biotech=2" var/id = 1 + +/obj/item/weapon/implant/tracking/New() + ..() + tracking_implants += src + +/obj/item/weapon/implant/tracking/Destroy() + ..() + tracking_implants -= src + /obj/item/weapon/implant/tracking/get_data() var/dat = {"Implant Specifications:
Name: Tracking Beacon
diff --git a/code/game/objects/items/weapons/implants/implant_chem.dm b/code/game/objects/items/weapons/implants/implant_chem.dm index 6f85742039b..312363d6713 100644 --- a/code/game/objects/items/weapons/implants/implant_chem.dm +++ b/code/game/objects/items/weapons/implants/implant_chem.dm @@ -24,6 +24,14 @@ /obj/item/weapon/implant/chem/New() ..() create_reagents(50) + tracking_implants += src + +/obj/item/weapon/implant/chem/Destroy() + ..() + tracking_implants -= src + + + /obj/item/weapon/implant/chem/trigger(emote, mob/source) if(emote == "deathgasp") diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm index 0bf17d4be30..da8ffa7cef0 100644 --- a/code/game/objects/items/weapons/teleportation.dm +++ b/code/game/objects/items/weapons/teleportation.dm @@ -78,7 +78,7 @@ Frequency: src.temp += "[W.code]-[dir2text(get_dir(sr, tr))]-[direct]
" src.temp += "Extranneous Signals:
" - for (var/obj/item/weapon/implant/tracking/W in world) + for (var/obj/item/weapon/implant/tracking/W in tracking_implants) if (!W.implanted || !ismob(W.loc)) continue else