diff --git a/code/datums/antagonists/datum_traitor.dm b/code/datums/antagonists/datum_traitor.dm
index 3ccdc7ddfb..a12cf80da7 100644
--- a/code/datums/antagonists/datum_traitor.dm
+++ b/code/datums/antagonists/datum_traitor.dm
@@ -305,11 +305,11 @@
var/TC_uses = 0
var/uplink_true = FALSE
var/purchases = ""
- for(var/datum/component/uplink/H in GLOB.uplinks)
- if(H && H.owner && H.owner == owner.key)
- TC_uses += H.spent_telecrystals
- uplink_true = TRUE
- purchases += H.purchase_log.generate_render(FALSE)
+ var/datum/uplink_purchase_log/H = GLOB.uplink_purchase_logs_by_key[owner.key]
+ if(H)
+ TC_uses = H.total_spent
+ uplink_true = TRUE
+ purchases += H.generate_render(FALSE)
var/objectives_text = ""
if(objectives.len)//If the traitor had no objectives, don't need to process this.
@@ -343,4 +343,4 @@
/datum/antagonist/traitor/roundend_report_footer()
return "
The code phrases were: [GLOB.syndicate_code_phrase]
\
- The code responses were: [GLOB.syndicate_code_response]
"
\ No newline at end of file
+ The code responses were: [GLOB.syndicate_code_response]
"
diff --git a/code/datums/antagonists/nukeop.dm b/code/datums/antagonists/nukeop.dm
index 441098aabd..99d273ac97 100644
--- a/code/datums/antagonists/nukeop.dm
+++ b/code/datums/antagonists/nukeop.dm
@@ -303,14 +303,10 @@
var/TC_uses = 0
for(var/I in members)
var/datum/mind/syndicate = I
- for(var/U in GLOB.uplinks)
- var/datum/component/uplink/H = U
- if(H.owner == syndicate.key)
- TC_uses += H.purchase_log.total_spent
- if(H.purchase_log)
- purchases += H.purchase_log.generate_render(show_key = FALSE)
- else
- stack_trace("WARNING: Nuke Op uplink with no purchase_log Owner: [H.owner]")
+ var/datum/uplink_purchase_log/H = GLOB.uplink_purchase_logs_by_key[syndicate.key]
+ if(H)
+ TC_uses += H.total_spent
+ purchases += H.generate_render(show_key = FALSE)
text += printplayerlist(members)
text += "
"
text += "(Syndicates used [TC_uses] TC) [purchases]"