Merge pull request #36 from Alphas00/master

Modular Clothes V2 & Department Grey Suits
This commit is contained in:
evilew
2024-12-06 18:58:41 +01:00
committed by GitHub
16 changed files with 245 additions and 240 deletions
+1 -1
View File
@@ -9,7 +9,7 @@
to_chat(H, "<span class='warning'>You are too fat to wear anything on your back.</span>")
return FALSE
if(!istype(I, /obj/item/clothing/under/color/grey/modular) && HAS_TRAIT(H, TRAIT_NO_JUMPSUIT) && slot == ITEM_SLOT_ICLOTHING)
if(HAS_TRAIT(H, TRAIT_NO_JUMPSUIT) && slot == ITEM_SLOT_ICLOTHING)
to_chat(H, "<span class='warning'>You are too fat to wear [I].</span>")
return FALSE
@@ -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"
@@ -0,0 +1,178 @@
/mob/living/carbon
var/modular_items = list()
/mob/living/carbon/adjust_fatness(adjustment_amount, type_of_fattening = FATTENING_TYPE_ITEM)
..()
for(var/obj/item/item in modular_items)
item.update_modular_overlays(src)
/obj/item
var/modular_icon_location = null
var/mod_overlays = list()
/obj/item/equipped(mob/user, slot)
if(modular_icon_location != null && slot == slot_flags) //if(slot == ITEM_SLOT_ICLOTHING)
update_modular_overlays(user)
..()
/obj/item/dropped(mob/user)
remove_modular_overlays(user)
..()
/obj/item/proc/add_modular_overlay(mob/living/carbon/U, modular_icon, modular_layer, sprite_color)
var/mutable_appearance/mod_overlay = mutable_appearance(modular_icon_location, modular_icon, -(modular_layer), color = sprite_color)
mod_overlays += mod_overlay
U.overlays_standing[modular_layer] = mod_overlay
U.apply_overlay(modular_layer)
/obj/item/proc/get_modular_belly(obj/item/organ/genital/G)
return "belly_[get_belly_size(G)][get_belly_alt()]"
/obj/item/proc/get_belly_size(obj/item/organ/genital/G)
var/size = G.size
if(G.size > 9)
size = 9
var/shape
if(G.owner.fullness <= FULLNESS_LEVEL_BLOATED)
switch(G.shape)
if("Soft Belly")
shape = "soft"
if("Round Belly")
shape = "round"
else
shape = "stuffed"
var/stuffed_modifier
switch(G.owner.fullness)
if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG) // Take the stuffed sprite of the same size
stuffed_modifier = 0
if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ) // Take the stuffed sprite of size + 1
stuffed_modifier = 1
if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY)// Take the stuffed sprite of size + 2
stuffed_modifier = 2
size = size + stuffed_modifier
return "[shape]_[size]"
/obj/item/proc/get_belly_alt()
return ""
/obj/item/clothing/under/get_belly_alt()
return "[(adjusted) ? "_d" : ""]"
/obj/item/proc/get_modular_butt(obj/item/organ/genital/G)
return "butt_[(G.size <= 10 ) ? "[G.size]" : "10"][get_butt_alt()]"
/obj/item/proc/get_butt_alt()
return "[(mutantrace_variation == STYLE_DIGITIGRADE) ? "_l" : ""]"
/obj/item/proc/get_modular_breasts(obj/item/organ/genital/G)
var/size
if(G.size <= "o")
size = G.size
else
switch(G.size)
if("huge")
size = "huge"
if("massive")
size = "massive"
if("giga")
size = "giga"
if("impossible")
size = "impossible"
return "breasts_[size][get_breasts_alt()]"
/obj/item/proc/get_breasts_alt()
return ""
/obj/item/proc/update_modular_overlays(mob/user)
if(!iscarbon(user))
return
var/mob/living/carbon/U = user
delete_modular_overlays(U)
if(!(src in U.modular_items))
U.modular_items += src
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
var/modular_sprite = get_modular_belly(G)
add_modular_overlay(U, modular_sprite, MODULAR_BELLY_LAYER, color)
add_modular_overlay(U, "[modular_sprite]_SOUTH", BELLY_FRONT_LAYER, color)
if(istype(O, /obj/item/organ/genital/butt)) //if that organ is the butt
G = O
var/modular_sprite = get_modular_butt(G)
add_modular_overlay(U, modular_sprite, MODULAR_BUTT_LAYER, color)
add_modular_overlay(U, "[modular_sprite]_NORTH", BUTT_BEHIND_LAYER, color)
if(istype(O, /obj/item/organ/genital/breasts)) //if the organ is the breasts
G = O
var/modular_sprite = get_modular_breasts(G)
add_modular_overlay(U, modular_sprite, MODULAR_BREASTS_LAYER, color)
add_modular_overlay(U, "[modular_sprite]_NORTH", BREASTS_BEHIND_LAYER, color)
add_modular_overlay(U, "[modular_sprite]_SOUTH", BREASTS_FRONT_LAYER, color)
/obj/item/proc/delete_modular_overlays(mob/user)
if(!iscarbon(user))
return
var/mob/living/carbon/U = user
if(!(src in U.modular_items))
return
for(var/mutable_appearance/overlay in mod_overlays)
U.cut_overlay(overlay)
mod_overlays -= mod_overlays
/obj/item/proc/remove_modular_overlays(mob/user)
if(!iscarbon(user))
return
delete_modular_overlays(user)
var/mob/living/carbon/U = user
if(src in U.modular_items)
U.modular_items -= src
/obj/item/clothing/under/color/grey
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)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

+32 -25
View File
@@ -33,30 +33,37 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
//Human Overlays Indexes/////////
//LOTS OF CIT CHANGES HERE. BE CAREFUL WHEN UPSTREAM ADDS MORE LAYERS
#define MUTATIONS_LAYER 35 //mutations. Tk headglows, cold resistance glow, etc
#define ANTAG_LAYER 34 //stuff for things like cultism indicators (clock cult glow, cultist red halos, whatever else new that comes up)
#define GENITALS_BEHIND_LAYER 33 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer
#define BODY_BEHIND_LAYER 32 //certain mutantrace features (tail when looking south) that must appear behind the body parts
#define BODYPARTS_LAYER 31 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
#define MARKING_LAYER 30 //Matrixed body markings because clashing with snouts?
#define BODY_ADJ_LAYER 29 //certain mutantrace features (snout, body markings) that must appear above the body parts
#define BODY_LAYER 28 //underwear, undershirts, socks, eyes, lips(makeup)
#define BODY_ADJ_UPPER_LAYER 27
#define FRONT_MUTATIONS_LAYER 26 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
#define DAMAGE_LAYER 25 //damage indicators (cuts and burns)
#define UNIFORM_LAYER 24
#define ID_LAYER 23
#define HANDS_PART_LAYER 22
#define SHOES_LAYER 21
#define GLOVES_LAYER 20
#define EARS_LAYER 19
#define GENITALS_UNDER_LAYER 18
#define SUIT_LAYER 17
#define GLASSES_LAYER 16
#define BELT_LAYER 15 //Possible make this an overlay of somethign required to wear a belt?
#define SUIT_STORE_LAYER 14
#define NECK_LAYER 13
#define BACK_LAYER 12
#define MUTATIONS_LAYER 42 //mutations. Tk headglows, cold resistance glow, etc
#define ANTAG_LAYER 41 //stuff for things like cultism indicators (clock cult glow, cultist red halos, whatever else new that comes up)
#define GENITALS_BEHIND_LAYER 40 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer
#define BREASTS_BEHIND_LAYER 39 //GS13 Edit - Modular Clothes Layer
#define BODY_BEHIND_LAYER 38 //certain mutantrace features (tail when looking south) that must appear behind the body parts
#define BODYPARTS_LAYER 37 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
#define MARKING_LAYER 36 //Matrixed body markings because clashing with snouts?
#define BODY_ADJ_LAYER 35 //certain mutantrace features (snout, body markings) that must appear above the body parts
#define BODY_LAYER 34 //underwear, undershirts, socks, eyes, lips(makeup)
#define BODY_ADJ_UPPER_LAYER 33
#define FRONT_MUTATIONS_LAYER 32 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
#define DAMAGE_LAYER 31 //damage indicators (cuts and burns)
#define UNIFORM_LAYER 30
#define ID_LAYER 29
#define HANDS_PART_LAYER 28
#define SHOES_LAYER 27
#define GLOVES_LAYER 26
#define EARS_LAYER 25
#define GENITALS_UNDER_LAYER 24
#define MODULAR_BELLY_LAYER 23 //GS13 Edit - Modular Clothes Layer
#define MODULAR_BREASTS_LAYER 22 //GS13 Edit - Modular Clothes Layer
#define MODULAR_BUTT_LAYER 21 //GS13 Edit - Modular Clothes Layer
#define SUIT_LAYER 20
#define GLASSES_LAYER 19
#define BELT_LAYER 18 //Possible make this an overlay of somethign required to wear a belt?
#define SUIT_STORE_LAYER 17
#define NECK_LAYER 16
#define BACK_LAYER 15
#define BELLY_FRONT_LAYER 14 //GS13 Edit - Modular Clothes Layer
#define BREASTS_FRONT_LAYER 13 //GS13 Edit - Modular Clothes Layer
#define BUTT_BEHIND_LAYER 12 //GS13 Edit - Modular Clothes Layer
#define GENITALS_EXPOSED_LAYER 11
#define GENITALS_FRONT_LAYER 10 //Draws some genitalia above clothes and the TAUR body if need be.
#define HAIR_LAYER 9 //TODO: make part of head layer?
@@ -68,7 +75,7 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
#define HANDS_LAYER 3
#define BODY_FRONT_LAYER 2
#define FIRE_LAYER 1 //If you're on fire
#define TOTAL_LAYERS 35 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
#define TOTAL_LAYERS 42 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
//Human Overlay Index Shortcuts for alternate_worn_layer, layers
//Because I *KNOW* somebody will think layer+1 means "above"
-1
View File
@@ -9,7 +9,6 @@
/obj/item/clothing/head/fedora = 3,
//GS13 EDIT START
/obj/item/clothing/suit/jacket/letterman_gato = 5,
/obj/item/clothing/under/color/grey/modular = 6,
//GS13 EDIT END
/obj/item/clothing/head/beret = 3,
/obj/item/clothing/head/beret/black = 3,
+31 -15
View File
@@ -17,7 +17,8 @@
icon_state = "secdrobe"
product_ads = "Beat perps in style!;It's red so you can't see the blood!;You have the right to be fashionable!;Now you can be the fashion police you always wanted to be!"
vend_reply = "Thank you for using the SecDrobe!"
products = list(/obj/item/clothing/suit/hooded/wintercoat/security = 2,
products = list(/obj/item/clothing/under/color/grey/security = 10,
/obj/item/clothing/suit/hooded/wintercoat/security = 2,
/obj/item/storage/backpack/security = 3,
/obj/item/storage/backpack/satchel/sec = 3,
/obj/item/storage/backpack/duffelbag/sec = 3,
@@ -48,7 +49,8 @@
icon_state = "medidrobe"
product_ads = "Make those blood stains look fashionable!!"
vend_reply = "Thank you for using the MediDrobe!"
products = list(/obj/item/clothing/accessory/pocketprotector = 5,
products = list(/obj/item/clothing/under/color/grey/medical = 10,
/obj/item/clothing/accessory/pocketprotector = 5,
/obj/item/clothing/head/beret/med = 5,
/obj/item/storage/backpack/medic = 5,
/obj/item/storage/backpack/satchel/med = 5,
@@ -90,7 +92,8 @@
icon_state = "engidrobe"
product_ads = "Guaranteed to protect your feet from industrial accidents!;Afraid of radiation? Then wear yellow!"
vend_reply = "Thank you for using the EngiDrobe!"
products = list(/obj/item/clothing/accessory/pocketprotector = 5,
products = list(/obj/item/clothing/under/color/grey/engi = 10,
/obj/item/clothing/accessory/pocketprotector = 5,
/obj/item/clothing/head/beret/eng = 3,
/obj/item/storage/backpack/industrial = 3,
/obj/item/storage/backpack/satchel/eng = 3,
@@ -121,7 +124,8 @@
icon_state = "atmosdrobe"
product_ads = "Get your inflammable clothing right here!!!"
vend_reply = "Thank you for using the AtmosDrobe!"
products = list(/obj/item/clothing/accessory/pocketprotector = 3,
products = list(/obj/item/clothing/under/color/grey/engi = 10,
/obj/item/clothing/accessory/pocketprotector = 3,
/obj/item/clothing/head/beret/atmos = 3,
/obj/item/storage/backpack/industrial = 3,
/obj/item/storage/backpack/satchel/eng = 3,
@@ -145,6 +149,7 @@
product_ads = "Upgraded Assistant Style! Pick yours today!;These shorts are comfy and easy to wear, get yours now!"
vend_reply = "Thank you for using the CargoDrobe!"
products = list(
/obj/item/clothing/under/color/grey/cargo = 10,
/obj/item/storage/bag/mail = 3,
/obj/item/clothing/suit/hooded/wintercoat/cargo = 3,
/obj/item/clothing/under/rank/cargo/tech = 3,
@@ -174,7 +179,8 @@
icon_state = "robodrobe"
product_ads = "You turn me TRUE, use defines!;0110001101101100011011110111010001101000011001010111001101101000011001010111001001100101"
vend_reply = "Thank you for using the RoboDrobe!"
products = list(/obj/item/clothing/glasses/hud/diagnostic = 3,
products = list(/obj/item/clothing/under/color/grey/science = 10,
/obj/item/clothing/glasses/hud/diagnostic = 3,
/obj/item/stack/medical/nanogel = 5,
/obj/item/clothing/head/beret/robo = 3,
/obj/item/clothing/under/rank/rnd/roboticist = 3,
@@ -202,7 +208,8 @@
icon_state = "scidrobe"
product_ads = "Longing for the smell of plasma burnt flesh? Buy your science clothing now!;Made with 10% Auxetics, so you don't have to worry about losing your arm!"
vend_reply = "Thank you for using the SciDrobe!"
products = list(/obj/item/clothing/accessory/pocketprotector = 5,
products = list(/obj/item/clothing/under/color/grey/science = 10,
/obj/item/clothing/accessory/pocketprotector = 5,
/obj/item/clothing/head/beret/sci = 3,
/obj/item/storage/backpack/science = 3,
/obj/item/storage/backpack/satchel/tox = 3,
@@ -227,7 +234,8 @@
icon_state = "hydrobe"
product_ads = "Do you love soil? Then buy our clothes!;Get outfits to match your green thumb here!"
vend_reply = "Thank you for using the Hydrobe!"
products = list(/obj/item/storage/backpack/botany = 3,
products = list(/obj/item/clothing/under/color/grey/service = 10,
/obj/item/storage/backpack/botany = 3,
/obj/item/storage/backpack = 3,
/obj/item/storage/backpack/satchel/hyd = 3,
/obj/item/storage/backpack/duffelbag = 3,
@@ -274,7 +282,8 @@
icon_state = "bardrobe"
product_ads = "Guaranteed to prevent stains from spilled drinks!"
vend_reply = "Thank you for using the BarDrobe!"
products = list(/obj/item/clothing/head/that = 3,
products = list(/obj/item/clothing/under/color/grey/service = 10,
/obj/item/clothing/head/that = 3,
/obj/item/radio/headset/headset_srv = 3,
/obj/item/clothing/suit/hooded/wintercoat/bar = 3,
/obj/item/clothing/under/suit/sl = 3,
@@ -303,7 +312,8 @@
icon_state = "chefdrobe"
product_ads = "Our clothes are guaranteed to protect you from food splatters!"
vend_reply = "Thank you for using the ChefDrobe!"
products = list(/obj/item/clothing/under/suit/waiter = 3,
products = list(/obj/item/clothing/under/color/grey/service = 10,
/obj/item/clothing/under/suit/waiter = 3,
/obj/item/radio/headset/headset_srv = 4,
/obj/item/clothing/accessory/waistcoat = 3,
/obj/item/clothing/suit/apron/chef = 3,
@@ -328,7 +338,8 @@
icon_state = "janidrobe"
product_ads = "Come and get your janitorial clothing, now endorsed by lizard janitors everywhere!"
vend_reply = "Thank you for using the JaniDrobe!"
products = list(/obj/item/clothing/under/rank/civilian/janitor = 2,
products = list(/obj/item/clothing/under/color/grey/service = 10,
/obj/item/clothing/under/rank/civilian/janitor = 2,
/obj/item/clothing/under/rank/civilian/janitor/skirt = 2,
/obj/item/clothing/suit/hooded/wintercoat/janitor = 3,
/obj/item/cartridge/janitor = 3,
@@ -420,7 +431,8 @@
icon_state = "chemdrobe"
product_ads = "Our clothes are 0.5% more resistant to acid spills! Get yours now!"
vend_reply = "Thank you for using the ChemDrobe!"
products = list(/obj/item/clothing/under/rank/medical/chemist = 3,
products = list(/obj/item/clothing/under/color/grey/medical = 10,
/obj/item/clothing/under/rank/medical/chemist = 3,
/obj/item/clothing/head/beret/chem = 3,
/obj/item/clothing/under/rank/medical/chemist/skirt = 3,
/obj/item/clothing/suit/hooded/wintercoat/chemistry = 3,
@@ -441,7 +453,8 @@
icon_state = "genedrobe"
product_ads = "Perfect for the mad scientist in you!"
vend_reply = "Thank you for using the GeneDrobe!"
products = list(/obj/item/clothing/under/rank/medical/geneticist = 3,
products = list(/obj/item/clothing/under/color/grey/medical = 10,
/obj/item/clothing/under/rank/medical/geneticist = 3,
/obj/item/clothing/under/rank/medical/geneticist/skirt = 3,
/obj/item/clothing/suit/hooded/wintercoat/genetics = 3,
/obj/item/clothing/shoes/sneakers/white = 3,
@@ -459,7 +472,8 @@
icon_state = "virodrobe"
product_ads = " Viruses getting you down? Then upgrade to sterilized clothing today!"
vend_reply = "Thank you for using the ViroDrobe"
products = list(/obj/item/clothing/head/beret/viro = 3,
products = list(/obj/item/clothing/under/color/grey/medical = 10,
/obj/item/clothing/head/beret/viro = 3,
/obj/item/clothing/under/rank/medical/virologist = 3,
/obj/item/clothing/under/rank/medical/virologist/skirt = 3,
/obj/item/clothing/suit/hooded/wintercoat/viro = 3,
@@ -479,7 +493,8 @@
icon_state = "detdrobe"
product_ads = "Apply your brilliant deductive methods in style!"
vend_reply = "Thank you for using the DetDrobe!"
products = list(/obj/item/clothing/under/rank/security/detective = 2,
products = list(/obj/item/clothing/under/color/grey/security = 10,
/obj/item/clothing/under/rank/security/detective = 2,
/obj/item/clothing/under/rank/security/detective/skirt = 2,
/obj/item/clothing/under/rank/security/detective/brown = 2,
/obj/item/clothing/under/rank/security/detective/brown/brown2 = 2,
@@ -517,7 +532,8 @@
icon_deny = "capsdrobe-deny"
product_ads = "Only the greatest for a commander such as ours."
vend_reply = "A wonderful day to you, great leader."
products = list(/obj/item/clothing/suit/hooded/wintercoat/captain = 1,
products = list(/obj/item/clothing/under/color/grey/command = 10,
/obj/item/clothing/suit/hooded/wintercoat/captain = 1,
/obj/item/storage/backpack/captain = 1,
/obj/item/storage/backpack/satchel/cap = 1,
/obj/item/storage/backpack/duffelbag/captain = 1,
@@ -44,10 +44,6 @@
name = "Assistant's formal uniform"
path = /obj/item/clothing/under/misc/assistantformal
/datum/gear/uniform/greymodular
name = "Grey Modular Jumpsuit"
path = /obj/item/clothing/under/color/grey/modular
/datum/gear/uniform/maidcostume
name = "Maid costume"
path = /obj/item/clothing/under/costume/maid
+2 -4
View File
@@ -3977,9 +3977,9 @@
#include "GainStation13\code\machinery\feeding_tube.dm"
#include "GainStation13\code\machinery\feeding_tube_industrial.dm"
#include "GainStation13\code\machinery\gym.dm"
#include "GainStation13\code\machinery\doors\airlock_types.dm"
#include "GainStation13\code\machinery\powered_quantum_pad.dm"
#include "GainStation13\code\machinery\supply_teleporter.dm"
#include "GainStation13\code\machinery\doors\airlock_types.dm"
#include "GainStation13\code\mechanics\calorite.dm"
#include "GainStation13\code\mechanics\fatness.dm"
#include "GainStation13\code\mechanics\fatrousal.dm"
@@ -4008,10 +4008,8 @@
#include "GainStation13\code\modules\cargo\packs.dm"
#include "GainStation13\code\modules\client\border_control.dm"
#include "GainStation13\code\modules\client\loadout\head.dm"
#include "GainStation13\code\modules\client\loadout\uniform.dm"
#include "GainStation13\code\modules\client\preferences\preferences.dm"
#include "GainStation13\code\modules\clothing\under\jobs\clothing.dm"
#include "GainStation13\code\modules\clothing\under\jobs\modcivilian.dm"
#include "GainStation13\code\modules\clothing\under\jobs\modular_items.dm"
#include "GainStation13\code\modules\events\vent_clog.dm\vent_clog.dm"
#include "GainStation13\code\modules\food_and_drinks\drinks.dm"
#include "GainStation13\code\modules\food_and_drinks\food.dm"