diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index de2ea0f536..1ffaab1793 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -42,20 +42,29 @@ #define DNA_UI_TAIL2_R 23 #define DNA_UI_TAIL2_G 24 #define DNA_UI_TAIL2_B 25 -#define DNA_UI_EARS_R 26 -#define DNA_UI_EARS_G 27 -#define DNA_UI_EARS_B 28 -#define DNA_UI_EARS2_R 29 -#define DNA_UI_EARS2_G 30 -#define DNA_UI_EARS2_B 31 -#define DNA_UI_WING_STYLE 32 -#define DNA_UI_WING_R 33 -#define DNA_UI_WING_G 34 -#define DNA_UI_WING_B 35 -#define DNA_UI_WING2_R 36 -#define DNA_UI_WING2_G 37 -#define DNA_UI_WING2_B 38 // VOREStation snippet end. -#define DNA_UI_LENGTH 38 // VOREStation Edit - Needs to match the highest number above. +#define DNA_UI_TAIL3_R 26 +#define DNA_UI_TAIL3_G 27 +#define DNA_UI_TAIL3_B 28 +#define DNA_UI_EARS_R 29 +#define DNA_UI_EARS_G 30 +#define DNA_UI_EARS_B 31 +#define DNA_UI_EARS2_R 32 +#define DNA_UI_EARS2_G 33 +#define DNA_UI_EARS2_B 34 +#define DNA_UI_EARS3_R 35 +#define DNA_UI_EARS3_G 36 +#define DNA_UI_EARS3_B 37 +#define DNA_UI_WING_STYLE 38 +#define DNA_UI_WING_R 39 +#define DNA_UI_WING_G 40 +#define DNA_UI_WING_B 41 +#define DNA_UI_WING2_R 42 +#define DNA_UI_WING2_G 43 +#define DNA_UI_WING2_B 44 +#define DNA_UI_WING3_R 45 +#define DNA_UI_WING3_G 46 +#define DNA_UI_WING3_B 47 // VOREStation snippet end. +#define DNA_UI_LENGTH 47 // VOREStation Edit - Needs to match the highest number above. #define DNA_SE_LENGTH 49 // VOREStation Edit (original was UI+11) // For later: @@ -229,6 +238,10 @@ var/global/list/datum/dna/gene/dna_genes[0] SetUIValueRange(DNA_UI_TAIL2_G, character.g_tail2, 255, 1) SetUIValueRange(DNA_UI_TAIL2_B, character.b_tail2, 255, 1) + SetUIValueRange(DNA_UI_TAIL3_R, character.r_tail3, 255, 1) + SetUIValueRange(DNA_UI_TAIL3_G, character.g_tail3, 255, 1) + SetUIValueRange(DNA_UI_TAIL3_B, character.b_tail3, 255, 1) + SetUIValueRange(DNA_UI_WING_R, character.r_wing, 255, 1) SetUIValueRange(DNA_UI_WING_G, character.g_wing, 255, 1) SetUIValueRange(DNA_UI_WING_B, character.b_wing, 255, 1) @@ -237,6 +250,10 @@ var/global/list/datum/dna/gene/dna_genes[0] SetUIValueRange(DNA_UI_WING2_G, character.g_wing2, 255, 1) SetUIValueRange(DNA_UI_WING2_B, character.b_wing2, 255, 1) + SetUIValueRange(DNA_UI_WING3_R, character.r_wing3, 255, 1) + SetUIValueRange(DNA_UI_WING3_G, character.g_wing3, 255, 1) + SetUIValueRange(DNA_UI_WING3_B, character.b_wing3, 255, 1) + SetUIValueRange(DNA_UI_EARS_R, character.r_ears, 255, 1) SetUIValueRange(DNA_UI_EARS_G, character.g_ears, 255, 1) SetUIValueRange(DNA_UI_EARS_B, character.b_ears, 255, 1) @@ -245,6 +262,10 @@ var/global/list/datum/dna/gene/dna_genes[0] SetUIValueRange(DNA_UI_EARS2_G, character.g_ears2, 255, 1) SetUIValueRange(DNA_UI_EARS2_B, character.b_ears2, 255, 1) + SetUIValueRange(DNA_UI_EARS3_R, character.r_ears3, 255, 1) + SetUIValueRange(DNA_UI_EARS3_G, character.g_ears3, 255, 1) + SetUIValueRange(DNA_UI_EARS3_B, character.b_ears3, 255, 1) + // VORE Station Edit End SetUIValueRange(DNA_UI_HAIR_R, character.r_hair, 255, 1) diff --git a/code/game/dna/dna2_helpers.dm b/code/game/dna/dna2_helpers.dm index cd3ec6a44d..0edc6bb636 100644 --- a/code/game/dna/dna2_helpers.dm +++ b/code/game/dna/dna2_helpers.dm @@ -189,6 +189,10 @@ H.r_ears2 = dna.GetUIValueRange(DNA_UI_EARS2_R, 255) H.g_ears2 = dna.GetUIValueRange(DNA_UI_EARS2_G, 255) H.b_ears2 = dna.GetUIValueRange(DNA_UI_EARS2_B, 255) + H.r_ears3 = dna.GetUIValueRange(DNA_UI_EARS3_R, 255) + H.g_ears3 = dna.GetUIValueRange(DNA_UI_EARS3_G, 255) + H.b_ears3 = dna.GetUIValueRange(DNA_UI_EARS3_B, 255) + //Tail var/tail = dna.GetUIValueRange(DNA_UI_TAIL_STYLE, tail_styles_list.len + 1) - 1 @@ -208,6 +212,12 @@ H.r_wing = dna.GetUIValueRange(DNA_UI_WING_R, 255) H.g_wing = dna.GetUIValueRange(DNA_UI_WING_G, 255) H.b_wing = dna.GetUIValueRange(DNA_UI_WING_B, 255) + H.r_wing2 = dna.GetUIValueRange(DNA_UI_WING2_R, 255) + H.g_wing2 = dna.GetUIValueRange(DNA_UI_WING2_G, 255) + H.b_wing2 = dna.GetUIValueRange(DNA_UI_WING2_B, 255) + H.r_wing3 = dna.GetUIValueRange(DNA_UI_WING3_R, 255) + H.g_wing3 = dna.GetUIValueRange(DNA_UI_WING3_G, 255) + H.b_wing3 = dna.GetUIValueRange(DNA_UI_WING3_B, 255) // Playerscale var/size = dna.GetUIValueRange(DNA_UI_PLAYERSCALE, player_sizes_list.len) @@ -221,6 +231,9 @@ H.r_tail2 = dna.GetUIValueRange(DNA_UI_TAIL2_R, 255) H.g_tail2 = dna.GetUIValueRange(DNA_UI_TAIL2_G, 255) H.b_tail2 = dna.GetUIValueRange(DNA_UI_TAIL2_B, 255) + H.r_tail3 = dna.GetUIValueRange(DNA_UI_TAIL3_R, 255) + H.g_tail3 = dna.GetUIValueRange(DNA_UI_TAIL3_G, 255) + H.b_tail3 = dna.GetUIValueRange(DNA_UI_TAIL3_B, 255) // Technically custom_species is not part of the UI, but this place avoids merge problems. H.custom_species = dna.custom_species diff --git a/code/modules/client/preference_setup/vore/01_ears.dm b/code/modules/client/preference_setup/vore/01_ears.dm index c36ccd4bca..dea5be0479 100644 --- a/code/modules/client/preference_setup/vore/01_ears.dm +++ b/code/modules/client/preference_setup/vore/01_ears.dm @@ -13,6 +13,9 @@ var/r_ears2 = 30 // Ear extra color. var/g_ears2 = 30 // Ear extra color var/b_ears2 = 30 // Ear extra color + var/r_ears3 = 30 // Ear tertiary color. + var/g_ears3 = 30 // Ear tertiary color + var/b_ears3 = 30 // Ear tertiary color var/tail_style // Type of selected tail style var/r_tail = 30 // Tail/Taur color var/g_tail = 30 // Tail/Taur color @@ -20,6 +23,9 @@ var/r_tail2 = 30 // For extra overlay. var/g_tail2 = 30 // For extra overlay. var/b_tail2 = 30 // For extra overlay. + var/r_tail3 = 30 // For tertiary overlay. + var/g_tail3 = 30 // For tertiary overlay. + var/b_tail3 = 30 // For tertiary overlay. var/wing_style // Type of selected wing style var/r_wing = 30 // Wing color var/g_wing = 30 // Wing color @@ -27,6 +33,9 @@ var/r_wing2 = 30 // Wing extra color var/g_wing2 = 30 // Wing extra color var/b_wing2 = 30 // Wing extra color + var/r_wing3 = 30 // Wing tertiary color + var/g_wing3 = 30 // Wing tertiary color + var/b_wing3 = 30 // Wing tertiary color // Definition of the stuff for Ears /datum/category_item/player_setup_item/vore/ears @@ -41,6 +50,9 @@ S["r_ears2"] >> pref.r_ears2 S["g_ears2"] >> pref.g_ears2 S["b_ears2"] >> pref.b_ears2 + S["r_ears3"] >> pref.r_ears3 + S["g_ears3"] >> pref.g_ears3 + S["b_ears3"] >> pref.b_ears3 S["tail_style"] >> pref.tail_style S["r_tail"] >> pref.r_tail S["g_tail"] >> pref.g_tail @@ -48,6 +60,9 @@ S["r_tail2"] >> pref.r_tail2 S["g_tail2"] >> pref.g_tail2 S["b_tail2"] >> pref.b_tail2 + S["r_tail3"] >> pref.r_tail3 + S["g_tail3"] >> pref.g_tail3 + S["b_tail3"] >> pref.b_tail3 S["wing_style"] >> pref.wing_style S["r_wing"] >> pref.r_wing S["g_wing"] >> pref.g_wing @@ -55,6 +70,9 @@ S["r_wing2"] >> pref.r_wing2 S["g_wing2"] >> pref.g_wing2 S["b_wing2"] >> pref.b_wing2 + S["r_wing3"] >> pref.r_wing3 + S["g_wing3"] >> pref.g_wing3 + S["b_wing3"] >> pref.b_wing3 /datum/category_item/player_setup_item/vore/ears/save_character(var/savefile/S) S["ear_style"] << pref.ear_style @@ -64,6 +82,9 @@ S["r_ears2"] << pref.r_ears2 S["g_ears2"] << pref.g_ears2 S["b_ears2"] << pref.b_ears2 + S["r_ears3"] << pref.r_ears3 + S["g_ears3"] << pref.g_ears3 + S["b_ears3"] << pref.b_ears3 S["tail_style"] << pref.tail_style S["r_tail"] << pref.r_tail S["g_tail"] << pref.g_tail @@ -71,6 +92,9 @@ S["r_tail2"] << pref.r_tail2 S["g_tail2"] << pref.g_tail2 S["b_tail2"] << pref.b_tail2 + S["r_tail3"] << pref.r_tail3 + S["g_tail3"] << pref.g_tail3 + S["b_tail3"] << pref.b_tail3 S["wing_style"] << pref.wing_style S["r_wing"] << pref.r_wing S["g_wing"] << pref.g_wing @@ -78,6 +102,9 @@ S["r_wing2"] << pref.r_wing2 S["g_wing2"] << pref.g_wing2 S["b_wing2"] << pref.b_wing2 + S["r_wing3"] << pref.r_wing3 + S["g_wing3"] << pref.g_wing3 + S["b_wing3"] << pref.b_wing3 /datum/category_item/player_setup_item/vore/ears/sanitize_character() pref.r_ears = sanitize_integer(pref.r_ears, 0, 255, initial(pref.r_ears)) @@ -86,18 +113,28 @@ pref.r_ears2 = sanitize_integer(pref.r_ears2, 0, 255, initial(pref.r_ears2)) pref.g_ears2 = sanitize_integer(pref.g_ears2, 0, 255, initial(pref.g_ears2)) pref.b_ears2 = sanitize_integer(pref.b_ears2, 0, 255, initial(pref.b_ears2)) + pref.r_ears3 = sanitize_integer(pref.r_ears3, 0, 255, initial(pref.r_ears3)) + pref.g_ears3 = sanitize_integer(pref.g_ears3, 0, 255, initial(pref.g_ears3)) + pref.b_ears3 = sanitize_integer(pref.b_ears3, 0, 255, initial(pref.b_ears3)) pref.r_tail = sanitize_integer(pref.r_tail, 0, 255, initial(pref.r_tail)) pref.g_tail = sanitize_integer(pref.g_tail, 0, 255, initial(pref.g_tail)) pref.b_tail = sanitize_integer(pref.b_tail, 0, 255, initial(pref.b_tail)) pref.r_tail2 = sanitize_integer(pref.r_tail2, 0, 255, initial(pref.r_tail2)) pref.g_tail2 = sanitize_integer(pref.g_tail2, 0, 255, initial(pref.g_tail2)) pref.b_tail2 = sanitize_integer(pref.b_tail2, 0, 255, initial(pref.b_tail2)) + pref.r_tail3 = sanitize_integer(pref.r_tail3, 0, 255, initial(pref.r_tail3)) + pref.g_tail3 = sanitize_integer(pref.g_tail3, 0, 255, initial(pref.g_tail3)) + pref.b_tail3 = sanitize_integer(pref.b_tail3, 0, 255, initial(pref.b_tail3)) pref.r_wing = sanitize_integer(pref.r_wing, 0, 255, initial(pref.r_wing)) pref.g_wing = sanitize_integer(pref.g_wing, 0, 255, initial(pref.g_wing)) pref.b_wing = sanitize_integer(pref.b_wing, 0, 255, initial(pref.b_wing)) pref.r_wing2 = sanitize_integer(pref.r_wing2, 0, 255, initial(pref.r_wing2)) pref.g_wing2 = sanitize_integer(pref.g_wing2, 0, 255, initial(pref.g_wing2)) pref.b_wing2 = sanitize_integer(pref.b_wing2, 0, 255, initial(pref.b_wing2)) + pref.r_wing3 = sanitize_integer(pref.r_wing3, 0, 255, initial(pref.r_wing3)) + pref.g_wing3 = sanitize_integer(pref.g_wing3, 0, 255, initial(pref.g_wing3)) + pref.b_wing3 = sanitize_integer(pref.b_wing3, 0, 255, initial(pref.b_wing3)) + if(pref.ear_style) pref.ear_style = sanitize_inlist(pref.ear_style, ear_styles_list, initial(pref.ear_style)) var/datum/sprite_accessory/temp_ear_style = ear_styles_list[pref.ear_style] @@ -122,6 +159,9 @@ character.r_ears2 = pref.r_ears2 character.b_ears2 = pref.b_ears2 character.g_ears2 = pref.g_ears2 + character.r_ears3 = pref.r_ears3 + character.b_ears3 = pref.b_ears3 + character.g_ears3 = pref.g_ears3 character.tail_style = tail_styles_list[pref.tail_style] character.r_tail = pref.r_tail character.b_tail = pref.b_tail @@ -129,6 +169,9 @@ character.r_tail2 = pref.r_tail2 character.b_tail2 = pref.b_tail2 character.g_tail2 = pref.g_tail2 + character.r_tail3 = pref.r_tail3 + character.b_tail3 = pref.b_tail3 + character.g_tail3 = pref.g_tail3 character.wing_style = wing_styles_list[pref.wing_style] character.r_wing = pref.r_wing character.b_wing = pref.b_wing @@ -136,6 +179,9 @@ character.r_wing2 = pref.r_wing2 character.b_wing2 = pref.b_wing2 character.g_wing2 = pref.g_wing2 + character.r_wing3 = pref.r_wing3 + character.b_wing3 = pref.b_wing3 + character.g_wing3 = pref.g_wing3 @@ -153,10 +199,12 @@ . += " Style: [ear_display]
" if(ear_styles_list[pref.ear_style]) var/datum/sprite_accessory/ears/ear = ear_styles_list[pref.ear_style] - if (ear.do_colouration) + if(ear.do_colouration) . += "Change Color [color_square(pref.r_ears, pref.g_ears, pref.b_ears)]
" - if (ear.extra_overlay) + if(ear.extra_overlay) . += "Change Secondary Color [color_square(pref.r_ears2, pref.g_ears2, pref.b_ears2)]
" + if(ear.extra_overlay2) + . += "Change Tertiary Color [color_square(pref.r_ears3, pref.g_ears3, pref.b_ears3)]
" var/tail_display = "Normal" if(pref.tail_style && (pref.tail_style in tail_styles_list)) @@ -169,10 +217,12 @@ if(tail_styles_list[pref.tail_style]) var/datum/sprite_accessory/tail/T = tail_styles_list[pref.tail_style] - if (T.do_colouration) + if(T.do_colouration) . += "Change Color [color_square(pref.r_tail, pref.g_tail, pref.b_tail)]
" - if (T.extra_overlay) + if(T.extra_overlay) . += "Change Secondary Color [color_square(pref.r_tail2, pref.g_tail2, pref.b_tail2)]
" + if(T.extra_overlay2) + . += "Change Tertiary Color [color_square(pref.r_tail3, pref.g_tail3, pref.b_tail3)]
" var/wing_display = "Normal" if(pref.wing_style && (pref.wing_style in wing_styles_list)) @@ -189,6 +239,8 @@ . += "Change Color [color_square(pref.r_wing, pref.g_wing, pref.b_wing)]
" if (W.extra_overlay) . += "Change Secondary Color [color_square(pref.r_wing2, pref.g_wing2, pref.b_wing2)]
" + if (W.extra_overlay2) + . += "Change Secondary Color [color_square(pref.r_wing3, pref.g_wing3, pref.b_wing3)]
" /datum/category_item/player_setup_item/vore/ears/OnTopic(var/href,var/list/href_list, var/mob/user) if(!CanUseTopic(user)) @@ -219,7 +271,7 @@ return TOPIC_REFRESH_UPDATE_PREVIEW else if(href_list["ear_color2"]) - var/new_earc2 = input(user, "Choose your character's ear colour:", "Character Preference", + var/new_earc2 = input(user, "Choose your character's secondary ear colour:", "Character Preference", rgb(pref.r_ears2, pref.g_ears2, pref.b_ears2)) as color|null if(new_earc2) pref.r_ears2 = hex2num(copytext(new_earc2, 2, 4)) @@ -227,6 +279,15 @@ pref.b_ears2 = hex2num(copytext(new_earc2, 6, 8)) return TOPIC_REFRESH_UPDATE_PREVIEW + else if(href_list["ear_color3"]) + var/new_earc3 = input(user, "Choose your character's tertiary ear colour:", "Character Preference", + rgb(pref.r_ears3, pref.g_ears3, pref.b_ears3)) as color|null + if(new_earc3) + pref.r_ears3 = hex2num(copytext(new_earc3, 2, 4)) + pref.g_ears3 = hex2num(copytext(new_earc3, 4, 6)) + pref.b_ears3 = hex2num(copytext(new_earc3, 6, 8)) + return TOPIC_REFRESH_UPDATE_PREVIEW + else if(href_list["tail_style"]) // Construct the list of names allowed for this user. var/list/pretty_tail_styles = list("Normal" = null) @@ -260,6 +321,15 @@ pref.b_tail2 = hex2num(copytext(new_tailc2, 6, 8)) return TOPIC_REFRESH_UPDATE_PREVIEW + else if(href_list["tail_color3"]) + var/new_tailc3 = input(user, "Choose your character's tertiary tail/taur colour:", "Character Preference", + rgb(pref.r_tail3, pref.g_tail3, pref.b_tail3)) as color|null + if(new_tailc3) + pref.r_tail3 = hex2num(copytext(new_tailc3, 2, 4)) + pref.g_tail3 = hex2num(copytext(new_tailc3, 4, 6)) + pref.b_tail3 = hex2num(copytext(new_tailc3, 6, 8)) + return TOPIC_REFRESH_UPDATE_PREVIEW + else if(href_list["wing_style"]) // Construct the list of names allowed for this user. var/list/pretty_wing_styles = list("Normal" = null) @@ -293,4 +363,13 @@ pref.b_wing2 = hex2num(copytext(new_wingc2, 6, 8)) return TOPIC_REFRESH_UPDATE_PREVIEW + else if(href_list["wing_color3"]) + var/new_wingc3 = input(user, "Choose your character's tertiary wing colour:", "Character Preference", + rgb(pref.r_wing3, pref.g_wing3, pref.b_wing3)) as color|null + if(new_wingc3) + pref.r_wing3 = hex2num(copytext(new_wingc3, 2, 4)) + pref.g_wing3 = hex2num(copytext(new_wingc3, 4, 6)) + pref.b_wing3 = hex2num(copytext(new_wingc3, 6, 8)) + return TOPIC_REFRESH_UPDATE_PREVIEW + return ..() diff --git a/code/modules/mob/living/carbon/human/human_powers_vr.dm b/code/modules/mob/living/carbon/human/human_powers_vr.dm index 1d1954ac33..d21fbfeb05 100644 --- a/code/modules/mob/living/carbon/human/human_powers_vr.dm +++ b/code/modules/mob/living/carbon/human/human_powers_vr.dm @@ -13,4 +13,25 @@ to_chat(src, "Reagents purged!") return TRUE - + +/mob/living/carbon/human/verb/toggle_eyes_layer() + set name = "Switch Eyes/Monitor Layer" + set desc = "Toggle rendering of eyes/monitor above markings." + set category = "IC" + + if(stat) + to_chat(src, "You must be awake and standing to perform this action!") + return + var/obj/item/organ/external/head/vr/H = organs_by_name[BP_HEAD] + if(!H) + to_chat(src, "You don't seem to have a head!") + return + + H.eyes_over_markings = !H.eyes_over_markings + update_icons_body() + + var/datum/robolimb/robohead = all_robolimbs[H.model] + if(robohead.monitor_styles && robohead.monitor_icon) + to_chat(src, "You reconfigure the rendering order of your facial display.") + + return TRUE diff --git a/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm b/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm index be37e03c47..c5d2d72fff 100644 --- a/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm +++ b/code/modules/mob/living/carbon/human/species/species_shapeshift_vr.dm @@ -41,6 +41,15 @@ g_ears2 = new_color_rgb_list[2] b_ears2 = new_color_rgb_list[3] + var/current_ter_color = rgb(r_ears3,g_ears3,b_ears3) + + var/new_ter_color = input("Pick tertiary ear color (only applies to some ears):","Ear Color (sec)", current_ter_color) as null|color + if(new_ter_color) + new_color_rgb_list = hex2rgb(new_sec_color) + r_ears3 = new_color_rgb_list[1] + g_ears3 = new_color_rgb_list[2] + b_ears3 = new_color_rgb_list[3] + update_hair() //Includes Virgo ears /mob/living/carbon/human/proc/shapeshifter_select_tail() @@ -86,6 +95,15 @@ g_tail2 = new_color_rgb_list[2] b_tail2 = new_color_rgb_list[3] + var/current_ter_color = rgb(r_tail3,g_tail3,b_tail3) + + var/new_ter_color = input("Pick tertiary tail color (only applies to some tails):","Tail Color (sec)", current_ter_color) as null|color + if(new_ter_color) + new_color_rgb_list = hex2rgb(new_ter_color) + r_tail3 = new_color_rgb_list[1] + g_tail3 = new_color_rgb_list[2] + b_tail3 = new_color_rgb_list[3] + update_tail_showing() /mob/living/carbon/human/proc/shapeshifter_select_wings() @@ -131,6 +149,16 @@ g_wing2 = new_color_rgb_list[2] b_wing2 = new_color_rgb_list[3] + var/current_ter_color = rgb(r_wing3,g_wing3,b_wing3) + + var/new_ter_color = input("Pick tertiary wing color (only applies to some wings):","Wing Color (sec)", current_ter_color) as null|color + if(new_ter_color) + new_color_rgb_list = hex2rgb(new_ter_color) + r_wing3 = new_color_rgb_list[1] + g_wing3 = new_color_rgb_list[2] + b_wing3 = new_color_rgb_list[3] + + update_wing_showing() /mob/living/carbon/human/proc/promethean_select_opaqueness() diff --git a/code/modules/mob/living/carbon/human/update_icons_vr.dm b/code/modules/mob/living/carbon/human/update_icons_vr.dm deleted file mode 100644 index d05f8afa22..0000000000 --- a/code/modules/mob/living/carbon/human/update_icons_vr.dm +++ /dev/null @@ -1,32 +0,0 @@ -/mob/living/carbon/human/proc/get_wing_image() - if(QDESTROYING(src)) - return - - //If you are FBP with wing style and didn't set a custom one - if((synthetic && synthetic.includes_wing && !wing_style) && !wings_hidden) - var/icon/wing_s = new/icon("icon" = synthetic.icon, "icon_state" = "wing") //I dunno. If synths have some custom wing? - wing_s.Blend(rgb(src.r_skin, src.g_skin, src.b_skin), species.color_mult ? ICON_MULTIPLY : ICON_ADD) - return image(wing_s) - - //If you have custom wings selected - if((wing_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL)) && !wings_hidden) - var/icon/wing_s = new/icon("icon" = wing_style.icon, "icon_state" = flapping && wing_style.ani_state ? wing_style.ani_state : wing_style.icon_state) - if(wing_style.do_colouration) - wing_s.Blend(rgb(src.r_wing, src.g_wing, src.b_wing), wing_style.color_blend_mode) - if(wing_style.extra_overlay) - var/icon/overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay) - overlay.Blend(rgb(src.r_wing2, src.g_wing2, src.b_wing2), wing_style.color_blend_mode) - wing_s.Blend(overlay, ICON_OVERLAY) - qdel(overlay) - return image(wing_s) - -// TODO - Move this to where it should go ~Leshana -/mob/proc/stop_flying() - if(QDESTROYING(src)) - return - flying = FALSE - return 1 - -/mob/living/carbon/human/stop_flying() - if((. = ..())) - update_wing_showing() diff --git a/code/modules/mob/new_player/sprite_accessories_vr.dm b/code/modules/mob/new_player/sprite_accessories_vr.dm index 26d620982c..6baf801552 100644 --- a/code/modules/mob/new_player/sprite_accessories_vr.dm +++ b/code/modules/mob/new_player/sprite_accessories_vr.dm @@ -1275,3 +1275,69 @@ body_parts = list(BP_L_LEG,BP_R_LEG,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN,BP_HEAD) species_allowed = list(SPECIES_TESHARI) body_parts = list(BP_L_FOOT,BP_R_FOOT) + + voxscales + name = "Vox Scales" + icon_state = "Voxscales" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_HEAD) + + voxclaws + name = "Vox Claws" + icon_state = "Voxclaws" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND) + + voxbeak + name = "Vox Beak" + icon_state = "Voxscales" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_HEAD) + + unathihood + name = "Cobra Hood" + icon_state = "unathihood" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_HEAD) + + unathidoublehorns + name = "Double Unathi Horns" + icon_state = "unathidoublehorns" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_HEAD) + + unathihorns + name = "Unathi Horns" + icon_state = "unathihorns" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_HEAD) + + unathiramhorns + name = "Unathi Ram Horns" + icon_state = "unathiramhorns" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_HEAD) + + unathishortspines + name = "Unathi Short Spines" + icon_state = "unathishortspines" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_HEAD) + + unathilongspines + name = "Unathi Long Spines" + icon_state = "unathilongspines" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_HEAD) + + unathishortfrills + name = "Unathi Short Frills" + icon_state = "unathishortfrills" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_HEAD) + + unathilongfrills + name = "Unathi Long Frills" + icon_state = "unathilongfrills" + color_blend_mode = ICON_MULTIPLY + body_parts = list(BP_HEAD) diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index 1fda536c93..86e71c4fc2 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -61,6 +61,8 @@ var/global/list/limb_icon_cache = list() if(!iscarbon(owner) || !owner.species) return + var/icon/eyecon //VOREStation Edit -- holds eye icon to render over markings later. + //Eye color/icon var/should_have_eyes = owner.should_have_organ(O_EYES) var/has_eye_color = owner.species.appearance_flags & HAS_EYE_COLOR @@ -79,8 +81,14 @@ var/global/list/limb_icon_cache = list() //We have weird other-sorts of eyes (as we're not supposed to have eye organ, but we have HAS_EYE_COLOR species) else eyes_icon.Blend(rgb(owner.r_eyes, owner.g_eyes, owner.b_eyes), ICON_ADD) - add_overlay(eyes_icon) - mob_icon.Blend(eyes_icon, ICON_OVERLAY) + + //VOREStation edit -- allow rendering of eyes over markings. + if(eyes_over_markings) + eyecon = eyes_icon + else + add_overlay(eyes_icon) + mob_icon.Blend(eyes_icon, ICON_OVERLAY) + icon_cache_key += "[eye_icon]" //Lip color/icon if(owner.lip_style && (species && (species.appearance_flags & HAS_LIPS))) @@ -97,6 +105,11 @@ var/global/list/limb_icon_cache = list() mob_icon.Blend(mark_s, ICON_OVERLAY) //So when it's on your body, it has icons icon_cache_key += "[M][markings[M]["color"]]" + if(eyes_over_markings && eyecon) //VOREStation edit -- toggle to render eyes above markings. + add_overlay(eyecon) + mob_icon.Blend(eyecon, ICON_OVERLAY) + icon_cache_key += "[eye_icon]" + add_overlay(get_hair_icon()) return mob_icon diff --git a/code/modules/organs/robolimbs_vr.dm b/code/modules/organs/robolimbs_vr.dm index 9a30771936..44953be646 100644 --- a/code/modules/organs/robolimbs_vr.dm +++ b/code/modules/organs/robolimbs_vr.dm @@ -6,6 +6,7 @@ //CitRP Port var/const/cyberbeast_monitor_styles = "blank=cyber_blank;\ default=cyber_default;\ + eyes=eyes;\ static=cyber_static;\ alert=cyber_alert;\ happy=cyber_happ;\ @@ -64,7 +65,6 @@ var/const/cyberbeast_monitor_styles = "blank=cyber_blank;\ icon = 'icons/obj/items_vr.dmi' icon_state = "verkdisk" - // tucker0666 : Frost /datum/robolimb/zenghu_frost company = "Zeng-Hu (Custom)" diff --git a/code/modules/organs/subtypes/standard.dm b/code/modules/organs/subtypes/standard.dm index 1ebd92106c..1c4fb5ee27 100644 --- a/code/modules/organs/subtypes/standard.dm +++ b/code/modules/organs/subtypes/standard.dm @@ -269,6 +269,7 @@ var/eye_icon = "eyes_s" force = 3 throwforce = 7 + var/eyes_over_markings = FALSE //VOREStation edit var/eye_icon_location = 'icons/mob/human_face.dmi' diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 0e0751952b..442c739df9 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -29,9 +29,16 @@ one_handed_penalty = 0 // Not sure if two-handing gets checked for mounted weapons, but better safe than sorry. /obj/item/weapon/gun/energy/laser/mounted/augment + name = "arm-laser" + desc = "A cruel malformation of a Hephaestus Industries G40E rifle, designed to kill with concentrated energy blasts, all while being stowable in the arm. This variant has the ability to \ + switch between standard fire and a more efficent but weaker 'suppressive' fire." use_external_power = FALSE use_organic_power = TRUE + wielded_item_state = null + item_state = "augment_laser" canremove = FALSE + one_handed_penalty = 5 + battery_lock = 1 /obj/item/weapon/gun/energy/laser/practice name = "practice laser carbine" diff --git a/code/modules/vore/appearance/preferences_vr.dm b/code/modules/vore/appearance/preferences_vr.dm index 3c86146e11..e362f51b3e 100644 --- a/code/modules/vore/appearance/preferences_vr.dm +++ b/code/modules/vore/appearance/preferences_vr.dm @@ -17,6 +17,9 @@ var/r_ears2 = 30 var/g_ears2 = 30 var/b_ears2 = 30 + var/r_ears3 = 30 //Trust me, we could always use more colour. No japes. + var/g_ears3 = 30 + var/b_ears3 = 30 var/datum/sprite_accessory/tail/tail_style = null var/r_tail = 30 var/g_tail = 30 @@ -24,6 +27,9 @@ var/r_tail2 = 30 var/g_tail2 = 30 var/b_tail2 = 30 + var/r_tail3 = 30 + var/g_tail3 = 30 + var/b_tail3 = 30 var/datum/sprite_accessory/wing/wing_style = null var/r_wing = 30 var/g_wing = 30 @@ -31,6 +37,9 @@ var/r_wing2 = 30 var/g_wing2 = 30 var/b_wing2 = 30 + var/r_wing3 = 30 + var/g_wing3 = 30 + var/b_wing3 = 30 // Custom Species Name var/custom_species diff --git a/code/modules/vore/appearance/sprite_accessories_vr.dm b/code/modules/vore/appearance/sprite_accessories_vr.dm index b9b556fb68..885b93fd56 100644 --- a/code/modules/vore/appearance/sprite_accessories_vr.dm +++ b/code/modules/vore/appearance/sprite_accessories_vr.dm @@ -1,1814 +1,1983 @@ -/* - 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/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 - -// 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" - -/datum/sprite_accessory/ears/lilimoth_antennae - name = "citheronia antennae (Kira72)" - desc = "" - icon_state = "lilimoth_antennae" - -/datum/sprite_accessory/ears/molenar_deathclaw - name = "deathclaw ears (Molenar)" - desc = "" - icon_state = "molenar-deathclaw" - -/datum/sprite_accessory/ears/miria_fluffdragon - name = "fluffdragon ears (Miria Masters)" - desc = "" - icon_state = "miria-fluffdragonears" - -/datum/sprite_accessory/ears/miria_kitsune - name = "kitsune ears (Miria Masters)" - desc = "" - icon_state = "miria-kitsuneears" - -/datum/sprite_accessory/ears/runac - name = "fennecsune ears (Runac)" - desc = "" - icon_state = "runac" - -/datum/sprite_accessory/ears/kerena - name = "wingwolf ears (Kerena)" - desc = "" - icon_state = "kerena" - -/datum/sprite_accessory/ears/rosey - name = "tritail kitsune ears (Rosey)" - desc = "" - icon_state = "rosey" - do_colouration = 1 - color_blend_mode = ICON_MULTIPLY - -/datum/sprite_accessory/ears/aronai - name = "aronai ears/head (Aronai)" - desc = "" - icon_state = "aronai" - -/datum/sprite_accessory/ears/holly - name = "tigress ears (Holly Sharp)" - desc = "" - icon_state = "tigressears" - -/datum/sprite_accessory/ears/molenar_inkling - name = "teal mature inkling hair (Kari Akiren)" - desc = "" - icon_state = "molenar-tentacle" - -/datum/sprite_accessory/ears/shock - name = "pharoah hound ears (Shock Diamond)" - desc = "" - icon_state = "shock" - -/datum/sprite_accessory/ears/alurane - name = "alurane ears/hair (Pumila)" - desc = "" - icon_state = "alurane-ears" - -/datum/sprite_accessory/ears/frost - name = "Frost antenna" - desc = "" - icon_state = "frosted_tips" - -/datum/sprite_accessory/ears/sylv_pip - name = "sylveon ears and ribbons (Pip Shyner)" - desc = "" - icon_state = "pipears" - -/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/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 - -/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" - -/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" - -/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/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" - -/datum/sprite_accessory/wing/miria_fluffdragon - name = "fluffdragon wings (Miria Masters)" - desc = "" - icon_state = "miria-fluffdragontail" - -/datum/sprite_accessory/wing/scree - name = "green taj wings (Scree)" - desc = "" - icon_state = "scree-wings" - -/datum/sprite_accessory/wing/liquidfirefly_gazer //I g-guess this could be considered wings? - name = "gazer eyestalks" - desc = "" - icon_state = "liquidfirefly-eyestalks" - -/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" - -/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 - -/* -//////////////////////////// -/ =--------------------= / -/ == 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/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/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" - -/datum/sprite_accessory/tail/miria_fluffdragon - name = "fluffdragon tail (Miria Masters)" - desc = "" - icon_state = "miria-fluffdragontail" - -/datum/sprite_accessory/tail/miria_kitsune - name = "Black kitsune tails (Miria Masters)" - desc = "" - icon_state = "miria-kitsunetail" - -/datum/sprite_accessory/tail/molenar_deathclaw - name = "deathclaw bits (Molenar)" - desc = "" - icon_state = "molenar-deathclaw" - -/datum/sprite_accessory/tail/runac - name = "fennecsune tails (Runac)" - desc = "" - icon_state = "runac" - -/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" - -/datum/sprite_accessory/tail/rosey - name = "tritail kitsune tails (Rosey)" - desc = "" - icon_state = "rosey_three" - -/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 - -/datum/sprite_accessory/tail/scree - name = "green taj tail (Scree)" - desc = "" - icon_state = "scree" - -/datum/sprite_accessory/tail/aronai - name = "aronai tail (Aronai)" - desc = "" - icon_state = "aronai" - -/datum/sprite_accessory/tail/cabletail - name = "cabletail" - desc = "cabletail" - icon_state = "cabletail" - -/datum/sprite_accessory/tail/featherfluff_tail - name = "featherfluff_tail" - desc = "" - icon_state = "featherfluff_tail" - -/datum/sprite_accessory/tail/ketrai_wag - name = "fennix tail (vwag)" - desc = "" - icon_state = "ketraitail" - ani_state = "ketraitail_w" - -/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" - -/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 - -/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" - +/* + 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 + +// 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" + +/datum/sprite_accessory/ears/lilimoth_antennae + name = "citheronia antennae (Kira72)" + desc = "" + icon_state = "lilimoth_antennae" + +/datum/sprite_accessory/ears/molenar_deathclaw + name = "deathclaw ears (Molenar)" + desc = "" + icon_state = "molenar-deathclaw" + +/datum/sprite_accessory/ears/miria_fluffdragon + name = "fluffdragon ears (Miria Masters)" + desc = "" + icon_state = "miria-fluffdragonears" + +/datum/sprite_accessory/ears/miria_kitsune + name = "kitsune ears (Miria Masters)" + desc = "" + icon_state = "miria-kitsuneears" + +/datum/sprite_accessory/ears/runac + name = "fennecsune ears (Runac)" + desc = "" + icon_state = "runac" + +/datum/sprite_accessory/ears/kerena + name = "wingwolf ears (Kerena)" + desc = "" + icon_state = "kerena" + +/datum/sprite_accessory/ears/rosey + name = "tritail kitsune ears (Rosey)" + desc = "" + icon_state = "rosey" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/ears/aronai + name = "aronai ears/head (Aronai)" + desc = "" + icon_state = "aronai" + +/datum/sprite_accessory/ears/holly + name = "tigress ears (Holly Sharp)" + desc = "" + icon_state = "tigressears" + +/datum/sprite_accessory/ears/molenar_inkling + name = "teal mature inkling hair (Kari Akiren)" + desc = "" + icon_state = "molenar-tentacle" + +/datum/sprite_accessory/ears/shock + name = "pharoah hound ears (Shock Diamond)" + desc = "" + icon_state = "shock" + +/datum/sprite_accessory/ears/alurane + name = "alurane ears/hair (Pumila)" + desc = "" + icon_state = "alurane-ears" + +/datum/sprite_accessory/ears/frost + name = "Frost antenna" + desc = "" + icon_state = "frosted_tips" + +/datum/sprite_accessory/ears/sylv_pip + name = "sylveon ears and ribbons (Pip Shyner)" + desc = "" + icon_state = "pipears" + +/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" + +/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" + +/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" + +/datum/sprite_accessory/wing/miria_fluffdragon + name = "fluffdragon wings (Miria Masters)" + desc = "" + icon_state = "miria-fluffdragontail" + +/datum/sprite_accessory/wing/scree + name = "green taj wings (Scree)" + desc = "" + icon_state = "scree-wings" + +/datum/sprite_accessory/wing/liquidfirefly_gazer //I g-guess this could be considered wings? + name = "gazer eyestalks" + desc = "" + icon_state = "liquidfirefly-eyestalks" + +/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" + +/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" + +/datum/sprite_accessory/tail/miria_fluffdragon + name = "fluffdragon tail (Miria Masters)" + desc = "" + icon_state = "miria-fluffdragontail" + +/datum/sprite_accessory/tail/miria_kitsune + name = "Black kitsune tails (Miria Masters)" + desc = "" + icon_state = "miria-kitsunetail" + +/datum/sprite_accessory/tail/molenar_deathclaw + name = "deathclaw bits (Molenar)" + desc = "" + icon_state = "molenar-deathclaw" + +/datum/sprite_accessory/tail/runac + name = "fennecsune tails (Runac)" + desc = "" + icon_state = "runac" + +/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" + +/datum/sprite_accessory/tail/rosey + name = "tritail kitsune tails (Rosey)" + desc = "" + icon_state = "rosey_three" + +/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 + +/datum/sprite_accessory/tail/scree + name = "green taj tail (Scree)" + desc = "" + icon_state = "scree" + +/datum/sprite_accessory/tail/aronai + name = "aronai tail (Aronai)" + desc = "" + icon_state = "aronai" + +/datum/sprite_accessory/tail/cabletail + name = "cabletail" + desc = "cabletail" + icon_state = "cabletail" + +/datum/sprite_accessory/tail/featherfluff_tail + name = "featherfluff_tail" + desc = "" + icon_state = "featherfluff_tail" + +/datum/sprite_accessory/tail/ketrai_wag + name = "fennix tail (vwag)" + desc = "" + icon_state = "ketraitail" + ani_state = "ketraitail_w" + +/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" + +/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 + +/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 diff --git a/code/modules/vore/appearance/update_icons_vr.dm b/code/modules/vore/appearance/update_icons_vr.dm index ee39d02d2d..ab470c6af6 100644 --- a/code/modules/vore/appearance/update_icons_vr.dm +++ b/code/modules/vore/appearance/update_icons_vr.dm @@ -5,15 +5,21 @@ var/global/list/wing_icon_cache = list() var/icon/ears_s = new/icon("icon" = ear_style.icon, "icon_state" = ear_style.icon_state) if(ear_style.do_colouration) ears_s.Blend(rgb(src.r_ears, src.g_ears, src.b_ears), ear_style.color_blend_mode) + if(ear_style.extra_overlay) var/icon/overlay = new/icon("icon" = ear_style.icon, "icon_state" = ear_style.extra_overlay) overlay.Blend(rgb(src.r_ears2, src.g_ears2, src.b_ears2), ear_style.color_blend_mode) ears_s.Blend(overlay, ICON_OVERLAY) qdel(overlay) + + if(ear_style.extra_overlay2) //MORE COLOURS IS BETTERER + var/icon/overlay = new/icon("icon" = ear_style.icon, "icon_state" = ear_style.extra_overlay2) + overlay.Blend(rgb(src.r_ears3, src.g_ears3, src.b_ears3), ear_style.color_blend_mode) + ears_s.Blend(overlay, ICON_OVERLAY) + qdel(overlay) return ears_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() @@ -39,6 +45,18 @@ var/global/list/wing_icon_cache = list() tail_s.Blend(overlay, ICON_OVERLAY) qdel(overlay) + if(tail_style.extra_overlay2) + var/icon/overlay = new/icon("icon" = tail_style.icon, "icon_state" = tail_style.extra_overlay2) + if(wagging && tail_style.ani_state) + overlay = new/icon("icon" = tail_style.icon, "icon_state" = tail_style.extra_overlay2_w) + overlay.Blend(rgb(src.r_tail3, src.g_tail3, src.b_tail3), tail_style.color_blend_mode) + tail_s.Blend(overlay, ICON_OVERLAY) + qdel(overlay) + else + overlay.Blend(rgb(src.r_tail3, src.g_tail3, src.b_tail3), tail_style.color_blend_mode) + tail_s.Blend(overlay, ICON_OVERLAY) + qdel(overlay) + if(isTaurTail(tail_style)) var/datum/sprite_accessory/tail/taur/taurtype = tail_style if(taurtype.can_ride && !riding_datum) @@ -49,3 +67,49 @@ var/global/list/wing_icon_cache = list() else return image(tail_s) return null + +/mob/living/carbon/human/proc/get_wing_image() + if(QDESTROYING(src)) + return + + //If you are FBP with wing style and didn't set a custom one + if((synthetic && synthetic.includes_wing && !wing_style) && !wings_hidden) + var/icon/wing_s = new/icon("icon" = synthetic.icon, "icon_state" = "wing") //I dunno. If synths have some custom wing? + wing_s.Blend(rgb(src.r_skin, src.g_skin, src.b_skin), species.color_mult ? ICON_MULTIPLY : ICON_ADD) + return image(wing_s) + + //If you have custom wings selected + if((wing_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL)) && !wings_hidden) + var/icon/wing_s = new/icon("icon" = wing_style.icon, "icon_state" = flapping && wing_style.ani_state ? wing_style.ani_state : wing_style.icon_state) + if(wing_style.do_colouration) + wing_s.Blend(rgb(src.r_wing, src.g_wing, src.b_wing), wing_style.color_blend_mode) + if(wing_style.extra_overlay) + var/icon/overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay) + overlay.Blend(rgb(src.r_wing2, src.g_wing2, src.b_wing2), wing_style.color_blend_mode) + wing_s.Blend(overlay, ICON_OVERLAY) + qdel(overlay) + + if(wing_style.extra_overlay2) + var/icon/overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay2) + if(wing_style.ani_state) + overlay = new/icon("icon" = wing_style.icon, "icon_state" = wing_style.extra_overlay2_w) + overlay.Blend(rgb(src.r_wing3, src.g_wing3, src.b_wing3), wing_style.color_blend_mode) + wing_s.Blend(overlay, ICON_OVERLAY) + qdel(overlay) + else + overlay.Blend(rgb(src.r_wing3, src.g_wing3, src.b_wing3), wing_style.color_blend_mode) + wing_s.Blend(overlay, ICON_OVERLAY) + qdel(overlay) + + return image(wing_s) + +// TODO - Move this to where it should go ~Leshana +/mob/proc/stop_flying() + if(QDESTROYING(src)) + return + flying = FALSE + return 1 + +/mob/living/carbon/human/stop_flying() + if((. = ..())) + update_wing_showing() \ No newline at end of file diff --git a/icons/mob/human_races/markings_vr.dmi b/icons/mob/human_races/markings_vr.dmi index bf9d7578b5..175e5387c6 100644 Binary files a/icons/mob/human_races/markings_vr.dmi and b/icons/mob/human_races/markings_vr.dmi differ diff --git a/icons/mob/items/lefthand_guns.dmi b/icons/mob/items/lefthand_guns.dmi index e6f7078032..82d77e8106 100644 Binary files a/icons/mob/items/lefthand_guns.dmi and b/icons/mob/items/lefthand_guns.dmi differ diff --git a/icons/mob/items/righthand_guns.dmi b/icons/mob/items/righthand_guns.dmi index 54dba4f49e..c7fad146ac 100644 Binary files a/icons/mob/items/righthand_guns.dmi and b/icons/mob/items/righthand_guns.dmi differ diff --git a/icons/mob/monitor_icons_vr.dmi b/icons/mob/monitor_icons_vr.dmi index 9e48c64a4a..7b291cbcff 100644 Binary files a/icons/mob/monitor_icons_vr.dmi and b/icons/mob/monitor_icons_vr.dmi differ diff --git a/icons/mob/vore/ears_vr.dmi b/icons/mob/vore/ears_vr.dmi index 602b3ac809..344da6e557 100644 Binary files a/icons/mob/vore/ears_vr.dmi and b/icons/mob/vore/ears_vr.dmi differ diff --git a/icons/mob/vore/tails_vr.dmi b/icons/mob/vore/tails_vr.dmi index 79c188a2d2..eab6611c9c 100644 Binary files a/icons/mob/vore/tails_vr.dmi and b/icons/mob/vore/tails_vr.dmi differ diff --git a/icons/mob/vore/wings_vr.dmi b/icons/mob/vore/wings_vr.dmi index 41b6dcf607..40f5f02d92 100644 Binary files a/icons/mob/vore/wings_vr.dmi and b/icons/mob/vore/wings_vr.dmi differ diff --git a/vorestation.dme b/vorestation.dme index b82fdfa34b..f606dd2f26 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2732,7 +2732,6 @@ #include "code\modules\mob\living\carbon\human\stripping.dm" #include "code\modules\mob\living\carbon\human\unarmed_attack.dm" #include "code\modules\mob\living\carbon\human\update_icons.dm" -#include "code\modules\mob\living\carbon\human\update_icons_vr.dm" #include "code\modules\mob\living\carbon\human\ai_controlled\ai_controlled.dm" #include "code\modules\mob\living\carbon\human\descriptors\_descriptors.dm" #include "code\modules\mob\living\carbon\human\descriptors\descriptors_generic.dm"