Files
Bubberstation/code/datums/sprite_accessories.dm

2615 lines
67 KiB
Plaintext

/*
* Hello and welcome to sprite_accessories: For sprite accessories, such as hair,
* facial hair, and possibly tattoos and stuff somewhere along the line. This file is
* intended to be friendly for people with little to no actual coding experience.
* The process of adding in new hairstyles has been made pain-free and easy to do.
* Enjoy! - Doohl
*
*
* Notice: This all gets automatically compiled in a list in dna.dm, so you do not
* have to define any UI values for sprite accessories manually for hair and facial
* hair. Just add in new hair types and the game will naturally adapt.
*
* !!WARNING!!: changing existing hair information can be VERY hazardous to savefiles,
* to the point where you may completely corrupt a server's savefiles. Please refrain
* from doing this unless you absolutely know what you are doing, and have defined a
* conversion in savefile.dm
*/
/datum/sprite_accessory
/// The icon file the accessory is located in.
var/icon
/// The icon_state of the accessory.
var/icon_state
/// The preview name of the accessory.
var/name
/// Determines if the accessory will be skipped or included in random hair generations.
var/gender = NEUTER
/// Something that can be worn by either gender, but looks different on each.
var/gender_specific = FALSE
/// Determines if the accessory will be skipped by color preferences.
var/use_static
/**
* Currently only used by mutantparts so don't worry about hair and stuff.
* This is the source that this accessory will get its color from. Default is MUTCOLOR, but can also be HAIR, FACEHAIR, EYECOLOR and 0 if none.
*/
var/color_src = MUTANT_COLOR
/// Is this part locked from roundstart selection? Used for parts that apply effects.
var/locked = FALSE
/// Should we center the sprite?
var/center = FALSE
/// The width of the sprite in pixels. Used to center it if necessary.
var/dimension_x = 32
/// The height of the sprite in pixels. Used to center it if necessary.
var/dimension_y = 32
/// Should this sprite block emissives?
var/em_block = FALSE
/// Determines if this is considered "sane" for the purpose of [/proc/randomize_human_normie]
/// Basically this is to blacklist the extremely wacky stuff from being picked in random human generation.
var/natural_spawn = TRUE
/datum/sprite_accessory/blank
name = SPRITE_ACCESSORY_NONE
icon_state = SPRITE_ACCESSORY_NONE
////////////////
// Hair Masks //
////////////////
/datum/hair_mask
var/icon/icon = 'icons/mob/human/hair_masks.dmi'
var/icon_state = ""
/// Strict coverage zones will always have the hair mask applied to them, even if a piece of hair at that location would normally resist being masked.
/// If a piece of headware only covers the top of the head, it should only strictly cover the top zone. But a mostly-enclosed helmet might strictly cover almost all zones.
var/strict_coverage_zones = NONE
/datum/hair_mask/standard_hat_middle
icon_state = "hide_above_45deg"
strict_coverage_zones = HAIR_APPENDAGE_TOP
/datum/hair_mask/standard_hat_low
icon_state = "hide_above_45deg_low"
strict_coverage_zones = HAIR_APPENDAGE_TOP | HAIR_APPENDAGE_LEFT | HAIR_APPENDAGE_RIGHT | HAIR_APPENDAGE_REAR
/datum/hair_mask/winterhood
icon_state = "hide_winterhood"
strict_coverage_zones = HAIR_APPENDAGE_TOP | HAIR_APPENDAGE_LEFT | HAIR_APPENDAGE_RIGHT | HAIR_APPENDAGE_REAR | HAIR_APPENDAGE_HANGING_REAR
//////////////////////
// Hair Definitions //
//////////////////////
// Cache of each hairstyle's icon after being blended with the given masks
// "joined mask types" is each mask's type as a string joined by commas (for no masks, it is the empty string)
// /datum/sprite_accessory/hair path -> list(joined mask types -> icon)
GLOBAL_LIST_EMPTY(blended_hair_icons_cache)
/datum/sprite_accessory/hair
icon = 'icons/mob/human/human_face.dmi' // default icon for all hairs
var/y_offset = 0 // Y offset to apply so we can have hair that reaches above the player sprite's visual bounding box
// Some hair will have "appendages", such as pony tails, that stick out from certain parts of the head. These can be layered above or below headwear and resist being masked away by hair masks.
// Lists should be icon_state strings associated with the HAIR_APPENDAGE defines specifying the part of the head they stick out from.
// hair_appendages_inner contains icon_states that go in the normal hair layer, hair_appendages_outer contains icon_states that go above the layer for headwear.
// hair_appendages_inner will be masked normally if their HAIR_APPENDAGE zone is strictly masked by a piece of clothing (a fully enclosed helmet with a transparent visor will strictly mask all zones, a small hat will only strictly mask the top, etc.).
// hair_appendages_outer will never be masked at all and will just not be shown if their zone has strict masking. These should generally not have visible sprites for every dir.
var/list/hair_appendages_inner = null
var/list/hair_appendages_outer = null
/// Retrieve the base hair icon with all hair appendeges blended in, with hair masks applied, from the cache, or generate it if it doesn't exist
/datum/sprite_accessory/hair/proc/getCachedIcon(list/hair_masks)
var/icon/cachedIcon
var/joinedMasks = LAZYLEN(hair_masks) ? jointext(hair_masks, ",") : ""
var/list/masks_to_icons = GLOB.blended_hair_icons_cache[type]
if(!masks_to_icons)
GLOB.blended_hair_icons_cache[type] = list()
else
cachedIcon = masks_to_icons[joinedMasks]
if(!cachedIcon)
if(LAZYLEN(hair_masks))
if(LAZYLEN(hair_appendages_inner))
// Check if there are any hair appendages in a zone that is not strictly masked
var/found_mask_dodger = FALSE
for(var/datum/hair_mask/mask as anything in hair_masks)
for(var/appendage in hair_appendages_inner)
var/zone = hair_appendages_inner[appendage]
if(!(zone & mask.strict_coverage_zones))
found_mask_dodger = TRUE
if(found_mask_dodger)
// We have to process each icon individually
cachedIcon = icon(icon, icon_state)
// mask the base icon
for(var/datum/hair_mask/mask as anything in hair_masks)
var/icon/mask_icon = icon('icons/mob/human/hair_masks.dmi', mask.icon_state)
mask_icon.Shift(SOUTH, y_offset)
cachedIcon.Blend(mask_icon, ICON_ADD)
// mask the appendages if required and add them to the base icon
for(var/appendage_icon_state in hair_appendages_inner)
var/icon/appendage_icon = icon(icon, appendage_icon_state)
var/zone = hair_appendages_inner[appendage_icon_state]
for(var/datum/hair_mask/mask as anything in hair_masks)
if(zone & mask.strict_coverage_zones)
var/icon/mask_icon = icon('icons/mob/human/hair_masks.dmi', mask.icon_state)
mask_icon.Shift(SOUTH, y_offset)
appendage_icon.Blend(mask_icon, ICON_ADD)
cachedIcon.Blend(appendage_icon, ICON_OVERLAY)
else
// No mask dodgers, so we can just mask the full (hopefully cached) icon
cachedIcon = icon(getCachedIcon())
for(var/datum/hair_mask/mask as anything in hair_masks)
var/icon/mask_icon = icon('icons/mob/human/hair_masks.dmi', mask.icon_state)
mask_icon.Shift(SOUTH, y_offset)
cachedIcon.Blend(mask_icon, ICON_ADD)
else
// No hair appendages, so just apply all hair masks to the base icon
cachedIcon = icon(icon, icon_state)
for(var/datum/hair_mask/mask as anything in hair_masks)
var/icon/mask_icon = icon('icons/mob/human/hair_masks.dmi', mask.icon_state)
mask_icon.Shift(SOUTH, y_offset)
cachedIcon.Blend(mask_icon, ICON_ADD)
else
// no hair masks
cachedIcon = icon(icon, icon_state)
if(LAZYLEN(hair_appendages_inner))
for(var/appendage_icon_state in hair_appendages_inner)
var/icon/appendage_icon = icon(icon, appendage_icon_state)
cachedIcon.Blend(appendage_icon, ICON_OVERLAY)
// set cache
GLOB.blended_hair_icons_cache[type][joinedMasks] = cachedIcon
return cachedIcon
// please make sure they're sorted alphabetically and, where needed, categorized
// try to capitalize the names please~
// try to spell
// you do not need to define _s or _l sub-states, game automatically does this for you
/datum/sprite_accessory/hair/afro
name = "Afro"
icon_state = "hair_afro"
/datum/sprite_accessory/hair/afro2
name = "Afro 2"
icon_state = "hair_afro2"
/datum/sprite_accessory/hair/afro_large
name = "Afro (Large)"
icon_state = "hair_bigafro"
natural_spawn = FALSE
/datum/sprite_accessory/hair/afro_huge
name = "Afro (Huge)"
icon_state = "hair_hugeafro"
y_offset = 6
natural_spawn = FALSE
/datum/sprite_accessory/hair/allthefuzz
name = "All The Fuzz"
icon_state = "hair_allthefuzz"
/datum/sprite_accessory/hair/antenna
name = "Ahoge"
icon_state = "hair_antenna"
hair_appendages_inner = list("hair_antenna_a1" = HAIR_APPENDAGE_TOP)
/datum/sprite_accessory/hair/bald
name = "Bald"
icon_state = null
/datum/sprite_accessory/hair/balding
name = "Balding Hair"
icon_state = "hair_e"
/datum/sprite_accessory/hair/bedhead
name = "Bedhead"
icon_state = "hair_bedhead"
/datum/sprite_accessory/hair/bedhead2
name = "Bedhead 2"
icon_state = "hair_bedheadv2"
/datum/sprite_accessory/hair/bedhead3
name = "Bedhead 3"
icon_state = "hair_bedheadv3"
/datum/sprite_accessory/hair/bedheadv4
name = "Bedhead 4x"
icon_state = "hair_bedheadv4"
/datum/sprite_accessory/hair/bedheadlong
name = "Long Bedhead"
icon_state = "hair_long_bedhead"
/datum/sprite_accessory/hair/bedheadfloorlength
name = "Floorlength Bedhead"
icon_state = "hair_floorlength_bedhead"
natural_spawn = FALSE
/datum/sprite_accessory/hair/badlycut
name = "Shorter Long Bedhead"
icon_state = "hair_verybadlycut"
/datum/sprite_accessory/hair/beehive
name = "Beehive"
icon_state = "hair_beehive"
/datum/sprite_accessory/hair/beehive2
name = "Beehive 2"
icon_state = "hair_beehivev2"
/datum/sprite_accessory/hair/bob
name = "Bob Hair"
icon_state = "hair_bob"
/datum/sprite_accessory/hair/bob2
name = "Bob Hair 2"
icon_state = "hair_bob2"
/datum/sprite_accessory/hair/bob3
name = "Bob Hair 3"
icon_state = "hair_bobcut"
/datum/sprite_accessory/hair/bob4
name = "Bob Hair 4"
icon_state = "hair_bob4"
/datum/sprite_accessory/hair/bobcurl
name = "Bobcurl"
icon_state = "hair_bobcurl"
/datum/sprite_accessory/hair/boddicker
name = "Boddicker"
icon_state = "hair_boddicker"
/datum/sprite_accessory/hair/bowlcut
name = "Bowlcut"
icon_state = "hair_bowlcut"
/datum/sprite_accessory/hair/bowlcut2
name = "Bowlcut 2"
icon_state = "hair_bowlcut2"
/datum/sprite_accessory/hair/braid
name = "Braid (Floorlength)"
icon_state = "hair_braid"
hair_appendages_inner = list("hair_braid_a1" = HAIR_APPENDAGE_REAR)
hair_appendages_outer = list("hair_braid_a1o" = HAIR_APPENDAGE_REAR)
/datum/sprite_accessory/hair/braided
name = "Braided"
icon_state = "hair_braided"
/datum/sprite_accessory/hair/front_braid
name = "Braided Front"
icon_state = "hair_braidfront"
hair_appendages_inner = list("hair_braidfront_a1" = HAIR_APPENDAGE_HANGING_FRONT)
hair_appendages_outer = list("hair_braidfront_a1o" = HAIR_APPENDAGE_HANGING_FRONT)
/datum/sprite_accessory/hair/not_floorlength_braid
name = "Braid (High)"
icon_state = "hair_braid2"
hair_appendages_inner = list("hair_braid2_a1" = HAIR_APPENDAGE_REAR)
hair_appendages_outer = list("hair_braid2_a1o" = HAIR_APPENDAGE_REAR)
/datum/sprite_accessory/hair/lowbraid
name = "Braid (Low)"
icon_state = "hair_hbraid"
/datum/sprite_accessory/hair/shortbraid
name = "Braid (Short)"
icon_state = "hair_shortbraid"
hair_appendages_inner = list("hair_shortbraid_a1" = HAIR_APPENDAGE_REAR)
hair_appendages_outer = list("hair_shortbraid_a1o" = HAIR_APPENDAGE_REAR)
/datum/sprite_accessory/hair/braidtail
name = "Braided Tail"
icon_state = "hair_braidtail"
hair_appendages_inner = list("hair_braidtail_a1" = HAIR_APPENDAGE_HANGING_FRONT)
hair_appendages_outer = list("hair_braidtail_a1o" = HAIR_APPENDAGE_HANGING_FRONT)
/datum/sprite_accessory/hair/bun
name = "Bun Head"
icon_state = "hair_bun"
/datum/sprite_accessory/hair/bun2
name = "Bun Head 2"
icon_state = "hair_bunhead2"
hair_appendages_inner = list("hair_bunhead2_a1" = HAIR_APPENDAGE_REAR)
hair_appendages_outer = list("hair_bunhead2_a1o" = HAIR_APPENDAGE_REAR)
/datum/sprite_accessory/hair/bun3
name = "Bun Head 3"
icon_state = "hair_bun3"
/datum/sprite_accessory/hair/largebun
name = "Bun (Large)"
icon_state = "hair_largebun"
/datum/sprite_accessory/hair/manbun
name = "Bun (Manbun)"
icon_state = "hair_manbun"
hair_appendages_inner = list("hair_manbun_a1" = HAIR_APPENDAGE_REAR)
hair_appendages_outer = list("hair_manbun_a1o" = HAIR_APPENDAGE_REAR)
/datum/sprite_accessory/hair/tightbun
name = "Bun (Tight)"
icon_state = "hair_tightbun"
/datum/sprite_accessory/hair/business
name = "Business Hair"
icon_state = "hair_business"
/datum/sprite_accessory/hair/business2
name = "Business Hair 2"
icon_state = "hair_business2"
/datum/sprite_accessory/hair/business3
name = "Business Hair 3"
icon_state = "hair_business3"
/datum/sprite_accessory/hair/business4
name = "Business Hair 4"
icon_state = "hair_business4"
/datum/sprite_accessory/hair/buzz
name = "Buzzcut"
icon_state = "hair_buzzcut"
/datum/sprite_accessory/hair/chinbob
name = "Chin-Length Bob Cut"
icon_state = "hair_chinbob"
/datum/sprite_accessory/hair/comet
name = "Comet"
icon_state = "hair_comet"
/datum/sprite_accessory/hair/cia
name = "CIA"
icon_state = "hair_cia"
/datum/sprite_accessory/hair/coffeehouse
name = "Coffee House"
icon_state = "hair_coffeehouse"
/datum/sprite_accessory/hair/combover
name = "Combover"
icon_state = "hair_combover"
/datum/sprite_accessory/hair/cornrows1
name = "Cornrows"
icon_state = "hair_cornrows"
/datum/sprite_accessory/hair/cornrows2
name = "Cornrows 2"
icon_state = "hair_cornrows2"
/datum/sprite_accessory/hair/cornrowbun
name = "Cornrow Bun"
icon_state = "hair_cornrowbun"
/datum/sprite_accessory/hair/cornrowbraid
name = "Cornrow Braid"
icon_state = "hair_cornrowbraid"
/datum/sprite_accessory/hair/cornrowdualtail
name = "Cornrow Tail"
icon_state = "hair_cornrowtail"
hair_appendages_inner = list("hair_cornrowtail_a1" = HAIR_APPENDAGE_HANGING_FRONT)
hair_appendages_outer = list("hair_cornrowtail_a1o" = HAIR_APPENDAGE_HANGING_FRONT)
/datum/sprite_accessory/hair/crew
name = "Crewcut"
icon_state = "hair_crewcut"
/datum/sprite_accessory/hair/curls
name = "Curls"
icon_state = "hair_curls"
/datum/sprite_accessory/hair/cut
name = "Cut Hair"
icon_state = "hair_c"
/datum/sprite_accessory/hair/dandpompadour
name = "Dandy Pompadour"
icon_state = "hair_dandypompadour"
/datum/sprite_accessory/hair/devillock
name = "Devil Lock"
icon_state = "hair_devilock"
/datum/sprite_accessory/hair/doublebun
name = "Double Bun"
icon_state = "hair_doublebun"
hair_appendages_inner = list("hair_doublebun_a1" = HAIR_APPENDAGE_REAR)
hair_appendages_outer = list("hair_doublebun_a1o" = HAIR_APPENDAGE_REAR)
/datum/sprite_accessory/hair/dreadlocks
name = "Dreadlocks"
icon_state = "hair_dreads"
/datum/sprite_accessory/hair/drillhair
name = "Drillruru"
icon_state = "hair_drillruru"
hair_appendages_inner = list("hair_drillruru_a1" = HAIR_APPENDAGE_HANGING_FRONT)
hair_appendages_outer = list("hair_drillruru_a1o" = HAIR_APPENDAGE_HANGING_FRONT)
/datum/sprite_accessory/hair/drillhairextended
name = "Drill Hair (Extended)"
icon_state = "hair_drillhairextended"
hair_appendages_inner = list("hair_drillhairextended_a1" = HAIR_APPENDAGE_HANGING_FRONT)
hair_appendages_outer = list("hair_drillhairextended_a1o" = HAIR_APPENDAGE_HANGING_FRONT)
/datum/sprite_accessory/hair/emo
name = "Emo"
icon_state = "hair_emo"
/datum/sprite_accessory/hair/emofrine
name = "Emo Fringe"
icon_state = "hair_emofringe"
/datum/sprite_accessory/hair/nofade
name = "Fade (None)"
icon_state = "hair_nofade"
/datum/sprite_accessory/hair/highfade
name = "Fade (High)"
icon_state = "hair_highfade"
/datum/sprite_accessory/hair/medfade
name = "Fade (Medium)"
icon_state = "hair_medfade"
/datum/sprite_accessory/hair/lowfade
name = "Fade (Low)"
icon_state = "hair_lowfade"
/datum/sprite_accessory/hair/baldfade
name = "Fade (Bald)"
icon_state = "hair_baldfade"
/datum/sprite_accessory/hair/feather
name = "Feather"
icon_state = "hair_feather"
/datum/sprite_accessory/hair/father
name = "Father"
icon_state = "hair_father"
/datum/sprite_accessory/hair/sargeant
name = "Flat Top"
icon_state = "hair_sargeant"
/datum/sprite_accessory/hair/flair
name = "Flair"
icon_state = "hair_flair"
/datum/sprite_accessory/hair/bigflattop
name = "Flat Top (Big)"
icon_state = "hair_bigflattop"
natural_spawn = FALSE
/datum/sprite_accessory/hair/flow_hair
name = "Flow Hair"
icon_state = "hair_f"
/datum/sprite_accessory/hair/gelled
name = "Gelled Back"
icon_state = "hair_gelled"
/datum/sprite_accessory/hair/gentle
name = "Gentle"
icon_state = "hair_gentle"
/datum/sprite_accessory/hair/halfbang
name = "Half-banged Hair"
icon_state = "hair_halfbang"
/datum/sprite_accessory/hair/halfbang2
name = "Half-banged Hair 2"
icon_state = "hair_halfbang2"
/datum/sprite_accessory/hair/halfshaved
name = "Half-shaved"
icon_state = "hair_halfshaved"
/datum/sprite_accessory/hair/hedgehog
name = "Hedgehog Hair"
icon_state = "hair_hedgehog"
/datum/sprite_accessory/hair/himecut
name = "Hime Cut"
icon_state = "hair_himecut"
/datum/sprite_accessory/hair/himecut2
name = "Hime Cut 2"
icon_state = "hair_himecut2"
/datum/sprite_accessory/hair/shorthime
name = "Hime Cut (Short)"
icon_state = "hair_shorthime"
/datum/sprite_accessory/hair/himeup
name = "Hime Updo"
icon_state = "hair_himeup"
/datum/sprite_accessory/hair/hitop
name = "Hitop"
icon_state = "hair_hitop"
/datum/sprite_accessory/hair/jade
name = "Jade"
icon_state = "hair_jade"
/datum/sprite_accessory/hair/jensen
name = "Jensen Hair"
icon_state = "hair_jensen"
/datum/sprite_accessory/hair/joestar
name = "Joestar"
icon_state = "hair_joestar"
natural_spawn = FALSE
/datum/sprite_accessory/hair/keanu
name = "Keanu Hair"
icon_state = "hair_keanu"
/datum/sprite_accessory/hair/kusangi
name = "Kusanagi Hair"
icon_state = "hair_kusanagi"
/datum/sprite_accessory/hair/long
name = "Long Hair 1"
icon_state = "hair_long"
hair_appendages_inner = list("hair_long_a1" = HAIR_APPENDAGE_HANGING_REAR)
/datum/sprite_accessory/hair/long2
name = "Long Hair 2"
icon_state = "hair_long2"
hair_appendages_inner = list("hair_long2_a1" = HAIR_APPENDAGE_HANGING_REAR)
/datum/sprite_accessory/hair/long3
name = "Long Hair 3"
icon_state = "hair_long3"
hair_appendages_inner = list("hair_long3_a1" = HAIR_APPENDAGE_HANGING_REAR)
/datum/sprite_accessory/hair/long_over_eye
name = "Long Over Eye"
icon_state = "hair_longovereye"
/datum/sprite_accessory/hair/longbangs
name = "Long Bangs"
icon_state = "hair_lbangs"
/datum/sprite_accessory/hair/longemo
name = "Long Emo"
icon_state = "hair_longemo"
/datum/sprite_accessory/hair/longfringe
name = "Long Fringe"
icon_state = "hair_longfringe"
/datum/sprite_accessory/hair/sidepartlongalt
name = "Long Side Part"
icon_state = "hair_longsidepart"
hair_appendages_inner = list("hair_longsidepart_a1" = HAIR_APPENDAGE_HANGING_FRONT)
hair_appendages_outer = list("hair_longsidepart_a1o" = HAIR_APPENDAGE_HANGING_FRONT)
/datum/sprite_accessory/hair/megaeyebrows
name = "Mega Eyebrows"
icon_state = "hair_megaeyebrows"
/datum/sprite_accessory/hair/messy
name = "Messy"
icon_state = "hair_messy"
/datum/sprite_accessory/hair/modern
name = "Modern"
icon_state = "hair_modern"
/datum/sprite_accessory/hair/mohawk
name = "Mohawk"
icon_state = "hair_d"
natural_spawn = FALSE // sorry little one
/datum/sprite_accessory/hair/nitori
name = "Nitori"
icon_state = "hair_nitori"
natural_spawn = FALSE
/datum/sprite_accessory/hair/reversemohawk
name = "Mohawk (Reverse)"
icon_state = "hair_reversemohawk"
natural_spawn = FALSE
/datum/sprite_accessory/hair/shavedmohawk
name = "Mohawk (Shaved)"
icon_state = "hair_shavedmohawk"
natural_spawn = FALSE
/datum/sprite_accessory/hair/unshavenmohawk
name = "Mohawk (Unshaven)"
icon_state = "hair_unshaven_mohawk"
natural_spawn = FALSE
/datum/sprite_accessory/hair/mulder
name = "Mulder"
icon_state = "hair_mulder"
/datum/sprite_accessory/hair/odango
name = "Odango"
icon_state = "hair_odango"
natural_spawn = FALSE
/datum/sprite_accessory/hair/ombre
name = "Ombre"
icon_state = "hair_ombre"
/datum/sprite_accessory/hair/oneshoulder
name = "One Shoulder"
icon_state = "hair_oneshoulder"
/datum/sprite_accessory/hair/over_eye
name = "Over Eye"
icon_state = "hair_shortovereye"
/datum/sprite_accessory/hair/hair_overeyetwo
name = "Over Eye 2"
icon_state = "hair_overeyetwo"
/datum/sprite_accessory/hair/oxton
name = "Oxton"
icon_state = "hair_oxton"
/datum/sprite_accessory/hair/parted
name = "Parted"
icon_state = "hair_parted"
/datum/sprite_accessory/hair/partedside
name = "Parted (Side)"
icon_state = "hair_part"
/datum/sprite_accessory/hair/kagami
name = "Pigtails"
icon_state = "hair_kagami"
natural_spawn = FALSE
/datum/sprite_accessory/hair/pigtail
name = "Pigtails 2"
icon_state = "hair_pigtails"
natural_spawn = FALSE
/datum/sprite_accessory/hair/pigtail2
name = "Pigtails 3"
icon_state = "hair_pigtails2"
natural_spawn = FALSE
hair_appendages_inner = list("hair_pigtails2_a1" = HAIR_APPENDAGE_LEFT, "hair_pigtails2_a2" = HAIR_APPENDAGE_RIGHT)
/datum/sprite_accessory/hair/pixie
name = "Pixie Cut"
icon_state = "hair_pixie"
/datum/sprite_accessory/hair/pompadour
name = "Pompadour"
icon_state = "hair_pompadour"
/datum/sprite_accessory/hair/bigpompadour
name = "Pompadour (Big)"
icon_state = "hair_bigpompadour"
/datum/sprite_accessory/hair/ponytail1
name = "Ponytail"
icon_state = "hair_ponytail"
/datum/sprite_accessory/hair/ponytail2
name = "Ponytail 2"
icon_state = "hair_ponytail2"
/datum/sprite_accessory/hair/ponytail3
name = "Ponytail 3"
icon_state = "hair_ponytail3"
/datum/sprite_accessory/hair/ponytail4
name = "Ponytail 4"
icon_state = "hair_ponytail4"
hair_appendages_inner = list("hair_ponytail4_a1" = HAIR_APPENDAGE_REAR)
hair_appendages_outer = list("hair_ponytail4_a1o" = HAIR_APPENDAGE_REAR)
/datum/sprite_accessory/hair/ponytail5
name = "Ponytail 5"
icon_state = "hair_ponytail5"
hair_appendages_inner = list("hair_ponytail5_a1" = HAIR_APPENDAGE_HANGING_FRONT)
hair_appendages_outer = list("hair_ponytail5_a1o" = HAIR_APPENDAGE_HANGING_FRONT)
/datum/sprite_accessory/hair/ponytail6
name = "Ponytail 6"
icon_state = "hair_ponytail6"
hair_appendages_inner = list("hair_ponytail6_a1" = HAIR_APPENDAGE_REAR)
hair_appendages_outer = list("hair_ponytail6_a1o" = HAIR_APPENDAGE_REAR)
/datum/sprite_accessory/hair/ponytail7
name = "Ponytail 7"
icon_state = "hair_ponytail7"
hair_appendages_inner = list("hair_ponytail7_a1" = HAIR_APPENDAGE_REAR)
hair_appendages_outer = list("hair_ponytail7_a1o" = HAIR_APPENDAGE_REAR)
/datum/sprite_accessory/hair/highponytail
name = "Ponytail (High)"
icon_state = "hair_highponytail"
hair_appendages_inner = list("hair_highponytail_a1" = HAIR_APPENDAGE_REAR)
hair_appendages_outer = list("hair_highponytail_a1o" = HAIR_APPENDAGE_REAR)
/datum/sprite_accessory/hair/stail
name = "Ponytail (Short)"
icon_state = "hair_stail"
hair_appendages_inner = list("hair_stail_a1" = HAIR_APPENDAGE_HANGING_FRONT)
hair_appendages_outer = list("hair_stail_a1o" = HAIR_APPENDAGE_HANGING_FRONT)
/datum/sprite_accessory/hair/longponytail
name = "Ponytail (Long)"
icon_state = "hair_longstraightponytail"
hair_appendages_inner = list("hair_longstraightponytail_a1" = HAIR_APPENDAGE_REAR)
hair_appendages_outer = list("hair_longstraightponytail_a1o" = HAIR_APPENDAGE_REAR)
/datum/sprite_accessory/hair/countryponytail
name = "Ponytail (Country)"
icon_state = "hair_country"
hair_appendages_inner = list("hair_country_a1" = HAIR_APPENDAGE_HANGING_FRONT)
hair_appendages_outer = list("hair_country_a1o" = HAIR_APPENDAGE_HANGING_FRONT)
/datum/sprite_accessory/hair/fringetail
name = "Ponytail (Fringe)"
icon_state = "hair_fringetail"
/datum/sprite_accessory/hair/sidetail
name = "Ponytail (Side)"
icon_state = "hair_sidetail"
/datum/sprite_accessory/hair/sidetail2
name = "Ponytail (Side) 2"
icon_state = "hair_sidetail2"
/datum/sprite_accessory/hair/sidetail3
name = "Ponytail (Side) 3"
icon_state = "hair_sidetail3"
hair_appendages_inner = list("hair_sidetail3_a1" = HAIR_APPENDAGE_HANGING_FRONT)
hair_appendages_outer = list("hair_sidetail3_a1o" = HAIR_APPENDAGE_HANGING_FRONT)
/datum/sprite_accessory/hair/sidetail4
name = "Ponytail (Side) 4"
icon_state = "hair_sidetail4"
hair_appendages_inner = list("hair_sidetail4_a1" = HAIR_APPENDAGE_HANGING_FRONT)
hair_appendages_outer = list("hair_sidetail4_a1o" = HAIR_APPENDAGE_HANGING_FRONT)
/datum/sprite_accessory/hair/spikyponytail
name = "Ponytail (Spiky)"
icon_state = "hair_spikyponytail"
hair_appendages_inner = list("hair_spikyponytail_a1" = HAIR_APPENDAGE_REAR)
hair_appendages_outer = list("hair_spikyponytail_a1o" = HAIR_APPENDAGE_REAR)
/datum/sprite_accessory/hair/poofy
name = "Poofy"
icon_state = "hair_poofy"
/datum/sprite_accessory/hair/quiff
name = "Quiff"
icon_state = "hair_quiff"
/datum/sprite_accessory/hair/ronin
name = "Ronin"
icon_state = "hair_ronin"
/datum/sprite_accessory/hair/shaved
name = "Shaved"
icon_state = "hair_shaved"
/datum/sprite_accessory/hair/shavedpart
name = "Shaved Part"
icon_state = "hair_shavedpart"
/datum/sprite_accessory/hair/shortbangs
name = "Short Bangs"
icon_state = "hair_shortbangs"
/datum/sprite_accessory/hair/shortbangs2
name = "Short Bangs 2"
icon_state = "hair_shortbangs2"
/datum/sprite_accessory/hair/short
name = "Short Hair"
icon_state = "hair_a"
/datum/sprite_accessory/hair/shorthair2
name = "Short Hair 2"
icon_state = "hair_shorthair2"
/datum/sprite_accessory/hair/shorthair3
name = "Short Hair 3"
icon_state = "hair_shorthair3"
/datum/sprite_accessory/hair/shorthair4
name = "Short Hair 4"
icon_state = "hair_d"
/datum/sprite_accessory/hair/shorthair5
name = "Short Hair 5"
icon_state = "hair_e"
/datum/sprite_accessory/hair/shorthair6
name = "Short Hair 6"
icon_state = "hair_f"
/datum/sprite_accessory/hair/shorthair7
name = "Short Hair 7"
icon_state = "hair_shorthairg"
/datum/sprite_accessory/hair/shorthaireighties
name = "Short Hair 80s"
icon_state = "hair_80s"
/datum/sprite_accessory/hair/rosa
name = "Short Hair Rosa"
icon_state = "hair_rosa"
/datum/sprite_accessory/hair/shoulderlength
name = "Shoulder-length Hair"
icon_state = "hair_b"
/datum/sprite_accessory/hair/sidecut
name = "Sidecut"
icon_state = "hair_sidecut"
/datum/sprite_accessory/hair/skinhead
name = "Skinhead"
icon_state = "hair_skinhead"
/datum/sprite_accessory/hair/protagonist
name = "Slightly Long Hair"
icon_state = "hair_protagonist"
/datum/sprite_accessory/hair/spiky
name = "Spiky"
icon_state = "hair_spikey"
/datum/sprite_accessory/hair/spiky2
name = "Spiky 2"
icon_state = "hair_spiky"
/datum/sprite_accessory/hair/spiky3
name = "Spiky 3"
icon_state = "hair_spiky2"
/datum/sprite_accessory/hair/swept
name = "Swept Back Hair"
icon_state = "hair_swept"
/datum/sprite_accessory/hair/swept2
name = "Swept Back Hair 2"
icon_state = "hair_swept2"
/datum/sprite_accessory/hair/thinning
name = "Thinning"
icon_state = "hair_thinning"
/datum/sprite_accessory/hair/thinningfront
name = "Thinning (Front)"
icon_state = "hair_thinningfront"
/datum/sprite_accessory/hair/thinningrear
name = "Thinning (Rear)"
icon_state = "hair_thinningrear"
/datum/sprite_accessory/hair/topknot
name = "Topknot"
icon_state = "hair_topknot"
/datum/sprite_accessory/hair/tressshoulder
name = "Tress Shoulder"
icon_state = "hair_tressshoulder"
hair_appendages_inner = list("hair_tressshoulder_a1" = HAIR_APPENDAGE_HANGING_FRONT)
hair_appendages_outer = list("hair_tressshoulder_a1o" = HAIR_APPENDAGE_HANGING_FRONT)
/datum/sprite_accessory/hair/trimmed
name = "Trimmed"
icon_state = "hair_trimmed"
/datum/sprite_accessory/hair/trimflat
name = "Trim Flat"
icon_state = "hair_trimflat"
/datum/sprite_accessory/hair/twintails
name = "Twintails"
icon_state = "hair_twintail"
/datum/sprite_accessory/hair/undercut
name = "Undercut"
icon_state = "hair_undercut"
/datum/sprite_accessory/hair/undercutleft
name = "Undercut Left"
icon_state = "hair_undercutleft"
/datum/sprite_accessory/hair/undercutright
name = "Undercut Right"
icon_state = "hair_undercutright"
/datum/sprite_accessory/hair/unkept
name = "Unkept"
icon_state = "hair_unkept"
/datum/sprite_accessory/hair/updo
name = "Updo"
icon_state = "hair_updo"
hair_appendages_inner = list("hair_updo_a1" = HAIR_APPENDAGE_TOP)
/datum/sprite_accessory/hair/longer
name = "Very Long Hair"
icon_state = "hair_vlong"
/datum/sprite_accessory/hair/longest
name = "Very Long Hair 2"
icon_state = "hair_longest"
/datum/sprite_accessory/hair/longest2
name = "Very Long Over Eye"
icon_state = "hair_longest2"
/datum/sprite_accessory/hair/veryshortovereye
name = "Very Short Over Eye"
icon_state = "hair_veryshortovereyealternate"
/datum/sprite_accessory/hair/longestalt
name = "Very Long with Fringe"
icon_state = "hair_vlongfringe"
/datum/sprite_accessory/hair/volaju
name = "Volaju"
icon_state = "hair_volaju"
/datum/sprite_accessory/hair/wisp
name = "Wisp"
icon_state = "hair_wisp"
hair_appendages_inner = list("hair_wisp_a1" = HAIR_APPENDAGE_REAR)
hair_appendages_outer = list("hair_wisp_a1o" = HAIR_APPENDAGE_REAR)
/datum/sprite_accessory/hair/ziegler
name = "Ziegler"
icon_state = "hair_ziegler"
hair_appendages_inner = list("hair_ziegler_a1" = HAIR_APPENDAGE_REAR)
hair_appendages_outer = list("hair_ziegler_a1o" = HAIR_APPENDAGE_REAR)
/*
/////////////////////////////////////
/ =---------------------------= /
/ == Gradient Hair Definitions == /
/ =---------------------------= /
/////////////////////////////////////
*/
/datum/sprite_accessory/gradient
icon = 'icons/mob/human/species/hair_gradients.dmi'
///whether this gradient applies to hair and/or beards. Some gradients do not work well on beards.
var/gradient_category = GRADIENT_APPLIES_TO_HAIR|GRADIENT_APPLIES_TO_FACIAL_HAIR
/datum/sprite_accessory/gradient/none
name = SPRITE_ACCESSORY_NONE
icon_state = "none"
/datum/sprite_accessory/gradient/full
name = "Full"
icon_state = "full"
/datum/sprite_accessory/gradient/fadeup
name = "Fade Up"
icon_state = "fadeup"
/datum/sprite_accessory/gradient/fadedown
name = "Fade Down"
icon_state = "fadedown"
/datum/sprite_accessory/gradient/vertical_split
name = "Vertical Split"
icon_state = "vsplit"
/datum/sprite_accessory/gradient/horizontal_split
name = "Horizontal Split"
icon_state = "bottomflat"
/datum/sprite_accessory/gradient/reflected
name = "Reflected"
icon_state = "reflected_high"
gradient_category = GRADIENT_APPLIES_TO_HAIR
/datum/sprite_accessory/gradient/reflected/beard
icon_state = "reflected_high_beard"
gradient_category = GRADIENT_APPLIES_TO_FACIAL_HAIR
/datum/sprite_accessory/gradient/reflected_inverse
name = "Reflected Inverse"
icon_state = "reflected_inverse_high"
gradient_category = GRADIENT_APPLIES_TO_HAIR
/datum/sprite_accessory/gradient/reflected_inverse/beard
icon_state = "reflected_inverse_high_beard"
gradient_category = GRADIENT_APPLIES_TO_FACIAL_HAIR
/datum/sprite_accessory/gradient/wavy
name = "Wavy"
icon_state = "wavy"
gradient_category = GRADIENT_APPLIES_TO_HAIR
/datum/sprite_accessory/gradient/long_fade_up
name = "Long Fade Up"
icon_state = "long_fade_up"
/datum/sprite_accessory/gradient/long_fade_down
name = "Long Fade Down"
icon_state = "long_fade_down"
/datum/sprite_accessory/gradient/short_fade_up
name = "Short Fade Up"
icon_state = "short_fade_up"
gradient_category = GRADIENT_APPLIES_TO_HAIR
/datum/sprite_accessory/gradient/short_fade_up/beard
icon_state = "short_fade_down"
gradient_category = GRADIENT_APPLIES_TO_FACIAL_HAIR
/datum/sprite_accessory/gradient/short_fade_down
name = "Short Fade Down"
icon_state = "short_fade_down_beard"
gradient_category = GRADIENT_APPLIES_TO_HAIR
/datum/sprite_accessory/gradient/short_fade_down/beard
icon_state = "short_fade_down_beard"
gradient_category = GRADIENT_APPLIES_TO_FACIAL_HAIR
/datum/sprite_accessory/gradient/wavy_spike
name = "Spiked Wavy"
icon_state = "wavy_spiked"
gradient_category = GRADIENT_APPLIES_TO_HAIR
/datum/sprite_accessory/gradient/striped
name = "striped"
icon_state = "striped"
/datum/sprite_accessory/gradient/striped_vertical
name = "Striped Vertical"
icon_state = "striped_vertical"
/////////////////////////////
// Facial Hair Definitions //
/////////////////////////////
/datum/sprite_accessory/facial_hair
icon = 'icons/mob/human/human_face.dmi'
gender = MALE // barf (unless you're a dorf, dorfs dig chix w/ beards :P)
em_block = TRUE
// please make sure they're sorted alphabetically and categorized
/datum/sprite_accessory/facial_hair/abe
name = "Beard (Abraham Lincoln)"
icon_state = "facial_abe"
/datum/sprite_accessory/facial_hair/brokenman
name = "Beard (Broken Man)"
icon_state = "facial_brokenman"
natural_spawn = FALSE
/datum/sprite_accessory/facial_hair/chinstrap
name = "Beard (Chinstrap)"
icon_state = "facial_chin"
/datum/sprite_accessory/facial_hair/dwarf
name = "Beard (Dwarf)"
icon_state = "facial_dwarf"
/datum/sprite_accessory/facial_hair/fullbeard
name = "Beard (Full)"
icon_state = "facial_fullbeard"
/datum/sprite_accessory/facial_hair/croppedfullbeard
name = "Beard (Cropped Fullbeard)"
icon_state = "facial_croppedfullbeard"
/datum/sprite_accessory/facial_hair/gt
name = "Beard (Goatee)"
icon_state = "facial_gt"
/datum/sprite_accessory/facial_hair/hip
name = "Beard (Hipster)"
icon_state = "facial_hip"
/datum/sprite_accessory/facial_hair/jensen
name = "Beard (Jensen)"
icon_state = "facial_jensen"
/datum/sprite_accessory/facial_hair/neckbeard
name = "Beard (Neckbeard)"
icon_state = "facial_neckbeard"
/datum/sprite_accessory/facial_hair/vlongbeard
name = "Beard (Very Long)"
icon_state = "facial_wise"
/datum/sprite_accessory/facial_hair/muttonmus
name = "Beard (Muttonmus)"
icon_state = "facial_muttonmus"
/datum/sprite_accessory/facial_hair/martialartist
name = "Beard (Martial Artist)"
icon_state = "facial_martialartist"
natural_spawn = FALSE
/datum/sprite_accessory/facial_hair/chinlessbeard
name = "Beard (Chinless Beard)"
icon_state = "facial_chinlessbeard"
/datum/sprite_accessory/facial_hair/moonshiner
name = "Beard (Moonshiner)"
icon_state = "facial_moonshiner"
/datum/sprite_accessory/facial_hair/longbeard
name = "Beard (Long)"
icon_state = "facial_longbeard"
/datum/sprite_accessory/facial_hair/volaju
name = "Beard (Volaju)"
icon_state = "facial_volaju"
/datum/sprite_accessory/facial_hair/threeoclock
name = "Beard (Three o Clock Shadow)"
icon_state = "facial_3oclock"
/datum/sprite_accessory/facial_hair/fiveoclock
name = "Beard (Five o Clock Shadow)"
icon_state = "facial_fiveoclock"
/datum/sprite_accessory/facial_hair/fiveoclockm
name = "Beard (Five o Clock Moustache)"
icon_state = "facial_5oclockmoustache"
/datum/sprite_accessory/facial_hair/sevenoclock
name = "Beard (Seven o Clock Shadow)"
icon_state = "facial_7oclock"
/datum/sprite_accessory/facial_hair/sevenoclockm
name = "Beard (Seven o Clock Moustache)"
icon_state = "facial_7oclockmoustache"
/datum/sprite_accessory/facial_hair/moustache
name = "Moustache"
icon_state = "facial_moustache"
/datum/sprite_accessory/facial_hair/pencilstache
name = "Moustache (Pencilstache)"
icon_state = "facial_pencilstache"
/datum/sprite_accessory/facial_hair/smallstache
name = "Moustache (Smallstache)"
icon_state = "facial_smallstache"
/datum/sprite_accessory/facial_hair/walrus
name = "Moustache (Walrus)"
icon_state = "facial_walrus"
/datum/sprite_accessory/facial_hair/fu
name = "Moustache (Fu Manchu)"
icon_state = "facial_fumanchu"
/datum/sprite_accessory/facial_hair/hogan
name = "Moustache (Hulk Hogan)"
icon_state = "facial_hogan" //-Neek
/datum/sprite_accessory/facial_hair/selleck
name = "Moustache (Selleck)"
icon_state = "facial_selleck"
/datum/sprite_accessory/facial_hair/chaplin
name = "Moustache (Square)"
icon_state = "facial_chaplin"
/datum/sprite_accessory/facial_hair/vandyke
name = "Moustache (Van Dyke)"
icon_state = "facial_vandyke"
/datum/sprite_accessory/facial_hair/watson
name = "Moustache (Watson)"
icon_state = "facial_watson"
/datum/sprite_accessory/facial_hair/handlebar
name = "Moustache (Handlebar)"
icon_state = "facial_handlebar"
/datum/sprite_accessory/facial_hair/handlebar2
name = "Moustache (Handlebar 2)"
icon_state = "facial_handlebar2"
/datum/sprite_accessory/facial_hair/elvis
name = "Sideburns (Elvis)"
icon_state = "facial_elvis"
/datum/sprite_accessory/facial_hair/mutton
name = "Sideburns (Mutton Chops)"
icon_state = "facial_mutton"
/datum/sprite_accessory/facial_hair/sideburn
name = "Sideburns"
icon_state = "facial_sideburn"
/datum/sprite_accessory/facial_hair/shaved
name = "Shaved"
icon_state = null
gender = NEUTER
///////////////////////////
// Underwear Definitions //
///////////////////////////
/datum/sprite_accessory/underwear
icon = 'icons/mob/clothing/underwear.dmi'
use_static = FALSE
em_block = TRUE
//MALE UNDERWEAR
/datum/sprite_accessory/underwear/nude
name = "Nude"
icon_state = null
gender = NEUTER
/datum/sprite_accessory/underwear/male_briefs
name = "Briefs"
icon_state = "male_briefs"
gender = MALE
/datum/sprite_accessory/underwear/male_boxers
name = "Boxers"
icon_state = "male_boxers"
gender = MALE
/datum/sprite_accessory/underwear/male_stripe
name = "Striped Boxers"
icon_state = "male_stripe"
gender = MALE
/datum/sprite_accessory/underwear/male_midway
name = "Midway Boxers"
icon_state = "male_midway"
gender = MALE
/datum/sprite_accessory/underwear/male_longjohns
name = "Long Johns"
icon_state = "male_longjohns"
gender = MALE
/datum/sprite_accessory/underwear/male_kinky
name = "Jockstrap"
icon_state = "male_kinky"
gender = MALE
/datum/sprite_accessory/underwear/male_mankini
name = "Mankini"
icon_state = "male_mankini"
gender = MALE
/datum/sprite_accessory/underwear/male_hearts
name = "Hearts Boxers"
icon_state = "male_hearts"
gender = MALE
use_static = TRUE
/datum/sprite_accessory/underwear/male_commie
name = "Commie Boxers"
icon_state = "male_commie"
gender = MALE
use_static = TRUE
/datum/sprite_accessory/underwear/male_usastripe
name = "Freedom Boxers"
icon_state = "male_assblastusa"
gender = MALE
use_static = TRUE
/datum/sprite_accessory/underwear/male_uk
name = "UK Boxers"
icon_state = "male_uk"
gender = MALE
use_static = TRUE
/* SKYRAT EDIT REMOVAL START - Underwear and bra split
//FEMALE UNDERWEAR
/datum/sprite_accessory/underwear/female_bikini
name = "Bikini"
icon_state = "female_bikini"
gender = FEMALE
/datum/sprite_accessory/underwear/female_lace
name = "Lace Bikini"
icon_state = "female_lace"
gender = FEMALE
/datum/sprite_accessory/underwear/female_bralette
name = "Bralette w/ Boyshorts"
icon_state = "female_bralette"
gender = FEMALE
/datum/sprite_accessory/underwear/female_sport
name = "Sports Bra w/ Boyshorts"
icon_state = "female_sport"
gender = FEMALE
/datum/sprite_accessory/underwear/female_thong
name = "Thong"
icon_state = "female_thong"
gender = FEMALE
/datum/sprite_accessory/underwear/female_strapless
name = "Strapless Bikini"
icon_state = "female_strapless"
gender = FEMALE
/datum/sprite_accessory/underwear/female_babydoll
name = "Babydoll"
icon_state = "female_babydoll"
gender = FEMALE
/datum/sprite_accessory/underwear/swimsuit_onepiece
name = "One-Piece Swimsuit"
icon_state = "swim_onepiece"
gender = FEMALE
/datum/sprite_accessory/underwear/swimsuit_strapless_onepiece
name = "Strapless One-Piece Swimsuit"
icon_state = "swim_strapless_onepiece"
gender = FEMALE
/datum/sprite_accessory/underwear/swimsuit_twopiece
name = "Two-Piece Swimsuit"
icon_state = "swim_twopiece"
gender = FEMALE
/datum/sprite_accessory/underwear/swimsuit_strapless_twopiece
name = "Strapless Two-Piece Swimsuit"
icon_state = "swim_strapless_twopiece"
gender = FEMALE
/datum/sprite_accessory/underwear/swimsuit_stripe
name = "Strapless Striped Swimsuit"
icon_state = "swim_stripe"
gender = FEMALE
/datum/sprite_accessory/underwear/swimsuit_halter
name = "Halter Swimsuit"
icon_state = "swim_halter"
gender = FEMALE
/datum/sprite_accessory/underwear/female_white_neko
name = "Neko Bikini (White)"
icon_state = "female_neko_white"
gender = FEMALE
use_static = TRUE
/datum/sprite_accessory/underwear/female_black_neko
name = "Neko Bikini (Black)"
icon_state = "female_neko_black"
gender = FEMALE
use_static = TRUE
/datum/sprite_accessory/underwear/female_commie
name = "Commie Bikini"
icon_state = "female_commie"
gender = FEMALE
use_static = TRUE
/datum/sprite_accessory/underwear/female_usastripe
name = "Freedom Bikini"
icon_state = "female_assblastusa"
gender = FEMALE
use_static = TRUE
/datum/sprite_accessory/underwear/female_uk
name = "UK Bikini"
icon_state = "female_uk"
gender = FEMALE
use_static = TRUE
/datum/sprite_accessory/underwear/female_kinky
name = "Lingerie"
icon_state = "female_kinky"
gender = FEMALE
use_static = TRUE
*/ // SKYRAT EDIT END
////////////////////////////
// Undershirt Definitions //
////////////////////////////
/datum/sprite_accessory/undershirt
icon = 'icons/mob/clothing/underwear.dmi'
em_block = TRUE
/datum/sprite_accessory/undershirt/nude
name = "Nude"
icon_state = null
gender = NEUTER
// please make sure they're sorted alphabetically and categorized
/datum/sprite_accessory/undershirt/bluejersey
name = "Jersey (Blue)"
icon_state = "shirt_bluejersey"
gender = NEUTER
/datum/sprite_accessory/undershirt/redjersey
name = "Jersey (Red)"
icon_state = "shirt_redjersey"
gender = NEUTER
/datum/sprite_accessory/undershirt/bluepolo
name = "Polo Shirt (Blue)"
icon_state = "bluepolo"
gender = NEUTER
/datum/sprite_accessory/undershirt/grayyellowpolo
name = "Polo Shirt (Gray-Yellow)"
icon_state = "grayyellowpolo"
gender = NEUTER
/datum/sprite_accessory/undershirt/redpolo
name = "Polo Shirt (Red)"
icon_state = "redpolo"
gender = NEUTER
/datum/sprite_accessory/undershirt/whitepolo
name = "Polo Shirt (White)"
icon_state = "whitepolo"
gender = NEUTER
/datum/sprite_accessory/undershirt/alienshirt
name = "Shirt (Alien)"
icon_state = "shirt_alien"
gender = NEUTER
/datum/sprite_accessory/undershirt/mondmondjaja
name = "Shirt (Band)"
icon_state = "band"
gender = NEUTER
/datum/sprite_accessory/undershirt/shirt_black
name = "Shirt (Black)"
icon_state = "shirt_black"
gender = NEUTER
/datum/sprite_accessory/undershirt/blueshirt
name = "Shirt (Blue)"
icon_state = "shirt_blue"
gender = NEUTER
/datum/sprite_accessory/undershirt/clownshirt
name = "Shirt (Clown)"
icon_state = "shirt_clown"
gender = NEUTER
/datum/sprite_accessory/undershirt/commie
name = "Shirt (Commie)"
icon_state = "shirt_commie"
gender = NEUTER
/datum/sprite_accessory/undershirt/greenshirt
name = "Shirt (Green)"
icon_state = "shirt_green"
gender = NEUTER
/datum/sprite_accessory/undershirt/shirt_grey
name = "Shirt (Grey)"
icon_state = "shirt_grey"
gender = NEUTER
/datum/sprite_accessory/undershirt/ian
name = "Shirt (Ian)"
icon_state = "ian"
gender = NEUTER
/datum/sprite_accessory/undershirt/ilovent
name = "Shirt (I Love NT)"
icon_state = "ilovent"
gender = NEUTER
/datum/sprite_accessory/undershirt/lover
name = "Shirt (Lover)"
icon_state = "lover"
gender = NEUTER
/datum/sprite_accessory/undershirt/matroska
name = "Shirt (Matroska)"
icon_state = "matroska"
gender = NEUTER
/datum/sprite_accessory/undershirt/meat
name = "Shirt (Meat)"
icon_state = "shirt_meat"
gender = NEUTER
/datum/sprite_accessory/undershirt/nano
name = "Shirt (Nanotrasen)"
icon_state = "shirt_nano"
gender = NEUTER
/datum/sprite_accessory/undershirt/peace
name = "Shirt (Peace)"
icon_state = "peace"
gender = NEUTER
/datum/sprite_accessory/undershirt/pacman
name = "Shirt (Pogoman)"
icon_state = "pogoman"
gender = NEUTER
/datum/sprite_accessory/undershirt/question
name = "Shirt (Question)"
icon_state = "shirt_question"
gender = NEUTER
/datum/sprite_accessory/undershirt/redshirt
name = "Shirt (Red)"
icon_state = "shirt_red"
gender = NEUTER
/datum/sprite_accessory/undershirt/skull
name = "Shirt (Skull)"
icon_state = "shirt_skull"
gender = NEUTER
/datum/sprite_accessory/undershirt/ss13
name = "Shirt (SS13)"
icon_state = "shirt_ss13"
gender = NEUTER
/datum/sprite_accessory/undershirt/stripe
name = "Shirt (Striped)"
icon_state = "shirt_stripes"
gender = NEUTER
/datum/sprite_accessory/undershirt/tiedye
name = "Shirt (Tie-dye)"
icon_state = "shirt_tiedye"
gender = NEUTER
/datum/sprite_accessory/undershirt/uk
name = "Shirt (UK)"
icon_state = "uk"
gender = NEUTER
/datum/sprite_accessory/undershirt/usa
name = "Shirt (USA)"
icon_state = "shirt_assblastusa"
gender = NEUTER
/datum/sprite_accessory/undershirt/shirt_white
name = "Shirt (White)"
icon_state = "shirt_white"
gender = NEUTER
/datum/sprite_accessory/undershirt/blackshortsleeve
name = "Short-sleeved Shirt (Black)"
icon_state = "blackshortsleeve"
gender = NEUTER
/datum/sprite_accessory/undershirt/blueshortsleeve
name = "Short-sleeved Shirt (Blue)"
icon_state = "blueshortsleeve"
gender = NEUTER
/datum/sprite_accessory/undershirt/greenshortsleeve
name = "Short-sleeved Shirt (Green)"
icon_state = "greenshortsleeve"
gender = NEUTER
/datum/sprite_accessory/undershirt/purpleshortsleeve
name = "Short-sleeved Shirt (Purple)"
icon_state = "purpleshortsleeve"
gender = NEUTER
/datum/sprite_accessory/undershirt/whiteshortsleeve
name = "Short-sleeved Shirt (White)"
icon_state = "whiteshortsleeve"
gender = NEUTER
/* SKYRAT EDIT REMOVAL START - Underwear and bra split
/datum/sprite_accessory/undershirt/sports_bra
name = "Sports Bra"
icon_state = "sports_bra"
gender = NEUTER
/datum/sprite_accessory/undershirt/sports_bra2
name = "Sports Bra (Alt)"
icon_state = "sports_bra_alt"
gender = NEUTER
*/ // SKYRAT EDIT END
/datum/sprite_accessory/undershirt/blueshirtsport
name = "Sports Shirt (Blue)"
icon_state = "blueshirtsport"
gender = NEUTER
/datum/sprite_accessory/undershirt/greenshirtsport
name = "Sports Shirt (Green)"
icon_state = "greenshirtsport"
gender = NEUTER
/datum/sprite_accessory/undershirt/redshirtsport
name = "Sports Shirt (Red)"
icon_state = "redshirtsport"
gender = NEUTER
/datum/sprite_accessory/undershirt/tank_black
name = "Tank Top (Black)"
icon_state = "tank_black"
gender = NEUTER
/datum/sprite_accessory/undershirt/tankfire
name = "Tank Top (Fire)"
icon_state = "tank_fire"
gender = NEUTER
/datum/sprite_accessory/undershirt/tank_grey
name = "Tank Top (Grey)"
icon_state = "tank_grey"
gender = NEUTER
/datum/sprite_accessory/undershirt/female_midriff
name = "Tank Top (Midriff)"
icon_state = "tank_midriff"
gender = FEMALE
/datum/sprite_accessory/undershirt/tank_red
name = "Tank Top (Red)"
icon_state = "tank_red"
gender = NEUTER
/datum/sprite_accessory/undershirt/tankstripe
name = "Tank Top (Striped)"
icon_state = "tank_stripes"
gender = NEUTER
/datum/sprite_accessory/undershirt/tank_white
name = "Tank Top (White)"
icon_state = "tank_white"
gender = NEUTER
/datum/sprite_accessory/undershirt/redtop
name = "Top (Red)"
icon_state = "redtop"
gender = FEMALE
/datum/sprite_accessory/undershirt/whitetop
name = "Top (White)"
icon_state = "whitetop"
gender = FEMALE
/datum/sprite_accessory/undershirt/tshirt_blue
name = "T-Shirt (Blue)"
icon_state = "blueshirt"
gender = NEUTER
/datum/sprite_accessory/undershirt/tshirt_green
name = "T-Shirt (Green)"
icon_state = "greenshirt"
gender = NEUTER
/datum/sprite_accessory/undershirt/tshirt_red
name = "T-Shirt (Red)"
icon_state = "redshirt"
gender = NEUTER
/datum/sprite_accessory/undershirt/yellowshirt
name = "T-Shirt (Yellow)"
icon_state = "yellowshirt"
gender = NEUTER
///////////////////////
// Socks Definitions //
///////////////////////
/datum/sprite_accessory/socks
icon = 'icons/mob/clothing/underwear.dmi'
em_block = TRUE
/datum/sprite_accessory/socks/nude
name = "Nude"
icon_state = null
// please make sure they're sorted alphabetically and categorized
/datum/sprite_accessory/socks/ace_knee
name = "Knee-high (Ace)"
icon_state = "ace_knee"
/datum/sprite_accessory/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)"
icon_state = "commie_knee"
/datum/sprite_accessory/socks/usa_knee
name = "Knee-High (Freedom)"
icon_state = "assblastusa_knee"
/datum/sprite_accessory/socks/rainbow_knee
name = "Knee-high (Rainbow)"
icon_state = "rainbow_knee"
/datum/sprite_accessory/socks/striped_knee
name = "Knee-high (Striped)"
icon_state = "striped_knee"
/datum/sprite_accessory/socks/thin_knee
name = "Knee-high (Thin)"
icon_state = "thin_knee"
/datum/sprite_accessory/socks/trans_knee
name = "Knee-high (Trans)"
icon_state = "trans_knee"
/datum/sprite_accessory/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/socks/fishnet_knee
name = "Knee-high (Fishnet)"
icon_state = "fishnet_knee"
/datum/sprite_accessory/socks/black_norm
name = "Normal (Black)"
icon_state = "black_norm"
/datum/sprite_accessory/socks/white_norm
name = "Normal (White)"
icon_state = "white_norm"
/datum/sprite_accessory/socks/pantyhose
name = "Pantyhose"
icon_state = "pantyhose"
/datum/sprite_accessory/socks/black_short
name = "Short (Black)"
icon_state = "black_short"
/datum/sprite_accessory/socks/white_short
name = "Short (White)"
icon_state = "white_short"
/datum/sprite_accessory/socks/stockings_blue
name = "Stockings (Blue)"
icon_state = "stockings_blue"
/datum/sprite_accessory/socks/stockings_cyan
name = "Stockings (Cyan)"
icon_state = "stockings_cyan"
/datum/sprite_accessory/socks/stockings_dpink
name = "Stockings (Dark Pink)"
icon_state = "stockings_dpink"
/datum/sprite_accessory/socks/stockings_green
name = "Stockings (Green)"
icon_state = "stockings_green"
/datum/sprite_accessory/socks/stockings_orange
name = "Stockings (Orange)"
icon_state = "stockings_orange"
/datum/sprite_accessory/socks/stockings_programmer
name = "Stockings (Programmer)"
icon_state = "stockings_lpink"
/datum/sprite_accessory/socks/stockings_purple
name = "Stockings (Purple)"
icon_state = "stockings_purple"
/datum/sprite_accessory/socks/stockings_yellow
name = "Stockings (Yellow)"
icon_state = "stockings_yellow"
/datum/sprite_accessory/socks/stockings_fishnet
name = "Stockings (Fishnet)"
icon_state = "fishnet_full"
/datum/sprite_accessory/socks/ace_thigh
name = "Thigh-high (Ace)"
icon_state = "ace_thigh"
/datum/sprite_accessory/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)"
icon_state = "commie_thigh"
/datum/sprite_accessory/socks/usa_thigh
name = "Thigh-high (Freedom)"
icon_state = "assblastusa_thigh"
/datum/sprite_accessory/socks/rainbow_thigh
name = "Thigh-high (Rainbow)"
icon_state = "rainbow_thigh"
/datum/sprite_accessory/socks/striped_thigh
name = "Thigh-high (Striped)"
icon_state = "striped_thigh"
/datum/sprite_accessory/socks/thin_thigh
name = "Thigh-high (Thin)"
icon_state = "thin_thigh"
/datum/sprite_accessory/socks/trans_thigh
name = "Thigh-high (Trans)"
icon_state = "trans_thigh"
/datum/sprite_accessory/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"
/datum/sprite_accessory/socks/fishnet_thigh
name = "Thigh-high (Fishnet)"
icon_state = "fishnet_thigh"
/datum/sprite_accessory/socks/thocks
name = "Thocks"
icon_state = "thocks"
//////////.//////////////////
// MutantParts Definitions //
/////////////////////////////
/datum/sprite_accessory/lizard_markings
icon = 'icons/mob/human/species/lizard/lizard_markings.dmi'
/datum/sprite_accessory/lizard_markings/dtiger
name = "Dark Tiger Body"
icon_state = "dtiger"
gender_specific = TRUE
/datum/sprite_accessory/lizard_markings/ltiger
name = "Light Tiger Body"
icon_state = "ltiger"
gender_specific = TRUE
/datum/sprite_accessory/lizard_markings/lbelly
name = "Light Belly"
icon_state = "lbelly"
gender_specific = TRUE
/datum/sprite_accessory/tails
em_block = TRUE
/// Describes which tail spine sprites to use, if any.
var/spine_key = NONE
///Used for fish-infused tails, which come in different flavors.
/datum/sprite_accessory/tails/fish
icon = 'icons/mob/human/fish_features.dmi'
color_src = USE_ONE_COLOR
/datum/sprite_accessory/tails/fish/simple
name = "Simple"
icon_state = "simple"
/datum/sprite_accessory/tails/fish/crescent
name = "Crescent"
icon_state = "crescent"
/datum/sprite_accessory/tails/fish/long
name = "Long"
icon_state = "long"
center = TRUE
dimension_x = 38
/datum/sprite_accessory/tails/fish/shark
name = "Shark"
icon_state = "shark"
/datum/sprite_accessory/tails/fish/chonky
name = "Chonky"
icon_state = "chonky"
center = TRUE
dimension_x = 36
/datum/sprite_accessory/tails/lizard
icon = 'icons/mob/human/species/lizard/lizard_tails.dmi'
spine_key = SPINE_KEY_LIZARD
/datum/sprite_accessory/tails/lizard/none
name = SPRITE_ACCESSORY_NONE
icon_state = "none"
natural_spawn = FALSE
/datum/sprite_accessory/tails/lizard/smooth
name = "Smooth"
icon_state = "smooth"
/datum/sprite_accessory/tails/lizard/dtiger
name = "Dark Tiger"
icon_state = "dtiger"
/datum/sprite_accessory/tails/lizard/ltiger
name = "Light Tiger"
icon_state = "ltiger"
/datum/sprite_accessory/tails/lizard/spikes
name = "Spikes"
icon_state = "spikes"
/datum/sprite_accessory/tails/lizard/short
name = "Short"
icon_state = "short"
spine_key = NONE
/datum/sprite_accessory/tails/felinid/cat
name = "Cat"
icon = 'icons/mob/human/cat_features.dmi'
icon_state = "default"
color_src = HAIR_COLOR
/datum/sprite_accessory/tails/monkey
/datum/sprite_accessory/tails/monkey/none
name = SPRITE_ACCESSORY_NONE
icon_state = "none"
natural_spawn = FALSE
/datum/sprite_accessory/tails/monkey/default
name = "Monkey"
icon = 'icons/mob/human/species/monkey/monkey_tail.dmi'
icon_state = "default"
color_src = FALSE
/datum/sprite_accessory/tails/xeno
icon_state = "default"
color_src = FALSE
center = TRUE
/datum/sprite_accessory/tails/xeno/default
name = "Xeno"
icon = 'icons/mob/human/species/alien/tail_xenomorph.dmi'
dimension_x = 40
/datum/sprite_accessory/tails/xeno/queen
name = "Xeno Queen"
icon = 'icons/mob/human/species/alien/tail_xenomorph_queen.dmi'
dimension_x = 64
/datum/sprite_accessory/pod_hair
icon = 'icons/mob/human/species/podperson_hair.dmi'
em_block = TRUE
/datum/sprite_accessory/pod_hair/ivy
name = "Ivy"
icon_state = "ivy"
/datum/sprite_accessory/pod_hair/cabbage
name = "Cabbage"
icon_state = "cabbage"
/datum/sprite_accessory/pod_hair/spinach
name = "Spinach"
icon_state = "spinach"
/datum/sprite_accessory/pod_hair/prayer
name = "Prayer"
icon_state = "prayer"
/datum/sprite_accessory/pod_hair/vine
name = "Vine"
icon_state = "vine"
/datum/sprite_accessory/pod_hair/shrub
name = "Shrub"
icon_state = "shrub"
/datum/sprite_accessory/pod_hair/rose
name = "Rose"
icon_state = "rose"
/datum/sprite_accessory/pod_hair/orchid
name = "Orchid"
icon_state = "orchid"
/datum/sprite_accessory/pod_hair/fig
name = "Fig"
icon_state = "fig"
/datum/sprite_accessory/pod_hair/hibiscus
name = "Hibiscus"
icon_state = "hibiscus"
/datum/sprite_accessory/snouts
icon = 'icons/mob/human/species/lizard/lizard_misc.dmi'
em_block = TRUE
/datum/sprite_accessory/snouts/sharp
name = "Sharp"
icon_state = "sharp"
/datum/sprite_accessory/snouts/round
name = "Round"
icon_state = "round"
/datum/sprite_accessory/snouts/sharplight
name = "Sharp + Light"
icon_state = "sharplight"
/datum/sprite_accessory/snouts/roundlight
name = "Round + Light"
icon_state = "roundlight"
/datum/sprite_accessory/horns
icon = 'icons/mob/human/species/lizard/lizard_misc.dmi'
em_block = TRUE
/datum/sprite_accessory/horns/simple
name = "Simple"
icon_state = "simple"
/datum/sprite_accessory/horns/short
name = "Short"
icon_state = "short"
/datum/sprite_accessory/horns/curled
name = "Curled"
icon_state = "curled"
/datum/sprite_accessory/horns/ram
name = "Ram"
icon_state = "ram"
/datum/sprite_accessory/horns/angler
name = "Angeler"
icon_state = "angler"
/datum/sprite_accessory/ears
icon = 'icons/mob/human/cat_features.dmi'
em_block = TRUE
/datum/sprite_accessory/ears/cat
name = "Cat"
icon_state = "cat"
color_src = HAIR_COLOR
/datum/sprite_accessory/ears/cat/big
name = "Big"
icon_state = "big"
/datum/sprite_accessory/ears/cat/miqo
name = "Coeurl"
icon_state = "miqo"
/datum/sprite_accessory/ears/cat/fold
name = "Fold"
icon_state = "fold"
/datum/sprite_accessory/ears/cat/lynx
name = "Lynx"
icon_state = "lynx"
/datum/sprite_accessory/ears/cat/round
name = "Round"
icon_state = "round"
/datum/sprite_accessory/ears/fox
icon = 'icons/mob/human/fox_features.dmi'
name = "Fox"
icon_state = "fox"
color_src = HAIR_COLOR
locked = TRUE
/datum/sprite_accessory/wings
icon = 'icons/mob/human/species/wings.dmi'
em_block = TRUE
/datum/sprite_accessory/wings_open
icon = 'icons/mob/human/species/wings.dmi'
em_block = TRUE
/datum/sprite_accessory/wings/angel
name = "Angel"
icon_state = "angel"
color_src = FALSE
dimension_x = 46
center = TRUE
dimension_y = 34
locked = TRUE
/datum/sprite_accessory/wings_open/angel
name = "Angel"
icon_state = "angel"
color_src = FALSE
dimension_x = 46
center = TRUE
dimension_y = 34
/datum/sprite_accessory/wings/dragon
name = "Dragon"
icon_state = "dragon"
dimension_x = 96
center = TRUE
dimension_y = 32
locked = TRUE
/datum/sprite_accessory/wings_open/dragon
name = "Dragon"
icon_state = "dragon"
dimension_x = 96
center = TRUE
dimension_y = 32
/datum/sprite_accessory/wings/megamoth
name = "Megamoth"
icon_state = "megamoth"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
locked = TRUE
/datum/sprite_accessory/wings_open/megamoth
name = "Megamoth"
icon_state = "megamoth"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
/datum/sprite_accessory/wings/mothra
name = "Mothra"
icon_state = "mothra"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
locked = TRUE
/datum/sprite_accessory/wings_open/mothra
name = "Mothra"
icon_state = "mothra"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
/datum/sprite_accessory/wings/skeleton
name = "Skeleton"
icon_state = "skele"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
locked = TRUE
/datum/sprite_accessory/wings_open/skeleton
name = "Skeleton"
icon_state = "skele"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
/datum/sprite_accessory/wings/robotic
name = "Robotic"
icon_state = "robotic"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
locked = TRUE
/datum/sprite_accessory/wings_open/robotic
name = "Robotic"
icon_state = "robotic"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
/datum/sprite_accessory/wings/fly
name = "Fly"
icon_state = "fly"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
locked = TRUE
/datum/sprite_accessory/wings_open/fly
name = "Fly"
icon_state = "fly"
color_src = FALSE
dimension_x = 96
center = TRUE
dimension_y = 32
/datum/sprite_accessory/wings/slime
name = "Slime"
icon_state = "slime"
dimension_x = 96
center = TRUE
dimension_y = 32
locked = TRUE
/datum/sprite_accessory/wings_open/slime
name = "Slime"
icon_state = "slime"
dimension_x = 96
center = TRUE
dimension_y = 32
/datum/sprite_accessory/frills
icon = 'icons/mob/human/species/lizard/lizard_misc.dmi'
/datum/sprite_accessory/frills/simple
name = "Simple"
icon_state = "simple"
/datum/sprite_accessory/frills/short
name = "Short"
icon_state = "short"
/datum/sprite_accessory/frills/aquatic
name = "Aquatic"
icon_state = "aqua"
/datum/sprite_accessory/spines
icon = 'icons/mob/human/species/lizard/lizard_spines.dmi'
em_block = TRUE
/datum/sprite_accessory/spines/none
name = SPRITE_ACCESSORY_NONE
icon_state = "none"
/datum/sprite_accessory/tail_spines
icon = 'icons/mob/human/species/lizard/lizard_spines.dmi'
em_block = TRUE
/datum/sprite_accessory/spines/short
name = "Short"
icon_state = "short"
/datum/sprite_accessory/tail_spines/short
name = "Short"
icon_state = "short"
/datum/sprite_accessory/spines/shortmeme
name = "Short + Membrane"
icon_state = "shortmeme"
/datum/sprite_accessory/tail_spines/shortmeme
name = "Short + Membrane"
icon_state = "shortmeme"
/datum/sprite_accessory/spines/long
name = "Long"
icon_state = "long"
/datum/sprite_accessory/tail_spines/long
name = "Long"
icon_state = "long"
/datum/sprite_accessory/spines/longmeme
name = "Long + Membrane"
icon_state = "longmeme"
/datum/sprite_accessory/tail_spines/longmeme
name = "Long + Membrane"
icon_state = "longmeme"
/datum/sprite_accessory/spines/aquatic
name = "Aquatic"
icon_state = "aqua"
/datum/sprite_accessory/tail_spines/aquatic
name = "Aquatic"
icon_state = "aqua"
/datum/sprite_accessory/caps
icon = 'icons/mob/human/species/mush_cap.dmi'
color_src = HAIR_COLOR
em_block = TRUE
/datum/sprite_accessory/caps/round
name = "Round"
icon_state = "round"
/datum/sprite_accessory/moth_wings
icon = 'icons/mob/human/species/moth/moth_wings.dmi'
color_src = null
em_block = TRUE
/datum/sprite_accessory/moth_wings/plain
name = "Plain"
icon_state = "plain"
/datum/sprite_accessory/moth_wings/monarch
name = "Monarch"
icon_state = "monarch"
/datum/sprite_accessory/moth_wings/luna
name = "Luna"
icon_state = "luna"
/datum/sprite_accessory/moth_wings/atlas
name = "Atlas"
icon_state = "atlas"
/datum/sprite_accessory/moth_wings/reddish
name = "Reddish"
icon_state = "redish"
/datum/sprite_accessory/moth_wings/royal
name = "Royal"
icon_state = "royal"
/datum/sprite_accessory/moth_wings/gothic
name = "Gothic"
icon_state = "gothic"
/datum/sprite_accessory/moth_wings/lovers
name = "Lovers"
icon_state = "lovers"
/datum/sprite_accessory/moth_wings/whitefly
name = "White Fly"
icon_state = "whitefly"
/datum/sprite_accessory/moth_wings/burnt_off
name = "Burnt Off"
icon_state = "burnt_off"
locked = TRUE
/datum/sprite_accessory/moth_wings/firewatch
name = "Firewatch"
icon_state = "firewatch"
/datum/sprite_accessory/moth_wings/deathhead
name = "Deathshead"
icon_state = "deathhead"
/datum/sprite_accessory/moth_wings/poison
name = "Poison"
icon_state = "poison"
/datum/sprite_accessory/moth_wings/ragged
name = "Ragged"
icon_state = "ragged"
/datum/sprite_accessory/moth_wings/moonfly
name = "Moon Fly"
icon_state = "moonfly"
/datum/sprite_accessory/moth_wings/snow
name = "Snow"
icon_state = "snow"
/datum/sprite_accessory/moth_wings/oakworm
name = "Oak Worm"
icon_state = "oakworm"
/datum/sprite_accessory/moth_wings/jungle
name = "Jungle"
icon_state = "jungle"
/datum/sprite_accessory/moth_wings/witchwing
name = "Witch Wing"
icon_state = "witchwing"
/datum/sprite_accessory/moth_wings/rosy
name = "Rosy"
icon_state = "rosy"
/datum/sprite_accessory/moth_wings/feathery
name = "Feathery"
icon_state = "feathery"
/datum/sprite_accessory/moth_wings/brown
name = "Brown"
icon_state = "brown"
/datum/sprite_accessory/moth_wings/plasmafire
name = "Plasmafire"
icon_state = "plasmafire"
/datum/sprite_accessory/moth_wings/moffra
name = "Moffra"
icon_state = "moffra"
/datum/sprite_accessory/moth_wings/lightbearer
name = "Lightbearer"
icon_state = "lightbearer"
/datum/sprite_accessory/moth_wings/dipped
name = "Dipped"
icon_state = "dipped"
/datum/sprite_accessory/moth_antennae //Finally splitting the sprite
icon = 'icons/mob/human/species/moth/moth_antennae.dmi'
color_src = null
/datum/sprite_accessory/moth_antennae/plain
name = "Plain"
icon_state = "plain"
/datum/sprite_accessory/moth_antennae/reddish
name = "Reddish"
icon_state = "reddish"
/datum/sprite_accessory/moth_antennae/royal
name = "Royal"
icon_state = "royal"
/datum/sprite_accessory/moth_antennae/gothic
name = "Gothic"
icon_state = "gothic"
/datum/sprite_accessory/moth_antennae/whitefly
name = "White Fly"
icon_state = "whitefly"
/datum/sprite_accessory/moth_antennae/lovers
name = "Lovers"
icon_state = "lovers"
/datum/sprite_accessory/moth_antennae/burnt_off
name = "Burnt Off"
icon_state = "burnt_off"
/datum/sprite_accessory/moth_antennae/firewatch
name = "Firewatch"
icon_state = "firewatch"
/datum/sprite_accessory/moth_antennae/deathhead
name = "Deathshead"
icon_state = "deathhead"
/datum/sprite_accessory/moth_antennae/poison
name = "Poison"
icon_state = "poison"
/datum/sprite_accessory/moth_antennae/ragged
name = "Ragged"
icon_state = "ragged"
/datum/sprite_accessory/moth_antennae/moonfly
name = "Moon Fly"
icon_state = "moonfly"
/datum/sprite_accessory/moth_antennae/oakworm
name = "Oak Worm"
icon_state = "oakworm"
/datum/sprite_accessory/moth_antennae/jungle
name = "Jungle"
icon_state = "jungle"
/datum/sprite_accessory/moth_antennae/witchwing
name = "Witch Wing"
icon_state = "witchwing"
/datum/sprite_accessory/moth_antennae/regal
name = "Regal"
icon_state = "regal"
/datum/sprite_accessory/moth_antennae/rosy
name = "Rosy"
icon_state = "rosy"
/datum/sprite_accessory/moth_antennae/feathery
name = "Feathery"
icon_state = "feathery"
/datum/sprite_accessory/moth_antennae/brown
name = "Brown"
icon_state = "brown"
/datum/sprite_accessory/moth_antennae/plasmafire
name = "Plasmafire"
icon_state = "plasmafire"
/datum/sprite_accessory/moth_antennae/moffra
name = "Moffra"
icon_state = "moffra"
/datum/sprite_accessory/moth_antennae/lightbearer
name = "Lightbearer"
icon_state = "lightbearer"
/datum/sprite_accessory/moth_antennae/dipped
name = "Dipped"
icon_state = "dipped"
/datum/sprite_accessory/moth_markings // the markings that moths can have. finally something other than the boring tan
icon = 'icons/mob/human/species/moth/moth_markings.dmi'
color_src = null
/datum/sprite_accessory/moth_markings/reddish
name = "Reddish"
icon_state = "reddish"
/datum/sprite_accessory/moth_markings/royal
name = "Royal"
icon_state = "royal"
/datum/sprite_accessory/moth_markings/gothic
name = "Gothic"
icon_state = "gothic"
/datum/sprite_accessory/moth_markings/whitefly
name = "White Fly"
icon_state = "whitefly"
/datum/sprite_accessory/moth_markings/lovers
name = "Lovers"
icon_state = "lovers"
/datum/sprite_accessory/moth_markings/burnt_off
name = "Burnt Off"
icon_state = "burnt_off"
/datum/sprite_accessory/moth_markings/firewatch
name = "Firewatch"
icon_state = "firewatch"
/datum/sprite_accessory/moth_markings/deathhead
name = "Deathshead"
icon_state = "deathhead"
/datum/sprite_accessory/moth_markings/poison
name = "Poison"
icon_state = "poison"
/datum/sprite_accessory/moth_markings/ragged
name = "Ragged"
icon_state = "ragged"
/datum/sprite_accessory/moth_markings/moonfly
name = "Moon Fly"
icon_state = "moonfly"
/datum/sprite_accessory/moth_markings/oakworm
name = "Oak Worm"
icon_state = "oakworm"
/datum/sprite_accessory/moth_markings/jungle
name = "Jungle"
icon_state = "jungle"
/datum/sprite_accessory/moth_markings/witchwing
name = "Witch Wing"
icon_state = "witchwing"
/datum/sprite_accessory/moth_markings/lightbearer
name = "Lightbearer"
icon_state = "lightbearer"
/datum/sprite_accessory/moth_markings/dipped
name = "Dipped"
icon_state = "dipped"