Merge pull request #140 from Alphas00/master

Modular Clothes System, Barrel Tank and Bluespace Belt fixes
This commit is contained in:
evilew
2023-12-31 19:54:56 +01:00
committed by GitHub
10 changed files with 148 additions and 1 deletions
@@ -0,0 +1,44 @@
/obj/item/clothing/under/rank/chef/modular
name = "cook's modular suit"
desc = "A suit which is given only to the most <b>hardcore</b> cooks in space. Now adjusts to the match the wearer's size!"
var/mob/living/carbon/U
/obj/item/clothing/under/rank/chef/modular/equipped(mob/user, slot)
..()
U = user
/obj/item/clothing/under/rank/chef/modular/dropped()
..()
U = null
/obj/item/clothing/under/rank/chef/modular/worn_overlays(isinhands = FALSE)
if(!isinhands)
. = list()
var/obj/item/organ/O
var/obj/item/organ/genital/G
for(O in U.internal_organs)
if(istype(O, /obj/item/organ/genital/belly))
G = O
if(!adjusted)
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "belly_[G.size]", GENITALS_UNDER_LAYER)
else
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "belly_[G.size]_d", GENITALS_UNDER_LAYER)
if(istype(O, /obj/item/organ/genital/anus))
G = O
if(suit_style == DIGITIGRADE_SUIT_STYLE)
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "butt_[G.size]_l", GENITALS_FRONT_LAYER)
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "butt_[G.size]_l_NORTH", GENITALS_FRONT_LAYER)
else
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "butt_[G.size]", GENITALS_FRONT_LAYER)
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "butt_[G.size]_NORTH", GENITALS_FRONT_LAYER)
if(istype(O, /obj/item/organ/genital/breasts))
G = O
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "breasts_[G.size]", GENITALS_BEHIND_LAYER) //nearest
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "breasts_[G.size]_NORTH", BODY_FRONT_LAYER) //farthest
if(damaged_clothes)
. += mutable_appearance('icons/effects/item_damage.dmi', "damageduniform")
if(blood_DNA)
. += mutable_appearance('icons/effects/blood.dmi', "uniformblood", color = blood_DNA_to_color())
if(accessory_overlay)
. += accessory_overlay
@@ -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: 54 KiB

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

+2
View File
@@ -3092,6 +3092,7 @@
#include "GainStation13\code\mobs\chocoslime.dm"
#include "GainStation13\code\mobs\races\caloritegolem.dm"
#include "GainStation13\code\modules\client\preferences\preferences.dm"
#include "GainStation13\code\modules\clothing\under\jobs\modcivilian.dm"
#include "GainStation13\code\modules\food_and_drinks\drinks.dm"
#include "GainStation13\code\modules\food_and_drinks\food.dm"
#include "GainStation13\code\modules\food_and_drinks\objects\candy_flora.dm"
@@ -3102,6 +3103,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"