diff --git a/modular_skyrat/modules/modular_implants/code/nifsoft_catalog.dm b/modular_skyrat/modules/modular_implants/code/nifsoft_catalog.dm index 62ba4ad5d0d18..f6424531b72ce 100644 --- a/modular_skyrat/modules/modular_implants/code/nifsoft_catalog.dm +++ b/modular_skyrat/modules/modular_implants/code/nifsoft_catalog.dm @@ -7,12 +7,7 @@ GLOBAL_LIST_INIT(purchasable_nifsofts, list( /datum/nifsoft/soulcatcher, /datum/nifsoft/scryer, /datum/nifsoft/summoner/book, - /datum/nifsoft/action_granter/hypnosis, - // SPLURT EDIT - /datum/nifsoft/action_granter/free/nif_disrobe, - /datum/nifsoft/action_granter/free/nif_hide_backpack, - /datum/nifsoft/action_granter/free/nif_gfluid, - // SPLURT EDIT END + /datum/nifsoft/action_granter/hypnosis )) /datum/computer_file/program/nifsoft_downloader diff --git a/modular_zzplurt/code/modules/modular_implants/code/nif_research.dm b/modular_zzplurt/code/modules/modular_implants/code/nif_research.dm new file mode 100644 index 0000000000000..8b9ae38e94a86 --- /dev/null +++ b/modular_zzplurt/code/modules/modular_implants/code/nif_research.dm @@ -0,0 +1,35 @@ +// Add NIFs to alien surgery node +/datum/techweb_node/alien_surgery/New() + design_ids += list( + "nifsoft_hypno_brainwash", + ) + return ..() + +// Design for brainwash NIFSoft +/datum/design/nifsoft_hud/nifsoft_hypno_brainwash + name = "Mesmer Eye NIFSoft" + desc = "A NIFSoft datadisk containing the experimental Mesmer Eye NIFsoft." + id = "nifsoft_hypno_brainwash" + build_path = /obj/item/disk/nifsoft_uploader/dorms/hypnosis/brainwashing + //departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + +// Design for storage concealment NIFSoft +/datum/design/nifsoft_hud/nifsoft_storage_concealment + name = "Storage Concealment NIFSoft" + desc = "A NIFSoft datadisk containing the Storage Concealment NIFsoft." + id = "nifsoft_storage_concealment" + build_path = /obj/item/disk/nifsoft_uploader/nif_hide_backpack_disk + +// Design for rapid disrobe NIFSoft +/datum/design/nifsoft_hud/nifsoft_rapid_disrobe + name = "Emergency Clothing Disruption NIFSoft" + desc = "A NIFSoft datadisk containing the Emergency Clothing Disruption NIFsoft." + id = "nifsoft_rapid_disrobe" + build_path = /obj/item/disk/nifsoft_uploader/dorms/nif_disrobe_disk + +// Design for genital fluid NIFSoft +/datum/design/nifsoft_hud/nifsoft_gfluid + name = "Genital Fluid Inducer NIFSoft" + desc = "A NIFSoft datadisk containing the Genital Fluid Inducer NIFsoft." + id = "nifsoft_gfluid" + build_path = /obj/item/disk/nifsoft_uploader/dorms/nif_gfluid_disk diff --git a/modular_zzplurt/code/modules/vending/lustwish.dm b/modular_zzplurt/code/modules/vending/lustwish.dm new file mode 100644 index 0000000000000..c3b6daa331faa --- /dev/null +++ b/modular_zzplurt/code/modules/vending/lustwish.dm @@ -0,0 +1,20 @@ +#define STOCK_NIFSOFT 6 + +// Based on Skyrat's vending overrides +/obj/machinery/vending/dorms + // New premium items + zzplurt_premium = list( + // Original software + // This is in the PDA + /* + /obj/item/disk/nifsoft_uploader/dorms/hypnosis = STOCK_NIFSOFT, + /obj/item/disk/nifsoft_uploader/shapeshifter = STOCK_NIFSOFT, + */ + + // New software + /obj/item/disk/nifsoft_uploader/dorms/nif_disrobe_disk = STOCK_NIFSOFT, + /obj/item/disk/nifsoft_uploader/nif_hide_backpack_disk = STOCK_NIFSOFT, + /obj/item/disk/nifsoft_uploader/dorms/nif_gfluid_disk = STOCK_NIFSOFT, + ) + +#undef STOCK_NIFSOFT diff --git a/modular_zzplurt/code/modules/vending/vending.dm b/modular_zzplurt/code/modules/vending/vending.dm new file mode 100644 index 0000000000000..226e027b33c13 --- /dev/null +++ b/modular_zzplurt/code/modules/vending/vending.dm @@ -0,0 +1,46 @@ +// Taken from Modular Vending in Bubber +// All entries will become null after Initialize, to free up memory. + +/obj/machinery/vending + // Additions to the `products` list + var/list/zzplurt_products + // Additions to the `product_categories` list + var/list/zzplurt_product_categories + // Additions to the `premium` list + var/list/zzplurt_premium + // Additions to the `contraband` list + var/list/zzplurt_contraband + +/obj/machinery/vending/Initialize(mapload) + if(zzplurt_products) + // We need this, because duplicates screw up the spritesheet! + for(var/item_to_add in zzplurt_products) + products[item_to_add] = zzplurt_products[item_to_add] + + if(zzplurt_product_categories) + for(var/category in zzplurt_product_categories) + var/already_exists = FALSE + for(var/existing_category in product_categories) + if(existing_category["name"] == category["name"]) + existing_category["products"] += category["products"] + already_exists = TRUE + break + + if(!already_exists) + product_categories += category + + if(zzplurt_premium) + // We need this, because duplicates screw up the spritesheet! + for(var/item_to_add in zzplurt_premium) + premium[item_to_add] = zzplurt_premium[item_to_add] + + if(zzplurt_contraband) + // We need this, because duplicates screw up the spritesheet! + for(var/item_to_add in zzplurt_contraband) + contraband[item_to_add] = zzplurt_contraband[item_to_add] + + QDEL_NULL(zzplurt_products) + QDEL_NULL(zzplurt_product_categories) + QDEL_NULL(zzplurt_premium) + QDEL_NULL(zzplurt_contraband) + return ..() diff --git a/tgstation.dme b/tgstation.dme index 71582f0704d27..31a80abad3058 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -9484,6 +9484,7 @@ #include "modular_zzplurt\code\modules\mob\living\carbon\human\species.dm" #include "modular_zzplurt\code\modules\mob\living\simple_animal\hostile\megafauna\blood_drunk_miner.dm" #include "modular_zzplurt\code\modules\modular_implants\code\nif_implants.dm" +#include "modular_zzplurt\code\modules\modular_implants\code\nif_research.dm" #include "modular_zzplurt\code\modules\modular_implants\code\nifsofts\brainwashing.dm" #include "modular_zzplurt\code\modules\modular_implants\code\nifsofts\gfluid.dm" #include "modular_zzplurt\code\modules\modular_implants\code\nifsofts\hypnosis.dm" @@ -9509,6 +9510,8 @@ #include "modular_zzplurt\code\modules\surgery\organs\internal\cyberimp\augments_chest.dm" #include "modular_zzplurt\code\modules\surgery\organs\internal\eyes\_eyes.dm" #include "modular_zzplurt\code\modules\surgery\organs\internal\tongue\_tongue.dm" +#include "modular_zzplurt\code\modules\vending\lustwish.dm" +#include "modular_zzplurt\code\modules\vending\vending.dm" #include "modular_zzplurt\code\modules\wiremod\core\integrated_circuit.dm" // END_INCLUDE