diff --git a/GainStation13/code/modules/reagents/reagent_containers/barrel_tank.dm b/GainStation13/code/modules/reagents/reagent_containers/barrel_tank.dm new file mode 100644 index 00000000..07a3bf74 --- /dev/null +++ b/GainStation13/code/modules/reagents/reagent_containers/barrel_tank.dm @@ -0,0 +1,80 @@ +//chug tank +/obj/item/reagent_containers/barrel_tank + name = "barrel tank" + desc = "A wooden barrely with straps and a tube attached. One can only wonder what it's for." + icon = 'GainStation13/icons/obj/barrel_tank.dmi' + icon_state = "barrel_tank" + item_state = "barrel_tank" + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK + reagent_flags = REFILLABLE | TRANSPARENT + actions_types = list(/datum/action/item_action/toggle_tube) + + var/mob/living/carbon/U = null + + amount_per_transfer_from_this = 0 + possible_transfer_amounts = list(0) + volume = 500 + spillable = FALSE + splashable = FALSE + +/obj/item/reagent_containers/barrel_tank/ui_action_click(mob/user) + toggle_tube(user) + +/obj/item/reagent_containers/barrel_tank/proc/toggle_tube(mob/living/user) + if(!istype(user)) + return + if(user.get_item_by_slot(user.getBackSlot()) != src) + to_chat(user, "The barrel must be worn properly to use!") + return + if(user.incapacitated()) + return + + if(!U) + to_chat(user, "You put the barrel's tube in your mouth.") + U = user + START_PROCESSING(SSobj, src) + else + to_chat(user, "You remove the barrel's tube from your mouth.") + U = null + +/obj/item/reagent_containers/barrel_tank/verb/toggle_tube_verb() + set name = "Toggle Tube" + set category = "Object" + toggle_tube(usr) + +/obj/item/reagent_containers/barrel_tank/equipped(mob/user, slot) + ..() + if(slot != SLOT_BACK && U != null) + to_chat(user, "The barrel's tube slips out of your mouth!") + U = null + +/obj/item/reagent_containers/barrel_tank/dropped(mob/user) + ..() + U = null + +/obj/item/reagent_containers/barrel_tank/process() + if(U == null) + return PROCESS_KILL + + if(reagents.total_volume) + var/fraction = min(1/reagents.total_volume, 1) + reagents.reaction(U, INGEST, fraction, FALSE) + reagents.trans_to(U, 1, 2) + else + to_chat(U, "The barrel is empty!") + U = null + +/obj/item/reagent_containers/barrel_tank/attack_self(mob/user) + if(reagents.total_volume > 0) + to_chat(user, "You empty [src] of all reagents.") + reagents.clear_reagents() + +/datum/crafting_recipe/barrel_tank + name = "Barrel tank" + result = /obj/item/reagent_containers/barrel_tank + time = 25 + tools = list(TOOL_CROWBAR) + reqs = list(/obj/item/stack/sheet/mineral/wood = 20) + always_availible = TRUE + category = CAT_CLOTHING diff --git a/GainStation13/code/modules/research/designs/nutri_designs.dm b/GainStation13/code/modules/research/designs/nutri_designs.dm index 62efac6a..f62e6a00 100644 --- a/GainStation13/code/modules/research/designs/nutri_designs.dm +++ b/GainStation13/code/modules/research/designs/nutri_designs.dm @@ -44,3 +44,13 @@ category = list("Misc", "Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +/datum/design/bluespace_belt + name = "Bluespace Belt" + desc = "A belt made using bluespace technology. The power of space and time, used to hide the fact you are fat." + id = "bluespace_belt" + build_type = PROTOLATHE + construction_time = 100 + materials = list(MAT_SILVER = 4000, MAT_GOLD = 4000, MAT_BLUESPACE = 2000) + build_path = /obj/item/bluespace_belt + category = list("Misc", "Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE diff --git a/GainStation13/code/modules/research/techweb/nutritech_nodes.dm b/GainStation13/code/modules/research/techweb/nutritech_nodes.dm index d5bf8740..8434df4f 100644 --- a/GainStation13/code/modules/research/techweb/nutritech_nodes.dm +++ b/GainStation13/code/modules/research/techweb/nutritech_nodes.dm @@ -5,7 +5,7 @@ display_name = "Nutri-Tech Tools" description = "Ending world hunger was never made easier!" prereq_ids = list("biotech", "adv_engi") // add "engineering" if the designs get complicated later on - design_ids = list("calorite_collar", "ci-nutrimentturbo") + design_ids = list("calorite_collar", "ci-nutrimentturbo", "bluespace_belt") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) boost_item_paths = list(/obj/item/gun/energy/fatoray, /obj/item/gun/energy/fatoray/cannon, /obj/item/trash/fatoray_scrap1, /obj/item/trash/fatoray_scrap2) export_price = 5000 diff --git a/GainStation13/code/obj/items/bluespace_belt.dm b/GainStation13/code/obj/items/bluespace_belt.dm index ca39ff80..0b959276 100644 --- a/GainStation13/code/obj/items/bluespace_belt.dm +++ b/GainStation13/code/obj/items/bluespace_belt.dm @@ -13,6 +13,14 @@ ..() var/mob/living/carbon/U = user if(slot == SLOT_BELT) + to_chat(user, "You put the belt around your waist and your mass begins to shrink...") U.fat_hide(0) else + to_chat(user, "The belt is opened, letting your mass flow out!") U.fat_show() + +/obj/item/bluespace_belt/dropped(mob/user) + ..() + to_chat(user, "The belt is opened, letting your mass flow out!") + var/mob/living/carbon/U = user + U.fat_show() diff --git a/GainStation13/icons/obj/barrel_tank.dmi b/GainStation13/icons/obj/barrel_tank.dmi new file mode 100644 index 00000000..59ee095c Binary files /dev/null and b/GainStation13/icons/obj/barrel_tank.dmi differ diff --git a/code/datums/action.dm b/code/datums/action.dm index b091b331..0007e126 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -761,3 +761,6 @@ target.layer = old_layer target.plane = old_plane current_button.appearance_cache = target.appearance + +/datum/action/item_action/toggle_tube //GS13 + name = "Toggle Tube" diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index 40b61c7c..73695239 100644 Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ diff --git a/tgstation.dme b/tgstation.dme index da85bd33..83079e7a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3100,6 +3100,7 @@ #include "GainStation13\code\modules\reagents\chemistry\recipes\fatchem.dm" #include "GainStation13\code\modules\reagents\chemistry\recipes\fatdrinks.dm" #include "GainStation13\code\modules\reagents\chemistry\recipes\ROCKANDSTONEdrinks.dm" +#include "GainStation13\code\modules\reagents\reagent_containers\barrel_tank.dm" #include "GainStation13\code\modules\research\designs\nutri_designs.dm" #include "GainStation13\code\modules\research\techweb\nutritech_nodes.dm" #include "GainStation13\code\modules\surgery\organs\augments.dm"