diff --git a/code/game/objects/items/robot/items/storage.dm b/code/game/objects/items/robot/items/storage.dm index 25f85644a1c..6570e159b6a 100644 --- a/code/game/objects/items/robot/items/storage.dm +++ b/code/game/objects/items/robot/items/storage.dm @@ -190,6 +190,21 @@ handle_reflling(arrived) return ..() +///Used by the service borg drink apparatus upgrade, holds drink-related items +/obj/item/borg/apparatus/beaker/drink + name = "secondary beverage storage apparatus" + desc = "A special apparatus for carrying drinks and condiment packets without spilling their contents. Will NOT resynthesize drinks unlike your standard apparatus." + icon_state = "borg_beaker_apparatus" + storable = list( + /obj/item/reagent_containers/cup/glass, + /obj/item/reagent_containers/condiment, + /obj/item/reagent_containers/cup/coffeepot, + /obj/item/reagent_containers/cup/bottle/syrup_bottle, + ) + +/obj/item/borg/apparatus/beaker/service2/add_glass() + stored = new /obj/item/reagent_containers/cup/glass/drinkingglass(src) + /// allows medical cyborgs to manipulate organs without hands /obj/item/borg/apparatus/organ_storage name = "organ storage bag" diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 496e4b39a46..94432b35d3d 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -731,6 +731,33 @@ if (E) R.model.remove_module(E, TRUE) +/obj/item/borg/upgrade/drink_app + name = "glass storage apparatus" + desc = "A supplementary drinking glass storage apparatus for service cyborgs." + icon_state = "cyborg_upgrade3" + require_model = TRUE + model_type = list(/obj/item/robot_model/service) + model_flags = BORG_MODEL_SERVICE + +/obj/item/borg/upgrade/drink_app/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + var/obj/item/borg/apparatus/beaker/drink/E = locate() in R.model.modules + if(E) + to_chat(user, span_warning("This unit has no room for additional drink storage!")) + return FALSE + + E = new(R.model) + R.model.basic_modules += E + R.model.add_module(E, FALSE, TRUE) + +/obj/item/borg/upgrade/drink_app/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + var/obj/item/borg/apparatus/beaker/drink/E = locate() in R.model.modules + if (E) + R.model.remove_module(E, TRUE) + /obj/item/borg/upgrade/broomer name = "experimental push broom" desc = "An experimental push broom used for efficiently pushing refuse." diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index a9afd6b3a08..0c1e3498dc1 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -1173,6 +1173,17 @@ RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SERVICE ) +/datum/design/borg_upgrade_drink_apparatus + name = "Drink Apparatus" + id = "borg_upgrade_drink_apparatus" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/drink_app + materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/glass = SHEET_MATERIAL_AMOUNT) + construction_time = 4 SECONDS + category = list( + RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_SERVICE + ) + /datum/design/borg_upgrade_service_apparatus name = "Service Apparatus" id = "borg_upgrade_service_apparatus" diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index e3fcdba9d64..dc15c976721 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -979,6 +979,7 @@ "borg_upgrade_condiment_synthesizer", "borg_upgrade_silicon_knife", "borg_upgrade_service_apparatus", + "borg_upgrade_drink_apparatus", "borg_upgrade_service_cookbook", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)