diff --git a/code/modules/mob/living/carbon/human/species/vox.dm b/code/modules/mob/living/carbon/human/species/vox.dm index 436c3d32b3b..f8485e8f9e9 100644 --- a/code/modules/mob/living/carbon/human/species/vox.dm +++ b/code/modules/mob/living/carbon/human/species/vox.dm @@ -31,7 +31,7 @@ eyes = "vox_eyes_s" species_traits = list(NO_SCAN, IS_WHITELISTED, NOTRANSSTING) - clothing_flags = HAS_SOCKS + clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS //Species-fitted 'em all. dietflags = DIET_OMNI bodyflags = HAS_ICON_SKIN_TONE | HAS_TAIL | TAIL_WAGGING | TAIL_OVERLAPPED | HAS_BODY_MARKINGS | HAS_TAIL_MARKINGS @@ -173,9 +173,9 @@ eyes = "blank_eyes" species_traits = list(NO_SCAN, NO_BLOOD, NO_PAIN, IS_WHITELISTED) - dies_at_threshold = TRUE + clothing_flags = 0 //IDK if you've ever seen underwear on an Armalis, but it ain't pretty. bodyflags = HAS_TAIL - dietflags = DIET_OMNI //should inherit this from vox, this is here just in case + dies_at_threshold = TRUE blood_color = "#2299FC" flesh_color = "#808D11" diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index ff93cd54b80..f88d031c8d7 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -253,18 +253,21 @@ var/global/list/damage_icon_parts = list() var/icon/underwear_standing = new /icon('icons/mob/underwear.dmi', "nude") if(underwear && dna.species.clothing_flags & HAS_UNDERWEAR) var/datum/sprite_accessory/underwear/U = GLOB.underwear_list[underwear] + var/u_icon = U.sprite_sheets && (dna.species.name in U.sprite_sheets) ? U.sprite_sheets[dna.species.name] : U.icon //Species-fit the undergarment. if(U) - underwear_standing.Blend(new /icon(U.icon, "uw_[U.icon_state]_s"), ICON_OVERLAY) + underwear_standing.Blend(new /icon(u_icon, "uw_[U.icon_state]_s"), ICON_OVERLAY) if(undershirt && dna.species.clothing_flags & HAS_UNDERSHIRT) var/datum/sprite_accessory/undershirt/U2 = GLOB.undershirt_list[undershirt] + var/u2_icon = U2.sprite_sheets && (dna.species.name in U2.sprite_sheets) ? U2.sprite_sheets[dna.species.name] : U2.icon if(U2) - underwear_standing.Blend(new /icon(U2.icon, "us_[U2.icon_state]_s"), ICON_OVERLAY) + underwear_standing.Blend(new /icon(u2_icon, "us_[U2.icon_state]_s"), ICON_OVERLAY) if(socks && dna.species.clothing_flags & HAS_SOCKS) var/datum/sprite_accessory/socks/U3 = GLOB.socks_list[socks] + var/u3_icon = U3.sprite_sheets && (dna.species.name in U3.sprite_sheets) ? U3.sprite_sheets[dna.species.name] : U3.icon if(U3) - underwear_standing.Blend(new /icon(U3.icon, "sk_[U3.icon_state]_s"), ICON_OVERLAY) + underwear_standing.Blend(new /icon(u3_icon, "sk_[U3.icon_state]_s"), ICON_OVERLAY) if(underwear_standing) overlays_standing[UNDERWEAR_LAYER] = mutable_appearance(underwear_standing, layer = -UNDERWEAR_LAYER) diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 84ac1ed9eb0..ab7c89264ee 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -384,20 +384,23 @@ var/icon/underwear_s = null if(underwear && (current_species.clothing_flags & HAS_UNDERWEAR)) var/datum/sprite_accessory/underwear/U = GLOB.underwear_list[underwear] + var/u_icon = U.sprite_sheets && (current_species.name in U.sprite_sheets) ? U.sprite_sheets[current_species.name] : U.icon //Species-fit the undergarment. if(U) - underwear_s = new/icon(U.icon, "uw_[U.icon_state]_s", ICON_OVERLAY) + underwear_s = new/icon(u_icon, "uw_[U.icon_state]_s", ICON_OVERLAY) var/icon/undershirt_s = null if(undershirt && (current_species.clothing_flags & HAS_UNDERSHIRT)) var/datum/sprite_accessory/undershirt/U2 = GLOB.undershirt_list[undershirt] + var/u2_icon = U2.sprite_sheets && (current_species.name in U2.sprite_sheets) ? U2.sprite_sheets[current_species.name] : U2.icon if(U2) - undershirt_s = new/icon(U2.icon, "us_[U2.icon_state]_s", ICON_OVERLAY) + undershirt_s = new/icon(u2_icon, "us_[U2.icon_state]_s", ICON_OVERLAY) var/icon/socks_s = null if(socks && (current_species.clothing_flags & HAS_SOCKS)) var/datum/sprite_accessory/socks/U3 = GLOB.socks_list[socks] + var/u3_icon = U3.sprite_sheets && (current_species.name in U3.sprite_sheets) ? U3.sprite_sheets[current_species.name] : U3.icon if(U3) - socks_s = new/icon(U3.icon, "sk_[U3.icon_state]_s", ICON_OVERLAY) + socks_s = new/icon(u3_icon, "sk_[U3.icon_state]_s", ICON_OVERLAY) var/icon/clothes_s = null var/uniform_dmi='icons/mob/uniform.dmi' diff --git a/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm index 41dd75a49e5..10f7b1acd46 100644 --- a/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm @@ -49,6 +49,7 @@ // Restrict some styles to specific species var/list/species_allowed = list("Human", "Slime People") + var/list/sprite_sheets = list() //For accessories common across species but need to use 'fitted' sprites (like underwear). e.g. list("Vox" = 'icons/mob/species/vox/iconfile.dmi') var/list/models_allowed = list() //Specifies which, if any, hairstyles or markings can be accessed by which prosthetics. Should equal the manufacturing company name in robolimbs.dm. var/list/heads_allowed = null //Specifies which, if any, alt heads a head marking, hairstyle or facial hair style is compatible with. var/list/tails_allowed = null //Specifies which, if any, tails a tail marking is compatible with. @@ -132,7 +133,7 @@ /datum/sprite_accessory/skin/human name = "Default human skin" icon_state = "default" - species_allowed = list("Human",) + species_allowed = list("Human") /datum/sprite_accessory/skin/human/human_tatt01 name = "Tatt01 human skin" @@ -167,7 +168,8 @@ /////////////////////////// /datum/sprite_accessory/underwear icon = 'icons/mob/underwear.dmi' - species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask") + species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox") + sprite_sheets = list("Vox" = 'icons/mob/species/vox/underwear.dmi') gender = NEUTER /datum/sprite_accessory/underwear/nude @@ -293,7 +295,8 @@ //////////////////////////// /datum/sprite_accessory/undershirt icon = 'icons/mob/underwear.dmi' - species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask") + species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox") + sprite_sheets = list("Vox" = 'icons/mob/species/vox/underwear.dmi') gender = NEUTER /datum/sprite_accessory/undershirt/nude @@ -529,7 +532,8 @@ /////////////////////// /datum/sprite_accessory/socks icon = 'icons/mob/underwear.dmi' - species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask") + species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox") + sprite_sheets = list("Vox" = 'icons/mob/species/vox/underwear.dmi') gender = NEUTER /datum/sprite_accessory/socks/nude @@ -566,6 +570,10 @@ icon_state = "thin_knee" gender = FEMALE +/datum/sprite_accessory/socks/striped_norm + name = "Normal Striped" + icon_state = "striped_norm" + /datum/sprite_accessory/socks/striped_knee name = "Knee-high Striped" icon_state = "striped_knee" @@ -603,50 +611,3 @@ /datum/sprite_accessory/socks/black_fishnet name = "Black Fishnet" icon_state = "black_fishnet" - -/datum/sprite_accessory/socks/vox - species_allowed = list("Vox") - -/datum/sprite_accessory/socks/vox/vox_white - name = "Vox White" - icon_state = "vox_white" - -/datum/sprite_accessory/socks/vox/vox_black - name = "Vox Black" - icon_state = "vox_black" - -/datum/sprite_accessory/socks/vox/vox_thin - name = "Vox Black Thin" - icon_state = "vox_blackthin" - -/datum/sprite_accessory/socks/vox/vox_rainbow - name = "Vox Rainbow" - icon_state = "vox_rainbow" - -/datum/sprite_accessory/socks/vox/vox_stripped - name = "Vox Striped" - icon_state = "vox_white" - -/datum/sprite_accessory/socks/vox/vox_white_thigh - name = "Vox Thigh-high White" - icon_state = "vox_whiteTH" - -/datum/sprite_accessory/socks/vox/vox_black_thigh - name = "Vox Thigh-high Black" - icon_state = "vox_blackTH" - -/datum/sprite_accessory/socks/vox/vox_thin_thigh - name = "Vox Thigh-high Thin" - icon_state = "vox_blackthinTH" - -/datum/sprite_accessory/socks/vox/vox_rainbow_thigh - name = "Vox Thigh-high Rainbow" - icon_state = "vox_rainbowTH" - -/datum/sprite_accessory/socks/vox/vox_striped_thigh - name = "Vox Thigh-high Striped" - icon_state = "vox_stripedTH" - -/datum/sprite_accessory/socks/vox/vox_fishnet - name = "Vox Fishnets" - icon_state = "vox_fishnet" \ No newline at end of file diff --git a/icons/mob/species/vox/underwear.dmi b/icons/mob/species/vox/underwear.dmi new file mode 100644 index 00000000000..5b29d437cef Binary files /dev/null and b/icons/mob/species/vox/underwear.dmi differ diff --git a/icons/mob/species/vox/uniform.dmi b/icons/mob/species/vox/uniform.dmi index 3ed8bc83942..e22a631d6cd 100644 Binary files a/icons/mob/species/vox/uniform.dmi and b/icons/mob/species/vox/uniform.dmi differ diff --git a/icons/mob/underwear.dmi b/icons/mob/underwear.dmi index c212261f9ec..ab1879132de 100644 Binary files a/icons/mob/underwear.dmi and b/icons/mob/underwear.dmi differ