diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index ac113b4e08..c8a33959ed 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -8,11 +8,11 @@ //facial hair init_sprite_accessory_subtypes(/datum/sprite_accessory/facial_hair, GLOB.facial_hair_styles_list, GLOB.facial_hair_styles_male_list, GLOB.facial_hair_styles_female_list) //underwear - init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear, GLOB.underwear_list, GLOB.underwear_m, GLOB.underwear_f) + init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear/bottom, GLOB.underwear_list, GLOB.underwear_m, GLOB.underwear_f) //undershirt - init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, GLOB.undershirt_list, GLOB.undershirt_m, GLOB.undershirt_f) + init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear/top, GLOB.undershirt_list, GLOB.undershirt_m, GLOB.undershirt_f) //socks - init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, GLOB.socks_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear/socks, GLOB.socks_list) //bodypart accessories (blizzard intensifies) init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, GLOB.body_markings_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard, GLOB.tails_list_lizard) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 9eb5400c52..5ec839130a 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -20,35 +20,34 @@ else return "000" -/proc/random_underwear(gender)//Cit change - makes random underwear always return nude +#define UNDIE_COLORABLE(U) (U?.has_color) + +/proc/random_underwear(gender) if(!GLOB.underwear_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear, GLOB.underwear_list, GLOB.underwear_m, GLOB.underwear_f) - return "Nude" - /*switch(gender) + init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear/bottom, GLOB.underwear_list, GLOB.underwear_m, GLOB.underwear_f) + switch(gender) if(MALE) return pick(GLOB.underwear_m) if(FEMALE) return pick(GLOB.underwear_f) else - return pick(GLOB.underwear_list)*/ + return pick(GLOB.underwear_list) -/proc/random_undershirt(gender)//Cit change - makes random undershirts always return nude +/proc/random_undershirt(gender) if(!GLOB.undershirt_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, GLOB.undershirt_list, GLOB.undershirt_m, GLOB.undershirt_f) - return "Nude" - /*switch(gender) + init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear/top, GLOB.undershirt_list, GLOB.undershirt_m, GLOB.undershirt_f) + switch(gender) if(MALE) return pick(GLOB.undershirt_m) if(FEMALE) return pick(GLOB.undershirt_f) else - return pick(GLOB.undershirt_list)*/ + return pick(GLOB.undershirt_list) -/proc/random_socks()//Cit change - makes random socks always return nude +/proc/random_socks() if(!GLOB.socks_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, GLOB.socks_list) - return "Nude" - //return pick(GLOB.socks_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear/socks, GLOB.socks_list) + return pick(GLOB.socks_list) /proc/random_features() if(!GLOB.tails_list_human.len) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 47b7e2ab62..82ccd439ee 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -7,15 +7,15 @@ GLOBAL_LIST_EMPTY(facial_hair_styles_list) //stores /datum/sprite_accessory/faci GLOBAL_LIST_EMPTY(facial_hair_styles_male_list) //stores only hair names GLOBAL_LIST_EMPTY(facial_hair_styles_female_list) //stores only hair names //Underwear -GLOBAL_LIST_EMPTY(underwear_list) //stores /datum/sprite_accessory/underwear indexed by name +GLOBAL_LIST_EMPTY(underwear_list) //stores /datum/sprite_accessory/underwear/bottom indexed by name GLOBAL_LIST_EMPTY(underwear_m) //stores only underwear name GLOBAL_LIST_EMPTY(underwear_f) //stores only underwear name //Undershirts -GLOBAL_LIST_EMPTY(undershirt_list) //stores /datum/sprite_accessory/undershirt indexed by name +GLOBAL_LIST_EMPTY(undershirt_list) //stores /datum/sprite_accessory/underwear/top indexed by name GLOBAL_LIST_EMPTY(undershirt_m) //stores only undershirt name GLOBAL_LIST_EMPTY(undershirt_f) //stores only undershirt name //Socks -GLOBAL_LIST_EMPTY(socks_list) //stores /datum/sprite_accessory/socks indexed by name +GLOBAL_LIST_EMPTY(socks_list) //stores /datum/sprite_accessory/underwear/socks indexed by name //Lizard Bits (all datum lists indexed by name) GLOBAL_LIST_EMPTY(body_markings_list) GLOBAL_LIST_EMPTY(tails_list_lizard) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index feb81d44e0..d6131ce58e 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -86,8 +86,11 @@ GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our th var/datum/dna/chosen_dna = chosen_prof.dna user.real_name = chosen_prof.name user.underwear = chosen_prof.underwear + user.undie_color = chosen_prof.undie_color user.undershirt = chosen_prof.undershirt + user.shirt_color =chosen_prof.shirt_color user.socks = chosen_prof.socks + user.socks_color =chosen_prof.socks_color chosen_dna.transfer_identity(user, 1) user.updateappearance(mutcolor_update=1) diff --git a/code/game/objects/structures/dresser.dm b/code/game/objects/structures/dresser.dm index 9e88d52444..461e19adf1 100644 --- a/code/game/objects/structures/dresser.dm +++ b/code/game/objects/structures/dresser.dm @@ -21,35 +21,62 @@ /obj/structure/dresser/attack_hand(mob/user) . = ..() - if(.) + if(. || !ishuman(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return - if(!Adjacent(user))//no tele-grooming + var/mob/living/carbon/human/H = user + + if(H.dna && H.dna.species && (NO_UNDERWEAR in H.dna.species.species_traits)) + to_chat(H, "You are not capable of wearing underwear.") return - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.dna && H.dna.species && (NO_UNDERWEAR in H.dna.species.species_traits)) - to_chat(user, "You are not capable of wearing underwear.") - return + var/list/undergarment_choices = list("Underwear", "Underwear Color", "Undershirt", "Undershirt Color", "Socks", "Socks Color") + if(!UNDIE_COLORABLE(GLOB.underwear_list[H.underwear])) + undergarment_choices -= "Underwear Color" + if(!UNDIE_COLORABLE(GLOB.undershirt_list[H.undershirt])) + undergarment_choices -= "Undershirt Color" + if(!UNDIE_COLORABLE(GLOB.socks_list[H.socks])) + undergarment_choices -= "Socks Color" - var/choice = input(user, "Underwear, Undershirt, or Socks?", "Changing") as null|anything in list("Underwear","Undershirt","Socks") + var/choice = input(H, "Underwear, Undershirt, or Socks?", "Changing") as null|anything in undergarment_choices + if(!H.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + return + var/dye_undie = FALSE + var/dye_shirt = FALSE + var/dye_socks = FALSE + switch(choice) + if("Underwear") + var/new_undies = input(H, "Select your underwear", "Changing") as null|anything in GLOB.underwear_list + if(H.underwear) + H.underwear = new_undies + H.saved_underwear = new_undies + var/datum/sprite_accessory/underwear/bottom/B = GLOB.underwear_list[new_undies] + dye_undie = B?.has_color + if("Undershirt") + var/new_undershirt = input(H, "Select your undershirt", "Changing") as null|anything in GLOB.undershirt_list + if(new_undershirt) + H.undershirt = new_undershirt + H.saved_undershirt = new_undershirt + var/datum/sprite_accessory/underwear/top/T = GLOB.undershirt_list[new_undershirt] + dye_shirt = T?.has_color + if("Socks") + var/new_socks = input(H, "Select your socks", "Changing") as null|anything in GLOB.socks_list + if(new_socks) + H.socks = new_socks + H.saved_socks = new_socks + var/datum/sprite_accessory/underwear/socks/S = GLOB.socks_list[new_socks] + dye_socks = S?.has_color + if(dye_undie || choice == "Underwear Color") + H.undie_color = recolor_undergarment(H, "underwear", H.undie_color) + if(dye_shirt || choice == "Undershirt Color") + H.shirt_color = recolor_undergarment(H, "undershirt", H.shirt_color) + if(dye_socks || choice == "Socks Color") + H.socks_color = recolor_undergarment(H, "socks", H.socks_color) - if(!Adjacent(user)) - return - switch(choice) - if("Underwear") - var/new_undies = input(user, "Select your underwear", "Changing") as null|anything in GLOB.underwear_list - if(new_undies) - H.underwear = new_undies + add_fingerprint(H) + H.update_body() - if("Undershirt") - var/new_undershirt = input(user, "Select your undershirt", "Changing") as null|anything in GLOB.undershirt_list - if(new_undershirt) - H.undershirt = new_undershirt - if("Socks") - var/new_socks = input(user, "Select your socks", "Changing") as null|anything in GLOB.socks_list - if(new_socks) - H.socks= new_socks - - add_fingerprint(H) - H.update_body() +/obj/structure/dresser/proc/recolor_undergarment(mob/living/carbon/human/H, garment_type = "underwear", default_color) + var/n_color = input(H, "Choose your [garment_type]'\s color.", "Character Preference", default_color) as color|null + if(!n_color || !H.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + return default_color + return n_color diff --git a/code/modules/VR/vr_sleeper.dm b/code/modules/VR/vr_sleeper.dm index 4e342f6ced..bfbf6b5b79 100644 --- a/code/modules/VR/vr_sleeper.dm +++ b/code/modules/VR/vr_sleeper.dm @@ -164,8 +164,11 @@ vr_human.name = H.name vr_human.real_name = H.real_name vr_human.socks = H.socks + vr_human.socks_color = H.socks_color vr_human.undershirt = H.undershirt + vr_human.shirt_color = H.shirt_color vr_human.underwear = H.underwear + vr_human.undie_color = H.undie_color vr_human.updateappearance(TRUE, TRUE, TRUE) vr_human.give_genitals(TRUE) //CITADEL ADD if(outfit) diff --git a/code/modules/admin/create_mob.dm b/code/modules/admin/create_mob.dm index 73b8fa61f0..fad7410a6a 100644 --- a/code/modules/admin/create_mob.dm +++ b/code/modules/admin/create_mob.dm @@ -15,6 +15,9 @@ H.real_name = random_unique_name(H.gender) H.name = H.real_name H.underwear = random_underwear(H.gender) + H.undie_color = random_color() + H.undershirt = random_undershirt(H.gender) + H.shirt_color = random_color() H.skin_tone = random_skin_tone() H.hair_style = random_hair_style(H.gender) H.facial_hair_style = random_facial_hair_style(H.gender) @@ -26,8 +29,8 @@ // Mutant randomizing, doesn't affect the mob appearance unless it's the specific mutant. H.dna.features["mcolor"] = random_short_color() H.dna.features["tail_lizard"] = pick(GLOB.tails_list_lizard) - H.dna.features["snout"] = pick(GLOB.snouts_list) - H.dna.features["horns"] = pick(GLOB.horns_list) + H.dna.features["snout"] = pick(GLOB.snouts_list) + H.dna.features["horns"] = pick(GLOB.horns_list) H.dna.features["frills"] = pick(GLOB.frills_list) H.dna.features["spines"] = pick(GLOB.spines_list) H.dna.features["body_markings"] = pick(GLOB.body_markings_list) diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index 5b0be336ff..a1b9b53fe9 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -269,8 +269,11 @@ prof.protected = protect prof.underwear = H.underwear + prof.undie_color = H.undie_color prof.undershirt = H.undershirt + prof.shirt_color = H.shirt_color prof.socks = H.socks + prof.socks_color = H.socks_color var/list/slots = list("head", "wear_mask", "back", "wear_suit", "w_uniform", "shoes", "belt", "gloves", "glasses", "ears", "wear_id", "s_store") for(var/slot in slots) @@ -503,8 +506,11 @@ var/list/item_state_list = list() var/underwear + var/undie_color var/undershirt + var/shirt_color var/socks + var/socks_color /datum/changelingprofile/Destroy() qdel(dna) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 7a6fdad721..9e48591361 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -71,8 +71,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/gender = MALE //gender of character (well duh) var/age = 30 //age of character var/underwear = "Nude" //underwear type + var/undie_color = "#FFFFFF" var/undershirt = "Nude" //undershirt type + var/shirt_color = "#FFFFFF" var/socks = "Nude" //socks type + var/socks_color = "#FFFFFF" var/backbag = DBACKPACK //backpack type var/hair_style = "Bald" //Hair type var/hair_color = "000" //Hair color @@ -674,8 +677,14 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" @@ -1398,10 +1407,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) facial_hair_style = random_facial_hair_style(gender) if("underwear") underwear = random_underwear(gender) + undie_color = random_color() if("undershirt") undershirt = random_undershirt(gender) + shirt_color = random_color() if("socks") socks = random_socks() + socks_color = random_color() if(BODY_ZONE_PRECISE_EYES) eye_color = random_eye_color() if("s_tone") @@ -1507,29 +1519,35 @@ GLOBAL_LIST_EMPTY(preferences_datums) bgstate = next_list_item(bgstate, bgstate_options) if("underwear") - var/new_underwear - if(gender == MALE) - new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_m - else - new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_f + var/new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_list if(new_underwear) underwear = new_underwear + if("undie_color") + var/n_undie_color = input(user, "Choose your underwear's color.", "Character Preference", undie_color) as color|null + if(n_undie_color) + undie_color = n_undie_color + if("undershirt") - var/new_undershirt - if(gender == MALE) - new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in GLOB.undershirt_m - else - new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in GLOB.undershirt_f + var/new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in GLOB.undershirt_list if(new_undershirt) undershirt = new_undershirt + if("shirt_color") + var/n_shirt_color = input(user, "Choose your undershirt's color.", "Character Preference", shirt_color) as color|null + if(n_shirt_color) + shirt_color = n_shirt_color + if("socks") - var/new_socks - new_socks = input(user, "Choose your character's socks:", "Character Preference") as null|anything in GLOB.socks_list + var/new_socks = input(user, "Choose your character's socks:", "Character Preference") as null|anything in GLOB.socks_list if(new_socks) socks = new_socks + if("socks_color") + var/n_socks_color = input(user, "Choose your socks' color.", "Character Preference", socks_color) as color|null + if(n_socks_color) + socks_color = n_socks_color + if("eyes") var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference","#"+eye_color) as color|null if(new_eyes) @@ -2246,11 +2264,16 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.hair_style = hair_style character.facial_hair_style = facial_hair_style character.underwear = underwear + character.saved_underwear = underwear character.undershirt = undershirt character.saved_undershirt = undershirt character.socks = socks character.saved_socks = socks + character.undie_color = undie_color + character.shirt_color = shirt_color + character.socks_color = socks_color + character.backbag = backbag diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index e8a76c63a4..b9c5cb7ef9 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -266,8 +266,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["hair_style_name"] >> hair_style S["facial_style_name"] >> facial_hair_style S["underwear"] >> underwear + S["undie_color"] >> undie_color S["undershirt"] >> undershirt + S["shirt_color"] >> shirt_color S["socks"] >> socks + S["socks_color"] >> socks_color S["backbag"] >> backbag S["uplink_loc"] >> uplink_spawn_loc S["feature_mcolor"] >> features["mcolor"] @@ -388,14 +391,15 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(gender == MALE) hair_style = sanitize_inlist(hair_style, GLOB.hair_styles_male_list) facial_hair_style = sanitize_inlist(facial_hair_style, GLOB.facial_hair_styles_male_list) - underwear = sanitize_inlist(underwear, GLOB.underwear_m) - undershirt = sanitize_inlist(undershirt, GLOB.undershirt_m) else hair_style = sanitize_inlist(hair_style, GLOB.hair_styles_female_list) facial_hair_style = sanitize_inlist(facial_hair_style, GLOB.facial_hair_styles_female_list) - underwear = sanitize_inlist(underwear, GLOB.underwear_f) - undershirt = sanitize_inlist(undershirt, GLOB.undershirt_f) + underwear = sanitize_inlist(underwear, GLOB.underwear_list) + undie_color = sanitize_hexcolor(undie_color, 6, 1, initial(undie_color)) + undershirt = sanitize_inlist(undershirt, GLOB.undershirt_list) + shirt_color = sanitize_hexcolor(shirt_color, 6, 1, initial(shirt_color)) socks = sanitize_inlist(socks, GLOB.socks_list) + socks_color = sanitize_hexcolor(socks_color, 6, 1, initial(socks_color)) age = sanitize_integer(age, AGE_MIN, AGE_MAX, initial(age)) hair_color = sanitize_hexcolor(hair_color, 3, 0) facial_hair_color = sanitize_hexcolor(facial_hair_color, 3, 0) @@ -465,8 +469,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["hair_style_name"] , hair_style) WRITE_FILE(S["facial_style_name"] , facial_hair_style) WRITE_FILE(S["underwear"] , underwear) + WRITE_FILE(S["undie_color"] , undie_color) WRITE_FILE(S["undershirt"] , undershirt) + WRITE_FILE(S["shirt_color"] , shirt_color) WRITE_FILE(S["socks"] , socks) + WRITE_FILE(S["socks_color"] , socks_color) WRITE_FILE(S["backbag"] , backbag) WRITE_FILE(S["uplink_loc"] , uplink_spawn_loc) WRITE_FILE(S["species"] , pref_species.id) diff --git a/code/modules/mob/dead/new_player/preferences_setup.dm b/code/modules/mob/dead/new_player/preferences_setup.dm index 353df3aa66..ffe9a800a1 100644 --- a/code/modules/mob/dead/new_player/preferences_setup.dm +++ b/code/modules/mob/dead/new_player/preferences_setup.dm @@ -6,8 +6,11 @@ else gender = pick(MALE,FEMALE) underwear = random_underwear(gender) + undie_color = random_color() undershirt = random_undershirt(gender) + shirt_color = random_color() socks = random_socks() + socks_color = random_color() skin_tone = random_skin_tone() hair_style = random_hair_style(gender) facial_hair_style = random_facial_hair_style(gender) diff --git a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm index 699c3c97e4..5e24d0630b 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm @@ -59,4 +59,8 @@ var/locked = FALSE //Is this part locked from roundstart selection? Used for parts that apply effects var/dimension_x = 32 var/dimension_y = 32 - var/center = FALSE //Should we center the sprite? \ No newline at end of file + var/center = FALSE //Should we center the sprite? + +/datum/sprite_accessory/underwear + icon = 'icons/mob/underwear.dmi' + var/has_color = FALSE \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/socks.dm b/code/modules/mob/dead/new_player/sprite_accessories/socks.dm index 3384f3754b..524c1f0f13 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/socks.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/socks.dm @@ -2,135 +2,132 @@ // Socks Definitions // /////////////////////// -/datum/sprite_accessory/socks - icon = 'icons/mob/underwear.dmi' - -/datum/sprite_accessory/socks/nude +/datum/sprite_accessory/underwear/socks/nude name = "Nude" icon_state = null // please make sure they're sorted alphabetically and categorized -/datum/sprite_accessory/socks/bee_knee - name = "Knee-high (Bee)" +/datum/sprite_accessory/underwear/socks/socks_knee + name = "Knee-high" + icon_state = "socks_knee" + has_color = TRUE + +/datum/sprite_accessory/underwear/socks/bee_knee + name = "Knee-high - Bee" icon_state = "bee_knee" -/datum/sprite_accessory/socks/black_knee - name = "Knee-high (Black)" - icon_state = "black_knee" - -/datum/sprite_accessory/socks/commie_knee - name = "Knee-High (Commie)" +/datum/sprite_accessory/underwear/socks/commie_knee + name = "Knee-High - Commie" icon_state = "commie_knee" -/datum/sprite_accessory/socks/usa_knee - name = "Knee-High (Freedom)" +/datum/sprite_accessory/underwear/socks/usa_knee + name = "Knee-High - Freedom" icon_state = "assblastusa_knee" -/datum/sprite_accessory/socks/rainbow_knee - name = "Knee-high (Rainbow)" +/datum/sprite_accessory/underwear/socks/rainbow_knee + name = "Knee-high - Rainbow" icon_state = "rainbow_knee" -/datum/sprite_accessory/socks/striped_knee - name = "Knee-high (Striped)" +/datum/sprite_accessory/underwear/socks/striped_knee + name = "Knee-high - Striped" icon_state = "striped_knee" + has_color = TRUE -/datum/sprite_accessory/socks/thin_knee - name = "Knee-high (Thin)" +/datum/sprite_accessory/underwear/socks/thin_knee + name = "Knee-high - Thin" icon_state = "thin_knee" + has_color = TRUE -/datum/sprite_accessory/socks/uk_knee - name = "Knee-High (UK)" +/datum/sprite_accessory/underwear/socks/uk_knee + name = "Knee-High - UK" icon_state = "uk_knee" -/datum/sprite_accessory/socks/white_knee - name = "Knee-high (White)" - icon_state = "white_knee" +/datum/sprite_accessory/underwear/socks/socks_norm + name = "Normal" + icon_state = "socks_norm" + has_color = TRUE -/datum/sprite_accessory/socks/black_norm - name = "Normal (Black)" - icon_state = "black_norm" +/datum/sprite_accessory/underwear/socks/bee_norm + name = "Normal - Bee" + icon_state = "bee_norm" -/datum/sprite_accessory/socks/white_norm - name = "Normal (White)" - icon_state = "white_norm" - -/datum/sprite_accessory/socks/pantyhose +/datum/sprite_accessory/underwear/socks/pantyhose name = "Pantyhose" icon_state = "pantyhose" -/datum/sprite_accessory/socks/black_short - name = "Short (Black)" - icon_state = "black_short" +/datum/sprite_accessory/underwear/socks/socks_short + name = "Short" + icon_state = "socks_short" + has_color = TRUE -/datum/sprite_accessory/socks/white_short - name = "Short (White)" - icon_state = "white_short" - -/datum/sprite_accessory/socks/stockings_blue - name = "Stockings (Blue)" +/datum/sprite_accessory/underwear/socks/stockings_blue + name = "Stockings - Blue" icon_state = "stockings_blue" -/datum/sprite_accessory/socks/stockings_cyan - name = "Stockings (Cyan)" +/datum/sprite_accessory/underwear/socks/stockings_cyan + name = "Stockings - Cyan" icon_state = "stockings_cyan" -/datum/sprite_accessory/socks/stockings_dpink - name = "Stockings (Dark Pink)" +/datum/sprite_accessory/underwear/socks/stockings_dpink + name = "Stockings - Dark Pink" icon_state = "stockings_dpink" -/datum/sprite_accessory/socks/stockings_green - name = "Stockings (Green)" +/datum/sprite_accessory/underwear/socks/stockings_green + name = "Stockings - Green" icon_state = "stockings_black" -/datum/sprite_accessory/socks/stockings_orange - name = "Stockings (Orange)" +/datum/sprite_accessory/underwear/socks/stockings_orange + name = "Stockings - Orange" icon_state = "stockings_orange" -/datum/sprite_accessory/socks/stockings_programmer - name = "Stockings (Programmer)" +/datum/sprite_accessory/underwear/socks/stockings_programmer + name = "Stockings - Programmer" icon_state = "stockings_lpink" -/datum/sprite_accessory/socks/stockings_purple - name = "Stockings (Purple)" +/datum/sprite_accessory/underwear/socks/stockings_purple + name = "Stockings - Purple" icon_state = "stockings_purple" -/datum/sprite_accessory/socks/stockings_yellow - name = "Stockings (Yellow)" +/datum/sprite_accessory/underwear/socks/stockings_yellow + name = "Stockings - Yellow" icon_state = "stockings_yellow" -/datum/sprite_accessory/socks/bee_thigh - name = "Thigh-high (Bee)" +/datum/sprite_accessory/underwear/socks/socks_thigh + name = "Thigh-high" + icon_state = "socks_thigh" + has_color = TRUE + +/datum/sprite_accessory/underwear/socks/bee_thigh + name = "Thigh-high - Bee" icon_state = "bee_thigh" -/datum/sprite_accessory/socks/black_thigh - name = "Thigh-high (Black)" - icon_state = "black_thigh" - -/datum/sprite_accessory/socks/commie_thigh - name = "Thigh-high (Commie)" +/datum/sprite_accessory/underwear/socks/commie_thigh + name = "Thigh-high - Commie" icon_state = "commie_thigh" -/datum/sprite_accessory/socks/usa_thigh - name = "Thigh-high (Freedom)" +/datum/sprite_accessory/underwear/socks/usa_thigh + name = "Thigh-high - Freedom" icon_state = "assblastusa_thigh" -/datum/sprite_accessory/socks/rainbow_thigh - name = "Thigh-high (Rainbow)" +/datum/sprite_accessory/underwear/socks/fishnet + name = "Thigh-high - Fishnet" + icon_state = "fishnet" + +/datum/sprite_accessory/underwear/socks/rainbow_thigh + name = "Thigh-high - Rainbow" icon_state = "rainbow_thigh" -/datum/sprite_accessory/socks/striped_thigh - name = "Thigh-high (Striped)" +/datum/sprite_accessory/underwear/socks/striped_thigh + name = "Thigh-high - Striped" icon_state = "striped_thigh" + has_color = TRUE -/datum/sprite_accessory/socks/thin_thigh - name = "Thigh-high (Thin)" +/datum/sprite_accessory/underwear/socks/thin_thigh + name = "Thigh-high - Thin" icon_state = "thin_thigh" + has_color = TRUE -/datum/sprite_accessory/socks/uk_thigh - name = "Thigh-high (UK)" +/datum/sprite_accessory/underwear/socks/uk_thigh + name = "Thigh-high - UK" icon_state = "uk_thigh" - -/datum/sprite_accessory/socks/white_thigh - name = "Thigh-high (White)" - icon_state = "white_thigh" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm b/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm index f5af9a3849..bf63ea09d7 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm @@ -2,311 +2,288 @@ // Undershirt Definitions // //////////////////////////// -/datum/sprite_accessory/undershirt - icon = 'icons/mob/underwear.dmi' - gender = NEUTER - -/datum/sprite_accessory/undershirt/nude +/datum/sprite_accessory/underwear/top/nude name = "Nude" icon_state = null // please make sure they're sorted alphabetically and categorized -/datum/sprite_accessory/undershirt/bluejersey +/datum/sprite_accessory/underwear/top/longjon + name = "Long John Shirt" + icon_state = "ljont" + has_color = TRUE + +/datum/sprite_accessory/underwear/top/longstripe_black + name = "Longsleeve Striped Shirt - Black" + icon_state = "longstripe" + +/datum/sprite_accessory/underwear/top/longstripe_blue + name = "Longsleeve Striped Shirt - Blue" + icon_state = "longstripe_blue" + +/datum/sprite_accessory/underwear/top/shirt + name = "Shirt" + icon_state = "undershirt" + has_color = TRUE + +/datum/sprite_accessory/underwear/top/bowlingw + name = "Shirt - Bowling" + icon_state = "bowlingw" + has_color = TRUE + +/datum/sprite_accessory/underwear/top/bowling + name = "Shirt, Bowling - Red" + icon_state = "bowling" + +/datum/sprite_accessory/underwear/top/bowlingp + name = "Shirt, Bowling - Pink" + icon_state = "bowlingp" + +/datum/sprite_accessory/underwear/top/bowlinga + name = "Shirt, Bowling - Aqua" + icon_state = "bowlinga" + +/datum/sprite_accessory/underwear/top/bluejersey name = "Shirt, Jersey - Blue" icon_state = "shirt_bluejersey" -/datum/sprite_accessory/undershirt/redjersey +/datum/sprite_accessory/underwear/top/redjersey name = "Shirt, Jersey - Red" icon_state = "shirt_redjersey" -/datum/sprite_accessory/undershirt/bluepolo - name = "Shirt, Polo - Blue" - icon_state = "bluepolo" +/datum/sprite_accessory/underwear/top/polo + name = "Shirt - Polo" + icon_state = "polo" + has_color = TRUE -/datum/sprite_accessory/undershirt/grayyellowpolo - name = "Shirt, Polo - Gray, Yellow" - icon_state = "grayyellowpolo" - -/datum/sprite_accessory/undershirt/redpolo - name = "Shirt, Polo - Red" - icon_state = "redpolo" - -/datum/sprite_accessory/undershirt/whitepolo - name = "Shirt, Polo - White" - icon_state = "whitepolo" - -/datum/sprite_accessory/undershirt/alienshirt +/datum/sprite_accessory/underwear/top/alienshirt name = "Shirt - Alien" icon_state = "shirt_alien" -/datum/sprite_accessory/undershirt/mondmondjaja +/datum/sprite_accessory/underwear/top/mondmondjaja name = "Shirt - Band" icon_state = "band" -/datum/sprite_accessory/undershirt/shirt_black - name = "Shirt - Black" - icon_state = "shirt_black" +/datum/sprite_accessory/underwear/top/shirt_bee + name = "Shirt - Bee" + icon_state = "bee_shirt" -/datum/sprite_accessory/undershirt/blueshirt - name = "Shirt - Blue" - icon_state = "shirt_blue" - -/datum/sprite_accessory/undershirt/clownshirt +/datum/sprite_accessory/underwear/top/clownshirt name = "Shirt - Clown" icon_state = "shirt_clown" -/datum/sprite_accessory/undershirt/commie +/datum/sprite_accessory/underwear/top/commie name = "Shirt - Commie" icon_state = "shirt_commie" -/datum/sprite_accessory/undershirt/greenshirt - name = "Shirt - Green" - icon_state = "shirt_green" - -/datum/sprite_accessory/undershirt/shirt_grey - name = "Shirt - Grey" - icon_state = "shirt_grey" - -/datum/sprite_accessory/undershirt/ian +/datum/sprite_accessory/underwear/top/ian name = "Shirt - Ian" icon_state = "ian" -/datum/sprite_accessory/undershirt/ilovent +/datum/sprite_accessory/underwear/top/ilovent name = "Shirt - I Love NT" icon_state = "ilovent" -/datum/sprite_accessory/undershirt/lover +/datum/sprite_accessory/underwear/top/lover name = "Shirt - Lover" icon_state = "lover" -/datum/sprite_accessory/undershirt/matroska +/datum/sprite_accessory/underwear/top/matroska name = "Shirt - Matroska" icon_state = "matroska" -/datum/sprite_accessory/undershirt/meat +/datum/sprite_accessory/underwear/top/meat name = "Shirt - Meat" icon_state = "shirt_meat" -/datum/sprite_accessory/undershirt/nano +/datum/sprite_accessory/underwear/top/nano name = "Shirt - Nanotrasen" icon_state = "shirt_nano" -/datum/sprite_accessory/undershirt/peace +/datum/sprite_accessory/underwear/top/peace name = "Shirt - Peace" icon_state = "peace" -/datum/sprite_accessory/undershirt/pacman +/datum/sprite_accessory/underwear/top/pacman name = "Shirt - Pogoman" icon_state = "pogoman" -/datum/sprite_accessory/undershirt/question +/datum/sprite_accessory/underwear/top/question name = "Shirt - Question" icon_state = "shirt_question" -/datum/sprite_accessory/undershirt/redshirt - name = "Shirt - Red" - icon_state = "shirt_red" - -/datum/sprite_accessory/undershirt/skull +/datum/sprite_accessory/underwear/top/skull name = "Shirt - Skull" icon_state = "shirt_skull" -/datum/sprite_accessory/undershirt/ss13 +/datum/sprite_accessory/underwear/top/ss13 name = "Shirt - SS13" icon_state = "shirt_ss13" + has_color = TRUE -/datum/sprite_accessory/undershirt/stripe +/datum/sprite_accessory/underwear/top/stripe name = "Shirt - Striped" icon_state = "shirt_stripes" -/datum/sprite_accessory/undershirt/tiedye +/datum/sprite_accessory/underwear/top/tiedye name = "Shirt - Tie-dye" icon_state = "shirt_tiedye" -/datum/sprite_accessory/undershirt/uk +/datum/sprite_accessory/underwear/top/uk name = "Shirt - UK" icon_state = "uk" -/datum/sprite_accessory/undershirt/usa +/datum/sprite_accessory/underwear/top/usa name = "Shirt - USA" icon_state = "shirt_assblastusa" -/datum/sprite_accessory/undershirt/shirt_white - name = "Shirt - White" - icon_state = "shirt_white" +/datum/sprite_accessory/underwear/top/shortsleeve + name = "Shirt - Short Sleeved" + icon_state = "shortsleeve" + has_color = TRUE -/datum/sprite_accessory/undershirt/blackshortsleeve - name = "Shirt, Short Sleeved - Black" - icon_state = "blackshortsleeve" - -/datum/sprite_accessory/undershirt/blueshortsleeve - name = "Shirt, Short Sleeved - Blue" - icon_state = "blueshortsleeve" - -/datum/sprite_accessory/undershirt/greenshortsleeve - name = "Shirt, Short Sleeved - Green" - icon_state = "greenshortsleeve" - -/datum/sprite_accessory/undershirt/purpleshortsleeve - name = "Shirt, Short Sleeved - Purple" - icon_state = "purpleshortsleeve" - -/datum/sprite_accessory/undershirt/whiteshortsleeve - name = "Shirt, Short Sleeved - White" - icon_state = "whiteshortsleeve" - -/datum/sprite_accessory/undershirt/blueshirtsport +/datum/sprite_accessory/underwear/top/blueshirtsport name = "Shirt, Sports - Blue" icon_state = "blueshirtsport" - gender = NEUTER -/datum/sprite_accessory/undershirt/greenshirtsport +/datum/sprite_accessory/underwear/top/greenshirtsport name = "Shirt, Sports - Green" icon_state = "greenshirtsport" - gender = NEUTER -/datum/sprite_accessory/undershirt/redshirtsport +/datum/sprite_accessory/underwear/top/redshirtsport name = "Shirt, Sports - Red" icon_state = "redshirtsport" - gender = NEUTER -/datum/sprite_accessory/undershirt/redtop - name = "Shirt, Short - Red" - icon_state = "redtop" - -/datum/sprite_accessory/undershirt/whitetop - name = "Shirt, Short - White" - icon_state = "whitetop" - -/datum/sprite_accessory/undershirt/tshirt_blue - name = "T-Shirt - Blue" - icon_state = "blueshirt" - -/datum/sprite_accessory/undershirt/tshirt_green - name = "T-Shirt - Green" - icon_state = "greenshirt" - -/datum/sprite_accessory/undershirt/tshirt_red - name = "T-Shirt - Red" - icon_state = "redshirt" - -/datum/sprite_accessory/undershirt/yellowshirt - name = "T-Shirt - Yellow" - icon_state = "yellowshirt" - -/datum/sprite_accessory/undershirt/tank_black - name = "Tank Top - Black" - icon_state = "tank_black" - -/datum/sprite_accessory/undershirt/tankfire +/datum/sprite_accessory/underwear/top/tankfire name = "Tank Top - Fire" icon_state = "tank_fire" -/datum/sprite_accessory/undershirt/tank_grey - name = "Tank Top - Grey" - icon_state = "tank_grey" +/datum/sprite_accessory/underwear/top/tanktop + name = "Tank Top" + icon_state = "tanktop" + has_color = TRUE -/datum/sprite_accessory/undershirt/female_midriff +/datum/sprite_accessory/underwear/top/tanktop_alt + name = "Tank Top - Alt" + icon_state = "tanktop_alt" + has_color = TRUE + +/datum/sprite_accessory/underwear/top/tanktop_midriff name = "Tank Top - Midriff" icon_state = "tank_midriff" + has_color = TRUE -/datum/sprite_accessory/undershirt/tank_red - name = "Tank Top - Red" - icon_state = "tank_red" +/datum/sprite_accessory/underwear/top/tanktop_midriff_alt + name = "Tank Top - Midriff Halterneck" + icon_state = "tank_midriff_alt" + has_color = TRUE -/datum/sprite_accessory/undershirt/tankstripe +/datum/sprite_accessory/underwear/top/tankstripe name = "Tank Top - Striped" icon_state = "tank_stripes" -/datum/sprite_accessory/undershirt/tank_white - name = "Tank Top - White" - icon_state = "tank_white" +/datum/sprite_accessory/underwear/top/tank_top_sun + name = "Tank top - Sun" + icon_state = "tank_sun" -/datum/sprite_accessory/undershirt/female_red - name = "Bra - Red" - icon_state = "bra_red" +/datum/sprite_accessory/underwear/top/babydoll + name = "Baby-Doll" + icon_state = "babydoll" + has_color = TRUE -/datum/sprite_accessory/undershirt/female_pink - name = "Bra - Pink" - icon_state = "bra_pink" +/datum/sprite_accessory/underwear/top/bra + name = "Bra" + icon_state = "bra" + has_color = TRUE -/datum/sprite_accessory/undershirt/female_kinky +/datum/sprite_accessory/underwear/top/bra_alt + name = "Bra - Alt" + icon_state = "bra_alt" + has_color = TRUE + +/datum/sprite_accessory/underwear/top/bra_thin + name = "Bra - Thin" + icon_state = "bra_thin" + has_color = TRUE + +/datum/sprite_accessory/underwear/top/bra_kinky name = "Bra - Kinky Black" icon_state = "bra_kinky" -/datum/sprite_accessory/undershirt/female_green - name = "Bra - Green" - icon_state = "bra_green" - -/datum/sprite_accessory/undershirt/female_commie +/datum/sprite_accessory/underwear/top/bra_freedom name = "Bra - Freedom" icon_state = "bra_assblastusa" -/datum/sprite_accessory/undershirt/female_commie +/datum/sprite_accessory/underwear/top/bra_commie name = "Bra - Commie" icon_state = "bra_commie" -/datum/sprite_accessory/undershirt/female_babyblue - name = "Bra - Baby Blue" - icon_state = "bra_babyblue" - -/datum/sprite_accessory/undershirt/female_beekini +/datum/sprite_accessory/underwear/top/bra_beekini name = "Bra - Bee-kini" icon_state = "bra_bee-kini" -/datum/sprite_accessory/undershirt/female_black - name = "Bra - Black" - icon_state = "bra_black" - -/datum/sprite_accessory/undershirt/female_uk +/datum/sprite_accessory/underwear/top/bra_uk name = "Bra - UK" icon_state = "bra_uk" -/datum/sprite_accessory/undershirt/female_white - name = "Bra - White" - icon_state = "bra_white" +/datum/sprite_accessory/underwear/top/bra_neko + name = "Bra - Neko" + icon_state = "bra_neko" + has_color = TRUE -/datum/sprite_accessory/undershirt/female_white_neko - name = "Bra, Neko - white" - icon_state = "bra_neko_white" +/datum/sprite_accessory/underwear/top/halterneck_bra + name = "Bra - Halterneck" + icon_state = "halterneck_bra" + has_color = TRUE -/datum/sprite_accessory/undershirt/female_black_neko - name = "Bra, Neko - Black" - icon_state = "bra_neko_black" - -/datum/sprite_accessory/undershirt/female_blackalt - name = "Bra, Sports - Black" - icon_state = "bra_sports_black" - -/datum/sprite_accessory/undershirt/sports_bra - name = "Bra, Sports 1 - White" +/datum/sprite_accessory/underwear/top/sports_bra + name = "Bra, Sports" icon_state = "sports_bra" + has_color = TRUE -/datum/sprite_accessory/undershirt/female_whitealt - name = "Bra, Sports 2 - White" - icon_state = "bra_sports_white" - -/datum/sprite_accessory/undershirt/sports_bra2 - name = "Bra, Sports 3 - White" +/datum/sprite_accessory/underwear/top/sports_bra_alt + name = "Bra, Sports - Alt" icon_state = "sports_bra_alt" + has_color = TRUE -/datum/sprite_accessory/undershirt/female_yellow - name = "Bra - Yellow" - icon_state = "bra_yellow" +/datum/sprite_accessory/underwear/top/bra_strapless + name = "Bra, Strapless" + icon_state = "bra_strapless" + has_color = TRUE -/datum/sprite_accessory/undershirt/female_thong - name = "Bra, Strapless - Pink" - icon_state = "bra_strapless_pink" - -/datum/sprite_accessory/undershirt/female_blue - name = "Bra, Strapless - Blue" +/datum/sprite_accessory/underwear/top/bra_strapless_alt + name = "Bra, Strapless - Alt" icon_state = "bra_blue" + has_color = TRUE -/datum/sprite_accessory/undershirt/swimsuit_green - name = "Swimsuit, Top - Green" - icon_state = "bra_swimming_green" +/datum/sprite_accessory/underwear/top/striped_bra + name = "Bra - Striped" + icon_state = "striped_bra" + has_color = TRUE -/datum/sprite_accessory/undershirt/swimsuit_purple - name = "Swimsuit, Top - Purple" - icon_state = "bra_swimming_purple" \ No newline at end of file +/datum/sprite_accessory/underwear/top/fishnet_sleeves + name = "Fishnet - sleeves" + icon_state = "fishnet_sleeves" + +/datum/sprite_accessory/underwear/top/fishnet_gloves + name = "Fishnet - gloves" + icon_state = "fishnet_gloves" + +/datum/sprite_accessory/underwear/top/fishnet_base + name = "Fishnet - top" + icon_state = "fishnet_body" + +/datum/sprite_accessory/underwear/top/swimsuit + name = "Swimsuit Top" + icon_state = "bra_swimming" + has_color = TRUE + +/datum/sprite_accessory/underwear/top/swimsuit_alt + name = "Swimsuit Top - Strapless" + icon_state = "bra_swimming_alt" + has_color = TRUE + +/datum/sprite_accessory/underwear/top/tubetop + name = "Tube Top" + icon_state = "tubetop" + has_color = TRUE \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm b/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm index e7179eeb87..611547ad4e 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm @@ -1,174 +1,144 @@ /////////////////////////// // Underwear Definitions // /////////////////////////// -/datum/sprite_accessory/underwear - icon = 'icons/mob/underwear.dmi' - gender = NEUTER -/datum/sprite_accessory/underwear/nude +/datum/sprite_accessory/underwear/bottom/nude name = "Nude" icon_state = null -/datum/sprite_accessory/underwear/mankini - name = "Mankini - Green" - icon_state = "mankini_green" +/datum/sprite_accessory/underwear/bottom/mankini + name = "Mankini" + icon_state = "mankini" + has_color = TRUE -/datum/sprite_accessory/underwear/male_kinky - name = "Jockstrap - White" - icon_state = "jockstrap_white" +/datum/sprite_accessory/underwear/bottom/male_kinky + name = "Jockstrap" + icon_state = "jockstrap" + has_color = TRUE -/datum/sprite_accessory/underwear/male_white - name = "Briefs - White" - icon_state = "briefs_white" +/datum/sprite_accessory/underwear/bottom/briefs + name = "Briefs" + icon_state = "briefs" + has_color = TRUE -/datum/sprite_accessory/underwear/male_black - name = "Briefs - Black" - icon_state = "briefs_black" +/datum/sprite_accessory/underwear/bottom/boxers + name = "Boxers" + icon_state = "boxers" + has_color = TRUE -/datum/sprite_accessory/underwear/male_grey - name = "Briefs - Grey" - icon_state = "briefs_grey" +/datum/sprite_accessory/underwear/bottom/male_bee + name = "Boxers - Bee" + icon_state = "bee_shorts" -/datum/sprite_accessory/underwear/male_red - name = "Briefs - Red" - icon_state = "briefs_red" - -/datum/sprite_accessory/underwear/male_green - name = "Briefs - Green" - icon_state = "briefs_green" - -/datum/sprite_accessory/underwear/male_blue - name = "Briefs - Blue" - icon_state = "briefs_blue" - -/datum/sprite_accessory/underwear/male_blackalt - name = "Boxers - Black" - icon_state = "boxers_black" - -/datum/sprite_accessory/underwear/male_greyalt - name = "Boxers - Grey" - icon_state = "boxers_grey" - -/datum/sprite_accessory/underwear/male_hearts +/datum/sprite_accessory/underwear/bottom/male_hearts name = "Boxers - Heart" icon_state = "boxers_heart" -/datum/sprite_accessory/underwear/male_stripe +/datum/sprite_accessory/underwear/bottom/male_stripe name = "Boxers - Striped" icon_state = "boxers_striped" -/datum/sprite_accessory/underwear/male_commie +/datum/sprite_accessory/underwear/bottom/male_commie name = "Boxers - Striped Communist" icon_state = "boxers_commie" -/datum/sprite_accessory/underwear/male_usastripe +/datum/sprite_accessory/underwear/bottom/male_usastripe name = "Boxers - Striped Freedom" icon_state = "boxers_assblastusa" -/datum/sprite_accessory/underwear/male_uk +/datum/sprite_accessory/underwear/bottom/male_uk name = "Boxers - Striped UK" icon_state = "boxers_uk" +/datum/sprite_accessory/underwear/bottom/boxer_briefs + name = "Boxer Briefs" + icon_state = "boxer_briefs" + has_color = TRUE -/datum/sprite_accessory/underwear/female_whitealt - name = "Boxer Briefs - White" - icon_state = "boxer_briefs_white" +/datum/sprite_accessory/underwear/bottom/panties + name = "Panties" + icon_state = "panties" + has_color = TRUE -/datum/sprite_accessory/underwear/female_blackalt - name = "Boxer Briefs - Black" - icon_state = "boxer_briefs_black" +/datum/sprite_accessory/underwear/bottom/panties_alt + name = "Panties - Alt" + icon_state = "panties_alt" + has_color = TRUE -/datum/sprite_accessory/underwear/female_pink - name = "Boxer Briefs - Pink" - icon_state = "boxer_briefs_pink" +/datum/sprite_accessory/underwear/bottom/fishnet_lower + name = "Panties - Fishnet" + icon_state = "fishnet_lower" -/datum/sprite_accessory/underwear/female_babyblue - name = "Boxer Briefs - Baby Blue" - icon_state = "boxer_briefs_babyblue" - -/datum/sprite_accessory/underwear/female_yellow - name = "Boxer Briefs - Yellow" - icon_state = "boxer_briefs_yellow" - -/datum/sprite_accessory/underwear/female_beekini +/datum/sprite_accessory/underwear/bottom/female_beekini name = "Panties - Bee-kini" icon_state = "panties_bee-kini" -/datum/sprite_accessory/underwear/female_black - name = "Panties - Black" - icon_state = "panties_black" - -/datum/sprite_accessory/underwear/female_blue - name = "Panties - Blue" - icon_state = "panties_blue" - -/datum/sprite_accessory/underwear/female_commie +/datum/sprite_accessory/underwear/bottom/female_commie name = "Panties - Commie" icon_state = "panties_commie" -/datum/sprite_accessory/underwear/female_usastripe +/datum/sprite_accessory/underwear/bottom/female_usastripe name = "Panties - Freedom" icon_state = "panties_assblastusa" -/datum/sprite_accessory/underwear/female_green - name = "Panties - Green" - icon_state = "panties_green" - -/datum/sprite_accessory/underwear/female_kinky +/datum/sprite_accessory/underwear/bottom/female_kinky name = "Panties - Kinky Black" icon_state = "panties_kinky" -/datum/sprite_accessory/underwear/female_red - name = "Panties - Red" - icon_state = "panties_red" - -/datum/sprite_accessory/underwear/female_uk +/datum/sprite_accessory/underwear/bottom/panties_uk name = "Panties - UK" icon_state = "panties_uk" -/datum/sprite_accessory/underwear/female_white - name = "Panties - White" - icon_state = "panties_white" +/datum/sprite_accessory/underwear/bottom/panties_neko + name = "Panties - Neko" + icon_state = "panties_neko" + has_color = TRUE -/datum/sprite_accessory/underwear/female_white_neko - name = "Panties, Neko - White" - icon_state = "panties_neko_white" +/datum/sprite_accessory/underwear/bottom/panties_slim + name = "Panties - Slim" + icon_state = "panties_slim" + has_color = TRUE -/datum/sprite_accessory/underwear/female_black_neko - name = "Panties, Neko - Black" - icon_state = "panties_neko_black" +/datum/sprite_accessory/underwear/bottom/striped_panties + name = "Panties - Striped" + icon_state = "striped_panties" + has_color = TRUE +/datum/sprite_accessory/underwear/bottom/panties_swimsuit + name = "Panties - Swimsuit" + icon_state = "panties_swimming" + has_color = TRUE -/datum/sprite_accessory/underwear/swimsuit_red +/datum/sprite_accessory/underwear/bottom/panties_thin + name = "Panties - Thin" + icon_state = "panties_thin" + has_color = TRUE + +/datum/sprite_accessory/underwear/bottom/longjon + name = "Long John Bottoms" + icon_state = "ljonb" + has_color = TRUE + +/datum/sprite_accessory/underwear/bottom/swimsuit_red name = "Swimsuit, One Piece - Red" icon_state = "swimming_red" -/datum/sprite_accessory/underwear/swimsuit +/datum/sprite_accessory/underwear/bottom/swimsuit name = "Swimsuit, One Piece - Black" icon_state = "swimming_black" -/datum/sprite_accessory/underwear/swimsuit_blue +/datum/sprite_accessory/underwear/bottom/swimsuit_blue name = "Swimsuit, One Piece - Striped Blue" icon_state = "swimming_blue" -/datum/sprite_accessory/underwear/swimsuit_green - name = "Swimsuit, Bottom - Green" - icon_state = "panties_swimming_green" +/datum/sprite_accessory/underwear/bottom/thong + name = "Thong" + icon_state = "thong" + has_color = TRUE -/datum/sprite_accessory/underwear/swimsuit_purple - name = "Swimsuit, Bottom - Purple" - icon_state = "panties_swimming_purple" - -/datum/sprite_accessory/underwear/female_thong_black - name = "Thong - Black" - icon_state = "thong_black" - -/datum/sprite_accessory/underwear/female_thong - name = "Thong - Pink" - icon_state = "thong_pink" - -/datum/sprite_accessory/underwear/female_babydoll - name = "Babydoll - Black" - icon_state = "babydoll" +/datum/sprite_accessory/underwear/bottom/thong_babydoll + name = "Thong - Alt" + icon_state = "thong_babydoll" + has_color = TRUE diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index de976da40f..c9d59b84f2 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -25,8 +25,11 @@ var/age = 30 //Player's age var/underwear = "Nude" //Which underwear the player wants + var/undie_color = "#FFFFFF" var/undershirt = "Nude" //Which undershirt the player wants + var/shirt_color = "#FFFFFF" var/socks = "Nude" //Which socks the player wants + var/socks_color = "#FFFFFF" var/backbag = DBACKPACK //Which backpack type the player has chosen. //Equipment slots diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index fabffaab60..1b61ddc53b 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -495,34 +495,42 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(H.hidden_underwear) H.underwear = "Nude" else - H.underwear = H.saved_underwear - var/datum/sprite_accessory/underwear/underwear = GLOB.underwear_list[H.underwear] - if(underwear) - standing += mutable_appearance(underwear.icon, underwear.icon_state, -BODY_LAYER) + H.saved_underwear = H.underwear + var/datum/sprite_accessory/underwear/bottom/B = GLOB.underwear_list[H.underwear] + if(B) + var/mutable_appearance/MA = mutable_appearance(B.icon, B.icon_state, -BODY_LAYER) + if(UNDIE_COLORABLE(B)) + MA.color = H.undie_color + standing += MA if(H.undershirt) if(H.hidden_undershirt) H.undershirt = "Nude" else - H.undershirt = H.saved_undershirt - var/datum/sprite_accessory/undershirt/undershirt = GLOB.undershirt_list[H.undershirt] - if(undershirt) - if(H.dna.species.sexes && H.gender == FEMALE) - standing += wear_female_version(undershirt.icon_state, undershirt.icon, BODY_LAYER) - else - standing += mutable_appearance(undershirt.icon, undershirt.icon_state, -BODY_LAYER) + H.saved_undershirt = H.undershirt + var/datum/sprite_accessory/underwear/top/T = GLOB.undershirt_list[H.undershirt] + if(T) + var/mutable_appearance/MA + if(H.dna.species.sexes && H.gender == FEMALE) + MA = wear_female_version(T.icon_state, T.icon, BODY_LAYER) + else + MA = mutable_appearance(T.icon, T.icon_state, -BODY_LAYER) + if(UNDIE_COLORABLE(T)) + MA.color = H.shirt_color + standing += MA if(H.socks && H.get_num_legs(FALSE) >= 2) if(H.hidden_socks) H.socks = "Nude" else - H.socks = H.saved_socks - var/datum/sprite_accessory/socks/socks = GLOB.socks_list[H.socks] - if(socks) - if(DIGITIGRADE in species_traits) - standing += mutable_appearance(socks.icon, socks.icon_state + "_d", -BODY_LAYER) - else - standing += mutable_appearance(socks.icon, socks.icon_state, -BODY_LAYER) + H.saved_socks = H.socks + var/datum/sprite_accessory/underwear/socks/S = GLOB.socks_list[H.socks] + if(S) + var/digilegs = (DIGITIGRADE in species_traits) ? "_d" : "" + var/mutable_appearance/MA = mutable_appearance(S.icon, "[S.icon_state][digilegs]", -BODY_LAYER) + if(UNDIE_COLORABLE(S)) + MA.color = H.socks_color + standing += MA if(standing.len) H.overlays_standing[BODY_LAYER] = standing diff --git a/icons/mob/underwear.dmi b/icons/mob/underwear.dmi index 5e6725cec7..3174397b54 100644 Binary files a/icons/mob/underwear.dmi and b/icons/mob/underwear.dmi differ
" dat += "

Clothing & Equipment

" dat += "Underwear:[underwear]" + if(UNDIE_COLORABLE(GLOB.underwear_list[underwear])) + dat += "Underwear Color:[undie_color]" dat += "Undershirt:[undershirt]" + if(UNDIE_COLORABLE(GLOB.undershirt_list[undershirt])) + dat += "Undershirt Color:[shirt_color]" dat += "Socks:[socks]" + if(UNDIE_COLORABLE(GLOB.socks_list[socks])) + dat += "Socks Color:[socks_color]" dat += "Backpack:[backbag]" dat += "Uplink Location:[uplink_spawn_loc]" dat += "