Belt tweaks and Barrel Tank

-Bluespace Belt now stops working if directly dropped from a mob
-Bluespace Belt messages added
-Bluespace Belt design added to Nutritech Tools tech
-Added Barrel Tank, a back slot item that receives chem that the wearer can ingest over time
-Barrel tank crafting recipe added
This commit is contained in:
Alphas00
2023-12-28 20:20:02 +01:00
parent 12b377da19
commit e81b31eb25
8 changed files with 103 additions and 1 deletions
@@ -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, "<span class='warning'>The barrel must be worn properly to use!</span>")
return
if(user.incapacitated())
return
if(!U)
to_chat(user, "<span class='notice'>You put the barrel's tube in your mouth.</span>")
U = user
START_PROCESSING(SSobj, src)
else
to_chat(user, "<span class='notice'>You remove the barrel's tube from your mouth.</span>")
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, "<span class='warning'>The barrel's tube slips out of your mouth!</span>")
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, "<span class='warning'>The barrel is empty!</span>")
U = null
/obj/item/reagent_containers/barrel_tank/attack_self(mob/user)
if(reagents.total_volume > 0)
to_chat(user, "<span class='notice'>You empty [src] of all reagents.</span>")
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
@@ -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
@@ -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
@@ -13,6 +13,14 @@
..()
var/mob/living/carbon/U = user
if(slot == SLOT_BELT)
to_chat(user, "<span class='notice'>You put the belt around your waist and your mass begins to shrink...</span>")
U.fat_hide(0)
else
to_chat(user, "<span class='notice'>The belt is opened, letting your mass flow out!</span>")
U.fat_show()
/obj/item/bluespace_belt/dropped(mob/user)
..()
to_chat(user, "<span class='warning'>The belt is opened, letting your mass flow out!</span>")
var/mob/living/carbon/U = user
U.fat_show()
Binary file not shown.

After

Width:  |  Height:  |  Size: 385 B

+3
View File
@@ -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"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 99 KiB

+1
View File
@@ -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"