Department grey suits

Added departmental colored grey suits as placeholders for jumpsuit modular sprites
Removed the modular grey suit as it is now outdated
This commit is contained in:
Alphas00
2024-12-06 18:43:36 +01:00
parent bed38679b9
commit 078517584e
15 changed files with 78 additions and 215 deletions
@@ -1,3 +0,0 @@
/datum/gear/uniform/modularjumpsuit
name = "Modular Jumpsuit (gray)"
path = /obj/item/clothing/under/color/grey/modular
@@ -1 +0,0 @@
@@ -1,185 +0,0 @@
/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/jumpsuit_adjust()
..()
worn_overlays()
/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)
if(G.size <= 9) //These need to be removed later, better to cap organ sizes to begin with
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "belly_[G.size]", GENITALS_UNDER_LAYER)
else
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "belly_9", GENITALS_UNDER_LAYER)
else
if(G.size <= 9)
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "belly_[G.size]_d", GENITALS_UNDER_LAYER)
else
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "belly_9_d", GENITALS_UNDER_LAYER)
if(istype(O, /obj/item/organ/genital/butt))
G = O
if(mutantrace_variation == STYLE_DIGITIGRADE)
if(G.size <= 10)
. += 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_10_l", GENITALS_FRONT_LAYER)
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "butt_10_l_NORTH", GENITALS_FRONT_LAYER)
else
if(G.size <= 10)
. += 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)
else
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "butt_10", GENITALS_FRONT_LAYER)
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "butt_10_NORTH", GENITALS_FRONT_LAYER)
if(istype(O, /obj/item/organ/genital/breasts))
G = O
if(G.size <= "impossible")
. += 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
else
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "breasts_impossible", GENITALS_BEHIND_LAYER) //nearest
. += mutable_appearance('GainStation13/icons/mob/modclothes/chefmodular.dmi', "breasts_impossible_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(length(accessory_overlays))
. += accessory_overlays
/obj/item/clothing/under/color/grey/modular
name = "grey modular jumpsuit" //change name from base clothes to distinguish them
desc = "A tasteful grey jumpsuit that reminds you of the good old days. Now adjusts to the match the wearer's size!" //description same as above
var/icon_location = 'GainStation13/icons/mob/modclothes/graymodular.dmi' //Default belly
var/icon_round_location = 'GainStation13/icons/mob/modclothes/graymodular_round.dmi'
var/icon_stuffed_location = 'GainStation13/icons/mob/modclothes/graymodular_stuffed.dmi'
var/mob/living/carbon/U //instance a variable for keeping track of the user
/obj/item/clothing/under/color/grey/modular/equipped(mob/user, slot) //whenever the clothes are in someone's inventory the clothes keep track of who that user is
..()
U = user
/obj/item/clothing/under/color/grey/modular/dropped() //whenever the clothes leave a person's inventory, they forget who held them
..()
U = null
/obj/item/clothing/under/color/grey/modular/jumpsuit_adjust() //when the user adjusts the clothes' style, rebuild the overlays
..()
worn_overlays()
/obj/item/clothing/under/color/grey/modular/worn_overlays(isinhands = FALSE)
if(U)
if(!isinhands) //make sure the clothes are being worn and aren't in someone's hands
. = list()
var/obj/item/organ/O
var/obj/item/organ/genital/G
for(O in U.internal_organs) //check the user for the organs they have
if(istype(O, /obj/item/organ/genital/belly)) //if that organ is a belly
G = O //treat that organ as a genital
// Change to visually update sprite depending on fullness.
if(ishuman(O.owner))
// Get mob
var/mob/living/carbon/human/H = O.owner
// Check what belly shape the mob has
var/used_icon_location
switch(G.shape)
if("Soft Belly")
used_icon_location = icon_location
if("Round Belly")
used_icon_location = icon_round_location
var/size = 0
switch(H.fullness)
if(-100 to FULLNESS_LEVEL_BLOATED) // Normal
size = G.size
if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG) // Take the stuffed sprite of the same size
size = G.size
used_icon_location = icon_stuffed_location
if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ) // Take the stuffed sprite of size + 1
size = G.size + 1
used_icon_location = icon_stuffed_location
if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY)// Take the stuffed sprite of size + 2
size = G.size + 2
used_icon_location = icon_stuffed_location
if(!adjusted) //check the style, if it needs to be the adjusted variants
if(G.size <= 9+FULLNESS_STUFFED_EXTRA_SPRITE_SIZES) //check that the size is within accepted values, NOTE: these need to be removed later, better to cap organ sizes to begin with. Cap is 9 (max fat stage) + 2 (stuffed stages)
. += mutable_appearance(used_icon_location, "belly_[size]", GENITALS_FRONT_LAYER) //add, from the clothes' icon file the overlay corresponding to that genital at that size and draw it onto the layer
else //if not an expected size value, bigger than the max, default to max size
. += mutable_appearance(used_icon_location, "belly_11", GENITALS_FRONT_LAYER)
else //use the alternative adjusted sprites
if(G.size <= 9+FULLNESS_STUFFED_EXTRA_SPRITE_SIZES)
. += mutable_appearance(used_icon_location, "belly_[size]_d", GENITALS_FRONT_LAYER)
else
. += mutable_appearance(used_icon_location, "belly_11_d", GENITALS_FRONT_LAYER)
if(istype(O, /obj/item/organ/genital/butt)) //if that organ is the butt
G = O
if(mutantrace_variation == STYLE_DIGITIGRADE) //check if the suit needs to use sprites for digitigrade characters
if(G.size <= 10)
. += mutable_appearance(icon_location, "butt_[G.size]_l", GENITALS_FRONT_LAYER)
. += mutable_appearance(icon_location, "butt_[G.size]_l_NORTH", GENITALS_FRONT_LAYER) //to not adjust overlays every time a character turns, north-facing breasts and bellies are drawn separately, with individual icons
else //they'll have blank north-facing sprites in the main icon state and the north-facing will be blank on all other sides, and are drawn on different layers
. += mutable_appearance(icon_location, "butt_10_l", GENITALS_FRONT_LAYER)
. += mutable_appearance(icon_location, "butt_10_l_NORTH", GENITALS_FRONT_LAYER)
else //if the character is not digitigrade
if(G.size <= 10)
. += mutable_appearance(icon_location, "butt_[G.size]", GENITALS_FRONT_LAYER)
. += mutable_appearance(icon_location, "butt_[G.size]_NORTH", GENITALS_FRONT_LAYER)
else
. += mutable_appearance(icon_location, "butt_10", GENITALS_FRONT_LAYER)
. += mutable_appearance(icon_location, "butt_10_NORTH", GENITALS_FRONT_LAYER)
if(istype(O, /obj/item/organ/genital/breasts)) //if the organ is the breasts
G = O
if(G.size <= "o")
. += mutable_appearance(icon_location, "breasts_[G.size]", GENITALS_BEHIND_LAYER)
. += mutable_appearance(icon_location, "breasts_[G.size]_NORTH", BODY_FRONT_LAYER)
else
if(G.size == "huge")
. += mutable_appearance(icon_location, "breasts_huge", GENITALS_BEHIND_LAYER)
. += mutable_appearance(icon_location, "breasts_huge_NORTH", BODY_FRONT_LAYER)
else
if(G.size == "massive")
. += mutable_appearance(icon_location, "breasts_massive", GENITALS_BEHIND_LAYER)
. += mutable_appearance(icon_location, "breasts_massive_NORTH", BODY_FRONT_LAYER)
else
if(G.size == "giga")
. += mutable_appearance(icon_location, "breasts_giga", GENITALS_BEHIND_LAYER)
. += mutable_appearance(icon_location, "breasts_giga_NORTH", BODY_FRONT_LAYER)
else
. += mutable_appearance(icon_location, "breasts_impossible", GENITALS_BEHIND_LAYER)
. += mutable_appearance(icon_location, "breasts_impossible_NORTH", BODY_FRONT_LAYER)
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(length(accessory_overlays))
. += accessory_overlays
/obj/item/clothing/under/color/grey/modular/bra
name = "grey modular bra"
desc = "A tasteful grey bra that reminds you of the good old days. Now adjusts to the match the wearer's size!"
icon_location = 'GainStation13/icons/mob/modclothes/graymodular_bra.dmi'
icon_state = "grey"
item_state = "grey_bra"
// item_color = "grey_bra"
@@ -131,4 +131,48 @@
U.modular_items -= src
/obj/item/clothing/under/color/grey
modular_icon_location = 'GainStation13/icons/mob/modclothes/graymodular_new.dmi'
modular_icon_location = 'GainStation13/icons/mob/modclothes/modular_grey.dmi'
/obj/item/clothing/under/color/grey/service
name = "service grey suit"
desc = "Grey only in name"
color = "#6AD427"
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, WOUND = 5)
/obj/item/clothing/under/color/grey/medical
name = "medical grey suit"
desc = "Grey only in name"
color = "#5A96BB"
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 10, RAD = 0, FIRE = 0, ACID = 0, WOUND = 5)
/obj/item/clothing/under/color/grey/cargo
name = "cargo grey suit"
desc = "Grey only in name"
color = "#BB9042"
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 0, WOUND = 10)
/obj/item/clothing/under/color/grey/engi
name = "engineering grey suit"
desc = "Grey only in name"
color = "#FF8800"
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 10, FIRE = 60, ACID = 20, WOUND = 5)
/obj/item/clothing/under/color/grey/science
name = "science grey suit"
desc = "Grey only in name"
color = "#9900FF"
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 10, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, WOUND = 5)
/obj/item/clothing/under/color/grey/security
name = "security grey suit"
desc = "Grey only in name"
color = "#F4080C"
armor = list(MELEE = 10, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 30, ACID = 30, WOUND = 10)
/obj/item/clothing/under/color/grey/command
name = "command grey suit"
desc = "Grey only in name"
color = "#004B8F"
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0, WOUND = 15)
@@ -142,7 +142,7 @@
ADD_TRAIT(fatty, TRAIT_NO_JUMPSUIT, HELPLESSNESS_TRAIT)
var/obj/item/clothing/under/jumpsuit = fatty.w_uniform
if(istype(jumpsuit) && !istype(jumpsuit, /obj/item/clothing/under/color/grey/modular))
if(istype(jumpsuit))
to_chat(fatty, "<span class='warning'>[jumpsuit] can no longer contain your weight!</span>")
fatty.dropItemToGround(jumpsuit)