From b76fbcbf9ed5ff2d7e19b0ee6c3eedc7c0a4c33e Mon Sep 17 00:00:00 2001 From: Alphas00 <154434082+Alphas00@users.noreply.github.com> Date: Tue, 18 Jun 2024 17:44:55 +0200 Subject: [PATCH] Tray of Holding, ARCD Added the tray of holding, a service tray that can hold a lot more items. Unlocked with applies bluespace research. The advanced RCD can no be fabricated after research a new tech node, Bluespace Construction. Tray of holding and ARCD are also available for borgs, after being researched. --- GainStation13/code/game/objects/items/RCD.dm | 47 ++++++++++++++++++ .../code/game/objects/items/storage/bags.dm | 48 +++++++++++++++++++ code/modules/research/techweb/all_nodes.dm | 6 +-- tgstation.dme | 2 + 4 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 GainStation13/code/game/objects/items/RCD.dm create mode 100644 GainStation13/code/game/objects/items/storage/bags.dm diff --git a/GainStation13/code/game/objects/items/RCD.dm b/GainStation13/code/game/objects/items/RCD.dm new file mode 100644 index 00000000..1b8a011d --- /dev/null +++ b/GainStation13/code/game/objects/items/RCD.dm @@ -0,0 +1,47 @@ +/datum/design/arcd + name = "Advanced Rapid Construction Device (ARCD)" + desc = "A tool that can construct and deconstruct walls, airlocks and floors on the fly. This model works at a distance." + id = "arcd_design" + build_type = PROTOLATHE + materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT, MAT_GLASS = MINERAL_MATERIAL_AMOUNT, MAT_DIAMOND = 500, MAT_BLUESPACE = 500) // costs more than what it did in the autolathe, this one comes loaded. + build_path = /obj/item/construction/rcd/arcd + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/techweb_node/blue_construct + id = "blue_construct" + display_name = "Bluespace Construction" + description = "Augument rapid construction designs using bluespace tech for ranged operations" + prereq_ids = list("adv_engi", "adv_bluespace") + design_ids = list("arcd_design") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7000) + export_price = 7000 + +/obj/item/borg/upgrade/arcd + name = "cyborg ARCD" + desc = "A cybord RCG upgrade module to an ARCD model." + icon_state = "cyborg_upgrade3" + require_module = 1 + module_type = /obj/item/robot_module/engineering + +/obj/item/borg/upgrade/arcd/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + var/obj/item/construction/rcd/arcd/S = new(R.module) + R.module.basic_modules += S + R.module.add_module(S, FALSE, TRUE) + +/obj/item/borg/upgrade/arcd/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + var/obj/item/construction/rcd/arcd/S = locate() in R.module + R.module.remove_module(S, TRUE) + +/datum/design/borg_arcd + name = "Cyborg ARCD" + id = "borg_arcd" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/arcd + materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT, MAT_GLASS = MINERAL_MATERIAL_AMOUNT, MAT_DIAMOND = 500, MAT_BLUESPACE = 500) + construction_time = 100 + category = list("Cyborg Upgrade Modules") diff --git a/GainStation13/code/game/objects/items/storage/bags.dm b/GainStation13/code/game/objects/items/storage/bags.dm new file mode 100644 index 00000000..786e375c --- /dev/null +++ b/GainStation13/code/game/objects/items/storage/bags.dm @@ -0,0 +1,48 @@ +/obj/item/storage/bag/tray/holding + name = "serving tray of holding" + desc = "A tray for food, now featuring bluesapce technology. Don't ask." + +/obj/item/storage/bag/tray/holding/ComponentInitialize() + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_combined_w_class = INFINITY + STR.max_items = 50 + +/datum/design/tray_holding + name = "Serving Tray of Holding" + desc = "A serving tray for food, now somehow using bluespace to hold more stuff." + id = "tray_holding" + build_type = PROTOLATHE + materials = list(MAT_GOLD = 250, MAT_URANIUM = 500) + build_path =/obj/item/storage/bag/tray/holding + category = list("Bluespace Designs") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/obj/item/borg/upgrade/tray_hold + name = "cyborg tray of holding" + desc = "A tray of holding replacement for service borg's tray." + icon_state = "cyborg_upgrade3" + require_module = 1 + module_type = /obj/item/robot_module/butler + +/obj/item/borg/upgrade/tray_hold/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + var/obj/item/storage/bag/tray/holding/S = new(R.module) + R.module.basic_modules += S + R.module.add_module(S, FALSE, TRUE) + +/obj/item/borg/upgrade/tray_hold/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + var/obj/item/storage/bag/tray/holding/S = locate() in R.module + R.module.remove_module(S, TRUE) + +/datum/design/borg_tray_hold + name = "Cyborg Tray of Holding" + id = "borg_tray_hold" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/tray_hold + materials = list(MAT_GOLD = 250, MAT_URANIUM = 500) + construction_time = 100 + category = list("Cyborg Upgrade Modules") diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index dd36a35e..7d12c25e 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -285,7 +285,7 @@ display_name = "Applied Bluespace Research" description = "Using bluespace to make things faster and better." prereq_ids = list("bluespace_basic", "engineering") - design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "xenobio_slimebasic") + design_ids = list("bs_rped","biobag_holding","minerbag_holding", "tray_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "xenobio_slimebasic") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) export_price = 5000 @@ -377,7 +377,7 @@ display_name = "Advanced Robotics Research" description = "It can even do the dishes!" prereq_ids = list("robotics") - design_ids = list("borg_upgrade_diamonddrill", "borg_upgrade_advancedmop") + design_ids = list("borg_upgrade_diamonddrill", "borg_upgrade_advancedmop", "borg_arcd") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) export_price = 5000 @@ -403,7 +403,7 @@ display_name = "Cyborg Upgrades: Utility" description = "Utility upgrades for cyborgs." prereq_ids = list("engineering", "robotics") - design_ids = list("borg_upgrade_holding", "borg_upgrade_lavaproof", "borg_upgrade_thrusters", "borg_upgrade_selfrepair", "borg_upgrade_expand", "borg_upgrade_rped") + design_ids = list("borg_upgrade_holding", "borg_upgrade_lavaproof", "borg_upgrade_thrusters", "borg_upgrade_selfrepair", "borg_upgrade_expand", "borg_upgrade_rped", "borg_tray_hold") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) export_price = 5000 diff --git a/tgstation.dme b/tgstation.dme index f1798d7a..4bfbabb4 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3085,6 +3085,8 @@ #include "GainStation13\code\game\sound.dm" #include "GainStation13\code\game\area\ruins.dm" #include "GainStation13\code\game\objects\effects\spawners\choco_slime_delivery.dm" +#include "GainStation13\code\game\objects\items\RCD.dm" +#include "GainStation13\code\game\objects\items\storage\bags.dm" #include "GainStation13\code\game\turfs\closed.dm" #include "GainStation13\code\game\turfs\open.dm" #include "GainStation13\code\machinery\adipoelectric_generator.dm"