diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index 863f33177e..8713510fca 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -49,7 +49,25 @@ var/global/list/skin_styles_female_list = list() //unused var/global/list/underwear_m = list("White" = "m1", "Grey" = "m2", "Green" = "m3", "Blue" = "m4", "Black" = "m5", "Mankini" = "m6", "None") //Curse whoever made male/female underwear diffrent colours var/global/list/underwear_f = list("Red" = "f1", "White" = "f2", "Yellow" = "f3", "Blue" = "f4", "Black" = "f5", "Thong" = "f6", "Black Sports" = "f7","White Sports" = "f8","None") //undershirt -var/global/list/undershirt_t = list("White Tank top" = "u1", "Black Tank top" = "u2", "Black shirt" = "u3", "White shirt" = "u4", "None") +var/global/list/undershirt_t = list( + "White tank top" = "u1", "Black tank top" = "u2", "Black shirt" = "u3", + "White shirt" = "u4", "White shirt 2" = "shirt_white_s", "White tank top 2" = "tank_white_s", + "Black shirt 2" = "shirt_black_s", "Grey shirt" = "shirt_grey_s", "Heart shirt" = "lover_s", + "I love NT shirt" = "ilovent_s", "White shortsleeve shirt" = "whiteshortsleeve_s", "Purple shirtsleeve shirt" = "purpleshortsleeve_s", + "Blue shortsleeve shirt" = "blueshortsleeve_s", "Green shortsleeve shirt" = "greenshortsleeve_s", "Black shortsleeve shirt" = "blackshortsleeve_s", + "Blue shirt" = "blueshirt_s", "Red shirt" = "redshirt_s", "Yellow shirt" = "yellowshirt_s", "Green shirt" = "greenshirt_s", + "Blue polo shirt" = "bluepolo_s", "Red polo shirt" = "redpolo_s", "White polo shirt" = "whitepolo_s", + "Grey-yellow polo shirt" = "grayyellowpolo_s", "Fire tank top" = "tank_fire_s", "NT shirt" = "shirt_nano_s", + "Blue shirt 2" = "shirt_blue_s", "Red shirt 2" = "shirt_red_s", "Red tank top" = "tank_red_s", "Green shirt 2" = "shirt_green_s", + "Tiedye shirt" = "shirt_tiedye_s", "Green sport shirt" = "greenshirtsport_s", "Red sport shirt" = "redshirtsport_s", + "Blue sport shirt" = "blueshirtsport_s", "None") + //Socks +var/global/list/socks_t = list( + "White normal" = "white_norm", "White short" = "white_short", "White knee" = "white_knee", + "White thigh" = "white_thigh", "Black normal" = "black_norm", "Black short" = "black_short", + "Black knee" = "black_knee", "Black thigh" = "black_thigh", "Thin knee" = "thin_knee", + "Thin thigh" = "thin_thigh", "Pantyhose" = "pantyhose", "None") + //Backpacks var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt") var/global/list/exclude_jobs = list(/datum/job/ai,/datum/job/cyborg) diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 20fa98bec7..ab5d0f6a12 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -393,6 +393,7 @@ h_style = pick("Bedhead", "Bedhead 2", "Bedhead 3") undershirt = null underwear = null + socks = null regenerate_icons() /obj/screen/ling diff --git a/code/game/objects/structures/under_wardrobe.dm b/code/game/objects/structures/under_wardrobe.dm index edc3962cdf..1624acce68 100644 --- a/code/game/objects/structures/under_wardrobe.dm +++ b/code/game/objects/structures/under_wardrobe.dm @@ -21,12 +21,16 @@ selection = underwear_f if("Undershirts") selection = undershirt_t + if("Socks") + selection = socks_t var/pick = input("Select the style") as null|anything in selection if(pick) if(get_dist(src,user) > 1) return if(utype == "Undershirts") H.undershirt = undershirt_t[pick] + else if(utype == "Socks") + H.socks = socks_t[pick] else H.underwear = selection[pick] H.update_body(1) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index dd0ea5cc2f..c6a91faf86 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -57,6 +57,7 @@ datum/preferences var/b_type = "A+" //blood type (not-chooseable) var/underwear //underwear type var/undershirt //undershirt type + var/socks //socks type var/backbag = 2 //backpack type var/h_style = "Bald" //Hair type var/r_hair = 0 //Hair color @@ -413,6 +414,8 @@ datum/preferences dat += "Undershirt: [get_key_by_value(undershirt_t,undershirt)]
" + dat += "Socks: [get_key_by_value(socks_t,socks)]
" + dat += "Backpack Type:
[backbaglist[backbag]]
" dat += "[company_name] Relation:
[nanotrasen_relation]
" @@ -1239,6 +1242,10 @@ datum/preferences var/r = pick(undershirt_t) undershirt = undershirt_t[r] ShowChoices(user) + if("socks") + var/r = pick(socks_t) + socks = socks_t[r] + ShowChoices(user) if("eyes") r_eyes = rand(0,255) g_eyes = rand(0,255) @@ -1397,6 +1404,15 @@ datum/preferences undershirt = undershirt_options[new_undershirt] ShowChoices(user) + if("socks") + var/list/socks_options + socks_options = socks_t + + var/new_socks = input(user, "Choose your character's socks:", "Character Preference") as null|anything in socks_options + if (new_socks) + socks = socks_options[new_socks] + ShowChoices(user) + if("eyes") var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference", rgb(r_eyes, g_eyes, b_eyes)) as color|null if(new_eyes) @@ -1771,6 +1787,8 @@ datum/preferences character.undershirt = undershirt + character.socks = socks + if(backbag > 4 || backbag < 1) backbag = 1 //Same as above character.backbag = backbag diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index cc721a62ee..36783b798c 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -152,6 +152,7 @@ S["eyes_blue"] >> b_eyes S["underwear"] >> underwear S["undershirt"] >> undershirt + S["socks"] >> socks S["backbag"] >> backbag S["b_type"] >> b_type @@ -224,6 +225,10 @@ if(isnum(undershirt)) undershirt = undershirt_t[undershirt_t[undershirt]] + if(isnum(socks)) + socks = socks_t[socks_t[socks]] + + if(isnull(language)) language = "None" if(isnull(alternate_languages)) alternate_languages = list() if(isnull(spawnpoint)) spawnpoint = "Arrivals Shuttle" if(isnull(nanotrasen_relation)) nanotrasen_relation = initial(nanotrasen_relation) @@ -308,6 +313,7 @@ S["eyes_blue"] << b_eyes S["underwear"] << underwear S["undershirt"] << undershirt + S["socks"] << socks S["backbag"] << backbag S["b_type"] << b_type S["spawnpoint"] << spawnpoint diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 36630f2382..0ff79e2aa2 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -34,6 +34,7 @@ var/underwear = 1 //Which underwear the player wants var/undershirt = 0 //Which undershirt the player wants. + var/socks = 0 //Which socks the player wants. var/backbag = 2 //Which backpack type the player has chosen. Nothing, Satchel or Backpack. // General information diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 6fb02ee4d5..e634f5224b 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -337,6 +337,9 @@ var/global/list/damage_icon_parts = list() if(undershirt && species.appearance_flags & HAS_UNDERWEAR) stand_icon.Blend(new /icon('icons/mob/human.dmi', undershirt), ICON_OVERLAY) + if(socks && species.flags & HAS_UNDERWEAR) + stand_icon.Blend(new /icon('icons/mob/human.dmi', socks), ICON_OVERLAY) + if(update_icons) update_icons() diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 00b6a3b8e4..34546662c3 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -15,6 +15,7 @@ datum/preferences randomize_skin_color() underwear = rand(1,underwear_m.len) undershirt = rand(1,undershirt_t.len) + socks = rand(1,socks_t.len) backbag = 2 age = rand(AGE_MIN,AGE_MAX) if(H) @@ -248,6 +249,10 @@ datum/preferences if(undershirt && current_species.flags & HAS_UNDERWEAR) undershirt_s = new/icon("icon" = 'icons/mob/human.dmi', "icon_state" = undershirt) + var/icon/socks_s = null + if(socks && current_species.flags & HAS_UNDERWEAR) + socks_s = new/icon("icon" = 'icons/mob/human.dmi', "icon_state" = socks) + var/icon/clothes_s = null if(job_civilian_low & ASSISTANT)//This gives the preview icon clothes depending on which job(if any) is set to 'high' clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s") @@ -685,6 +690,8 @@ datum/preferences preview_icon.Blend(underwear_s, ICON_OVERLAY) if(undershirt_s) preview_icon.Blend(undershirt_s, ICON_OVERLAY) + if(socks_s) + preview_icon.Blend(socks_s, ICON_OVERLAY) if(clothes_s) preview_icon.Blend(clothes_s, ICON_OVERLAY) preview_icon_front = new(preview_icon, dir = SOUTH) @@ -693,4 +700,5 @@ datum/preferences qdel(eyes_s) qdel(underwear_s) qdel(undershirt_s) + qdel(socks_s) qdel(clothes_s) diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi index 27256f307e..86d77ba620 100644 Binary files a/icons/mob/human.dmi and b/icons/mob/human.dmi differ