diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index 6c197d0b58b..718a59ce311 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -200,7 +200,7 @@ "restricted_roles" = item.restricted_roles, "restricted_species" = item.restricted_species, "progression_minimum" = item.progression_minimum, - "ref" = REF(item) + "ref" = REF(item), )) var/list/remaining_stock = list() @@ -218,6 +218,7 @@ data["has_objectives"] = uplink_handler.has_objectives data["lockable"] = lockable data["assigned_role"] = uplink_handler.assigned_role + data["assigned_species"] = uplink_handler.assigned_species data["debug"] = uplink_handler.debug_mode return data diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 3b0b6bc95b4..8c2c7b448be 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -55,14 +55,16 @@ if(uplink_handler.progression_points < SStraitor.current_global_progression) uplink_handler.progression_points = SStraitor.current_global_progression * SStraitor.newjoin_progression_coeff + var/list/uplink_items = list() for(var/datum/uplink_item/item as anything in SStraitor.uplink_items) - if(item.item && (!length(item.restricted_roles) || (uplink_handler.assigned_role in item.restricted_roles)) \ - && !item.cant_discount && (item.purchasable_from & uplink_handler.uplink_flag) && item.cost > 1) - uplink_items += item - if(item.item && (!length(item.restricted_species) || (uplink_handler.assigned_species in item.restricted_species)) \ - && !item.cant_discount && (item.purchasable_from & uplink_handler.uplink_flag) && item.cost > 1) - uplink_items += item + if(item.item && !item.cant_discount && (item.purchasable_from & uplink_handler.uplink_flag) && item.cost > 1) + if(!length(item.restricted_roles) && !length(item.restricted_species)) + uplink_items += item + continue + if((uplink_handler.assigned_role in item.restricted_roles) || (uplink_handler.assigned_species in item.restricted_species)) + uplink_items += item + continue uplink_handler.extra_purchasable += create_uplink_sales(uplink_sale_count, /datum/uplink_category/discounts, -1, uplink_items) if(give_objectives) diff --git a/code/modules/asset_cache/assets/uplink.dm b/code/modules/asset_cache/assets/uplink.dm index e2ede24d90f..20ade18da3f 100644 --- a/code/modules/asset_cache/assets/uplink.dm +++ b/code/modules/asset_cache/assets/uplink.dm @@ -23,7 +23,7 @@ "name" = item.name, "cost" = item.cost, "desc" = item.desc, - "category" = item.category? initial(item.category.name) : null, + "category" = item.category ? initial(item.category.name) : null, "purchasable_from" = item.purchasable_from, "restricted" = item.restricted, "limited_stock" = item.limited_stock, diff --git a/code/modules/uplink/uplink_items/species.dm b/code/modules/uplink/uplink_items/species.dm index e0974aaf7c4..85f0ee9e050 100644 --- a/code/modules/uplink/uplink_items/species.dm +++ b/code/modules/uplink/uplink_items/species.dm @@ -5,6 +5,7 @@ /datum/uplink_item/species_restricted category = /datum/uplink_category/species purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + surplus = 0 /datum/uplink_item/species_restricted/moth_lantern name = "Extra-Bright Lantern"