diff --git a/modular_skyrat/modules/modular_implants/code/nifs_tgui.dm b/modular_skyrat/modules/modular_implants/code/nifs_tgui.dm index b4ea2fe88fc..3b848acb15b 100644 --- a/modular_skyrat/modules/modular_implants/code/nifs_tgui.dm +++ b/modular_skyrat/modules/modular_implants/code/nifs_tgui.dm @@ -39,6 +39,7 @@ "activation_cost" = nifsoft.activation_cost, "active_cost" = nifsoft.active_cost, "reference" = REF(nifsoft), + "ui_icon" = nifsoft.ui_icon, ) data["loaded_nifsofts"] += list(nifsoft_data) diff --git a/modular_skyrat/modules/modular_implants/code/nifsoft_catalog.dm b/modular_skyrat/modules/modular_implants/code/nifsoft_catalog.dm index a7bbeb4cb02..cb315444e53 100644 --- a/modular_skyrat/modules/modular_implants/code/nifsoft_catalog.dm +++ b/modular_skyrat/modules/modular_implants/code/nifsoft_catalog.dm @@ -76,7 +76,8 @@ GLOBAL_LIST_INIT(purchasable_nifsofts, list( "rewards_points_rate" = initial(buyable_nifsoft.rewards_points_rate), "points_purchasable" = initial(buyable_nifsoft.rewards_points_eligible), "category" = initial(buyable_nifsoft.buying_category), - "reference" = buyable_nifsoft + "ui_icon" = initial(buyable_nifsoft.ui_icon), + "reference" = buyable_nifsoft, ) var/category = nifsoft_details["category"] if(!(category in product_list)) diff --git a/modular_skyrat/modules/modular_implants/code/nifsofts.dm b/modular_skyrat/modules/modular_implants/code/nifsofts.dm index bb3f4a5e9b1..c7260c1c055 100644 --- a/modular_skyrat/modules/modular_implants/code/nifsofts.dm +++ b/modular_skyrat/modules/modular_implants/code/nifsofts.dm @@ -16,6 +16,8 @@ var/purchase_price = 300 ///What catagory is the NIFSoft under? var/buying_category = NIFSOFT_CATEGORY_GENERAL + ///What font awesome icon is shown next to the name of the nifsoft? + var/ui_icon = "floppy-disk" ///Can the program be installed with other instances of itself? var/single_install = TRUE diff --git a/modular_skyrat/modules/modular_implants/code/nifsofts/dorms.dm b/modular_skyrat/modules/modular_implants/code/nifsofts/dorms.dm index a0f373b65b6..d6f02e394e4 100644 --- a/modular_skyrat/modules/modular_implants/code/nifsofts/dorms.dm +++ b/modular_skyrat/modules/modular_implants/code/nifsofts/dorms.dm @@ -8,6 +8,7 @@ holographic_filter = FALSE //No RGB toys name_tag = "purpura " lewd_nifsoft = TRUE + ui_icon = "heart" //This uses a stripped down selection from the dorms vendor. summonable_items = list( @@ -96,6 +97,7 @@ program_desc = "Once installed, the Purpura Contract compells the user to follow the rules stored in the data of the NIFSoft. \n OOC NOTE: This is strictly here for adult roleplay. None of the laws here actually need to be obeyed and you can uninstall this NIFSoft at any time." purchase_price = 0 lewd_nifsoft = TRUE + ui_icon = "file-contract" /// What "laws" does the person with this NIFSoft installed have? var/fake_laws = "" diff --git a/modular_skyrat/modules/modular_implants/code/nifsofts/hivemind.dm b/modular_skyrat/modules/modular_implants/code/nifsofts/hivemind.dm index d098f85bc09..2601e154bd6 100644 --- a/modular_skyrat/modules/modular_implants/code/nifsofts/hivemind.dm +++ b/modular_skyrat/modules/modular_implants/code/nifsofts/hivemind.dm @@ -13,6 +13,8 @@ GLOBAL_LIST_EMPTY(hivemind_users) active_cost = 0.2 purchase_price = 350 buying_category = NIFSOFT_CATEGORY_UTILITY + ui_icon = "users" + ///The network that the user is currently hosting var/datum/component/mind_linker/nif/user_network ///What networks are the user connected to? diff --git a/modular_skyrat/modules/modular_implants/code/nifsofts/money_sense.dm b/modular_skyrat/modules/modular_implants/code/nifsofts/money_sense.dm index 74f579c2e8b..b2a4d5ed398 100644 --- a/modular_skyrat/modules/modular_implants/code/nifsofts/money_sense.dm +++ b/modular_skyrat/modules/modular_implants/code/nifsofts/money_sense.dm @@ -9,6 +9,7 @@ active_cost = 0.5 compatible_nifs = list(/obj/item/organ/internal/cyberimp/brain/nif/standard) buying_category = NIFSOFT_CATEGORY_UTILITY + ui_icon = "coins" /datum/nifsoft/money_sense/activate() . = ..() diff --git a/modular_skyrat/modules/modular_implants/code/nifsofts/prop_summoner.dm b/modular_skyrat/modules/modular_implants/code/nifsofts/prop_summoner.dm index 75c8e32db80..1f72d246314 100644 --- a/modular_skyrat/modules/modular_implants/code/nifsofts/prop_summoner.dm +++ b/modular_skyrat/modules/modular_implants/code/nifsofts/prop_summoner.dm @@ -15,6 +15,7 @@ cooldown = TRUE activation_cost = 100 // Around 1/10th the energy of a standard NIF buying_category = NIFSOFT_CATEGORY_FUN + ui_icon = "book-open" /// Does the resulting object have a holographic like filter appiled to it? var/holographic_filter = TRUE diff --git a/modular_skyrat/modules/modular_implants/code/nifsofts/shapeshifter.dm b/modular_skyrat/modules/modular_implants/code/nifsofts/shapeshifter.dm index d01a6327d69..bbbf7dc2c07 100644 --- a/modular_skyrat/modules/modular_implants/code/nifsofts/shapeshifter.dm +++ b/modular_skyrat/modules/modular_implants/code/nifsofts/shapeshifter.dm @@ -11,6 +11,7 @@ compatible_nifs = list(/obj/item/organ/internal/cyberimp/brain/nif/standard) purchase_price = 350 buying_category = NIFSOFT_CATEGORY_COSMETIC + ui_icon = "paintbrush" ///The NIF version of the Shapeshifter Ability var/datum/action/innate/alter_form/nif/shapeshifter diff --git a/modular_skyrat/modules/modular_implants/code/nifsofts/soul_poem.dm b/modular_skyrat/modules/modular_implants/code/nifsofts/soul_poem.dm index 3e58062027c..6ed56f79be5 100644 --- a/modular_skyrat/modules/modular_implants/code/nifsofts/soul_poem.dm +++ b/modular_skyrat/modules/modular_implants/code/nifsofts/soul_poem.dm @@ -15,6 +15,7 @@ persistence = TRUE purchase_price = 0 //It came free with your NIF. buying_category = NIFSOFT_CATEGORY_FUN + ui_icon = "scroll" ///Is the NIFSoft transmitting data? var/transmitting_data = TRUE diff --git a/tgui/packages/tgui/interfaces/NifPanel.js b/tgui/packages/tgui/interfaces/NifPanel.js index 93cc1364bd7..2f9126bf35d 100644 --- a/tgui/packages/tgui/interfaces/NifPanel.js +++ b/tgui/packages/tgui/interfaces/NifPanel.js @@ -1,6 +1,6 @@ import { useBackend, useLocalState } from '../backend'; import { Window } from '../layouts'; -import { Box, Dropdown, LabeledList, ProgressBar, Section, Button, Input, BlockQuote, Flex, Collapsible, Table } from '../components'; +import { Box, Dropdown, LabeledList, ProgressBar, Section, Button, Input, BlockQuote, Flex, Collapsible, Table, Icon } from '../components'; import { TableCell, TableRow } from '../components/Table'; export const NifPanel = (props, context) => { @@ -49,7 +49,12 @@ export const NifPanel = (props, context) => { {loaded_nifsofts.map((nifsoft) => ( + {} + {nifsoft.name + ' '} + + } buttons={