diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index 8d871447cd3..3f3c394a7e6 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -163,6 +163,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
/datum/uplink_item/jobspecific
category = "Job Specific Tools"
cant_discount = TRUE
+ excludefrom = list(/datum/game_mode/nuclear) // Stops the job specific category appearing for nukies
//Clown
/datum/uplink_item/jobspecific/clowngrenade
diff --git a/code/game/objects/items/devices/uplinks.dm b/code/game/objects/items/devices/uplinks.dm
index d0c0622d1e5..9c080a4c256 100644
--- a/code/game/objects/items/devices/uplinks.dm
+++ b/code/game/objects/items/devices/uplinks.dm
@@ -24,6 +24,7 @@ var/list/world_uplinks = list()
var/job = null
var/show_descriptions = 0
+ var/temp_category
/obj/item/uplink/nano_host()
return loc
@@ -233,6 +234,7 @@ var/list/world_uplinks = list()
if(!nanoui_items)
generate_items(user)
data["nano_items"] = nanoui_items
+ data["category_choice"] = temp_category
data += nanoui_data
return data
@@ -260,9 +262,6 @@ var/list/world_uplinks = list()
hidden_crystals = 0
ui.close()
return 1
- if(href_list["return"])
- nanoui_menu = round(nanoui_menu/10)
- update_nano_data()
if(href_list["menu"])
nanoui_menu = text2num(href_list["menu"])
update_nano_data(href_list["id"])
@@ -272,6 +271,9 @@ var/list/world_uplinks = list()
if(href_list["descriptions"])
show_descriptions = !show_descriptions
update_nano_data()
+ if(href_list["category"])
+ temp_category = href_list["category"]
+ update_nano_data()
SSnanoui.update_uis(src)
return 1
diff --git a/nano/templates/uplink.tmpl b/nano/templates/uplink.tmpl
index 6177ab016a7..7d2158a240c 100644
--- a/nano/templates/uplink.tmpl
+++ b/nano/templates/uplink.tmpl
@@ -11,11 +11,10 @@ Used In File(s): \code\game\objects\items\devices\uplinks.dm
Functions:
- {{:helper.link('Request Items', 'gear', {'menu' : 0}, null, 'fixedLeftWider')}}
- {{:helper.link(data.descriptions ? 'Hide Descriptions' : 'Show Descriptions', 'gear', {'descriptions' : 1}, data.menu == 0 ? '' : 'disabled', 'fixedLeftWider')}}
+ {{:helper.link('Purchase Gear', 'gear', {'menu' : 0, 'category' : null}, null, 'fixedLeftWider')}}
{{:helper.link('Exploitable Information', 'gear', {'menu' : 1}, null, 'fixedLeftWider')}}
- {{:helper.link('Return', 'arrow-left', {'return' : 1}, null, 'fixedLeft')}}
- {{:helper.link('Close', 'gear', {'lock' : "1"}, null, 'fixedLeft')}}
+ {{:helper.link(data.descriptions ? 'Hide Descriptions' : 'Show Descriptions', 'info-circle', {'descriptions' : 1}, data.menu == 0 ? '' : 'disabled', 'fixedLeftWider')}}
+ {{:helper.link('Lock Uplink', 'power-off', {'lock' : "1"}, null, 'fixedLeftWider')}}
@@ -32,30 +31,38 @@ Used In File(s): \code\game\objects\items\devices\uplinks.dm
- {{for data.nano_items}}
-
-
{{:value.Category}}
-
- {{for value.items :itemValue:itemIndex}}
-
- {{:helper.link( itemValue.Name, 'gear', {'buy_item' : itemValue.obj_path, 'cost' : itemValue.Cost}, itemValue.Cost > data.crystals ? 'disabled' : null, null)}} - {{:itemValue.Cost}}
-
-
- {{if itemValue.Cost <= data.crystals && data.descriptions}}
-
- {{:itemValue.Description}}
-
- {{/if}}
- {{/for}}
-
- {{/for}}
-
-
- {{:helper.link('Buy Random (??)' , 'gear', {'buy_item' : 'random'}, data.crystals <= 0 ? 'disabled' : null, null)}}
-
+ {{for data.nano_items}}
+ {{if value.Category == data.category_choice}}
- {{:helper.link('Refund item in active hand' , 'gear', {refund : 1}, null, null)}}
+ {{:helper.link ( value.Category, 'arrow-circle-down', {'menu' : 0, 'category' : null}, null, 'white')}}
+
+ {{else}}
+
+ {{:helper.link ( value.Category, 'arrow-circle-right', {'menu' : 0, 'category' : value.Category}, null, 'white')}}
+
+ {{/if}}
+ {{if value.Category == data.category_choice}}
+
+ {{for value.items :itemValue:itemIndex}}
+
+ {{:helper.link( itemValue.Name, 'gear', {'buy_item' : itemValue.obj_path, 'cost' : itemValue.Cost}, itemValue.Cost > data.crystals ? 'disabled' : null, null)}} - {{:itemValue.Cost}}
+
+ {{if itemValue.Cost <= data.crystals && data.descriptions}}
+
+ {{:itemValue.Description}}
+
+ {{/if}}
+ {{/for}}
+
+ {{/if}}
+ {{/for}}
+
+
+ {{:helper.link('Buy Random Item' , 'gear', {'buy_item' : 'random'}, data.crystals <= 0 ? 'disabled' : null, 'white')}}
+
+
+ {{:helper.link('Refund item in active hand' , 'gear', {refund : 1}, null, 'white')}}
{{else data.menu == 1}}