From f7df37c72d04df885bb6d7e64e0b76727de1e000 Mon Sep 17 00:00:00 2001 From: Chompstation Bot Date: Fri, 11 Dec 2020 12:13:12 +0000 Subject: [PATCH] Adds Verie's fluff items + framework for hair accessories --- code/_helpers/global_lists_vr.dm | 7 + .../mob/living/carbon/human/update_icons.dm | 50 +- .../modules/vore/appearance/preferences_vr.dm | 10 + .../vore/appearance/sprite_accessories_vr.dm | 4079 +++++++++++++++++ .../vore/appearance/update_icons_vr.dm | 10 + .../vore/fluffstuff/custom_clothes_vr.dm | 47 + .../vore/fluffstuff/custom_items_vr.dm | 51 +- icons/mob/vore/hair_accessories_vr.dmi | Bin 0 -> 1098 bytes icons/vore/custom_clothes_vr.dmi | Bin 219847 -> 221104 bytes icons/vore/custom_items_vr.dmi | Bin 60682 -> 61244 bytes icons/vore/custom_onmob_vr.dmi | Bin 11254 -> 15355 bytes 11 files changed, 4237 insertions(+), 17 deletions(-) create mode 100644 icons/mob/vore/hair_accessories_vr.dmi diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index b2dfae0544..0406099616 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -3,6 +3,7 @@ */ var/global/list/ear_styles_list = list() // Stores /datum/sprite_accessory/ears indexed by type +var/global/list/hair_accesories_list= list()// Stores /datum/sprite_accessory/hair_accessory indexed by type var/global/list/tail_styles_list = list() // Stores /datum/sprite_accessory/tail indexed by type var/global/list/wing_styles_list = list() // Stores /datum/sprite_accessory/wing indexed by type var/global/list/negative_traits = list() // Negative custom species traits, indexed by path @@ -451,6 +452,12 @@ var/global/list/remainless_species = list(SPECIES_PROMETHEAN, var/datum/sprite_accessory/wing/instance = new path() wing_styles_list[path] = instance + // Custom Hair Accessories + paths = typesof(/datum/sprite_accessory/hair_accessory) - /datum/sprite_accessory/hair_accessory + for(var/path in paths) + var/datum/sprite_accessory/hair_accessory/instance = new path() + hair_accesories_list[path] = instance + // Custom species traits paths = typesof(/datum/trait) - /datum/trait for(var/path in paths) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 06429d02f3..acaea0e8ca 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -78,21 +78,22 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() #define SUIT_STORE_LAYER 17 //Suit storage-slot item #define BACK_LAYER 18 //Back-slot item #define HAIR_LAYER 19 //The human's hair -#define EARS_LAYER 20 //Both ear-slot items (combined image) -#define EYES_LAYER 21 //Mob's eyes (used for glowing eyes) -#define FACEMASK_LAYER 22 //Mask-slot item -#define HEAD_LAYER 23 //Head-slot item -#define HANDCUFF_LAYER 24 //Handcuffs, if the human is handcuffed, in a secret inv slot -#define LEGCUFF_LAYER 25 //Same as handcuffs, for legcuffs -#define L_HAND_LAYER 26 //Left-hand item -#define R_HAND_LAYER 27 //Right-hand item -#define WING_LAYER 28 //VOREStation edit. Simply move this up a number if things are added. -#define TAIL_LAYER_ALT 29 //VOREStation edit. Simply move this up a number if things are added. -#define MODIFIER_EFFECTS_LAYER 30 //Effects drawn by modifiers -#define FIRE_LAYER 31 //'Mob on fire' overlay layer -#define WATER_LAYER 32 //'Mob submerged' overlay layer -#define TARGETED_LAYER 33 //'Aimed at' overlay layer -#define TOTAL_LAYERS 33 //VOREStation edit. <---- KEEP THIS UPDATED, should always equal the highest number here, used to initialize a list. +#define HAIR_ACCESSORY_LAYER 20 //VOREStation edit. Simply move this up a number if things are added. +#define EARS_LAYER 21 //Both ear-slot items (combined image) +#define EYES_LAYER 22 //Mob's eyes (used for glowing eyes) +#define FACEMASK_LAYER 23 //Mask-slot item +#define HEAD_LAYER 24 //Head-slot item +#define HANDCUFF_LAYER 25 //Handcuffs, if the human is handcuffed, in a secret inv slot +#define LEGCUFF_LAYER 26 //Same as handcuffs, for legcuffs +#define L_HAND_LAYER 27 //Left-hand item +#define R_HAND_LAYER 28 //Right-hand item +#define WING_LAYER 29 //VOREStation edit. Simply move this up a number if things are added. +#define TAIL_LAYER_ALT 30 //VOREStation edit. Simply move this up a number if things are added. +#define MODIFIER_EFFECTS_LAYER 31 //Effects drawn by modifiers +#define FIRE_LAYER 32 //'Mob on fire' overlay layer +#define WATER_LAYER 33 //'Mob submerged' overlay layer +#define TARGETED_LAYER 34 //'Aimed at' overlay layer +#define TOTAL_LAYERS 34 //VOREStation edit. <---- KEEP THIS UPDATED, should always equal the highest number here, used to initialize a list. ////////////////////////////////// /mob/living/carbon/human @@ -408,6 +409,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() //Reset our hair remove_layer(HAIR_LAYER) + remove_layer(HAIR_ACCESSORY_LAYER) //VOREStation Edit update_eyes() //Pirated out of here, for glowing eyes. var/obj/item/organ/external/head/head_organ = get_organ(BP_HEAD) @@ -465,10 +467,26 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() if(head_organ.transparent) //VOREStation Edit. For better slime limbs. face_standing += rgb(,,,120) - + overlays_standing[HAIR_LAYER] = image(face_standing, layer = BODY_LAYER+HAIR_LAYER) apply_layer(HAIR_LAYER) + // VOREStation Edit - START + var/icon/hair_acc_s = get_hair_accessory_overlay() + var/image/hair_acc_s_image = null + if(hair_acc_s) + if(hair_accessory_style.ignores_lighting) + hair_acc_s_image = image(hair_acc_s) + hair_acc_s_image.plane = PLANE_LIGHTING_ABOVE + hair_acc_s_image.appearance_flags = appearance_flags + if (hair_acc_s_image) + overlays_standing[HAIR_ACCESSORY_LAYER] = hair_acc_s_image + apply_layer(HAIR_ACCESSORY_LAYER) + return + overlays_standing[HAIR_ACCESSORY_LAYER] = image(hair_acc_s, layer = BODY_LAYER+HAIR_ACCESSORY_LAYER) + apply_layer(HAIR_ACCESSORY_LAYER) + // VOREStation Edit - END + /mob/living/carbon/human/update_eyes() if(QDESTROYING(src)) return diff --git a/code/modules/vore/appearance/preferences_vr.dm b/code/modules/vore/appearance/preferences_vr.dm index e362f51b3e..5897cb2a48 100644 --- a/code/modules/vore/appearance/preferences_vr.dm +++ b/code/modules/vore/appearance/preferences_vr.dm @@ -10,6 +10,16 @@ /mob/living/carbon/human // Horray Furries! + var/datum/sprite_accessory/hair_accessory/hair_accessory_style = null + var/r_acc = 30 + var/g_acc = 30 + var/b_acc = 30 + var/r_acc2 = 30 + var/g_acc2 = 30 + var/b_acc2 = 30 + var/r_acc3 = 30 + var/g_acc3 = 30 + var/b_acc3 = 30 var/datum/sprite_accessory/ears/ear_style = null var/r_ears = 30 var/g_ears = 30 diff --git a/code/modules/vore/appearance/sprite_accessories_vr.dm b/code/modules/vore/appearance/sprite_accessories_vr.dm index 885b93fd56..426d820cbc 100644 --- a/code/modules/vore/appearance/sprite_accessories_vr.dm +++ b/code/modules/vore/appearance/sprite_accessories_vr.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD /* Hello and welcome to VOREStation sprite_accessories: For a more general overview please read sprite_accessories.dm. This file is for ears and tails. @@ -1981,3 +1982,4081 @@ icon_state = "xenotailalt_fullcolour" do_colouration = 1 color_blend_mode = ICON_MULTIPLY +||||||| parent of 0a35110191... Merge pull request #9438 from Tenryumi/verie-fluff-stuff +/* + Hello and welcome to VOREStation sprite_accessories: For a more general overview + please read sprite_accessories.dm. This file is for ears and tails. + This is intended to be friendly for people with little to no actual coding experience. + !!WARNING!!: changing existing accessory 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 +*/ + +// Add Additional variable onto sprite_accessory +/datum/sprite_accessory + // Ckey of person allowed to use this, if defined. + var/list/ckeys_allowed = null + var/apply_restrictions = FALSE //whether to apply restrictions for specific tails/ears/wings + +/* +//////////////////////////// +/ =--------------------= / +/ == Ear Definitions == / +/ =--------------------= / +//////////////////////////// +*/ +/datum/sprite_accessory/ears + name = "You should not see this..." + icon = 'icons/mob/vore/ears_vr.dmi' + do_colouration = 0 // Set to 1 to blend (ICON_ADD) hair color + + var/color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1 + var/extra_overlay // Icon state of an additional overlay to blend in. + var/extra_overlay2 + var/desc = "You should not see this..." + +// Species-unique ears + +/datum/sprite_accessory/ears/shadekin + name = "Shadekin Ears, colorable" + desc = "" + icon_state = "shadekin" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + apply_restrictions = TRUE + species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) + +// Ears avaliable to anyone + +/datum/sprite_accessory/ears/hyena + name = "hyena ears, dual-color" + desc = "" + icon_state = "hyena" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "hyena-inner" + +/datum/sprite_accessory/ears/moth + name = "moth antennae" + desc = "" + icon_state = "moth" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/squirrel_orange + name = "squirel, orange" + desc = "" + icon_state = "squirrel-orange" + +/datum/sprite_accessory/ears/squirrel_red + name = "squirrel, red" + desc = "" + icon_state = "squirrel-red" + +/datum/sprite_accessory/ears/bunny_white + name = "bunny, white" + desc = "" + icon_state = "bunny" + +/datum/sprite_accessory/ears/bear_brown + name = "bear, brown" + desc = "" + icon_state = "bear-brown" + +/datum/sprite_accessory/ears/bear_panda + name = "bear, panda" + desc = "" + icon_state = "panda" + +/datum/sprite_accessory/ears/wolf_grey + name = "wolf, grey" + desc = "" + icon_state = "wolf-grey" + +/datum/sprite_accessory/ears/wolf_green + name = "wolf, green" + desc = "" + icon_state = "wolf-green" + +/datum/sprite_accessory/ears/wisewolf + name = "wolf, wise" + desc = "" + icon_state = "wolf-wise" + +/datum/sprite_accessory/ears/mouse_grey + name = "mouse, grey" + desc = "" + icon_state = "mouse-grey" + +/datum/sprite_accessory/ears/bee + name = "bee antennae" + desc = "" + icon_state = "bee" + +/datum/sprite_accessory/ears/antennae + name = "antennae, colorable" + desc = "" + icon_state = "antennae" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/curly_bug + name = "curly antennae, colorable" + desc = "" + icon_state = "curly_bug" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/dual_robot + name = "synth antennae, colorable" + desc = "" + icon_state = "dual_robot_antennae" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/right_robot + name = "right synth, colorable" + desc = "" + icon_state = "right_robot_antennae" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/left_robot + name = "left synth, colorable" + desc = "" + icon_state = "left_robot_antennae" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/oni_h1 + name = "oni horns" + desc = "" + icon_state = "oni-h1" + +/datum/sprite_accessory/ears/oni_h1_c + name = "oni horns, colorable" + desc = "" + icon_state = "oni-h1_c" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/demon_horns1 + name = "demon horns" + desc = "" + icon_state = "demon-horns1" + +/datum/sprite_accessory/ears/demon_horns1_c + name = "demon horns, colorable" + desc = "" + icon_state = "demon-horns1_c" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/demon_horns2 + name = "demon horns, colorable(outward)" + desc = "" + icon_state = "demon-horns2" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/dragon_horns + name = "dragon horns, colorable" + desc = "" + icon_state = "dragon-horns" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/foxears + name = "highlander zorren ears" + desc = "" + icon_state = "foxears" + +/datum/sprite_accessory/ears/fenears + name = "flatland zorren ears" + desc = "" + icon_state = "fenears" + +/datum/sprite_accessory/ears/sergal //Redundant + name = "Sergal ears" + icon_state = "serg_plain_s" + +/datum/sprite_accessory/ears/foxearshc + name = "highlander zorren ears, colorable" + desc = "" + icon_state = "foxearshc" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/fenearshc + name = "flatland zorren ears, colorable" + desc = "" + icon_state = "fenearshc" + extra_overlay = "fenears-inner" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/sergalhc + name = "Sergal ears, colorable" + icon_state = "serg_plain_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/mousehc + name = "mouse, colorable" + desc = "" + icon_state = "mouse" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "mouseinner" + +/datum/sprite_accessory/ears/mousehcno + name = "mouse, colorable, no inner" + desc = "" + icon_state = "mouse" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/wolfhc + name = "wolf, colorable" + desc = "" + icon_state = "wolf" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "wolfinner" + +/datum/sprite_accessory/ears/bearhc + name = "bear, colorable" + desc = "" + icon_state = "bear" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/smallbear + name = "small bear" + desc = "" + icon_state = "smallbear" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/squirrelhc + name = "squirrel, colorable" + desc = "" + icon_state = "squirrel" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/kittyhc + name = "kitty, colorable" + desc = "" + icon_state = "kitty" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "kittyinner" + +/datum/sprite_accessory/ears/bunnyhc + name = "bunny, colorable" + desc = "" + icon_state = "bunny" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/antlers + name = "antlers" + desc = "" + icon_state = "antlers" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/antlers_e + name = "antlers with ears" + desc = "" + icon_state = "cow-nohorns" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "antlers_mark" + +/datum/sprite_accessory/ears/smallantlers + name = "small antlers" + desc = "" + icon_state = "smallantlers" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/smallantlers_e + name = "small antlers with ears" + desc = "" + icon_state = "smallantlers" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "deer" + +/datum/sprite_accessory/ears/deer + name = "deer ears" + desc = "" + icon_state = "deer" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/cow + name = "cow, horns" + desc = "" + icon_state = "cow" + +/datum/sprite_accessory/ears/cowc + name = "cow, horns, colorable" + desc = "" + icon_state = "cow-c" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/cow_nohorns + name = "cow, no horns" + desc = "" + icon_state = "cow-nohorns" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/caprahorns + name = "caprine horns" + desc = "" + icon_state = "caprahorns" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/otie + name = "otie, colorable" + desc = "" + icon_state = "otie" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "otie-inner" + +/datum/sprite_accessory/ears/donkey + name = "donkey, colorable" + desc = "" + icon_state = "donkey" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "otie-inner" + +/datum/sprite_accessory/ears/zears + name = "jagged ears" + desc = "" + icon_state = "zears" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/elfs + name = "elven ears" + desc = "" + icon_state = "elfs" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/sleek + name = "sleek ears" + desc = "" + icon_state = "sleek" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/drake + name = "drake frills" + desc = "" + icon_state = "drake" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/vulp + name = "vulpkanin, dual-color" + desc = "" + icon_state = "vulp" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "vulp-inner" + +/datum/sprite_accessory/ears/vulp_short + name = "vulpkanin short" + desc = "" + icon_state = "vulp_terrier" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/vulp_short_dc + name = "vulpkanin short, dual-color" + desc = "" + icon_state = "vulp_terrier" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "vulp_terrier-inner" + +/datum/sprite_accessory/ears/vulp_jackal + name = "vulpkanin thin, dual-color" + desc = "" + icon_state = "vulp_jackal" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "vulp_jackal-inner" + +/datum/sprite_accessory/ears/bunny_floppy + name = "floopy bunny ears (colorable)" + desc = "" + icon_state = "floppy_bun" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/teshari + name = "Teshari (colorable)" + desc = "" + icon_state = "teshari" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "teshariinner" + +/datum/sprite_accessory/ears/tesharihigh + name = "Teshari upper ears (colorable)" + desc = "" + icon_state = "tesharihigh" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "tesharihighinner" + +/datum/sprite_accessory/ears/tesharilow + name = "Teshari lower ears (colorable)" + desc = "" + icon_state = "tesharilow" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "tesharilowinner" + +/datum/sprite_accessory/ears/tesh_pattern_ear_male + name = "Teshari male ear pattern (colorable)" + desc = "" + icon_state = "teshari" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "teshari_male_pattern" + +/datum/sprite_accessory/ears/tesh_pattern_ear_female + name = "Teshari female ear pattern (colorable)" + desc = "" + icon_state = "teshari" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "teshari_female_pattern" + +/datum/sprite_accessory/ears/inkling + name = "colorable mature inkling hair" + desc = "" + icon = 'icons/mob/human_face_vr.dmi' + icon_state = "inkling-colorable" + color_blend_mode = ICON_MULTIPLY + do_colouration = 1 + +/datum/sprite_accessory/ears/large_dragon + name = "Large dragon horns" + desc = "" + icon_state = "big_liz" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +// Special snowflake ears go below here. + +/datum/sprite_accessory/ears/molenar_kitsune + name = "quintail kitsune ears (Molenar)" + desc = "" + icon_state = "molenar-kitsune" + ckeys_allowed = list("molenar") + +/datum/sprite_accessory/ears/lilimoth_antennae + name = "citheronia antennae (Kira72)" + desc = "" + icon_state = "lilimoth_antennae" + ckeys_allowed = list("kira72") + +/datum/sprite_accessory/ears/molenar_deathclaw + name = "deathclaw ears (Molenar)" + desc = "" + icon_state = "molenar-deathclaw" + ckeys_allowed = list("molenar") + +/datum/sprite_accessory/ears/miria_fluffdragon + name = "fluffdragon ears (Miria Masters)" + desc = "" + icon_state = "miria-fluffdragonears" + ckeys_allowed = list("miriamasters") + +/datum/sprite_accessory/ears/miria_kitsune + name = "kitsune ears (Miria Masters)" + desc = "" + icon_state = "miria-kitsuneears" + ckeys_allowed = list("miriamasters") + +/datum/sprite_accessory/ears/runac + name = "fennecsune ears (Runac)" + desc = "" + icon_state = "runac" + ckeys_allowed = list("rebcom1807") + +/datum/sprite_accessory/ears/kerena + name = "wingwolf ears (Kerena)" + desc = "" + icon_state = "kerena" + ckeys_allowed = list("somekindofpony") + +/datum/sprite_accessory/ears/rosey + name = "tritail kitsune ears (Rosey)" + desc = "" + icon_state = "rosey" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + ckeys_allowed = list("joey4298") + +/datum/sprite_accessory/ears/aronai + name = "aronai ears/head (Aronai)" + desc = "" + icon_state = "aronai" + ckeys_allowed = list("arokha") + +/datum/sprite_accessory/ears/holly + name = "tigress ears (Holly Sharp)" + desc = "" + icon_state = "tigressears" + ckeys_allowed = list("hoodoo") + +/datum/sprite_accessory/ears/molenar_inkling + name = "teal mature inkling hair (Kari Akiren)" + desc = "" + icon_state = "molenar-tentacle" + ckeys_allowed = list("molenar") + +/datum/sprite_accessory/ears/shock + name = "pharoah hound ears (Shock Diamond)" + desc = "" + icon_state = "shock" + ckeys_allowed = list("icowom","cameron653") + +/datum/sprite_accessory/ears/alurane + name = "alurane ears/hair (Pumila)" + desc = "" + icon_state = "alurane-ears" + ckeys_allowed = list("natje") + +/datum/sprite_accessory/ears/frost + name = "Frost antenna" + desc = "" + icon_state = "frosted_tips" + ckeys_allowed = list("tucker0666") + +/datum/sprite_accessory/ears/sylv_pip + name = "sylveon ears and ribbons (Pip Shyner)" + desc = "" + icon_state = "pipears" + ckeys_allowed = list("phoaly") + +/datum/sprite_accessory/ears/elf_caprine_colorable + name = "Caprine horns with pointy ears, colorable" + desc = "" + icon_state = "elfs" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "caprahorns" + +/datum/sprite_accessory/ears/elf_oni_colorable + name = "oni horns with pointy ears, colorable" + desc = "" + icon_state = "elfs" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "oni-h1_c" + +/datum/sprite_accessory/ears/elf_demon_colorable + name = "Demon horns with pointy ears, colorable" + desc = "" + icon_state = "elfs" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "demon-horns1_c" + +/datum/sprite_accessory/ears/elf_demon_outwards_colorable + name = "Demon horns with pointy ears, outwards, colourable" + desc = "" + icon_state = "elfs" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "demon-horns2" + +/datum/sprite_accessory/ears/elf_dragon_colorable + name = "Dragon horns with pointy ears, colourable" + desc = "" + icon_state = "elfs" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "dragon-horns" + +/datum/sprite_accessory/ears/synthhorns_plain + name = "Synth horns, plain" + desc = "" + icon_state = "synthhorns_plain" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "synthhorns_plain_light" + +/datum/sprite_accessory/ears/synthhorns_thick + name = "Synth horns, thick" + desc = "" + icon_state = "synthhorns_thick" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "synthhorns_thick_light" + +/datum/sprite_accessory/ears/synthhorns_curly + name = "Synth horns, curly" + desc = "" + icon_state = "synthhorns_curled" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + + +/datum/sprite_accessory/ears/forward_curled_demon_horns_bony + name = "Succubus horns, colourable" + desc = "" + icon_state = "succu-horns_b" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/forward_curled_demon_horns_bony_with_colorable_ears + name = "Succubus horns with pointy ears, colourable" + desc = "" + icon_state = "elfs" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "succu-horns_b" + + + +/* +//////////////////////////// +/ =--------------------= / +/ == Wing Definitions == / +/ =--------------------= / +//////////////////////////// +*/ +/datum/sprite_accessory/wing + name = "You should not see this..." + icon = 'icons/mob/vore/wings_vr.dmi' + do_colouration = 0 //Set to 1 to enable coloration using the tail color. + + var/color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1 + var/extra_overlay // Icon state of an additional overlay to blend in. + var/extra_overlay2 //Tertiary. + var/clothing_can_hide = 1 // If true, clothing with HIDETAIL hides it. If the clothing is bulky enough to hide a tail, it should also hide wings. + // var/show_species_tail = 1 // Just so // TODO - Seems not needed ~Leshana + var/desc = "You should not see this..." + var/ani_state // State when flapping/animated + var/extra_overlay_w // Flapping state for extra overlay + var/extra_overlay2_w + +/datum/sprite_accessory/wing/shock //Unable to split the tail from the wings in the sprite, so let's just classify it as wings. + name = "pharoah hound tail (Shock Diamond)" + desc = "" + icon_state = "shock" + ckeys_allowed = list("icowom") + +/datum/sprite_accessory/wing/featheredlarge //Made by Natje! + name = "large feathered wings (colorable)" + desc = "" + icon_state = "feathered2" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/spider_legs //Not really /WINGS/ but they protrude from the back, kinda. Might as well have them here. + name = "spider legs" + desc = "" + icon_state = "spider-legs" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/moth + name = "moth wings" + desc = "" + icon_state = "moth" + +/datum/sprite_accessory/wing/mothc + name = "moth wings, colorable" + desc = "" + icon_state = "moth" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/dragonfly + name = "dragonfly" + desc = "" + icon_state = "dragonfly" + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/citheroniamoth + name = "citheronia wings" + desc = "" + icon_state = "citheronia_wings" + ckeys_allowed = list("kira72") + +/datum/sprite_accessory/wing/feathered + name = "feathered wings, colorable" + desc = "" + icon_state = "feathered" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/feathered_medium + name = "medium feathered wings, colorable" // Keekenox made these feathery things with a little bit more shape to them than the other wings. They are medium sized wing boys. + desc = "" + icon_state = "feathered3" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/bat_black + name = "bat wings, black" + desc = "" + icon_state = "bat-black" + +/datum/sprite_accessory/wing/bat_color + name = "bat wings, colorable" + desc = "" + icon_state = "bat-color" + do_colouration = 1 + +/datum/sprite_accessory/wing/bat_red + name = "bat wings, red" + desc = "" + icon_state = "bat-red" + +/datum/sprite_accessory/wing/harpywings + name = "harpy wings, colorable" + desc = "" + icon_state = "harpywings" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/harpywings_alt + name = "harpy wings alt, archeopteryx" + desc = "" + icon_state = "harpywings_alt" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "harpywings_altmarkings" + +/datum/sprite_accessory/wing/harpywings_alt_neckfur + name = "harpy wings alt, archeopteryx & neckfur" + desc = "" + icon_state = "harpywings_alt" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "harpywings_altmarkings" + extra_overlay2 = "neckfur" + +/datum/sprite_accessory/wing/harpywings_bat + name = "harpy wings, bat" + desc = "" + icon_state = "harpywings_bat" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "harpywings_batmarkings" + +/datum/sprite_accessory/wing/harpywings_bat_neckfur + name = "harpy wings, bat & neckfur" + desc = "" + icon_state = "harpywings_bat" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "harpywings_batmarkings" + extra_overlay2 = "neckfur" + +/datum/sprite_accessory/wing/neckfur + name = "neck fur" + desc = "" + icon_state = "neckfur" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/feathered + name = "feathered wings, colorable" + desc = "" + icon_state = "feathered" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/beewings + name = "bee wings" + desc = "" + icon_state = "beewings" + +/datum/sprite_accessory/wing/sepulchre + name = "demon wings (Sepulchre)" + desc = "" + icon_state = "sepulchre_wings" + ckeys_allowed = list("sepulchre") + +/datum/sprite_accessory/wing/miria_fluffdragon + name = "fluffdragon wings (Miria Masters)" + desc = "" + icon_state = "miria-fluffdragontail" + ckeys_allowed = list("miriamasters") + +/datum/sprite_accessory/wing/scree + name = "green taj wings (Scree)" + desc = "" + icon_state = "scree-wings" + ckeys_allowed = list("scree") + +/datum/sprite_accessory/wing/liquidfirefly_gazer //I g-guess this could be considered wings? + name = "gazer eyestalks" + desc = "" + icon_state = "liquidfirefly-eyestalks" + //ckeys_allowed = list("liquidfirefly","seiga") //At request. + +/datum/sprite_accessory/wing/moth_full + name = "moth antenna and wings" + desc = "" + icon_state = "moth_full" + +/datum/sprite_accessory/wing/moth_full_gray + name = "moth antenna and wings, colorable" + desc = "" + icon_state = "moth_full_gray" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/kerena + name = "wingwolf wings (Kerena)" + desc = "" + icon_state = "kerena-wings" + ckeys_allowed = list("somekindofpony") + +/datum/sprite_accessory/wing/snag + name = "xenomorph backplate" + desc = "" + icon_state = "snag-backplate" + +/datum/sprite_accessory/wing/sepulchre_c_yw + name = "demon wings (colorable)" + desc = "" + icon_state = "sepulchre_wingsc" + do_colouration = 1 + +/datum/sprite_accessory/wing/cyberdragon + name = "Cyber dragon wing (colorable)" + desc = "" + icon_state = "cyberdragon_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/cyberdragon_red + name = "Cyber dragon wing (red)" + desc = "" + icon_state = "cyberdragon_red_s" + do_colouration = 0 + +/datum/sprite_accessory/wing/cyberdoe + name = "Cyber doe wing" + desc = "" + icon_state = "cyberdoe_s" + do_colouration = 0 + +/datum/sprite_accessory/wing/drago_wing + name = "Cybernetic Dragon wings" + desc = "" + icon_state = "drago_wing" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "drago_wing_2" + +/* +//////////////////////////// +/ =--------------------= / +/ == Tail Definitions == / +/ =--------------------= / +//////////////////////////// +*/ +/datum/sprite_accessory/tail + name = "You should not see this..." + icon = 'icons/mob/vore/tails_vr.dmi' + do_colouration = 0 //Set to 1 to enable coloration using the tail color. + + var/color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1 + var/extra_overlay // Icon state of an additional overlay to blend in. + var/extra_overlay2 //Tertiary. + var/show_species_tail = 0 // If false, do not render species' tail. + var/clothing_can_hide = 1 // If true, clothing with HIDETAIL hides it + var/desc = "You should not see this..." + var/ani_state // State when wagging/animated + var/extra_overlay_w // Wagging state for extra overlay + var/extra_overlay2_w // Tertiary wagging. + var/list/hide_body_parts = list() //Uses organ tag defines. Bodyparts in this list do not have their icons rendered, allowing for more spriter freedom when doing taur/digitigrade stuff. + var/icon/clip_mask_icon = null //Icon file used for clip mask. + var/clip_mask_state = null //Icon state to generate clip mask. Clip mask is used to 'clip' off the lower part of clothing such as jumpsuits & full suits. + var/icon/clip_mask = null //Instantiated clip mask of given icon and state + +/datum/sprite_accessory/tail/New() + . = ..() + if(clip_mask_icon && clip_mask_state) + clip_mask = icon(icon = clip_mask_icon, icon_state = clip_mask_state) + +// Species-unique tails + +// Everyone tails + +/datum/sprite_accessory/tail/invisible + name = "hide species-sprite tail" + icon = null + icon_state = null + +/datum/sprite_accessory/tail/squirrel_orange + name = "squirel, orange" + desc = "" + icon_state = "squirrel-orange" + +/datum/sprite_accessory/tail/squirrel_red + name = "squirrel, red" + desc = "" + icon_state = "squirrel-red" + +/datum/sprite_accessory/tail/squirrel + name = "squirrel, colorable" + desc = "" + icon_state = "squirrel" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/kitty + name = "kitty, colorable, downwards" + desc = "" + icon_state = "kittydown" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/kittyup + name = "kitty, colorable, upwards" + desc = "" + icon_state = "kittyup" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/tiger_white + name = "tiger, colorable" + desc = "" + icon_state = "tiger" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "tigerinnerwhite" + +/datum/sprite_accessory/tail/stripey + name = "stripey taj, colorable" + desc = "" + icon_state = "stripeytail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "stripeytail_mark" + +/datum/sprite_accessory/tail/stripeytail_brown + name = "stripey taj, brown" + desc = "" + icon_state = "stripeytail-brown" + +/datum/sprite_accessory/tail/chameleon + name = "Chameleon, colorable" + desc = "" + icon_state = "chameleon" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/bunny + name = "bunny, colorable" + desc = "" + icon_state = "bunny" + do_colouration = 1 + +/datum/sprite_accessory/tail/bear_brown + name = "bear, brown" + desc = "" + icon_state = "bear-brown" + +/datum/sprite_accessory/tail/bear + name = "bear, colorable" + desc = "" + icon_state = "bear" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/dragon + name = "dragon, colorable" + desc = "" + icon_state = "dragon" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/wolf_grey + name = "wolf, grey" + desc = "" + icon_state = "wolf-grey" + +/datum/sprite_accessory/tail/wolf_green + name = "wolf, green" + desc = "" + icon_state = "wolf-green" + +/datum/sprite_accessory/tail/wisewolf + name = "wolf, wise" + desc = "" + icon_state = "wolf-wise" + +/datum/sprite_accessory/tail/blackwolf + name = "wolf, black" + desc = "" + icon_state = "wolf" + +/datum/sprite_accessory/tail/wolf + name = "wolf, colorable" + desc = "" + icon_state = "wolf" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "wolfinner" + +/datum/sprite_accessory/tail/mouse_pink + name = "mouse, pink" + desc = "" + icon_state = "mouse-pink" + +/datum/sprite_accessory/tail/mouse + name = "mouse, colorable" + desc = "" + icon_state = "mouse" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/horse + name = "horse tail, colorable" + desc = "" + icon_state = "horse" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/cow + name = "cow tail, colorable" + desc = "" + icon_state = "cow" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/fantail + name = "avian fantail, colorable" + desc = "" + icon_state = "fantail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/wagtail + name = "avian wagtail, colorable" + desc = "" + icon_state = "wagtail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/nevreandc + name = "nevrean tail, dual-color" + desc = "" + icon_state = "nevreantail_dc" + extra_overlay = "nevreantail_dc_tail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/nevreanwagdc + name = "nevrean wagtail, dual-color" + desc = "" + icon_state = "wagtail" + extra_overlay = "wagtail_dc_tail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/nevreanwagdc_alt + name = "nevrean wagtail, marked, dual-color" + desc = "" + icon_state = "wagtail2_dc" + extra_overlay = "wagtail2_dc_mark" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/crossfox + name = "cross fox" + desc = "" + icon_state = "crossfox" + +/datum/sprite_accessory/tail/beethorax + name = "bee thorax" + desc = "" + icon_state = "beethorax" + +/datum/sprite_accessory/tail/doublekitsune + name = "double kitsune tail, colorable" + desc = "" + icon_state = "doublekitsune" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/spade_color + name = "spade-tail (colorable)" + desc = "" + icon_state = "spadetail-black" + do_colouration = 1 + +/datum/sprite_accessory/tail/snag + name = "xenomorph tail 1" + desc = "" + icon_state = "snag" + +/datum/sprite_accessory/tail/xenotail + name = "xenomorph tail 2" + desc = "" + icon_state = "xenotail" + +/datum/sprite_accessory/tail/eboop + name = "EGN mech tail (dual color)" + desc = "" + icon_state = "eboop" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "eboop_mark" + +/datum/sprite_accessory/tail/molenar_kitsune + name = "quintail kitsune tails (Molenar)" + desc = "" + icon_state = "molenar-kitsune" + ckeys_allowed = list("molenar") + +/datum/sprite_accessory/tail/miria_fluffdragon + name = "fluffdragon tail (Miria Masters)" + desc = "" + icon_state = "miria-fluffdragontail" + ckeys_allowed = list("miriamasters") + +/datum/sprite_accessory/tail/miria_kitsune + name = "Black kitsune tails (Miria Masters)" + desc = "" + icon_state = "miria-kitsunetail" + ckeys_allowed = list("miriamasters") + +/datum/sprite_accessory/tail/molenar_deathclaw + name = "deathclaw bits (Molenar)" + desc = "" + icon_state = "molenar-deathclaw" + ckeys_allowed = list("molenar","silvertalismen","jertheace") + +/datum/sprite_accessory/tail/runac + name = "fennecsune tails (Runac)" + desc = "" + icon_state = "runac" + ckeys_allowed = list("rebcom1807") + +/datum/sprite_accessory/tail/reika //Leaving this since it was too hard to split the wings from the tail. + name = "fox tail (+ beewings) (Reika)" + desc = "" + icon_state = "reika" + ckeys_allowed = list("rikaru19xjenkins") + +/datum/sprite_accessory/tail/rosey + name = "tritail kitsune tails (Rosey)" + desc = "" + icon_state = "rosey_three" + ckeys_allowed = list("joey4298") + +/datum/sprite_accessory/tail/rosey2 + name = "pentatail kitsune tails (Rosey)" //I predict seven tails next. ~CK + desc = "" + icon_state = "rosey_five" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + ckeys_allowed = list("joey4298") + +/datum/sprite_accessory/tail/scree + name = "green taj tail (Scree)" + desc = "" + icon_state = "scree" + ckeys_allowed = list("scree") + +/datum/sprite_accessory/tail/aronai + name = "aronai tail (Aronai)" + desc = "" + icon_state = "aronai" + ckeys_allowed = list("arokha") + +/datum/sprite_accessory/tail/cabletail + name = "cabletail" + desc = "cabletail" + icon_state = "cabletail" + ckeys_allowed = list("tucker0666") + +/datum/sprite_accessory/tail/featherfluff_tail + name = "featherfluff_tail" + desc = "" + icon_state = "featherfluff_tail" + ckeys_allowed = list("tucker0666") + +/datum/sprite_accessory/tail/ketrai_wag + name = "fennix tail (vwag)" + desc = "" + icon_state = "ketraitail" + ani_state = "ketraitail_w" + //ckeys_allowed = list("ketrai") //They requested it to be enabled for everyone. + +/datum/sprite_accessory/tail/ketrainew_wag + name = "new fennix tail (vwag)" + desc = "" + icon_state = "ketraitailnew" + ani_state = "ketraitailnew_w" + +/datum/sprite_accessory/tail/redpanda + name = "red panda" + desc = "" + icon_state = "redpanda" + +/datum/sprite_accessory/tail/ringtail + name = "ringtail, colorable" + desc = "" + icon_state = "ringtail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "ringtail_mark" + +/datum/sprite_accessory/tail/holly + name = "tigress tail (Holly)" + desc = "" + icon_state = "tigresstail" + ckeys_allowed = list("hoodoo") + +/datum/sprite_accessory/tail/satyr + name = "goat legs, colorable" + desc = "" + icon_state = "satyr" + color_blend_mode = ICON_MULTIPLY + do_colouration = 1 + hide_body_parts = list(BP_L_LEG, BP_L_FOOT, BP_R_LEG, BP_R_FOOT) //Exclude pelvis just in case. + clip_mask_icon = 'icons/mob/vore/taurs_vr.dmi' + clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms. + +/datum/sprite_accessory/tail/tailmaw + name = "tailmaw, colorable" + desc = "" + icon_state = "tailmaw" + color_blend_mode = ICON_MULTIPLY + do_colouration = 1 + +/datum/sprite_accessory/tail/curltail + name = "curltail (vwag)" + desc = "" + icon_state = "curltail" + ani_state = "curltail_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "curltail_mark" + extra_overlay_w = "curltail_mark_w" + +/datum/sprite_accessory/tail/shorttail + name = "shorttail (vwag)" + desc = "" + icon_state = "straighttail" + ani_state = "straighttail_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/sneptail + name = "Snep/Furry Tail (vwag)" + desc = "" + icon_state = "sneptail" + ani_state = "sneptail_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "sneptail_mark" + extra_overlay_w = "sneptail_mark_w" + + +/datum/sprite_accessory/tail/tiger_new + name = "tiger tail (vwag)" + desc = "" + icon_state = "tigertail" + ani_state = "tigertail_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "tigertail_mark" + extra_overlay_w = "tigertail_mark_w" + +/datum/sprite_accessory/tail/vulp_new + name = "new vulp tail (vwag)" + desc = "" + icon_state = "vulptail" + ani_state = "vulptail_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "vulptail_mark" + extra_overlay_w = "vulptail_mark_w" + +/datum/sprite_accessory/tail/otietail + name = "otie tail (vwag)" + desc = "" + icon_state = "otie" + ani_state = "otie_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/newtailmaw + name = "new tailmaw (vwag)" + desc = "" + icon_state = "newtailmaw" + ani_state = "newtailmaw_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/ztail + name = "jagged flufftail" + desc = "" + icon_state = "ztail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/snaketail + name = "snake tail, colorable" + desc = "" + icon_state = "snaketail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/vulpan_alt + name = "vulpkanin alt style, colorable" + desc = "" + icon_state = "vulptail_alt" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/sergaltaildc + name = "sergal, dual-color" + desc = "" + icon_state = "sergal" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "sergal_mark" + +/datum/sprite_accessory/tail/skunktail + name = "skunk, dual-color" + desc = "" + icon_state = "skunktail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "skunktail_mark" + +/datum/sprite_accessory/tail/deertail + name = "deer, dual-color" + desc = "" + icon_state = "deertail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "deertail_mark" + +/datum/sprite_accessory/tail/tesh_feathered + name = "Teshari tail" + desc = "" + icon_state = "teshtail_s" + do_colouration = 1 + extra_overlay = "teshtail_feathers_s" + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/teshari_fluffytail + name = "Teshari alternative, colorable" + desc = "" + icon_state = "teshari_fluffytail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "teshari_fluffytail_mark" + +/datum/sprite_accessory/tail/tesh_pattern_male + name = "Teshari male tail pattern" + desc = "" + icon_state = "teshtail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "teshpattern_male_tail" + +/datum/sprite_accessory/tail/tesh_pattern_male_alt + name = "Teshari male tail alt. pattern" + desc = "" + icon_state = "teshtail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "teshpattern_male_alt" + +/datum/sprite_accessory/tail/tesh_pattern_fem + name = "Teshari female tail pattern" + desc = "" + icon_state = "teshtail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "teshpattern_fem_tail" + +/datum/sprite_accessory/tail/tesh_pattern_fem_alt + name = "Teshari male tail alt. pattern" + desc = "" + icon_state = "teshtail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "teshpattern_fem_alt" + +/datum/sprite_accessory/tail/nightstalker + name = "Nightstalker, colorable" + desc = "" + icon_state = "nightstalker" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +//For all species tails. Includes haircolored tails. +/datum/sprite_accessory/tail/special + name = "Blank tail. Do not select." + icon = 'icons/effects/species_tails_vr.dmi' + +/datum/sprite_accessory/tail/special/unathi + name = "unathi tail" + desc = "" + icon_state = "sogtail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/tajaran + name = "tajaran tail" + desc = "" + icon_state = "tajtail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/sergal + name = "sergal tail" + desc = "" + icon_state = "sergtail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/akula + name = "akula tail" + desc = "" + icon_state = "sharktail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/nevrean + name = "nevrean tail" + desc = "" + icon_state = "nevreantail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/armalis + name = "armalis tail" + desc = "" + icon_state = "armalis_tail_humanoid_s" + +/datum/sprite_accessory/tail/special/xenodrone + name = "xenomorph drone tail" + desc = "" + icon_state = "xenos_drone_tail_s" + +/datum/sprite_accessory/tail/special/xenosentinel + name = "xenomorph sentinel tail" + desc = "" + icon_state = "xenos_sentinel_tail_s" + +/datum/sprite_accessory/tail/special/xenohunter + name = "xenomorph hunter tail" + desc = "" + icon_state = "xenos_hunter_tail_s" + +/datum/sprite_accessory/tail/special/xenoqueen + name = "xenomorph queen tail" + desc = "" + icon_state = "xenos_queen_tail_s" + +/datum/sprite_accessory/tail/special/monkey + name = "monkey tail" + desc = "" + icon_state = "chimptail_s" + +/datum/sprite_accessory/tail/special/unathihc + name = "unathi tail, colorable" + desc = "" + icon_state = "sogtail_hc_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/tajaranhc + name = "tajaran tail, colorable" + desc = "" + icon_state = "tajtail_hc_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/sergalhc + name = "sergal tail, colorable" + desc = "" + icon_state = "sergtail_hc_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/akulahc + name = "akula tail, colorable" + desc = "" + icon_state = "sharktail_hc_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/nevreanhc + name = "nevrean tail, colorable" + desc = "" + icon_state = "nevreantail_hc_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/foxhc + name = "highlander zorren tail, colorable" + desc = "" + icon_state = "foxtail_hc_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/fennechc + name = "flatland zorren tail, colorable" + desc = "" + icon_state = "fentail_hc_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/armalishc + name = "armalis tail, colorable" + desc = "" + icon_state = "armalis_tail_humanoid_hc_s" + do_colouration = 1 + +/datum/sprite_accessory/tail/special/xenodronehc + name = "xenomorph drone tail, colorable" + desc = "" + icon_state = "xenos_drone_tail_hc_s" + do_colouration = 1 + +/datum/sprite_accessory/tail/special/xenosentinelhc + name = "xenomorph sentinel tail, colorable" + desc = "" + icon_state = "xenos_sentinel_tail_hc_s" + do_colouration = 1 + +/datum/sprite_accessory/tail/special/xenohunterhc + name = "xenomorph hunter tail, colorable" + desc = "" + icon_state = "xenos_hunter_tail_hc_s" + do_colouration = 1 + +/datum/sprite_accessory/tail/special/xenoqueenhc + name = "xenomorph queen tail, colorable" + desc = "" + icon_state = "xenos_queen_tail_hc_s" + do_colouration = 1 + +/datum/sprite_accessory/tail/special/monkeyhc + name = "monkey tail, colorable" + desc = "" + icon_state = "chimptail_hc_s" + do_colouration = 1 + +/datum/sprite_accessory/tail/special/vulpan + name = "vulpkanin, colorable" + desc = "" + icon_state = "vulptail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + + +/datum/sprite_accessory/tail/zenghu_taj + name = "Zeng-Hu Tajaran Synth tail" + desc = "" + icon_state = "zenghu_taj" + +//Taurs moved to a separate file due to extra code around them + +//Buggo Abdomens! + +/datum/sprite_accessory/tail/buggo + name = "Bug abdomen, colorable" + desc = "" + icon_state = "buggo_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggobee + name = "Bug abdomen, bee top, dual-colorable" + desc = "" + icon_state = "buggo_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobee_markings" + +/datum/sprite_accessory/tail/buggobeefull + name = "Bug abdomen, bee full, dual-colorable" + desc = "" + icon_state = "buggo_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobeefull_markings" + +/datum/sprite_accessory/tail/buggounder + name = "Bug abdomen, underside, dual-colorable" + desc = "" + icon_state = "buggo_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggounder_markings" + +/datum/sprite_accessory/tail/buggofirefly + name = "Bug abdomen, firefly, dual-colorable" + desc = "" + icon_state = "buggo_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofirefly_markings" + +/datum/sprite_accessory/tail/buggofat + name = "Fat bug abdomen, colorable" + desc = "" + icon_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggofatbee + name = "Fat bug abdomen, bee top, dual-colorable" + desc = "" + icon_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatbee_markings" + +/datum/sprite_accessory/tail/buggofatbeefull + name = "Fat bug abdomen, bee full, dual-colorable" + desc = "" + icon_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatbeefull_markings" + +/datum/sprite_accessory/tail/buggofatunder + name = "Fat bug abdomen, underside, dual-colorable" + desc = "" + icon_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatunder_markings" + +/datum/sprite_accessory/tail/buggofatfirefly + name = "Fat bug abdomen, firefly, dual-colorable" + desc = "" + icon_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatfirefly_markings" + +/datum/sprite_accessory/tail/buggowag + name = "Bug abdomen, colorable, vwag change" + desc = "" + icon_state = "buggo_s" + ani_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggobeewag + name = "Bug abdomen, bee top, dual color, vwag" + desc = "" + icon_state = "buggo_s" + ani_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobee_markings" + extra_overlay_w = "buggofatbee_markings" + +/datum/sprite_accessory/tail/buggobeefullwag + name = "Bug abdomen, bee full, dual color, vwag" + desc = "" + icon_state = "buggo_s" + ani_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobeefull_markings" + extra_overlay_w = "buggofatbeefull_markings" + +/datum/sprite_accessory/tail/buggounderwag + name = "Bug abdomen, underside, dual color, vwag" + desc = "" + icon_state = "buggo_s" + ani_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggounder_markings" + extra_overlay_w = "buggofatunder_markings" + +/datum/sprite_accessory/tail/buggofireflywag + name = "Bug abdomen, firefly, dual color, vwag" + desc = "" + icon_state = "buggo_s" + ani_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofirefly_markings" + extra_overlay_w = "buggofatfirefly_markings" + +//Vass buggo variants! + +/datum/sprite_accessory/tail/buggovass + name = "Bug abdomen, vass, colorable" + desc = "" + icon_state = "buggo_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggovassbee + name = "Bug abdomen, bee top, dc, vass" + desc = "" + icon_state = "buggo_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobee_vass_markings" + +/datum/sprite_accessory/tail/buggovassbeefull + name = "Bug abdomen, bee full, dc, vass" + desc = "" + icon_state = "buggo_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobeefull_vass_markings" + +/datum/sprite_accessory/tail/buggovassunder + name = "Bug abdomen, underside, dc, vass" + desc = "" + icon_state = "buggo_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggounder_vass_markings" + +/datum/sprite_accessory/tail/buggovassfirefly + name = "Bug abdomen, firefly, dc, vass" + desc = "" + icon_state = "buggo_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofirefly_vass_markings" + +/datum/sprite_accessory/tail/buggovassfat + name = "Fat bug abdomen, vass, colorable" + desc = "" + icon_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggovassfatbee + name = "Fat bug abdomen, bee top, dc, vass" + desc = "" + icon_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatbee_vass_markings" + +/datum/sprite_accessory/tail/buggovassfatbeefull + name = "Fat bug abdomen, bee full, dc, vass" + desc = "" + icon_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatbeefull_vass_markings" + +/datum/sprite_accessory/tail/buggovassfatunder + name = "Fat bug abdomen, underside, dc, vass" + desc = "" + icon_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatunder_vass_markings" + +/datum/sprite_accessory/tail/buggovassfatfirefly + name = "Fat bug abdomen, firefly, dc, vass" + desc = "" + icon_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatfirefly_vass_markings" + +/datum/sprite_accessory/tail/buggovasswag + name = "Bug abdomen, vass, colorable, vwag change" + desc = "" + icon_state = "buggo_vass_s" + ani_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggovassbeewag + name = "Bug abdomen, bee top, dc, vass, vwag" + desc = "" + icon_state = "buggo_vass_s" + ani_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobee_vass_markings" + extra_overlay_w = "buggofatbee_vass_markings" + +/datum/sprite_accessory/tail/buggovassbeefullwag + name = "Bug abdomen, bee full, dc, vass, vwag" + desc = "" + icon_state = "buggo_vass_s" + ani_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobeefull_vass_markings" + extra_overlay_w = "buggofatbeefull_vass_markings" + +/datum/sprite_accessory/tail/buggovassunderwag + name = "Bug abdomen, underside, dc, vass, vwag" + desc = "" + icon_state = "buggo_vass_s" + ani_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggounder_vass_markings" + extra_overlay_w = "buggofatunder_vass_markings" + +/datum/sprite_accessory/tail/buggovassfireflywag + name = "Bug abdomen, firefly, dc, vass, vwag" + desc = "" + icon_state = "buggo_vass_s" + ani_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofirefly_vass_markings" + extra_overlay_w = "buggofatfirefly_vass_markings" + +/datum/sprite_accessory/tail/tail_smooth + name = "Smooth Lizard Tail, colorable" + desc = "" + icon_state = "tail_smooth" + ani_state = "tail_smooth_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/triplekitsune_colorable + name = "Kitsune 3 tails, colorable" + desc = "" + icon_state = "triplekitsune" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "triplekitsune_tips" + +/datum/sprite_accessory/tail/ninekitsune_colorable + name = "Kitsune 9 tails, colorable" + desc = "" + icon_state = "ninekitsune" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "ninekitsune-tips" + +/datum/sprite_accessory/tail/shadekin_short + name = "Shadekin Short Tail, colorable" + desc = "" + icon_state = "shadekin-short" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + //apply_restrictions = TRUE + //species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) + +/datum/sprite_accessory/tail/wartacosushi_tail //brightened +20RGB from matching roboparts + name = "Ward-Takahashi Tail" + desc = "" + icon_state = "wardtakahashi_vulp" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/wartacosushi_tail_dc + name = "Ward-Takahashi Tail, dual-color" + desc = "" + icon_state = "wardtakahashi_vulp_dc" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "wardtakahashi_vulp_dc_mark" + +/datum/sprite_accessory/tail/Easterntail + name = "Eastern Dragon (Animated)" + desc = "" + icon_state = "Easterntail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "EasterntailColorTip" + ani_state = "Easterntail_w" + extra_overlay_w = "EasterntailColorTip_w" + +/datum/sprite_accessory/tail/synthtail_static + name = "Synthetic lizard tail" + desc = "" + icon_state = "synthtail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/synthtail_vwag + name = "Synthetic lizard tail (vwag)" + desc = "" + icon_state = "synthtail" + ani_state = "synthtail_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/Plugtail + name = "Synthetic plug tail" + desc = "" + icon_state = "Plugtail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "PlugtailMarking" + extra_overlay2 = "PlugtailMarking2" + +/datum/sprite_accessory/tail/Segmentedtail + name = "Segmented tail, animated" + desc = "" + icon_state = "Segmentedtail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "Segmentedtailmarking" + ani_state = "Segmentedtail_w" + extra_overlay_w = "Segmentedtailmarking_w" + +/datum/sprite_accessory/tail/Segmentedlights + name = "Segmented tail, animated synth" + desc = "" + icon_state = "Segmentedtail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "Segmentedlights" + ani_state = "Segmentedtail_w" + extra_overlay_w = "Segmentedlights_w" + +/datum/sprite_accessory/tail/fox_tail + name = "Fox tail" + desc = "" + icon_state = "fox_tail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/fox_tail_plain + name = "Fox tail" + desc = "" + icon_state = "fox_tail_plain_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/fennec_tail + name = "Fennec tail" + desc = "" + icon_state = "fennec_tail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/lizard_tail_smooth + name = "Lizard Tail (Smooth)" + desc = "" + icon_state = "lizard_tail_smooth" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/lizard_tail_dark_tiger + name = "Lizard Tail (Dark Tiger)" + desc = "" + icon_state = "lizard_tail_dark_tiger" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/lizard_tail_light_tiger + name = "Lizard Tail (Light Tiger)" + desc = "" + icon_state = "lizard_tail_light_tiger" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/lizard_tail_spiked + name = "Lizard Tail (Spiked)" + desc = "" + icon_state = "lizard_tail_spiked" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/xenotail_fullcolour + name = "xenomorph tail (fully colourable)" + desc = "" + icon_state = "xenotail_fullcolour" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/xenotailalt_fullcolour + name = "xenomorph tail alt. (fully colourable)" + desc = "" + icon_state = "xenotailalt_fullcolour" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY +======= +/* + Hello and welcome to VOREStation sprite_accessories: For a more general overview + please read sprite_accessories.dm. This file is for ears and tails. + This is intended to be friendly for people with little to no actual coding experience. + !!WARNING!!: changing existing accessory 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 +*/ + +// Add Additional variable onto sprite_accessory +/datum/sprite_accessory + // Ckey of person allowed to use this, if defined. + var/list/ckeys_allowed = null + var/apply_restrictions = FALSE //whether to apply restrictions for specific tails/ears/wings + +/* +//////////////////////////// +/ =--------------------= / +/ == Ear Definitions == / +/ =--------------------= / +//////////////////////////// +*/ +/datum/sprite_accessory/ears + name = "You should not see this..." + icon = 'icons/mob/vore/ears_vr.dmi' + do_colouration = 0 // Set to 1 to blend (ICON_ADD) hair color + + var/color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1 + var/extra_overlay // Icon state of an additional overlay to blend in. + var/extra_overlay2 + var/desc = "You should not see this..." + +// Species-unique ears + +/datum/sprite_accessory/ears/shadekin + name = "Shadekin Ears, colorable" + desc = "" + icon_state = "shadekin" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + apply_restrictions = TRUE + species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) + +// Ears avaliable to anyone + +/datum/sprite_accessory/ears/hyena + name = "hyena ears, dual-color" + desc = "" + icon_state = "hyena" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "hyena-inner" + +/datum/sprite_accessory/ears/moth + name = "moth antennae" + desc = "" + icon_state = "moth" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/squirrel_orange + name = "squirel, orange" + desc = "" + icon_state = "squirrel-orange" + +/datum/sprite_accessory/ears/squirrel_red + name = "squirrel, red" + desc = "" + icon_state = "squirrel-red" + +/datum/sprite_accessory/ears/bunny_white + name = "bunny, white" + desc = "" + icon_state = "bunny" + +/datum/sprite_accessory/ears/bear_brown + name = "bear, brown" + desc = "" + icon_state = "bear-brown" + +/datum/sprite_accessory/ears/bear_panda + name = "bear, panda" + desc = "" + icon_state = "panda" + +/datum/sprite_accessory/ears/wolf_grey + name = "wolf, grey" + desc = "" + icon_state = "wolf-grey" + +/datum/sprite_accessory/ears/wolf_green + name = "wolf, green" + desc = "" + icon_state = "wolf-green" + +/datum/sprite_accessory/ears/wisewolf + name = "wolf, wise" + desc = "" + icon_state = "wolf-wise" + +/datum/sprite_accessory/ears/mouse_grey + name = "mouse, grey" + desc = "" + icon_state = "mouse-grey" + +/datum/sprite_accessory/ears/bee + name = "bee antennae" + desc = "" + icon_state = "bee" + +/datum/sprite_accessory/ears/antennae + name = "antennae, colorable" + desc = "" + icon_state = "antennae" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/curly_bug + name = "curly antennae, colorable" + desc = "" + icon_state = "curly_bug" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/dual_robot + name = "synth antennae, colorable" + desc = "" + icon_state = "dual_robot_antennae" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/right_robot + name = "right synth, colorable" + desc = "" + icon_state = "right_robot_antennae" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/left_robot + name = "left synth, colorable" + desc = "" + icon_state = "left_robot_antennae" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/oni_h1 + name = "oni horns" + desc = "" + icon_state = "oni-h1" + +/datum/sprite_accessory/ears/oni_h1_c + name = "oni horns, colorable" + desc = "" + icon_state = "oni-h1_c" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/demon_horns1 + name = "demon horns" + desc = "" + icon_state = "demon-horns1" + +/datum/sprite_accessory/ears/demon_horns1_c + name = "demon horns, colorable" + desc = "" + icon_state = "demon-horns1_c" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/demon_horns2 + name = "demon horns, colorable(outward)" + desc = "" + icon_state = "demon-horns2" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/dragon_horns + name = "dragon horns, colorable" + desc = "" + icon_state = "dragon-horns" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/foxears + name = "highlander zorren ears" + desc = "" + icon_state = "foxears" + +/datum/sprite_accessory/ears/fenears + name = "flatland zorren ears" + desc = "" + icon_state = "fenears" + +/datum/sprite_accessory/ears/sergal //Redundant + name = "Sergal ears" + icon_state = "serg_plain_s" + +/datum/sprite_accessory/ears/foxearshc + name = "highlander zorren ears, colorable" + desc = "" + icon_state = "foxearshc" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/fenearshc + name = "flatland zorren ears, colorable" + desc = "" + icon_state = "fenearshc" + extra_overlay = "fenears-inner" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/sergalhc + name = "Sergal ears, colorable" + icon_state = "serg_plain_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/mousehc + name = "mouse, colorable" + desc = "" + icon_state = "mouse" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "mouseinner" + +/datum/sprite_accessory/ears/mousehcno + name = "mouse, colorable, no inner" + desc = "" + icon_state = "mouse" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/wolfhc + name = "wolf, colorable" + desc = "" + icon_state = "wolf" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "wolfinner" + +/datum/sprite_accessory/ears/bearhc + name = "bear, colorable" + desc = "" + icon_state = "bear" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/smallbear + name = "small bear" + desc = "" + icon_state = "smallbear" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/squirrelhc + name = "squirrel, colorable" + desc = "" + icon_state = "squirrel" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/kittyhc + name = "kitty, colorable" + desc = "" + icon_state = "kitty" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "kittyinner" + +/datum/sprite_accessory/ears/bunnyhc + name = "bunny, colorable" + desc = "" + icon_state = "bunny" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/antlers + name = "antlers" + desc = "" + icon_state = "antlers" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/antlers_e + name = "antlers with ears" + desc = "" + icon_state = "cow-nohorns" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "antlers_mark" + +/datum/sprite_accessory/ears/smallantlers + name = "small antlers" + desc = "" + icon_state = "smallantlers" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/smallantlers_e + name = "small antlers with ears" + desc = "" + icon_state = "smallantlers" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "deer" + +/datum/sprite_accessory/ears/deer + name = "deer ears" + desc = "" + icon_state = "deer" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/cow + name = "cow, horns" + desc = "" + icon_state = "cow" + +/datum/sprite_accessory/ears/cowc + name = "cow, horns, colorable" + desc = "" + icon_state = "cow-c" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/cow_nohorns + name = "cow, no horns" + desc = "" + icon_state = "cow-nohorns" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/caprahorns + name = "caprine horns" + desc = "" + icon_state = "caprahorns" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/otie + name = "otie, colorable" + desc = "" + icon_state = "otie" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "otie-inner" + +/datum/sprite_accessory/ears/donkey + name = "donkey, colorable" + desc = "" + icon_state = "donkey" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "otie-inner" + +/datum/sprite_accessory/ears/zears + name = "jagged ears" + desc = "" + icon_state = "zears" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/elfs + name = "elven ears" + desc = "" + icon_state = "elfs" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/sleek + name = "sleek ears" + desc = "" + icon_state = "sleek" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/drake + name = "drake frills" + desc = "" + icon_state = "drake" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/vulp + name = "vulpkanin, dual-color" + desc = "" + icon_state = "vulp" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "vulp-inner" + +/datum/sprite_accessory/ears/vulp_short + name = "vulpkanin short" + desc = "" + icon_state = "vulp_terrier" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/vulp_short_dc + name = "vulpkanin short, dual-color" + desc = "" + icon_state = "vulp_terrier" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "vulp_terrier-inner" + +/datum/sprite_accessory/ears/vulp_jackal + name = "vulpkanin thin, dual-color" + desc = "" + icon_state = "vulp_jackal" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "vulp_jackal-inner" + +/datum/sprite_accessory/ears/bunny_floppy + name = "floopy bunny ears (colorable)" + desc = "" + icon_state = "floppy_bun" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/teshari + name = "Teshari (colorable)" + desc = "" + icon_state = "teshari" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "teshariinner" + +/datum/sprite_accessory/ears/tesharihigh + name = "Teshari upper ears (colorable)" + desc = "" + icon_state = "tesharihigh" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "tesharihighinner" + +/datum/sprite_accessory/ears/tesharilow + name = "Teshari lower ears (colorable)" + desc = "" + icon_state = "tesharilow" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "tesharilowinner" + +/datum/sprite_accessory/ears/tesh_pattern_ear_male + name = "Teshari male ear pattern (colorable)" + desc = "" + icon_state = "teshari" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "teshari_male_pattern" + +/datum/sprite_accessory/ears/tesh_pattern_ear_female + name = "Teshari female ear pattern (colorable)" + desc = "" + icon_state = "teshari" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "teshari_female_pattern" + +/datum/sprite_accessory/ears/inkling + name = "colorable mature inkling hair" + desc = "" + icon = 'icons/mob/human_face_vr.dmi' + icon_state = "inkling-colorable" + color_blend_mode = ICON_MULTIPLY + do_colouration = 1 + +/datum/sprite_accessory/ears/large_dragon + name = "Large dragon horns" + desc = "" + icon_state = "big_liz" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +// Special snowflake ears go below here. + +/datum/sprite_accessory/ears/molenar_kitsune + name = "quintail kitsune ears (Molenar)" + desc = "" + icon_state = "molenar-kitsune" + ckeys_allowed = list("molenar") + +/datum/sprite_accessory/ears/lilimoth_antennae + name = "citheronia antennae (Kira72)" + desc = "" + icon_state = "lilimoth_antennae" + ckeys_allowed = list("kira72") + +/datum/sprite_accessory/ears/molenar_deathclaw + name = "deathclaw ears (Molenar)" + desc = "" + icon_state = "molenar-deathclaw" + ckeys_allowed = list("molenar") + +/datum/sprite_accessory/ears/miria_fluffdragon + name = "fluffdragon ears (Miria Masters)" + desc = "" + icon_state = "miria-fluffdragonears" + ckeys_allowed = list("miriamasters") + +/datum/sprite_accessory/ears/miria_kitsune + name = "kitsune ears (Miria Masters)" + desc = "" + icon_state = "miria-kitsuneears" + ckeys_allowed = list("miriamasters") + +/datum/sprite_accessory/ears/runac + name = "fennecsune ears (Runac)" + desc = "" + icon_state = "runac" + ckeys_allowed = list("rebcom1807") + +/datum/sprite_accessory/ears/kerena + name = "wingwolf ears (Kerena)" + desc = "" + icon_state = "kerena" + ckeys_allowed = list("somekindofpony") + +/datum/sprite_accessory/ears/rosey + name = "tritail kitsune ears (Rosey)" + desc = "" + icon_state = "rosey" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + ckeys_allowed = list("joey4298") + +/datum/sprite_accessory/ears/aronai + name = "aronai ears/head (Aronai)" + desc = "" + icon_state = "aronai" + ckeys_allowed = list("arokha") + +/datum/sprite_accessory/ears/holly + name = "tigress ears (Holly Sharp)" + desc = "" + icon_state = "tigressears" + ckeys_allowed = list("hoodoo") + +/datum/sprite_accessory/ears/molenar_inkling + name = "teal mature inkling hair (Kari Akiren)" + desc = "" + icon_state = "molenar-tentacle" + ckeys_allowed = list("molenar") + +/datum/sprite_accessory/ears/shock + name = "pharoah hound ears (Shock Diamond)" + desc = "" + icon_state = "shock" + ckeys_allowed = list("icowom","cameron653") + +/datum/sprite_accessory/ears/alurane + name = "alurane ears/hair (Pumila)" + desc = "" + icon_state = "alurane-ears" + ckeys_allowed = list("natje") + +/datum/sprite_accessory/ears/frost + name = "Frost antenna" + desc = "" + icon_state = "frosted_tips" + ckeys_allowed = list("tucker0666") + +/datum/sprite_accessory/ears/sylv_pip + name = "sylveon ears and ribbons (Pip Shyner)" + desc = "" + icon_state = "pipears" + ckeys_allowed = list("phoaly") + +/datum/sprite_accessory/ears/elf_caprine_colorable + name = "Caprine horns with pointy ears, colorable" + desc = "" + icon_state = "elfs" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "caprahorns" + +/datum/sprite_accessory/ears/elf_oni_colorable + name = "oni horns with pointy ears, colorable" + desc = "" + icon_state = "elfs" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "oni-h1_c" + +/datum/sprite_accessory/ears/elf_demon_colorable + name = "Demon horns with pointy ears, colorable" + desc = "" + icon_state = "elfs" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "demon-horns1_c" + +/datum/sprite_accessory/ears/elf_demon_outwards_colorable + name = "Demon horns with pointy ears, outwards, colourable" + desc = "" + icon_state = "elfs" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "demon-horns2" + +/datum/sprite_accessory/ears/elf_dragon_colorable + name = "Dragon horns with pointy ears, colourable" + desc = "" + icon_state = "elfs" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "dragon-horns" + +/datum/sprite_accessory/ears/synthhorns_plain + name = "Synth horns, plain" + desc = "" + icon_state = "synthhorns_plain" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "synthhorns_plain_light" + +/datum/sprite_accessory/ears/synthhorns_thick + name = "Synth horns, thick" + desc = "" + icon_state = "synthhorns_thick" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "synthhorns_thick_light" + +/datum/sprite_accessory/ears/synthhorns_curly + name = "Synth horns, curly" + desc = "" + icon_state = "synthhorns_curled" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + + +/datum/sprite_accessory/ears/forward_curled_demon_horns_bony + name = "Succubus horns, colourable" + desc = "" + icon_state = "succu-horns_b" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/forward_curled_demon_horns_bony_with_colorable_ears + name = "Succubus horns with pointy ears, colourable" + desc = "" + icon_state = "elfs" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "succu-horns_b" + + + +/* +//////////////////////////// +/ =--------------------= / +/ == Wing Definitions == / +/ =--------------------= / +//////////////////////////// +*/ +/datum/sprite_accessory/wing + name = "You should not see this..." + icon = 'icons/mob/vore/wings_vr.dmi' + do_colouration = 0 //Set to 1 to enable coloration using the tail color. + + var/color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1 + var/extra_overlay // Icon state of an additional overlay to blend in. + var/extra_overlay2 //Tertiary. + var/clothing_can_hide = 1 // If true, clothing with HIDETAIL hides it. If the clothing is bulky enough to hide a tail, it should also hide wings. + // var/show_species_tail = 1 // Just so // TODO - Seems not needed ~Leshana + var/desc = "You should not see this..." + var/ani_state // State when flapping/animated + var/extra_overlay_w // Flapping state for extra overlay + var/extra_overlay2_w + +/datum/sprite_accessory/wing/shock //Unable to split the tail from the wings in the sprite, so let's just classify it as wings. + name = "pharoah hound tail (Shock Diamond)" + desc = "" + icon_state = "shock" + ckeys_allowed = list("icowom") + +/datum/sprite_accessory/wing/featheredlarge //Made by Natje! + name = "large feathered wings (colorable)" + desc = "" + icon_state = "feathered2" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/spider_legs //Not really /WINGS/ but they protrude from the back, kinda. Might as well have them here. + name = "spider legs" + desc = "" + icon_state = "spider-legs" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/moth + name = "moth wings" + desc = "" + icon_state = "moth" + +/datum/sprite_accessory/wing/mothc + name = "moth wings, colorable" + desc = "" + icon_state = "moth" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/dragonfly + name = "dragonfly" + desc = "" + icon_state = "dragonfly" + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/citheroniamoth + name = "citheronia wings" + desc = "" + icon_state = "citheronia_wings" + ckeys_allowed = list("kira72") + +/datum/sprite_accessory/wing/feathered + name = "feathered wings, colorable" + desc = "" + icon_state = "feathered" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/feathered_medium + name = "medium feathered wings, colorable" // Keekenox made these feathery things with a little bit more shape to them than the other wings. They are medium sized wing boys. + desc = "" + icon_state = "feathered3" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/bat_black + name = "bat wings, black" + desc = "" + icon_state = "bat-black" + +/datum/sprite_accessory/wing/bat_color + name = "bat wings, colorable" + desc = "" + icon_state = "bat-color" + do_colouration = 1 + +/datum/sprite_accessory/wing/bat_red + name = "bat wings, red" + desc = "" + icon_state = "bat-red" + +/datum/sprite_accessory/wing/harpywings + name = "harpy wings, colorable" + desc = "" + icon_state = "harpywings" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/harpywings_alt + name = "harpy wings alt, archeopteryx" + desc = "" + icon_state = "harpywings_alt" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "harpywings_altmarkings" + +/datum/sprite_accessory/wing/harpywings_alt_neckfur + name = "harpy wings alt, archeopteryx & neckfur" + desc = "" + icon_state = "harpywings_alt" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "harpywings_altmarkings" + extra_overlay2 = "neckfur" + +/datum/sprite_accessory/wing/harpywings_bat + name = "harpy wings, bat" + desc = "" + icon_state = "harpywings_bat" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "harpywings_batmarkings" + +/datum/sprite_accessory/wing/harpywings_bat_neckfur + name = "harpy wings, bat & neckfur" + desc = "" + icon_state = "harpywings_bat" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "harpywings_batmarkings" + extra_overlay2 = "neckfur" + +/datum/sprite_accessory/wing/neckfur + name = "neck fur" + desc = "" + icon_state = "neckfur" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/feathered + name = "feathered wings, colorable" + desc = "" + icon_state = "feathered" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/beewings + name = "bee wings" + desc = "" + icon_state = "beewings" + +/datum/sprite_accessory/wing/sepulchre + name = "demon wings (Sepulchre)" + desc = "" + icon_state = "sepulchre_wings" + ckeys_allowed = list("sepulchre") + +/datum/sprite_accessory/wing/miria_fluffdragon + name = "fluffdragon wings (Miria Masters)" + desc = "" + icon_state = "miria-fluffdragontail" + ckeys_allowed = list("miriamasters") + +/datum/sprite_accessory/wing/scree + name = "green taj wings (Scree)" + desc = "" + icon_state = "scree-wings" + ckeys_allowed = list("scree") + +/datum/sprite_accessory/wing/liquidfirefly_gazer //I g-guess this could be considered wings? + name = "gazer eyestalks" + desc = "" + icon_state = "liquidfirefly-eyestalks" + //ckeys_allowed = list("liquidfirefly","seiga") //At request. + +/datum/sprite_accessory/wing/moth_full + name = "moth antenna and wings" + desc = "" + icon_state = "moth_full" + +/datum/sprite_accessory/wing/moth_full_gray + name = "moth antenna and wings, colorable" + desc = "" + icon_state = "moth_full_gray" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/kerena + name = "wingwolf wings (Kerena)" + desc = "" + icon_state = "kerena-wings" + ckeys_allowed = list("somekindofpony") + +/datum/sprite_accessory/wing/snag + name = "xenomorph backplate" + desc = "" + icon_state = "snag-backplate" + +/datum/sprite_accessory/wing/sepulchre_c_yw + name = "demon wings (colorable)" + desc = "" + icon_state = "sepulchre_wingsc" + do_colouration = 1 + +/datum/sprite_accessory/wing/cyberdragon + name = "Cyber dragon wing (colorable)" + desc = "" + icon_state = "cyberdragon_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/wing/cyberdragon_red + name = "Cyber dragon wing (red)" + desc = "" + icon_state = "cyberdragon_red_s" + do_colouration = 0 + +/datum/sprite_accessory/wing/cyberdoe + name = "Cyber doe wing" + desc = "" + icon_state = "cyberdoe_s" + do_colouration = 0 + +/datum/sprite_accessory/wing/drago_wing + name = "Cybernetic Dragon wings" + desc = "" + icon_state = "drago_wing" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "drago_wing_2" + +/* +//////////////////////////// +/ =--------------------= / +/ == Tail Definitions == / +/ =--------------------= / +//////////////////////////// +*/ +/datum/sprite_accessory/tail + name = "You should not see this..." + icon = 'icons/mob/vore/tails_vr.dmi' + do_colouration = 0 //Set to 1 to enable coloration using the tail color. + + var/color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1 + var/extra_overlay // Icon state of an additional overlay to blend in. + var/extra_overlay2 //Tertiary. + var/show_species_tail = 0 // If false, do not render species' tail. + var/clothing_can_hide = 1 // If true, clothing with HIDETAIL hides it + var/desc = "You should not see this..." + var/ani_state // State when wagging/animated + var/extra_overlay_w // Wagging state for extra overlay + var/extra_overlay2_w // Tertiary wagging. + var/list/hide_body_parts = list() //Uses organ tag defines. Bodyparts in this list do not have their icons rendered, allowing for more spriter freedom when doing taur/digitigrade stuff. + var/icon/clip_mask_icon = null //Icon file used for clip mask. + var/clip_mask_state = null //Icon state to generate clip mask. Clip mask is used to 'clip' off the lower part of clothing such as jumpsuits & full suits. + var/icon/clip_mask = null //Instantiated clip mask of given icon and state + +/datum/sprite_accessory/tail/New() + . = ..() + if(clip_mask_icon && clip_mask_state) + clip_mask = icon(icon = clip_mask_icon, icon_state = clip_mask_state) + +// Species-unique tails + +// Everyone tails + +/datum/sprite_accessory/tail/invisible + name = "hide species-sprite tail" + icon = null + icon_state = null + +/datum/sprite_accessory/tail/squirrel_orange + name = "squirel, orange" + desc = "" + icon_state = "squirrel-orange" + +/datum/sprite_accessory/tail/squirrel_red + name = "squirrel, red" + desc = "" + icon_state = "squirrel-red" + +/datum/sprite_accessory/tail/squirrel + name = "squirrel, colorable" + desc = "" + icon_state = "squirrel" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/kitty + name = "kitty, colorable, downwards" + desc = "" + icon_state = "kittydown" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/kittyup + name = "kitty, colorable, upwards" + desc = "" + icon_state = "kittyup" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/tiger_white + name = "tiger, colorable" + desc = "" + icon_state = "tiger" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "tigerinnerwhite" + +/datum/sprite_accessory/tail/stripey + name = "stripey taj, colorable" + desc = "" + icon_state = "stripeytail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "stripeytail_mark" + +/datum/sprite_accessory/tail/stripeytail_brown + name = "stripey taj, brown" + desc = "" + icon_state = "stripeytail-brown" + +/datum/sprite_accessory/tail/chameleon + name = "Chameleon, colorable" + desc = "" + icon_state = "chameleon" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/bunny + name = "bunny, colorable" + desc = "" + icon_state = "bunny" + do_colouration = 1 + +/datum/sprite_accessory/tail/bear_brown + name = "bear, brown" + desc = "" + icon_state = "bear-brown" + +/datum/sprite_accessory/tail/bear + name = "bear, colorable" + desc = "" + icon_state = "bear" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/dragon + name = "dragon, colorable" + desc = "" + icon_state = "dragon" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/wolf_grey + name = "wolf, grey" + desc = "" + icon_state = "wolf-grey" + +/datum/sprite_accessory/tail/wolf_green + name = "wolf, green" + desc = "" + icon_state = "wolf-green" + +/datum/sprite_accessory/tail/wisewolf + name = "wolf, wise" + desc = "" + icon_state = "wolf-wise" + +/datum/sprite_accessory/tail/blackwolf + name = "wolf, black" + desc = "" + icon_state = "wolf" + +/datum/sprite_accessory/tail/wolf + name = "wolf, colorable" + desc = "" + icon_state = "wolf" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "wolfinner" + +/datum/sprite_accessory/tail/mouse_pink + name = "mouse, pink" + desc = "" + icon_state = "mouse-pink" + +/datum/sprite_accessory/tail/mouse + name = "mouse, colorable" + desc = "" + icon_state = "mouse" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/horse + name = "horse tail, colorable" + desc = "" + icon_state = "horse" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/cow + name = "cow tail, colorable" + desc = "" + icon_state = "cow" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/fantail + name = "avian fantail, colorable" + desc = "" + icon_state = "fantail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/wagtail + name = "avian wagtail, colorable" + desc = "" + icon_state = "wagtail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/nevreandc + name = "nevrean tail, dual-color" + desc = "" + icon_state = "nevreantail_dc" + extra_overlay = "nevreantail_dc_tail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/nevreanwagdc + name = "nevrean wagtail, dual-color" + desc = "" + icon_state = "wagtail" + extra_overlay = "wagtail_dc_tail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/nevreanwagdc_alt + name = "nevrean wagtail, marked, dual-color" + desc = "" + icon_state = "wagtail2_dc" + extra_overlay = "wagtail2_dc_mark" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/crossfox + name = "cross fox" + desc = "" + icon_state = "crossfox" + +/datum/sprite_accessory/tail/beethorax + name = "bee thorax" + desc = "" + icon_state = "beethorax" + +/datum/sprite_accessory/tail/doublekitsune + name = "double kitsune tail, colorable" + desc = "" + icon_state = "doublekitsune" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/spade_color + name = "spade-tail (colorable)" + desc = "" + icon_state = "spadetail-black" + do_colouration = 1 + +/datum/sprite_accessory/tail/snag + name = "xenomorph tail 1" + desc = "" + icon_state = "snag" + +/datum/sprite_accessory/tail/xenotail + name = "xenomorph tail 2" + desc = "" + icon_state = "xenotail" + +/datum/sprite_accessory/tail/eboop + name = "EGN mech tail (dual color)" + desc = "" + icon_state = "eboop" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "eboop_mark" + +/datum/sprite_accessory/tail/molenar_kitsune + name = "quintail kitsune tails (Molenar)" + desc = "" + icon_state = "molenar-kitsune" + ckeys_allowed = list("molenar") + +/datum/sprite_accessory/tail/miria_fluffdragon + name = "fluffdragon tail (Miria Masters)" + desc = "" + icon_state = "miria-fluffdragontail" + ckeys_allowed = list("miriamasters") + +/datum/sprite_accessory/tail/miria_kitsune + name = "Black kitsune tails (Miria Masters)" + desc = "" + icon_state = "miria-kitsunetail" + ckeys_allowed = list("miriamasters") + +/datum/sprite_accessory/tail/molenar_deathclaw + name = "deathclaw bits (Molenar)" + desc = "" + icon_state = "molenar-deathclaw" + ckeys_allowed = list("molenar","silvertalismen","jertheace") + +/datum/sprite_accessory/tail/runac + name = "fennecsune tails (Runac)" + desc = "" + icon_state = "runac" + ckeys_allowed = list("rebcom1807") + +/datum/sprite_accessory/tail/reika //Leaving this since it was too hard to split the wings from the tail. + name = "fox tail (+ beewings) (Reika)" + desc = "" + icon_state = "reika" + ckeys_allowed = list("rikaru19xjenkins") + +/datum/sprite_accessory/tail/rosey + name = "tritail kitsune tails (Rosey)" + desc = "" + icon_state = "rosey_three" + ckeys_allowed = list("joey4298") + +/datum/sprite_accessory/tail/rosey2 + name = "pentatail kitsune tails (Rosey)" //I predict seven tails next. ~CK + desc = "" + icon_state = "rosey_five" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + ckeys_allowed = list("joey4298") + +/datum/sprite_accessory/tail/scree + name = "green taj tail (Scree)" + desc = "" + icon_state = "scree" + ckeys_allowed = list("scree") + +/datum/sprite_accessory/tail/aronai + name = "aronai tail (Aronai)" + desc = "" + icon_state = "aronai" + ckeys_allowed = list("arokha") + +/datum/sprite_accessory/tail/cabletail + name = "cabletail" + desc = "cabletail" + icon_state = "cabletail" + ckeys_allowed = list("tucker0666") + +/datum/sprite_accessory/tail/featherfluff_tail + name = "featherfluff_tail" + desc = "" + icon_state = "featherfluff_tail" + ckeys_allowed = list("tucker0666") + +/datum/sprite_accessory/tail/ketrai_wag + name = "fennix tail (vwag)" + desc = "" + icon_state = "ketraitail" + ani_state = "ketraitail_w" + //ckeys_allowed = list("ketrai") //They requested it to be enabled for everyone. + +/datum/sprite_accessory/tail/ketrainew_wag + name = "new fennix tail (vwag)" + desc = "" + icon_state = "ketraitailnew" + ani_state = "ketraitailnew_w" + +/datum/sprite_accessory/tail/redpanda + name = "red panda" + desc = "" + icon_state = "redpanda" + +/datum/sprite_accessory/tail/ringtail + name = "ringtail, colorable" + desc = "" + icon_state = "ringtail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "ringtail_mark" + +/datum/sprite_accessory/tail/holly + name = "tigress tail (Holly)" + desc = "" + icon_state = "tigresstail" + ckeys_allowed = list("hoodoo") + +/datum/sprite_accessory/tail/satyr + name = "goat legs, colorable" + desc = "" + icon_state = "satyr" + color_blend_mode = ICON_MULTIPLY + do_colouration = 1 + hide_body_parts = list(BP_L_LEG, BP_L_FOOT, BP_R_LEG, BP_R_FOOT) //Exclude pelvis just in case. + clip_mask_icon = 'icons/mob/vore/taurs_vr.dmi' + clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms. + +/datum/sprite_accessory/tail/tailmaw + name = "tailmaw, colorable" + desc = "" + icon_state = "tailmaw" + color_blend_mode = ICON_MULTIPLY + do_colouration = 1 + +/datum/sprite_accessory/tail/curltail + name = "curltail (vwag)" + desc = "" + icon_state = "curltail" + ani_state = "curltail_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "curltail_mark" + extra_overlay_w = "curltail_mark_w" + +/datum/sprite_accessory/tail/shorttail + name = "shorttail (vwag)" + desc = "" + icon_state = "straighttail" + ani_state = "straighttail_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/sneptail + name = "Snep/Furry Tail (vwag)" + desc = "" + icon_state = "sneptail" + ani_state = "sneptail_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "sneptail_mark" + extra_overlay_w = "sneptail_mark_w" + + +/datum/sprite_accessory/tail/tiger_new + name = "tiger tail (vwag)" + desc = "" + icon_state = "tigertail" + ani_state = "tigertail_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "tigertail_mark" + extra_overlay_w = "tigertail_mark_w" + +/datum/sprite_accessory/tail/vulp_new + name = "new vulp tail (vwag)" + desc = "" + icon_state = "vulptail" + ani_state = "vulptail_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "vulptail_mark" + extra_overlay_w = "vulptail_mark_w" + +/datum/sprite_accessory/tail/otietail + name = "otie tail (vwag)" + desc = "" + icon_state = "otie" + ani_state = "otie_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/newtailmaw + name = "new tailmaw (vwag)" + desc = "" + icon_state = "newtailmaw" + ani_state = "newtailmaw_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/ztail + name = "jagged flufftail" + desc = "" + icon_state = "ztail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/snaketail + name = "snake tail, colorable" + desc = "" + icon_state = "snaketail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/vulpan_alt + name = "vulpkanin alt style, colorable" + desc = "" + icon_state = "vulptail_alt" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/sergaltaildc + name = "sergal, dual-color" + desc = "" + icon_state = "sergal" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "sergal_mark" + +/datum/sprite_accessory/tail/skunktail + name = "skunk, dual-color" + desc = "" + icon_state = "skunktail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "skunktail_mark" + +/datum/sprite_accessory/tail/deertail + name = "deer, dual-color" + desc = "" + icon_state = "deertail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "deertail_mark" + +/datum/sprite_accessory/tail/tesh_feathered + name = "Teshari tail" + desc = "" + icon_state = "teshtail_s" + do_colouration = 1 + extra_overlay = "teshtail_feathers_s" + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/teshari_fluffytail + name = "Teshari alternative, colorable" + desc = "" + icon_state = "teshari_fluffytail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "teshari_fluffytail_mark" + +/datum/sprite_accessory/tail/tesh_pattern_male + name = "Teshari male tail pattern" + desc = "" + icon_state = "teshtail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "teshpattern_male_tail" + +/datum/sprite_accessory/tail/tesh_pattern_male_alt + name = "Teshari male tail alt. pattern" + desc = "" + icon_state = "teshtail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "teshpattern_male_alt" + +/datum/sprite_accessory/tail/tesh_pattern_fem + name = "Teshari female tail pattern" + desc = "" + icon_state = "teshtail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "teshpattern_fem_tail" + +/datum/sprite_accessory/tail/tesh_pattern_fem_alt + name = "Teshari male tail alt. pattern" + desc = "" + icon_state = "teshtail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "teshpattern_fem_alt" + +/datum/sprite_accessory/tail/nightstalker + name = "Nightstalker, colorable" + desc = "" + icon_state = "nightstalker" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +//For all species tails. Includes haircolored tails. +/datum/sprite_accessory/tail/special + name = "Blank tail. Do not select." + icon = 'icons/effects/species_tails_vr.dmi' + +/datum/sprite_accessory/tail/special/unathi + name = "unathi tail" + desc = "" + icon_state = "sogtail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/tajaran + name = "tajaran tail" + desc = "" + icon_state = "tajtail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/sergal + name = "sergal tail" + desc = "" + icon_state = "sergtail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/akula + name = "akula tail" + desc = "" + icon_state = "sharktail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/nevrean + name = "nevrean tail" + desc = "" + icon_state = "nevreantail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/armalis + name = "armalis tail" + desc = "" + icon_state = "armalis_tail_humanoid_s" + +/datum/sprite_accessory/tail/special/xenodrone + name = "xenomorph drone tail" + desc = "" + icon_state = "xenos_drone_tail_s" + +/datum/sprite_accessory/tail/special/xenosentinel + name = "xenomorph sentinel tail" + desc = "" + icon_state = "xenos_sentinel_tail_s" + +/datum/sprite_accessory/tail/special/xenohunter + name = "xenomorph hunter tail" + desc = "" + icon_state = "xenos_hunter_tail_s" + +/datum/sprite_accessory/tail/special/xenoqueen + name = "xenomorph queen tail" + desc = "" + icon_state = "xenos_queen_tail_s" + +/datum/sprite_accessory/tail/special/monkey + name = "monkey tail" + desc = "" + icon_state = "chimptail_s" + +/datum/sprite_accessory/tail/special/unathihc + name = "unathi tail, colorable" + desc = "" + icon_state = "sogtail_hc_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/tajaranhc + name = "tajaran tail, colorable" + desc = "" + icon_state = "tajtail_hc_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/sergalhc + name = "sergal tail, colorable" + desc = "" + icon_state = "sergtail_hc_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/akulahc + name = "akula tail, colorable" + desc = "" + icon_state = "sharktail_hc_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/nevreanhc + name = "nevrean tail, colorable" + desc = "" + icon_state = "nevreantail_hc_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/foxhc + name = "highlander zorren tail, colorable" + desc = "" + icon_state = "foxtail_hc_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/fennechc + name = "flatland zorren tail, colorable" + desc = "" + icon_state = "fentail_hc_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/special/armalishc + name = "armalis tail, colorable" + desc = "" + icon_state = "armalis_tail_humanoid_hc_s" + do_colouration = 1 + +/datum/sprite_accessory/tail/special/xenodronehc + name = "xenomorph drone tail, colorable" + desc = "" + icon_state = "xenos_drone_tail_hc_s" + do_colouration = 1 + +/datum/sprite_accessory/tail/special/xenosentinelhc + name = "xenomorph sentinel tail, colorable" + desc = "" + icon_state = "xenos_sentinel_tail_hc_s" + do_colouration = 1 + +/datum/sprite_accessory/tail/special/xenohunterhc + name = "xenomorph hunter tail, colorable" + desc = "" + icon_state = "xenos_hunter_tail_hc_s" + do_colouration = 1 + +/datum/sprite_accessory/tail/special/xenoqueenhc + name = "xenomorph queen tail, colorable" + desc = "" + icon_state = "xenos_queen_tail_hc_s" + do_colouration = 1 + +/datum/sprite_accessory/tail/special/monkeyhc + name = "monkey tail, colorable" + desc = "" + icon_state = "chimptail_hc_s" + do_colouration = 1 + +/datum/sprite_accessory/tail/special/vulpan + name = "vulpkanin, colorable" + desc = "" + icon_state = "vulptail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + + +/datum/sprite_accessory/tail/zenghu_taj + name = "Zeng-Hu Tajaran Synth tail" + desc = "" + icon_state = "zenghu_taj" + +//Taurs moved to a separate file due to extra code around them + +//Buggo Abdomens! + +/datum/sprite_accessory/tail/buggo + name = "Bug abdomen, colorable" + desc = "" + icon_state = "buggo_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggobee + name = "Bug abdomen, bee top, dual-colorable" + desc = "" + icon_state = "buggo_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobee_markings" + +/datum/sprite_accessory/tail/buggobeefull + name = "Bug abdomen, bee full, dual-colorable" + desc = "" + icon_state = "buggo_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobeefull_markings" + +/datum/sprite_accessory/tail/buggounder + name = "Bug abdomen, underside, dual-colorable" + desc = "" + icon_state = "buggo_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggounder_markings" + +/datum/sprite_accessory/tail/buggofirefly + name = "Bug abdomen, firefly, dual-colorable" + desc = "" + icon_state = "buggo_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofirefly_markings" + +/datum/sprite_accessory/tail/buggofat + name = "Fat bug abdomen, colorable" + desc = "" + icon_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggofatbee + name = "Fat bug abdomen, bee top, dual-colorable" + desc = "" + icon_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatbee_markings" + +/datum/sprite_accessory/tail/buggofatbeefull + name = "Fat bug abdomen, bee full, dual-colorable" + desc = "" + icon_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatbeefull_markings" + +/datum/sprite_accessory/tail/buggofatunder + name = "Fat bug abdomen, underside, dual-colorable" + desc = "" + icon_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatunder_markings" + +/datum/sprite_accessory/tail/buggofatfirefly + name = "Fat bug abdomen, firefly, dual-colorable" + desc = "" + icon_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatfirefly_markings" + +/datum/sprite_accessory/tail/buggowag + name = "Bug abdomen, colorable, vwag change" + desc = "" + icon_state = "buggo_s" + ani_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggobeewag + name = "Bug abdomen, bee top, dual color, vwag" + desc = "" + icon_state = "buggo_s" + ani_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobee_markings" + extra_overlay_w = "buggofatbee_markings" + +/datum/sprite_accessory/tail/buggobeefullwag + name = "Bug abdomen, bee full, dual color, vwag" + desc = "" + icon_state = "buggo_s" + ani_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobeefull_markings" + extra_overlay_w = "buggofatbeefull_markings" + +/datum/sprite_accessory/tail/buggounderwag + name = "Bug abdomen, underside, dual color, vwag" + desc = "" + icon_state = "buggo_s" + ani_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggounder_markings" + extra_overlay_w = "buggofatunder_markings" + +/datum/sprite_accessory/tail/buggofireflywag + name = "Bug abdomen, firefly, dual color, vwag" + desc = "" + icon_state = "buggo_s" + ani_state = "buggofat_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofirefly_markings" + extra_overlay_w = "buggofatfirefly_markings" + +//Vass buggo variants! + +/datum/sprite_accessory/tail/buggovass + name = "Bug abdomen, vass, colorable" + desc = "" + icon_state = "buggo_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggovassbee + name = "Bug abdomen, bee top, dc, vass" + desc = "" + icon_state = "buggo_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobee_vass_markings" + +/datum/sprite_accessory/tail/buggovassbeefull + name = "Bug abdomen, bee full, dc, vass" + desc = "" + icon_state = "buggo_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobeefull_vass_markings" + +/datum/sprite_accessory/tail/buggovassunder + name = "Bug abdomen, underside, dc, vass" + desc = "" + icon_state = "buggo_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggounder_vass_markings" + +/datum/sprite_accessory/tail/buggovassfirefly + name = "Bug abdomen, firefly, dc, vass" + desc = "" + icon_state = "buggo_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofirefly_vass_markings" + +/datum/sprite_accessory/tail/buggovassfat + name = "Fat bug abdomen, vass, colorable" + desc = "" + icon_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggovassfatbee + name = "Fat bug abdomen, bee top, dc, vass" + desc = "" + icon_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatbee_vass_markings" + +/datum/sprite_accessory/tail/buggovassfatbeefull + name = "Fat bug abdomen, bee full, dc, vass" + desc = "" + icon_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatbeefull_vass_markings" + +/datum/sprite_accessory/tail/buggovassfatunder + name = "Fat bug abdomen, underside, dc, vass" + desc = "" + icon_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatunder_vass_markings" + +/datum/sprite_accessory/tail/buggovassfatfirefly + name = "Fat bug abdomen, firefly, dc, vass" + desc = "" + icon_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofatfirefly_vass_markings" + +/datum/sprite_accessory/tail/buggovasswag + name = "Bug abdomen, vass, colorable, vwag change" + desc = "" + icon_state = "buggo_vass_s" + ani_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/buggovassbeewag + name = "Bug abdomen, bee top, dc, vass, vwag" + desc = "" + icon_state = "buggo_vass_s" + ani_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobee_vass_markings" + extra_overlay_w = "buggofatbee_vass_markings" + +/datum/sprite_accessory/tail/buggovassbeefullwag + name = "Bug abdomen, bee full, dc, vass, vwag" + desc = "" + icon_state = "buggo_vass_s" + ani_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggobeefull_vass_markings" + extra_overlay_w = "buggofatbeefull_vass_markings" + +/datum/sprite_accessory/tail/buggovassunderwag + name = "Bug abdomen, underside, dc, vass, vwag" + desc = "" + icon_state = "buggo_vass_s" + ani_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggounder_vass_markings" + extra_overlay_w = "buggofatunder_vass_markings" + +/datum/sprite_accessory/tail/buggovassfireflywag + name = "Bug abdomen, firefly, dc, vass, vwag" + desc = "" + icon_state = "buggo_vass_s" + ani_state = "buggofat_vass_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "buggofirefly_vass_markings" + extra_overlay_w = "buggofatfirefly_vass_markings" + +/datum/sprite_accessory/tail/tail_smooth + name = "Smooth Lizard Tail, colorable" + desc = "" + icon_state = "tail_smooth" + ani_state = "tail_smooth_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/triplekitsune_colorable + name = "Kitsune 3 tails, colorable" + desc = "" + icon_state = "triplekitsune" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "triplekitsune_tips" + +/datum/sprite_accessory/tail/ninekitsune_colorable + name = "Kitsune 9 tails, colorable" + desc = "" + icon_state = "ninekitsune" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "ninekitsune-tips" + +/datum/sprite_accessory/tail/shadekin_short + name = "Shadekin Short Tail, colorable" + desc = "" + icon_state = "shadekin-short" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + //apply_restrictions = TRUE + //species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) + +/datum/sprite_accessory/tail/wartacosushi_tail //brightened +20RGB from matching roboparts + name = "Ward-Takahashi Tail" + desc = "" + icon_state = "wardtakahashi_vulp" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/wartacosushi_tail_dc + name = "Ward-Takahashi Tail, dual-color" + desc = "" + icon_state = "wardtakahashi_vulp_dc" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "wardtakahashi_vulp_dc_mark" + +/datum/sprite_accessory/tail/Easterntail + name = "Eastern Dragon (Animated)" + desc = "" + icon_state = "Easterntail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "EasterntailColorTip" + ani_state = "Easterntail_w" + extra_overlay_w = "EasterntailColorTip_w" + +/datum/sprite_accessory/tail/synthtail_static + name = "Synthetic lizard tail" + desc = "" + icon_state = "synthtail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/synthtail_vwag + name = "Synthetic lizard tail (vwag)" + desc = "" + icon_state = "synthtail" + ani_state = "synthtail_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/Plugtail + name = "Synthetic plug tail" + desc = "" + icon_state = "Plugtail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "PlugtailMarking" + extra_overlay2 = "PlugtailMarking2" + +/datum/sprite_accessory/tail/Segmentedtail + name = "Segmented tail, animated" + desc = "" + icon_state = "Segmentedtail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "Segmentedtailmarking" + ani_state = "Segmentedtail_w" + extra_overlay_w = "Segmentedtailmarking_w" + +/datum/sprite_accessory/tail/Segmentedlights + name = "Segmented tail, animated synth" + desc = "" + icon_state = "Segmentedtail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "Segmentedlights" + ani_state = "Segmentedtail_w" + extra_overlay_w = "Segmentedlights_w" + +/datum/sprite_accessory/tail/fox_tail + name = "Fox tail" + desc = "" + icon_state = "fox_tail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/fox_tail_plain + name = "Fox tail" + desc = "" + icon_state = "fox_tail_plain_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/fennec_tail + name = "Fennec tail" + desc = "" + icon_state = "fennec_tail_s" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/lizard_tail_smooth + name = "Lizard Tail (Smooth)" + desc = "" + icon_state = "lizard_tail_smooth" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/lizard_tail_dark_tiger + name = "Lizard Tail (Dark Tiger)" + desc = "" + icon_state = "lizard_tail_dark_tiger" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/lizard_tail_light_tiger + name = "Lizard Tail (Light Tiger)" + desc = "" + icon_state = "lizard_tail_light_tiger" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/lizard_tail_spiked + name = "Lizard Tail (Spiked)" + desc = "" + icon_state = "lizard_tail_spiked" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/xenotail_fullcolour + name = "xenomorph tail (fully colourable)" + desc = "" + icon_state = "xenotail_fullcolour" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/xenotailalt_fullcolour + name = "xenomorph tail alt. (fully colourable)" + desc = "" + icon_state = "xenotailalt_fullcolour" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/* +//////////////////////////// +/ =--------------------= / +/ == 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 = "You should not see this..." + 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. + var/color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1 + var/desc = "You should not see this..." + +/datum/sprite_accessory/hair_accessory/verie_hair_glow + name = "verie's 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 +>>>>>>> 0a35110191... Merge pull request #9438 from Tenryumi/verie-fluff-stuff diff --git a/code/modules/vore/appearance/update_icons_vr.dm b/code/modules/vore/appearance/update_icons_vr.dm index ab470c6af6..9185db35f3 100644 --- a/code/modules/vore/appearance/update_icons_vr.dm +++ b/code/modules/vore/appearance/update_icons_vr.dm @@ -20,6 +20,15 @@ var/global/list/wing_icon_cache = list() return ears_s return null +/mob/living/carbon/human/proc/get_hair_accessory_overlay() + if(hair_accessory_style && !(head && (head.flags_inv & BLOCKHEADHAIR))) + var/icon/hair_acc_s = icon(hair_accessory_style.icon, hair_accessory_style.icon_state) + if(hair_accessory_style.do_colouration) + hair_acc_s.Blend(rgb(src.r_ears, src.g_ears, src.b_ears), hair_accessory_style.color_blend_mode) + return hair_acc_s + return null + + /mob/living/carbon/human/proc/get_tail_image() //If you are FBP with tail style and didn't set a custom one var/datum/robolimb/model = isSynthetic() @@ -103,6 +112,7 @@ var/global/list/wing_icon_cache = list() return image(wing_s) + // TODO - Move this to where it should go ~Leshana /mob/proc/stop_flying() if(QDESTROYING(src)) diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm index ed5b6284b2..74115d8e34 100644 --- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm @@ -2242,3 +2242,50 @@ Departamental Swimsuits, for general use add_attack_logs(user, target, "Teleported [target] with via \the [src]'s [translocator]!") else ..() + +//Vitoras: Verie +/obj/item/clothing/suit/storage/hooded/fluff/verie + name = "distressingly cyan hoodie" + desc = "A cute, brightly colored hoodie perfect for occasional concealment of a verie silly nerd. A little tag inside \ + the collar bears only the letters \"VW.\"" + icon = 'icons/vore/custom_clothes_vr.dmi' + icon_state = "verie_hoodie" + + icon_override = 'icons/vore/custom_onmob_vr.dmi' + item_state = "verie_hoodie" + + hoodtype = /obj/item/clothing/head/hood/winter/fluff/verie + + var/owner = "vitoras" + +/obj/item/clothing/suit/storage/hooded/fluff/verie/ToggleHood() + // If you ain't the robutt, you probably don't have the hair style that the hooded icon states are made for. sorry! + var/mob/living/carbon/human/H = src.loc + if (H.ckey != owner) + to_chat(H, "Strange... the hood doesn't go over your head no matter how you try to put it up.") + return + ..() + +/obj/item/clothing/head/hood/winter/fluff/verie + name = "not-so-cyan hood" + icon = 'icons/vore/custom_clothes_vr.dmi' + icon_state = "verie_hood" + + icon_override = 'icons/vore/custom_onmob_vr.dmi' + item_state = "verie_hood" + +/obj/item/clothing/under/fluff/verie + name = "salaciously stylised suit" + desc = "It's kind of difficult to identify the type of material that makes up this form-fitting suit. It is stretchy and flexible, but \ + is firm in its toughness, and clings tightly to the skin. Come to think of it, it glistens quite a bit in the light and- \ + oh god it's latex.\ + \n... A Verie appropriate material choice indeed." //the wordplay never ends + icon = 'icons/vore/custom_clothes_vr.dmi' + icon_state = "veriesuit" + + icon_override = 'icons/vore/custom_onmob_vr.dmi' + item_state = "veriesuit" + + body_parts_covered = UPPER_TORSO|LOWER_TORSO|FEET|ARMS|HANDS + + diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm index 8fee419597..65a9fd621b 100644 --- a/code/modules/vore/fluffstuff/custom_items_vr.dm +++ b/code/modules/vore/fluffstuff/custom_items_vr.dm @@ -1350,4 +1350,53 @@ /obj/item/weapon/reagent_containers/food/drinks/glass2/fluff/claraflask/update_icon() ..() name = initial(name) - desc = initial(desc) \ No newline at end of file + desc = initial(desc) + +//Vitoras: Verie +/obj/item/weapon/fluff/verie + name = "glowy hairbrush" + desc = "A pulse of light periodically zips across the top of this blue brush. This... is not an ordinary hair care tool. \ + A small inscription can be seen in one side of the brush: \"THIS DEVICE IS ONLY COMPATIBLE WITH MODEL RI \ + POSITRONICS IN A MODEL E CHASSIS.\"" + icon = 'icons/vore/custom_items_vr.dmi' + icon_state = "verie_brush" + w_class = ITEMSIZE_TINY + + var/owner = "vitoras" + +/obj/item/weapon/fluff/verie/attack_self(mob/living/carbon/human/user) + if (istype(user)) + // It's only made for Verie's chassis silly! + if (user.ckey != owner) + to_chat(user, "The brush's teeth are far too rough to even comb your hair. Apparently, \ + this device was not made for people like you.") + return + + if (!user.hair_accessory_style) + var/datum/sprite_accessory/hair_accessory/verie_hair_glow/V = new(user) + user.hair_accessory_style = V + user.update_hair() + user.visible_message("[user] combs her hair. \The [src] leaves behind glowing cyan highlights as it passes through \ + her black strands.", \ + "You brush your hair. \The [src]'s teeth begin to vibrate and glow as they react to your nanites. \ + The teeth stimulate the nanites in your hair strands until your hair give off a brilliant, faintly pulsing \ + cyan glow!") + + else + user.visible_message("[user] combs her hair. \The [src] brushes away her glowing cyan highlights. Neat!", \ + "You brush your hair. \The [src]'s teeth wipe away the glowing streaks in your hair \ + like a sponge scrubbing away a stain.") + user.hair_accessory_style = null + for(var/datum/sprite_accessory/hair_accessory/verie_hair_glow/V in user) + to_chat(user, "found a V to delete!") + qdel(V) + user.update_hair() + + + else + to_chat(user, "\The [src] isn't compatible with your body as it is now.") + + + + + diff --git a/icons/mob/vore/hair_accessories_vr.dmi b/icons/mob/vore/hair_accessories_vr.dmi new file mode 100644 index 0000000000000000000000000000000000000000..4411f5c00c535ef6f02d360008b902a6d6419571 GIT binary patch literal 1098 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 delta 13678 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 H&4T|wtcHHn diff --git a/icons/vore/custom_items_vr.dmi b/icons/vore/custom_items_vr.dmi index 4856d6c311f9ae19f0a1a9ec886e04e197b9d7f9..10580ec71f003e41435e60eed29cc8d22e942519 100644 GIT binary patch delta 21064 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 N2=S2$#y0RCkZS-bWqU zOB9dOzI-{7|6WrG1BaYp$aAx2L9G4-O5aHT?*uk&P;gN>!-L?P6@|W2NnQWtm=a=o z!}MERVk5H|eX)zd0=17ghhM>sS#qDf{IEybM6*gir+~Jk_~(jE+qD_I8YChIzlR4c zy-OYeGOv%NTZ9jcA*D?0cyz|;OXN?nAxiw@48<8KIFT#(T(u+eKlY0|L5iW00~TP2 z+|vQaU1-2y8l2kOJ)QQhCjBRg93P9^iBVDZEoi1$4JVj=6V4Y<5nzyFzUjUw4WEc~ zAbG*9PKHUfZ=@rhWk;@vbipkKG5$g?-sIlgLp!ES7=~q z2{y!k@i8v`3`g_F@CVjU9QqyeO%Vg*cPM8y?Na%4MSEJBnkbL~b#+Y0u}AB{jMbm! zA5x2)pexOuYQ47bdL=`z~ma9zr^kw`f%o_ziiOrN)>5F4e1h ziB|2xThL%nPkERL_|FXtYWVrV6kENX6Lb(r`i7=MoQ&F&Y4RFBpU{D%JtzYbua{#G zPf9QX1B0aIDY)$Ra&h_D*{}8{f6GZrqnf2)svM5{eJP{aStM-@l9iG9o5nUK{2f`k zWMIM+UpR>asc^W|C_ZKM1tuJEyOq2=KqZ%ZJWq4wA*IyHf+X&(3$oQ31rl z3IxKYQ&t1KAJgGA5{yW}Uoe)<={LSc1ZM>lIJ4daX z-H?_vijey?*(j1Xi6?RK;>5+kfcle*OI%XYwrjgS%MG=H!A&9A4Xy8lqk0@?z>Z2o zr2h$%V67YiY(*T*4dOkYMFHai3e1Qbz&*39TI2XV=R5cF0-?FAP9y(LBPlnx+T{F_ z5^VIWD3e`Y&fo6kTVlDraGiZIW;=QpMNY$K5kuhPCsQe@$ka>`Pg&zmz>~+#Qxsni*e}PFGe^k|6*Djwbi{ z4B1P}E)kRF!~K;seb8$)IrQvPEn9b&iTY`sz)M#ohy-3s@R_?G>8v3$Ab$_$s%PsR zvvS5k-`%4xTd@1Rm)C=9KnFPYm>WdiwjOfwB=JY=uk!U#`OOKj^9Lv=Q9(@*(vq7q`AzL5syA<3`gC_V9Uyp?T-9nu3m{;4dL44kjcBuK)>G~Q%QQV;9U zCP}_RqZ9D$01O(C-WXE+XCQ`lXKeTf3&@2_HLtEQ0_v)iGc5p(3eBpdsW)2JlpuBOMY$k<( z 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