Fixes the body designer [WIP] (#17062)

* designer

* finished off remaining body designer stuff, name etc

* merged _vr file, added note to use this

* harddel fix

* this one too

* unifies subtabs, adds search and improves layout

* fixes a longstanding issue with marking color appearance changer

It was feeding a /list (The object) to the color picker and the color picker just rolled with it and said 'sure'.

Now with actual sanity TGUI color picker freaks out and goes 'wtf'

This makes it actually feed a color input into the color picker.

* quick push

* adds hair grad to body designer

* push

* color works again

* hair gradient for body designer

* deconf

* Gets rid of duplicate datum

* no test tonight

* spotty fat

* Condenses hair_extras. Fixes a few missing.

Also adds a new cosmetics_tests unit test.

* fixes the rest of the sprites

* lets try this test

* why did that test compile

* another test ENHANCEMENT(fix)

* More aggressive unittest

* fixie

* invisible tail has snowflake handling

* fix for invis check

* oops

* validate existence of icon in unit test

* unittest checks marking and hair icons properly

* fixing bad unit testing again

* fixed marking icon check

* get rid of unused datum, markings show

* fixes things

* you too

---------

Co-authored-by: Willburd <7099514+Willburd@users.noreply.github.com>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
Cameron Lennox
2025-02-07 20:57:25 -05:00
committed by GitHub
parent bb6a263e2f
commit eeefd4ef3f
37 changed files with 1593 additions and 2235 deletions
@@ -106,7 +106,6 @@
if(H.dna && reset_dna)
H.dna.ready_dna(H)
handle_base_eyes(H, custom_base)
return new_copy
@@ -9,6 +9,7 @@ Includes things like facial spines for unathi
*/
/datum/sprite_accessory/facial_hair
name = DEVELOPER_WARNING_NAME
icon = 'icons/mob/Human_face.dmi'
color_blend_mode = ICON_ADD
em_block = TRUE
@@ -7,6 +7,7 @@
*/
/datum/sprite_accessory/hair
name = DEVELOPER_WARNING_NAME
icon = 'icons/mob/Human_face_m.dmi' // default icon for all hairs
var/icon_add = 'icons/mob/human_face.dmi'
var/flags
@@ -339,6 +340,32 @@
icon_state = "hair_celebcurls"
flags = HAIR_TIEABLE
/datum/sprite_accessory/hair/citheronia
name = "Citheronia Hair (Kira72)"
icon = 'icons/mob/human_face_vr.dmi'
icon_state = "citheronia_hair"
ckeys_allowed = list("Kira72")
do_colouration = 0
/datum/sprite_accessory/hair/taramaw
name = "Hairmaw (Liquidfirefly)"
icon = 'icons/mob/human_face_vr.dmi'
icon_state = "maw_hair"
ckeys_allowed = list("liquidfirefly")
do_colouration = 0
/datum/sprite_accessory/hair/twindrillslong
name = "Twin Drills Long"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "hair_twincurllong"
/datum/sprite_accessory/hair/crescent_moon
name = "Crescent-Moon"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "crescent_moon"
/datum/sprite_accessory/hair/citheronia_colorable
name = "Citheronia"
icon = 'icons/mob/human_face_alt.dmi'
@@ -1317,6 +1344,12 @@
icon_add = 'icons/mob/human_face_alt_add.dmi'
icon_state = "soghun_hood"
/datum/sprite_accessory/hair/una_quinthorns
name = "Quintiple Unathi Horns"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "unathi_quintiple_horns"
/datum/sprite_accessory/hair/una_doublehorns
name = "Double Unathi Horns"
icon = 'icons/mob/human_face_alt.dmi'
@@ -1598,7 +1631,6 @@
/datum/sprite_accessory/hair/skr/tentacle_veryshort
name = "Skrell Short Tentacles"
icon_state = "skrell_hair_short"
gender = MALE
/datum/sprite_accessory/hair/skr/tentacle_average
name = "Skrell Long Tentacles"
@@ -1764,10 +1796,12 @@
/datum/sprite_accessory/hair/taj/bob
name = "Tajaran Bob"
icon_state = "hair_tbob"
/datum/sprite_accessory/hair/taj/fingercurl
/datum/sprite_accessory/hair/taj_ears_fingercurl
name = "Tajaran Finger Curls"
icon_state = "hair_fingerwave"
//Teshari things
/datum/sprite_accessory/hair/teshari
name = "Teshari Default"
@@ -1867,3 +1901,68 @@
/datum/sprite_accessory/hair/vox/quills_mohawk
name = "Quill Mohawk"
icon_state = "vox_mohawk"
/datum/sprite_accessory/hair/shadekin_hair_rivyr
name = "Rivyr Hair"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "shadekin_rivyr"
ckeys_allowed = list("verysoft")
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
gender = NEUTER
/datum/sprite_accessory/hair/slicker
name = "Slicker"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "hair_slicker"
/datum/sprite_accessory/facial_hair
icon = 'icons/mob/human_face_or_vr.dmi'
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/facial_hair/vulp_ruff
name = "Ruff"
icon = 'icons/mob/human_face_vr.dmi'
icon_state = "vulp_facial_ruff"
gender = NEUTER
/datum/sprite_accessory/facial_hair/vulp_kita
name = "Kita"
icon = 'icons/mob/human_face_vr.dmi'
icon_state = "vulp_facial_kita"
gender = NEUTER
/datum/sprite_accessory/facial_hair/vulp_swift
name = "Swift"
icon = 'icons/mob/human_face_vr.dmi'
icon_state = "vulp_facial_swift"
gender = NEUTER
/*
////////////////////////////
/ =--------------------= /
/ == Misc Definitions == /
/ =--------------------= /
////////////////////////////
*/
// Yes, I have to add all of this just to make some glowy hair.
// No, this isn't a character creation option, but... I guess in the future it could be, if anyone wants that?
/datum/sprite_accessory/hair_accessory
name = DEVELOPER_WARNING_NAME
icon = 'icons/mob/vore/hair_accessories_vr.dmi'
do_colouration = 0 // Set to 1 to blend (ICON_ADD) hair color
var/ignores_lighting = 0 // Whether or not this hair accessory will ignore lighting and glow in the dark.
color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1
var/desc = DEVELOPER_WARNING_NAME
/datum/sprite_accessory/hair_accessory/verie_hair_glow
name = "veries hair glow"
desc = ""
icon_state = "verie_hair_glow"
ignores_lighting = 1
//ckeys_allowed = list("vitoras") // This probably won't come into play EVER but better safe than sorry
@@ -1,512 +0,0 @@
////////////////////////
// For sergals and stuff
////////////////////////
// Note: Creating a sub-datum to group all vore stuff together
// would require us to exclude that datum from the global list.
/datum/sprite_accessory/hair/astolfo
name = "Astolfo"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "hair_astolfo"
/datum/sprite_accessory/hair/awoohair
name = "Shoulder-length Messy"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "momijihair"
/datum/sprite_accessory/hair/citheronia
name = "Citheronia Hair (Kira72)"
icon = 'icons/mob/human_face_vr.dmi'
icon_state = "citheronia_hair"
ckeys_allowed = list("Kira72")
do_colouration = 0
/datum/sprite_accessory/hair/taramaw
name = "Hairmaw (Liquidfirefly)"
icon = 'icons/mob/human_face_vr.dmi'
icon_state = "maw_hair"
ckeys_allowed = list("liquidfirefly")
do_colouration = 0
/datum/sprite_accessory/hair/citheronia_colorable
name = "Citheronia Hair"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "citheronia_hair_c"
do_colouration = 1
/datum/sprite_accessory/hair/sergal_plain
name = "Sergal Plain"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "serg_plain"
species_allowed = list(SPECIES_SERGAL)
/datum/sprite_accessory/hair/sergal_medicore
name = "Sergal Medicore"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "serg_medicore"
species_allowed = list(SPECIES_SERGAL)
/datum/sprite_accessory/hair/sergal_tapered
name = "Sergal Tapered"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "serg_tapered"
species_allowed = list(SPECIES_SERGAL)
/datum/sprite_accessory/hair/sergal_fairytail
name = "Sergal Fairytail"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "serg_fairytail"
species_allowed = list(SPECIES_SERGAL)
/datum/sprite_accessory/hair/braid
name = "Floorlength Braid"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "hair_braid"
/datum/sprite_accessory/hair/twindrills
name = "Twin Drills"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "hair_twincurl"
/datum/sprite_accessory/hair/twindrillslong
name = "Twin Drills Long"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "hair_twincurllong"
/datum/sprite_accessory/hair/crescent_moon
name = "Crescent-Moon"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "crescent_moon"
/datum/sprite_accessory/hair/bald
name = "Bald"
icon_state = "bald"
gender = MALE
/datum/sprite_accessory/hair/ponytail6_fixed
name = "Ponytail 6 but fixed"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "hair_ponytail6"
/datum/sprite_accessory/hair/una_hood
name = "Cobra Hood"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "soghun_hood"
/datum/sprite_accessory/hair/una_spines_long
name = "Long Unathi Spines"
icon_state = "soghun_longspines"
/datum/sprite_accessory/hair/una_spines_short
name = "Short Unathi Spines"
icon_state = "soghun_shortspines"
/datum/sprite_accessory/hair/una_frills_long
name = "Long Unathi Frills"
icon_state = "soghun_longfrills"
/datum/sprite_accessory/hair/una_frills_short
name = "Short Unathi Frills"
icon_state = "soghun_shortfrills"
/datum/sprite_accessory/hair/una_horns
name = "Unathi Horns"
icon_state = "soghun_horns"
/datum/sprite_accessory/hair/una_bighorns
name = "Unathi Big Horns"
icon_state = "unathi_bighorn"
/datum/sprite_accessory/hair/una_smallhorns
name = "Unathi Small Horns"
icon_state = "unathi_smallhorn"
/datum/sprite_accessory/hair/una_ramhorns
name = "Unathi Ram Horns"
icon_state = "unathi_ramhorn"
/datum/sprite_accessory/hair/una_sidefrills
name = "Unathi Side Frills"
icon_state = "unathi_sidefrills"
/datum/sprite_accessory/hair/una_doublehorns
name = "Double Unathi Horns"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "soghun_dubhorns"
/datum/sprite_accessory/hair/una_quinthorns
name = "Quintiple Unathi Horns"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "unathi_quintiple_horns"
/datum/sprite_accessory/hair/taj_ears
name = "Tajaran Ears"
icon_state = "ears_plain"
/datum/sprite_accessory/hair/taj_ears_clean
name = "Tajara Clean"
icon_state = "hair_clean"
/datum/sprite_accessory/hair/taj_ears_bangs
name = "Tajara Bangs"
icon_state = "hair_bangs"
/datum/sprite_accessory/hair/taj_ears_braid
name = "Tajara Braid"
icon_state = "hair_tbraid"
/datum/sprite_accessory/hair/taj_ears_shaggy
name = "Tajara Shaggy"
icon_state = "hair_shaggy"
/datum/sprite_accessory/hair/taj_ears_mohawk
name = "Tajaran Mohawk"
icon_state = "hair_mohawk"
/datum/sprite_accessory/hair/taj_ears_plait
name = "Tajara Plait"
icon_state = "hair_plait"
/datum/sprite_accessory/hair/taj_ears_straight
name = "Tajara Straight"
icon_state = "hair_straight"
/datum/sprite_accessory/hair/taj_ears_long
name = "Tajara Long"
icon_state = "hair_long"
/datum/sprite_accessory/hair/taj_ears_rattail
name = "Tajara Rat Tail"
icon_state = "hair_rattail"
/datum/sprite_accessory/hair/taj_ears_spiky
name = "Tajara Spiky"
icon_state = "hair_tajspiky"
/datum/sprite_accessory/hair/taj_ears_messy
name = "Tajara Messy"
icon_state = "hair_messy"
/datum/sprite_accessory/hair/taj_ears_curls
name = "Tajaran Curly"
icon_state = "hair_curly"
/datum/sprite_accessory/hair/taj_ears_wife
name = "Tajaran Housewife"
icon_state = "hair_wife"
/datum/sprite_accessory/hair/taj_ears_victory
name = "Tajaran Victory Curls"
icon_state = "hair_victory"
/datum/sprite_accessory/hair/taj_ears_bob
name = "Tajaran Bob"
icon_state = "hair_tbob"
/datum/sprite_accessory/hair/taj_ears_fingercurl
name = "Tajaran Finger Curls"
icon_state = "hair_fingerwave"
//Skrell 'hairstyles' - these were requested for a chimera and screw it, if one wants to eat seafood, go nuts
/datum/sprite_accessory/hair/skr_tentacle_veryshort
name = "Skrell Very Short Tentacles"
icon_state = "skrell_hair_veryshort"
/datum/sprite_accessory/hair/skr_tentacle_short
name = "Skrell Short Tentacles"
icon_state = "skrell_hair_short"
/datum/sprite_accessory/hair/skr_tentacle_average
name = "Skrell Average Tentacles"
icon_state = "skrell_hair_average"
/datum/sprite_accessory/hair/skr_tentacle_verylong
name = "Skrell Long Tentacles"
icon_state = "skrell_hair_verylong"
// Vulpa stuffs
/datum/sprite_accessory/hair/vulp_hair_kajam
name = "Kajam"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "kajam"
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_keid
name = "Keid"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "keid"
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_adhara
name = "Adhara"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "adhara"
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_kleeia
name = "Kleeia"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "kleeia"
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_mizar
name = "Mizar"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "mizar"
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_apollo
name = "Apollo"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "apollo"
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_belle
name = "Belle"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "belle"
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_bun
name = "Vulp Bun"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "bun"
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_jagged
name = "Jagged"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "jagged"
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_curl
name = "Curl"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "curl"
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_hawk
name = "Hawk"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "hawk"
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_anita
name = "Anita"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "anita"
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_short
name = "Short"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "short"
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_spike
name = "Spike"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "spike"
gender = NEUTER
//xeno stuffs
/datum/sprite_accessory/hair/xeno_head_drone_color
name = "Drone dome"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "cxeno_drone"
species_allowed = list(SPECIES_XENOHYBRID)
gender = NEUTER
// figure this one out for better coloring
/datum/sprite_accessory/hair/xeno_head_sentinel_color
name = "Sentinal dome"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "cxeno_sentinel"
species_allowed = list(SPECIES_XENOHYBRID)
gender = NEUTER
/datum/sprite_accessory/hair/xeno_head_queen_color
name = "Queen dome"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "cxeno_queen"
species_allowed = list(SPECIES_XENOHYBRID)
gender = NEUTER
/datum/sprite_accessory/hair/xeno_head_hunter_color
name = "Hunter dome"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "cxeno_hunter"
species_allowed = list(SPECIES_XENOHYBRID)
gender = NEUTER
/datum/sprite_accessory/hair/xeno_head_praetorian_color
name = "Praetorian dome"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "cxeno_praetorian"
species_allowed = list(SPECIES_XENOHYBRID)
gender = NEUTER
// Shadekin stuffs
/datum/sprite_accessory/hair/shadekin_hair_short
name = "Shadekin Short Hair"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "shadekin_short"
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
gender = NEUTER
/datum/sprite_accessory/hair/shadekin_hair_poofy
name = "Shadekin Poofy Hair"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "shadekin_poofy"
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
gender = NEUTER
/datum/sprite_accessory/hair/shadekin_hair_long
name = "Shadekin Long Hair"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "shadekin_long"
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
gender = NEUTER
/datum/sprite_accessory/hair/shadekin_hair_rivyr
name = "Rivyr Hair"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "shadekin_rivyr"
ckeys_allowed = list("verysoft")
species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
gender = NEUTER
/datum/sprite_accessory/hair/slicker
name = "Slicker"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "hair_slicker"
/datum/sprite_accessory/facial_hair
icon = 'icons/mob/human_face_or_vr.dmi'
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/facial_hair/shaved
name = "Shaved"
icon_state = "bald"
gender = NEUTER
/datum/sprite_accessory/facial_hair/neck_fluff
name = "Neck Fluff"
icon = 'icons/mob/human_face_or_vr.dmi'
icon_state = "facial_neckfluff"
gender = NEUTER
/datum/sprite_accessory/facial_hair/vulp_blaze
name = "Blaze"
icon = 'icons/mob/human_face_vr.dmi'
icon_state = "vulp_facial_blaze"
gender = NEUTER
/datum/sprite_accessory/facial_hair/vulp_vulpine
name = "Vulpine"
icon = 'icons/mob/human_face_vr.dmi'
icon_state = "vulp_facial_vulpine"
gender = NEUTER
/datum/sprite_accessory/facial_hair/vulp_earfluff
name = "Earfluff"
icon = 'icons/mob/human_face_vr.dmi'
icon_state = "vulp_facial_earfluff"
gender = NEUTER
/datum/sprite_accessory/facial_hair/vulp_mask
name = "Mask"
icon = 'icons/mob/human_face_vr.dmi'
icon_state = "vulp_facial_mask"
gender = NEUTER
/datum/sprite_accessory/facial_hair/vulp_patch
name = "Patch"
icon = 'icons/mob/human_face_vr.dmi'
icon_state = "vulp_facial_patch"
gender = NEUTER
/datum/sprite_accessory/facial_hair/vulp_ruff
name = "Ruff"
icon = 'icons/mob/human_face_vr.dmi'
icon_state = "vulp_facial_ruff"
gender = NEUTER
/datum/sprite_accessory/facial_hair/vulp_kita
name = "Kita"
icon = 'icons/mob/human_face_vr.dmi'
icon_state = "vulp_facial_kita"
gender = NEUTER
/datum/sprite_accessory/facial_hair/vulp_swift
name = "Swift"
icon = 'icons/mob/human_face_vr.dmi'
icon_state = "vulp_facial_swift"
gender = NEUTER
/*
////////////////////////////
/ =--------------------= /
/ == Misc Definitions == /
/ =--------------------= /
////////////////////////////
*/
// Yes, I have to add all of this just to make some glowy hair.
// No, this isn't a character creation option, but... I guess in the future it could be, if anyone wants that?
/datum/sprite_accessory/hair_accessory
name = DEVELOPER_WARNING_NAME
icon = 'icons/mob/vore/hair_accessories_vr.dmi'
do_colouration = 0 // Set to 1 to blend (ICON_ADD) hair color
var/ignores_lighting = 0 // Whether or not this hair accessory will ignore lighting and glow in the dark.
color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1
var/desc = DEVELOPER_WARNING_NAME
/datum/sprite_accessory/hair_accessory/verie_hair_glow
name = "veries hair glow"
desc = ""
icon_state = "verie_hair_glow"
ignores_lighting = 1
//ckeys_allowed = list("vitoras") // This probably won't come into play EVER but better safe than sorry
@@ -8,6 +8,7 @@
includes scars and tattoos
*/
/datum/sprite_accessory/marking
name = DEVELOPER_WARNING_NAME
icon = 'icons/mob/human_races/markings.dmi'
do_colouration = 1 //Almost all of them have it, COLOR_ADD
@@ -203,7 +204,7 @@ includes scars and tattoos
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/bandsface_human
name = "Color Bands (Face)"
name = "Color Bands (Face) (Human)"
icon_state = "bandshumanface"
body_parts = list(BP_HEAD)
@@ -859,7 +860,7 @@ includes scars and tattoos
/datum/sprite_accessory/marking/diona_leaves
name = "Leaves (Diona)"
icon_state = "diona_leaves"
body_parts = list(BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG, BP_L_ARM, BP_R_ARM, BP_L_HAND, BP_R_HAND, BP_TORSO, BP_GROIN, BP_HEAD)
body_parts = list(BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG, BP_L_ARM, BP_R_ARM, BP_TORSO, BP_GROIN, BP_HEAD)
/datum/sprite_accessory/marking/diona_thorns
name = "Thorns (Diona)"
@@ -991,10 +992,14 @@ includes scars and tattoos
/datum/sprite_accessory/marking/aug/backside_left
name = "Augment (Backside Left, Head)"
icon_state = "aug_backside_l"
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/aug/backside_left/side_diode
name = "Augment (Backside Left Diode, Head)"
icon_state = "aug_sidediode_l"
body_parts = list(BP_HEAD)
/datum/sprite_accessory/marking/aug/backside_right
name = "Augment (Backside Right, Head)"
@@ -1127,7 +1132,7 @@ includes scars and tattoos
/datum/sprite_accessory/marking/bandage/torso/torso3
name = "Bandage, Torso 3"
icon_state = "bandage3"
icon_state = "bandage3" //someone needs to make a proper torso sprite
/datum/sprite_accessory/marking/bandage/torso/torso3/teshari
name = "Bandage, Torso 3 (Teshari)"
@@ -1200,7 +1205,7 @@ includes scars and tattoos
icon_state = "bandage1_tesh"
species_allowed = list(SPECIES_TESHARI)
/datum/sprite_accessory/marking/bandage/l_hand/l_hand2
/datum/sprite_accessory/marking/bandage/l_hand/l_hand_2
name = "Bandage, Left Hand 2"
icon_state = "bandage2"
@@ -1302,7 +1307,7 @@ includes scars and tattoos
icon_state = "bandage1_tesh"
species_allowed = list(SPECIES_TESHARI)
/datum/sprite_accessory/marking/bandage/l_foot/l_foot2
/datum/sprite_accessory/marking/bandage/l_foot/l_foot_2
name = "Bandage, Left Foot 2"
icon_state = "bandage2"
@@ -1311,7 +1316,7 @@ includes scars and tattoos
icon_state = "bandage2_tesh"
species_allowed = list(SPECIES_TESHARI)
/datum/sprite_accessory/marking/bandage/l_foot/l_foot3
/datum/sprite_accessory/marking/bandage/l_foot/l_foot_3
name = "Bandage, Left Foot 3"
icon_state = "bandage3"
@@ -2064,7 +2069,7 @@ includes scars and tattoos
name = "Wrist Fluff"
icon_state = "fluffy_cuffs"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
body_parts = list(BP_L_ARM,BP_R_ARM)
/datum/sprite_accessory/marking/vr_chubby_belly
name = "Chubby Belly"
@@ -2497,6 +2502,9 @@ includes scars and tattoos
//Replikant-specific markings
/datum/sprite_accessory/marking/replikant
name = DEVELOPER_WARNING_NAME
/datum/sprite_accessory/marking/replikant/replika_r_thigh
name = "Replikant Stripe - Right Thigh"
icon_state = "replika"
@@ -2523,7 +2531,7 @@ includes scars and tattoos
/datum/sprite_accessory/marking/replikant/replika_panels_body
name = "Replikant Paneling - SynthFlesh (body)"
icon_state = "replikao"
icon_state = "replika"
color_blend_mode = ICON_MULTIPLY
body_parts = list(BP_TORSO)
@@ -2535,7 +2543,7 @@ includes scars and tattoos
//Digitigrade markings
/datum/sprite_accessory/marking/digi
name = "Digitigrate Marking Subcat, Please Ignore"
name = DEVELOPER_WARNING_NAME
icon = 'icons/mob/human_races/markings_digi.dmi'
digitigrade_acceptance = MARKING_DIGITIGRADE_ONLY
@@ -606,7 +606,7 @@
extra_overlay = "teshpattern_fem_tail"
/datum/sprite_accessory/tail/tesh_pattern_fem_alt
name = "Teshari male tail alt. pattern"
name = "Teshari fem tail alt. pattern"
desc = ""
icon_state = "teshtail_s"
do_colouration = 1
@@ -622,7 +622,7 @@
//For all species tails. Includes haircolored tails.
/datum/sprite_accessory/tail/special
name = "Blank tail. Do not select."
name = DEVELOPER_WARNING_NAME
icon = 'icons/effects/species_tails.dmi'
/datum/sprite_accessory/tail/special/unathi
@@ -1312,7 +1312,9 @@
icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
loaf_offset = 5
/datum/sprite_accessory/tail/taur/lizard/fat/spotty
/datum/sprite_accessory/tail/taur/lizard/spotty_fat
name = "Fat Spotted Lizard (Taur, Tricolor)"
icon_state = "fatspottedlizard_s"
extra_overlay = "fatspottedlizard_markings"