diff --git a/code/modules/mob/new_player/sprite_accessories_tail.dm b/code/modules/mob/new_player/sprite_accessories_tail.dm
index b3fd01dfd28..9a496f03fe5 100644
--- a/code/modules/mob/new_player/sprite_accessories_tail.dm
+++ b/code/modules/mob/new_player/sprite_accessories_tail.dm
@@ -8,14 +8,14 @@
/datum/sprite_accessory/tail
name = DEVELOPER_WARNING_NAME
icon = 'icons/mob/human_races/sprite_accessories/tails.dmi'
- do_colouration = 0 //Set to 1 to enable coloration using the tail color.
+ do_colouration = FALSE //Set to TRUE to enable coloration using the tail color.
- color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1
+ color_blend_mode = ICON_ADD // Only appliciable if do_coloration = TRUE
em_block = TRUE
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/show_species_tail = FALSE // If false, do not render species' tail.
+ var/clothing_can_hide = TRUE // If true, clothing with HIDETAIL hides it
var/desc = DEVELOPER_WARNING_NAME
var/ani_state // State when wagging/animated
var/extra_overlay_w // Wagging state for extra overlay
@@ -53,7 +53,7 @@
/datum/sprite_accessory/tail/alien_slug
name = "Alien slug tail"
icon_state = "alien_slug"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "alien_slug_markings"
@@ -76,28 +76,28 @@
name = "squirrel, colorable"
desc = ""
icon_state = "squirrel"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/kitty
name = "kitty, colorable, downwards"
desc = ""
icon_state = "kittydown"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/kittyup
name = "kitty, colorable, upwards"
desc = ""
icon_state = "kittyup"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/tiger_white
name = "tiger, colorable"
desc = ""
icon_state = "tiger"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "tigerinnerwhite"
@@ -105,7 +105,7 @@
name = "stripey taj, colorable"
desc = ""
icon_state = "stripeytail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "stripeytail_mark"
@@ -118,14 +118,14 @@
name = "Chameleon, colorable"
desc = ""
icon_state = "chameleon"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/bunny
name = "bunny, colorable"
desc = ""
icon_state = "bunny"
- do_colouration = 1
+ do_colouration = TRUE
/datum/sprite_accessory/tail/rabbit
name = "rabbit, colourable (vwag)"
@@ -154,14 +154,14 @@
name = "bear, colorable"
desc = ""
icon_state = "bear"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/dragon
name = "dragon, colorable"
desc = ""
icon_state = "dragon"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/wolf_grey
@@ -188,7 +188,7 @@
name = "wolf, colorable"
desc = ""
icon_state = "wolf"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "wolfinner"
@@ -201,35 +201,35 @@
name = "mouse, colorable"
desc = ""
icon_state = "mouse"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/horse
name = "horse tail, colorable"
desc = ""
icon_state = "horse"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/cow
name = "cow tail, colorable"
desc = ""
icon_state = "cow"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/fantail
name = "avian fantail, colorable"
desc = ""
icon_state = "fantail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/wagtail
name = "avian wagtail, colorable"
desc = ""
icon_state = "wagtail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/nevreandc
@@ -237,7 +237,7 @@
desc = ""
icon_state = "nevreantail_dc"
extra_overlay = "nevreantail_dc_tail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/nevreanwagdc
@@ -245,7 +245,7 @@
desc = ""
icon_state = "wagtail"
extra_overlay = "wagtail_dc_tail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/nevreanwagdc_alt
@@ -253,7 +253,7 @@
desc = ""
icon_state = "wagtail2_dc"
extra_overlay = "wagtail2_dc_mark"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/crossfox
@@ -270,7 +270,7 @@
name = "spade-tail (colorable)"
desc = ""
icon_state = "spadetail-black"
- do_colouration = 1
+ do_colouration = TRUE
/datum/sprite_accessory/tail/snag
name = "xenomorph tail 1"
@@ -286,7 +286,7 @@
name = "EGN mech tail (dual color)"
desc = ""
icon_state = "eboop"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "eboop_mark"
@@ -311,7 +311,7 @@
name = "ringtail, colorable"
desc = ""
icon_state = "ringtail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "ringtail_mark"
@@ -320,7 +320,7 @@
desc = ""
icon_state = "raccoon"
ani_state = "raccoon_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "raccoon-stripes"
extra_overlay_w = "raccoon-stripes_w"
@@ -330,7 +330,7 @@
desc = ""
icon_state = "wah"
ani_state = "wah_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "wah-stripes"
extra_overlay_w = "wah-stripes_w"
@@ -340,9 +340,9 @@
desc = ""
icon_state = "satyr"
color_blend_mode = ICON_MULTIPLY
- do_colouration = 1
+ do_colouration = TRUE
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/human_races/sprite_accessories/taurs.dmi'
+ clip_mask_icon = 'icons/mob/human_races/sprite_accessories/biglegs.dmi'
clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms.
/datum/sprite_accessory/tail/tailmaw
@@ -350,14 +350,14 @@
desc = ""
icon_state = "tailmaw"
color_blend_mode = ICON_MULTIPLY
- do_colouration = 1
+ do_colouration = TRUE
/datum/sprite_accessory/tail/curltail
name = "curltail (vwag)"
desc = ""
icon_state = "curltail"
ani_state = "curltail_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "curltail_mark"
extra_overlay_w = "curltail_mark_w"
@@ -367,7 +367,7 @@
desc = ""
icon_state = "straighttail"
ani_state = "straighttail_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/sneptail
@@ -375,7 +375,7 @@
desc = ""
icon_state = "sneptail"
ani_state = "sneptail_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "sneptail_mark"
extra_overlay_w = "sneptail_mark_w"
@@ -385,7 +385,7 @@
desc = ""
icon_state = "sneptail_new"
ani_state = "sneptail_new_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "sneptail_new_mark"
extra_overlay_w = "sneptail_new_mark_w"
@@ -395,7 +395,7 @@
desc = ""
icon_state = "tigertail"
ani_state = "tigertail_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "tigertail_mark"
extra_overlay_w = "tigertail_mark_w"
@@ -406,7 +406,7 @@
icon_state = "tigeralt"
extra_overlay = "tigeralt-tips"
extra_overlay2 = "tigeralt-tips2"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
ani_state = "tigeralt_w"
extra_overlay_w = "tigeralt-tips_w"
@@ -418,7 +418,7 @@
icon_state = "twotiger"
extra_overlay = "twotiger-tips"
extra_overlay2 = "twotiger-tips2"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
ani_state = "twotiger_w"
extra_overlay_w = "twotiger-tips_w"
@@ -429,7 +429,7 @@
desc = ""
icon_state = "twocat"
ani_state = "twocat_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/threecat
@@ -437,7 +437,7 @@
desc = ""
icon_state = "threecat"
ani_state = "threecat_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/vulp_new
@@ -445,7 +445,7 @@
desc = ""
icon_state = "vulptail"
ani_state = "vulptail_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "vulptail_mark"
extra_overlay_w = "vulptail_mark_w"
@@ -455,7 +455,7 @@
desc = ""
icon_state = "otie"
ani_state = "otie_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/newtailmaw
@@ -463,21 +463,21 @@
desc = ""
icon_state = "newtailmaw"
ani_state = "newtailmaw_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/ztail
name = "jagged flufftail"
desc = ""
icon_state = "ztail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/snaketail
name = "snake tail, colorable"
desc = ""
icon_state = "snaketail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/bigsnaketail
@@ -532,14 +532,14 @@
name = "vulpkanin alt style, colorable"
desc = ""
icon_state = "vulptail_alt"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/sergaltaildc
name = "sergal, dual-color"
desc = ""
icon_state = "sergal"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "sergal_mark"
@@ -547,7 +547,7 @@
name = "skunk, dual-color"
desc = ""
icon_state = "skunktail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "skunktail_mark"
@@ -555,7 +555,7 @@
name = "deer, dual-color"
desc = ""
icon_state = "deertail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "deertail_mark"
@@ -564,14 +564,14 @@
desc = ""
icon_state = "deeralt"
ani_state = "deeralt_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/tesh_feathered
name = "Teshari tail"
desc = ""
icon_state = "teshtail_s"
- do_colouration = 1
+ do_colouration = TRUE
extra_overlay = "teshtail_feathers_s"
color_blend_mode = ICON_MULTIPLY
@@ -579,7 +579,7 @@
name = "Teshari alternative, colorable"
desc = ""
icon_state = "teshari_fluffytail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "teshari_fluffytail_mark"
@@ -587,7 +587,7 @@
name = "Teshari male tail pattern"
desc = ""
icon_state = "teshtail_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "teshpattern_male_tail"
@@ -595,7 +595,7 @@
name = "Teshari male tail alt. pattern"
desc = ""
icon_state = "teshtail_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "teshpattern_male_alt"
@@ -603,7 +603,7 @@
name = "Teshari female tail pattern"
desc = ""
icon_state = "teshtail_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "teshpattern_fem_tail"
@@ -611,7 +611,7 @@
name = "Teshari fem tail alt. pattern"
desc = ""
icon_state = "teshtail_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "teshpattern_fem_alt"
@@ -619,7 +619,7 @@
name = "Nightstalker, colorable"
desc = ""
icon_state = "nightstalker"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
//For all species tails. Includes haircolored tails.
@@ -631,35 +631,35 @@
name = "unathi tail"
desc = ""
icon_state = "sogtail_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/special/tajaran
name = "tajaran tail"
desc = ""
icon_state = "tajtail_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/special/sergal
name = "sergal tail"
desc = ""
icon_state = "sergtail_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/special/akula
name = "akula tail"
desc = ""
icon_state = "sharktail_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/special/nevrean
name = "nevrean tail"
desc = ""
icon_state = "nevreantail_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/special/armalis
@@ -696,7 +696,7 @@
name = "teshari tail"
desc = ""
icon_state = "seromitail_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/special/tesharitailfeathered
@@ -704,42 +704,42 @@
desc = ""
icon_state = "seromitail_s"
extra_overlay = "seromitail_feathers_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/special/unathihc
name = "unathi tail, colorable"
desc = ""
icon_state = "sogtail_hc_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/special/tajaranhc
name = "tajaran tail, colorable"
desc = ""
icon_state = "tajtail_hc_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/special/sergalhc
name = "sergal tail, colorable"
desc = ""
icon_state = "sergtail_hc_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/special/akulahc
name = "akula tail, colorable"
desc = ""
icon_state = "sharktail_hc_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/special/nevreanhc
name = "nevrean tail, colorable"
desc = ""
icon_state = "nevreantail_hc_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/special/foxdefault
@@ -747,78 +747,78 @@
desc = ""
icon = "icons/mob/human_races/r_fox_vr.dmi"
icon_state = "tail_s"
- do_colouration = 1
+ do_colouration = TRUE
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
+ do_colouration = TRUE
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
+ do_colouration = TRUE
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
+ do_colouration = TRUE
/datum/sprite_accessory/tail/special/xenodronehc
name = "xenomorph drone tail, colorable"
desc = ""
icon_state = "xenos_drone_tail_hc_s"
- do_colouration = 1
+ do_colouration = TRUE
/datum/sprite_accessory/tail/special/xenosentinelhc
name = "xenomorph sentinel tail, colorable"
desc = ""
icon_state = "xenos_sentinel_tail_hc_s"
- do_colouration = 1
+ do_colouration = TRUE
/datum/sprite_accessory/tail/special/xenohunterhc
name = "xenomorph hunter tail, colorable"
desc = ""
icon_state = "xenos_hunter_tail_hc_s"
- do_colouration = 1
+ do_colouration = TRUE
/datum/sprite_accessory/tail/special/xenoqueenhc
name = "xenomorph queen tail, colorable"
desc = ""
icon_state = "xenos_queen_tail_hc_s"
- do_colouration = 1
+ do_colouration = TRUE
/datum/sprite_accessory/tail/special/monkeyhc
name = "monkey tail, colorable"
desc = ""
icon_state = "chimptail_hc_s"
- do_colouration = 1
+ do_colouration = TRUE
/datum/sprite_accessory/tail/special/tesharitailhc
name = "teshari tail, colorable"
desc = ""
icon_state = "seromitail_hc_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/special/tesharitailfeatheredhc
name = "teshari tail w/ feathers, colorable"
desc = ""
icon_state = "seromitail_feathers_hc_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/special/vulpan
name = "vulpkanin, colorable"
desc = ""
icon_state = "vulptail_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/zenghu_taj
@@ -834,14 +834,14 @@
name = "Bug abdomen, colorable"
desc = ""
icon_state = "buggo_s"
- do_colouration = 1
+ do_colouration = TRUE
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
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggobee_markings"
@@ -849,7 +849,7 @@
name = "Bug abdomen, bee full, dual-colorable"
desc = ""
icon_state = "buggo_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggobeefull_markings"
@@ -857,7 +857,7 @@
name = "Bug abdomen, underside, dual-colorable"
desc = ""
icon_state = "buggo_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggounder_markings"
@@ -865,7 +865,7 @@
name = "Bug abdomen, firefly, dual-colorable"
desc = ""
icon_state = "buggo_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggofirefly_markings"
@@ -873,14 +873,14 @@
name = "Fat bug abdomen, colorable"
desc = ""
icon_state = "buggofat_s"
- do_colouration = 1
+ do_colouration = TRUE
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
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggofatbee_markings"
@@ -888,7 +888,7 @@
name = "Fat bug abdomen, bee full, dual-colorable"
desc = ""
icon_state = "buggofat_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggofatbeefull_markings"
@@ -896,7 +896,7 @@
name = "Fat bug abdomen, underside, dual-colorable"
desc = ""
icon_state = "buggofat_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggofatunder_markings"
@@ -904,7 +904,7 @@
name = "Fat bug abdomen, firefly, dual-colorable"
desc = ""
icon_state = "buggofat_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggofatfirefly_markings"
@@ -913,7 +913,7 @@
desc = ""
icon_state = "buggo_s"
ani_state = "buggofat_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/buggobeewag
@@ -921,7 +921,7 @@
desc = ""
icon_state = "buggo_s"
ani_state = "buggofat_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggobee_markings"
extra_overlay_w = "buggofatbee_markings"
@@ -931,7 +931,7 @@
desc = ""
icon_state = "buggo_s"
ani_state = "buggofat_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggobeefull_markings"
extra_overlay_w = "buggofatbeefull_markings"
@@ -941,7 +941,7 @@
desc = ""
icon_state = "buggo_s"
ani_state = "buggofat_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggounder_markings"
extra_overlay_w = "buggofatunder_markings"
@@ -951,7 +951,7 @@
desc = ""
icon_state = "buggo_s"
ani_state = "buggofat_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggofirefly_markings"
extra_overlay_w = "buggofatfirefly_markings"
@@ -962,14 +962,14 @@
name = "Bug abdomen, vass, colorable"
desc = ""
icon_state = "buggo_vass_s"
- do_colouration = 1
+ do_colouration = TRUE
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
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggobee_vass_markings"
@@ -977,7 +977,7 @@
name = "Bug abdomen, bee full, dc, vass"
desc = ""
icon_state = "buggo_vass_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggobeefull_vass_markings"
@@ -985,7 +985,7 @@
name = "Bug abdomen, underside, dc, vass"
desc = ""
icon_state = "buggo_vass_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggounder_vass_markings"
@@ -993,7 +993,7 @@
name = "Bug abdomen, firefly, dc, vass"
desc = ""
icon_state = "buggo_vass_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggofirefly_vass_markings"
@@ -1001,14 +1001,14 @@
name = "Fat bug abdomen, vass, colorable"
desc = ""
icon_state = "buggofat_vass_s"
- do_colouration = 1
+ do_colouration = TRUE
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
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggofatbee_vass_markings"
@@ -1016,7 +1016,7 @@
name = "Fat bug abdomen, bee full, dc, vass"
desc = ""
icon_state = "buggofat_vass_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggofatbeefull_vass_markings"
@@ -1024,7 +1024,7 @@
name = "Fat bug abdomen, underside, dc, vass"
desc = ""
icon_state = "buggofat_vass_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggofatunder_vass_markings"
@@ -1032,7 +1032,7 @@
name = "Fat bug abdomen, firefly, dc, vass"
desc = ""
icon_state = "buggofat_vass_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggofatfirefly_vass_markings"
@@ -1041,7 +1041,7 @@
desc = ""
icon_state = "buggo_vass_s"
ani_state = "buggofat_vass_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/buggovassbeewag
@@ -1049,7 +1049,7 @@
desc = ""
icon_state = "buggo_vass_s"
ani_state = "buggofat_vass_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggobee_vass_markings"
extra_overlay_w = "buggofatbee_vass_markings"
@@ -1059,7 +1059,7 @@
desc = ""
icon_state = "buggo_vass_s"
ani_state = "buggofat_vass_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggobeefull_vass_markings"
extra_overlay_w = "buggofatbeefull_vass_markings"
@@ -1069,7 +1069,7 @@
desc = ""
icon_state = "buggo_vass_s"
ani_state = "buggofat_vass_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggounder_vass_markings"
extra_overlay_w = "buggofatunder_vass_markings"
@@ -1079,7 +1079,7 @@
desc = ""
icon_state = "buggo_vass_s"
ani_state = "buggofat_vass_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "buggofirefly_vass_markings"
extra_overlay_w = "buggofatfirefly_vass_markings"
@@ -1089,14 +1089,14 @@
desc = ""
icon_state = "tail_smooth"
ani_state = "tail_smooth_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/tail_smooth_dual
name = "Smooth Lizard Tail, dual color"
desc = ""
icon_state = "tail_smooth"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "tail_smooth_markings"
@@ -1104,21 +1104,21 @@
name = "Fennec tail"
desc = ""
icon_state = "fennec_tail_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/fox_tail
name = "Fox tail, colorable"
desc = ""
icon_state = "fox_tail_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/fox_tail_plain
name = "Fox tail, colorable, plain"
desc = ""
icon_state = "fox_tail_plain_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/foxtail
@@ -1135,14 +1135,14 @@
name = "Kitsune 2 tails, colorable"
desc = ""
icon_state = "doublekitsune"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/doublekitsunealt
name = "Kitsune 2 tails, colorable, alt"
desc = ""
icon_state = "doublekitsunealt"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "doublekitsunealt-tips"
@@ -1150,7 +1150,7 @@
name = "Kitsune 3 tails, colorable"
desc = ""
icon_state = "triplekitsune"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "triplekitsune_tips"
@@ -1159,14 +1159,14 @@
desc = ""
icon_state = "sevenkitsune"
extra_overlay = "sevenkitsune-tips"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/ninekitsune_colorable
name = "Kitsune 9 tails, colorable"
desc = ""
icon_state = "ninekitsune"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "ninekitsune-tips"
@@ -1184,7 +1184,7 @@
name = "Shadekin Short Tail, colorable"
desc = ""
icon_state = "shadekin-short"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
//species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
@@ -1192,14 +1192,14 @@
name = "Ward-Takahashi Tail"
desc = ""
icon_state = "wardtakahashi_vulp"
- do_colouration = 1
+ do_colouration = TRUE
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
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "wardtakahashi_vulp_dc_mark"
@@ -1210,14 +1210,14 @@
icon_state = "zorgoia"
extra_overlay = "zorgoia_fluff"
extra_overlay2 = "zorgoia_fluff_top"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/Easterntail
name = "Eastern Dragon (Animated)"
desc = ""
icon_state = "Easterntail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "EasterntailColorTip"
ani_state = "Easterntail_w"
@@ -1227,7 +1227,7 @@
name = "Synthetic lizard tail"
desc = ""
icon_state = "synthtail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/synthtail_vwag
@@ -1235,14 +1235,14 @@
desc = ""
icon_state = "synthtail"
ani_state = "synthtail_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/Plugtail
name = "Synthetic plug tail"
desc = ""
icon_state = "Plugtail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "PlugtailMarking"
extra_overlay2 = "PlugtailMarking2"
@@ -1251,7 +1251,7 @@
name = "Segmented tail, animated"
desc = ""
icon_state = "Segmentedtail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "Segmentedtailmarking"
ani_state = "Segmentedtail_w"
@@ -1261,7 +1261,7 @@
name = "Segmented tail, animated synth"
desc = ""
icon_state = "Segmentedtail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "Segmentedlights"
ani_state = "Segmentedtail_w"
@@ -1271,42 +1271,42 @@
name = "Lizard Tail (Smooth)"
desc = ""
icon_state = "lizard_tail_smooth"
- do_colouration = 1
+ do_colouration = TRUE
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
+ do_colouration = TRUE
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
+ do_colouration = TRUE
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
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/xenotail_fullcolour
name = "xenomorph tail (fully colourable)"
desc = ""
icon_state = "xenotail_fullcolour"
- do_colouration = 1
+ do_colouration = TRUE
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
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/lleill
@@ -1314,7 +1314,7 @@
desc = ""
icon = 'icons/mob/species/lleill/tail.dmi'
icon_state = "tail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "tail_marking"
@@ -1331,7 +1331,7 @@
/datum/sprite_accessory/tail/altevian
name = "Altevian Tail"
icon_state = "altevian"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
lower_layer_dirs = list(SOUTH, WEST)
@@ -1340,7 +1340,7 @@
icon_state = "altevian_eyed"
extra_overlay = "altevian_eyed2"
extra_overlay2 = "altevian_eyed3"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
lower_layer_dirs = list(SOUTH, WEST)
@@ -1348,7 +1348,7 @@
name = "shark tail, finless (colorable)"
desc = ""
icon_state = "sharktail_finless"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/tentacle
@@ -1356,7 +1356,7 @@
desc = ""
icon_state = "tentacle"
ani_state = "tentacle_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/teshbeethorax
@@ -1368,14 +1368,14 @@
name = "Teshari bug abdomen, colorable"
desc = ""
icon_state = "teshbug_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/teshbuggobee
name = "Teshari bug abdomen, bee top, dual-colorable"
desc = ""
icon_state = "teshbug_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "teshbee_markings"
@@ -1383,7 +1383,7 @@
name = "Teshari bug abdomen, bee full, dual-colorable"
desc = ""
icon_state = "teshbug_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "teshbeefull_markings"
@@ -1391,7 +1391,7 @@
name = "Teshari bug abdomen, underside, dual-colorable"
desc = ""
icon_state = "teshbug_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "teshunder_markings"
@@ -1399,7 +1399,7 @@
name = "Teshari bug abdomen, firefly, dual-colorable"
desc = ""
icon_state = "teshbug_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "teshfirefly_markings"
@@ -1407,14 +1407,14 @@
name = "Teshari fat bug abdomen, colorable"
desc = ""
icon_state = "teshbugfat_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/fatteshbuggobee
name = "Teshari fat bug abdomen, bee top, dual-colorable"
desc = ""
icon_state = "teshbugfat_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "teshfatbee_markings"
@@ -1422,7 +1422,7 @@
name = "Teshari fat bug abdomen, bee full, dual-colorable"
desc = ""
icon_state = "teshbugfat_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "teshfatbeefull_markings"
@@ -1430,7 +1430,7 @@
name = "Teshari fat bug abdomen, underside, dual-colorable"
desc = ""
icon_state = "teshbugfat_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "teshfatunder_markings"
@@ -1438,7 +1438,7 @@
name = "Teshari fat bug abdomen, firefly, dual-colorable"
desc = ""
icon_state = "teshbugfat_s"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "teshfatfirefly_markings"
@@ -1447,23 +1447,23 @@
desc = ""
icon_state = "synth_stilts"
color_blend_mode = ICON_MULTIPLY
- do_colouration = 1
+ do_colouration = TRUE
extra_overlay = "synth_stilts_marking"
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/human_races/sprite_accessories/taurs.dmi'
+ clip_mask_icon = 'icons/mob/human_races/sprite_accessories/biglegs.dmi'
clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms.
/datum/sprite_accessory/tail/blade_like_tail
name = "Blade-like Tail"
icon_state = "blade-like-tail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/sectdrone_tail
name = "Sect Drone Tail (To use with bodytype-marking)"
icon_state = "sectdrone_tail"
extra_overlay = "sectdrone_tail_mark"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/satyrtail
@@ -1471,9 +1471,9 @@
desc = ""
icon_state = "satyr"
color_blend_mode = ICON_MULTIPLY
- do_colouration = 1
+ do_colouration = TRUE
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/human_races/sprite_accessories/taurs.dmi'
+ clip_mask_icon = 'icons/mob/human_races/sprite_accessories/biglegs.dmi'
clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms.
extra_overlay = "horse" //I can't believe this works.
@@ -1486,7 +1486,7 @@
name = "akula tail, colorable, tail and fins"
desc = ""
icon_state = "sharktail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "sharktail_markings"
@@ -1494,7 +1494,7 @@
name = "akula tail, colorable, stripe"
desc = ""
icon_state = "sharktail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "sharktail_stripemarkings"
@@ -1502,7 +1502,7 @@
name = "akula tail, colorable, tips"
desc = ""
icon_state = "sharktail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "sharktail_tipmarkings"
@@ -1510,14 +1510,14 @@
name = "feathered narrow tail, colorable"
desc = ""
icon_state = "narrowtail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/narrow_tail2
name = "feathered narrow tail, 2 colors"
desc = ""
icon_state = "narrowtail_2color"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "narrowtail_2color-1"
@@ -1525,7 +1525,7 @@
name = "Demi-Teshari tail"
desc = ""
icon_state = "demi-tesh-kit-tail"
- do_colouration = 1
+ do_colouration = TRUE
extra_overlay = "demi-tesh-kit-tail_floof"
color_blend_mode = ICON_MULTIPLY
@@ -1535,7 +1535,7 @@
name = "dino clubtail, colorable"
desc = ""
icon_state = "clubtail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "clubtail-1"
@@ -1543,7 +1543,7 @@
name = "dino spiketail, colorable"
desc = ""
icon_state = "spiketail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "spiketail-1"
@@ -1555,9 +1555,9 @@
//LONG TAILS ARE NOT TAUR BUTTS >:O
/datum/sprite_accessory/tail/longtail
name = DEVELOPER_WARNING_NAME
- icon = 'icons/mob/human_races/sprite_accessories/taurs.dmi'
+ icon = 'icons/mob/human_races/sprite_accessories/tails_long.dmi'
offset_x = -16
- do_colouration = 1 // Yes color, using tail color
+ do_colouration = TRUE // Yes color, using tail color
color_blend_mode = ICON_MULTIPLY // The sprites for taurs are designed for ICON_MULTIPLY
/datum/sprite_accessory/tail/longtail/shadekin_tail
@@ -1582,10 +1582,9 @@
/datum/sprite_accessory/tail/longtail/zaprat
name = "bolt-shaped tail, dual color"
- icon = 'icons/mob/human_races/sprite_accessories/taurs.dmi'
icon_state = "zaprat_s"
extra_overlay = "zaprat_markings"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/longtail/zaprat/heart
@@ -1597,7 +1596,7 @@
name = "Kaiju tail A, dual color"
icon_state = "kaiju_long_a"
extra_overlay = "kaiju_long_a_spikes"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/longtail/kaiju_tail_a_long_glow
@@ -1605,7 +1604,7 @@
icon_state = "kaiju_long_a"
extra_overlay = "kaiju_long_a_spikes"
extra_overlay2 = "kaiju_long_a_spikes_glow"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/longtail/longflufftail
@@ -1615,7 +1614,7 @@
/datum/sprite_accessory/tail/longtail/ringtailbig
name = "Long ring tail"
icon_state = "bigringtail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "bigringtail_markings"
@@ -1623,7 +1622,7 @@
name = "Desert Nightstalker Tail (vwag)"
icon_state = "nightstalker_desert"
ani_state = "nightstalker_desert_w"
- do_colouration = 0 // We're not coloring this, these are pre-colored
+ do_colouration = FALSE // We're not coloring this, these are pre-colored
color_blend_mode = ICON_ADD
/datum/sprite_accessory/tail/longtail/diamondback_nightstalker
@@ -1685,7 +1684,7 @@
/datum/sprite_accessory/tail/longtail/qaavos
name = "Qaavos Tail"
icon_state = "qaavos_tail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/longtail/anteater
@@ -1714,39 +1713,58 @@
icon_state = "bigsnaketailbrush"
extra_overlay = "bigsnaketailclaw_claw"
+/datum/sprite_accessory/tail/longtail/scug // Wawa
+ name = "Catslug Tail"
+ icon_state = "scug"
+
+/datum/sprite_accessory/tail/longtail/scug/dots
+ name = "Catslug Tail Dotted"
+ extra_overlay = "scug_markings"
+
+/datum/sprite_accessory/tail/taur/long_lizard
+ name = "Large Dragon Tail"
+ icon_state = "big_liz"
+ can_ride = FALSE
+ hide_body_parts = null
+ clip_mask_icon = null
+ clip_mask_state = null
+
+/datum/sprite_accessory/tail/taur/long_lizard/scaled
+ name = "Large Dragon Tail/W scales"
+ extra_overlay = "big_liz_mark"
/datum/sprite_accessory/tail/small_bugbum
name = "Bug Abdomen, Alt, Small (Dual-Color)"
icon_state = "smallbug1"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "smallbug2"
/datum/sprite_accessory/tail/mid_bugbum
name = "Bug Abdomen, Alt, Medium (Dual-Color)"
icon_state = "midbug1"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "midbug2"
/datum/sprite_accessory/tail/big_bugbum
name = "Bug Abdomen, Alt, Big (Dual-Color)"
icon_state = "bigbug1"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "bigbug2"
/datum/sprite_accessory/tail/succubustail
name = "Succubus Tail"
icon_state = "Succubustail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/snaketail_stripes
name = "snake tail with stripes, dual-color"
desc = ""
icon_state = "snaketail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "snaketail_stripes"
@@ -1756,7 +1774,7 @@
ani_state = "leopard_w"
extra_overlay = "leopard_spots"
extra_overlay_w = "leopard_spots_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/vale_tail
@@ -1764,7 +1782,7 @@
desc = ""
icon_state = "valetail"
ani_state = "valetail_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "valetail_mark"
extra_overlay_w = "valetail_mark_w"
@@ -1772,33 +1790,33 @@
/datum/sprite_accessory/tail/orca_f
name = "Orca tail (Female)"
icon_state = "orca_tail_f"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "orca_tail_markings"
/datum/sprite_accessory/tail/anthrovirus_tail
name = "Anthro Virus Tail"
icon_state = "anthrovirustail_mark"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "anthrovirustail"
/datum/sprite_accessory/tail/tyranid_tail
name = "Tyranid"
icon_state = "tyranid"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/bigsnaketeshari
name = "Large snake tail, Teshari"
icon_state = "snaketailteshari"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/featheredraptor
name = "feathered Raptor"
icon_state = "feathered_raptor"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/featheredraptor/twotone
@@ -1809,14 +1827,14 @@
name = "Wolf Tail"
desc = ""
icon_state = "wolf_tail"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/vulpkanin_alt_color
name = "Vulpkanin alt"
desc = ""
icon_state = "vulpkanin_alt_color"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "vulpkanin_alt_color_tips"
ani_state = "vulpkanin_alt_color_w"
@@ -1826,14 +1844,14 @@
name = "Raccoon gray tail"
desc = ""
icon_state = "raccoon_tail"
- do_colouration = 0
+ do_colouration = FALSE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/striped_tail
name = "Striped tail, colorable"
desc = ""
icon_state = "stripedtail_colorable"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "stripedtail_colorable_w"
@@ -1853,7 +1871,7 @@
icon = 'icons/mob/human_races/sprite_accessories/tails.dmi'
icon_state = "peacocktail"
ani_state = "peacocktail_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
ckeys_allowed = list("prettiebyrd")
@@ -1915,7 +1933,7 @@
name = "pentatail kitsune tails (Rosey)" //I predict seven tails next. ~CK
desc = ""
icon_state = "rosey_five"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
ckeys_allowed = list("joey4298")
@@ -1954,14 +1972,14 @@
desc = ""
icon_state = "xenotail_fullcolouralt"
ani_state = "xenotail_fullcolouralt_w"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/tail/chu
name = "chu tail"
desc = ""
icon_state = "chu"
- do_colouration = 1
+ do_colouration = TRUE
color_blend_mode = ICON_MULTIPLY
extra_overlay = "chu_markings"
extra_overlay2 = "chu_tipmarkings"
diff --git a/code/modules/mob/new_player/sprite_accessories_taur.dm b/code/modules/mob/new_player/sprite_accessories_taur.dm
deleted file mode 100644
index a792c509433..00000000000
--- a/code/modules/mob/new_player/sprite_accessories_taur.dm
+++ /dev/null
@@ -1,1463 +0,0 @@
-/datum/sprite_accessory/tail/taur
- name = DEVELOPER_WARNING_NAME
- icon = 'icons/mob/human_races/sprite_accessories/taurs.dmi'
- do_colouration = 1 // Yes color, using tail color
- color_blend_mode = ICON_MULTIPLY // The sprites for taurs are designed for ICON_MULTIPLY
-
- var/can_ride = TRUE //whether we're real rideable taur or just in that category
- offset_x = -16
- em_block = TRUE
-
- var/icon/suit_sprites = null //File for suit sprites, if any.
- var/icon/under_sprites = null
-
- var/icon_sprite_tag // This is where we put stuff like _Horse, so we can assign icons easier.
-
- //Could do nested lists but it started becoming a nightmare. It'd be more fun for lookups of a_intent and m_intent, but then subtypes need to
- //duplicate all the messages, and it starts getting awkward. These are singletons, anyway!
-
- //Messages to owner when stepping on/over
- var/msg_owner_help_walk = "You carefully step over %prey."
- var/msg_owner_help_run = "You carefully step over %prey."
- var/msg_owner_harm_walk = "You methodically place your foot down upon %prey's body, slowly applying pressure, crushing them against the floor below!"
- var/msg_owner_harm_run = "You carelessly step down onto %prey, crushing them!"
- var/msg_owner_disarm_walk = "You firmly push your foot down on %prey, painfully but harmlessly pinning them to the ground!"
- var/msg_owner_disarm_run = "You quickly push %prey to the ground with your foot!"
- var/msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
- var/msg_owner_grab_success = "You pin %prey down onto the floor with your foot and curl your toes up around their body, trapping them inbetween them!"
-
- //Messages to prey when stepping on/over
- var/msg_prey_help_walk = "%owner steps over you carefully!"
- var/msg_prey_help_run = "%owner steps over you carefully!"
- var/msg_prey_harm_walk = "%owner methodically places their foot upon your body, slowly applying pressure, crushing you against the floor below!"
- var/msg_prey_harm_run = "%owner steps carelessly on your body, crushing you!"
- var/msg_prey_disarm_walk = "%owner firmly pushes their foot down on you, quite painfully but harmlessly pinning you to the ground!"
- var/msg_prey_disarm_run = "%owner pushes you down to the ground with their foot!"
- var/msg_prey_grab_fail = "%owner steps down and squishes you with their foot, forcing you down to the ground!"
- var/msg_prey_grab_success = "%owner pins you down to the floor with their foot and curls their toes up around your body, trapping you inbetween them!"
-
- //Messages for smalls moving under larges
- var/msg_owner_stepunder = "%owner runs between your legs." //Weird becuase in the case this is used, %owner is the 'bumper' (src)
- var/msg_prey_stepunder = "You run between %prey's legs." //Same, inverse
- hide_body_parts = list(BP_L_LEG, BP_L_FOOT, BP_R_LEG, BP_R_FOOT) //Exclude pelvis just in case.
- icon = 'icons/mob/human_races/sprite_accessories/taurs.dmi'
- clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms.
-
-/datum/riding/taur
- keytype = /obj/item/material/twohanded/riding_crop // Crack!
- nonhuman_key_exemption = FALSE // If true, nonhumans who can't hold keys don't need them, like borgs and simplemobs.
- key_name = "a riding crop" // What the 'keys' for the thing being rided on would be called.
- only_one_driver = TRUE // If true, only the person in 'front' (first on list of riding mobs) can drive.
-
-/datum/riding/taur/handle_vehicle_layer()
- if(ridden.has_buckled_mobs())
- ridden.layer = initial(ridden.layer)
- else
- var/mob/living/L = ridden
- if(!(istype(L) && (L.status_flags & HIDING)))
- ridden.layer = initial(ridden.layer)
-
-/datum/riding/taur/ride_check(mob/living/M)
- var/mob/living/L = ridden
- if(L.stat)
- force_dismount(M)
- return FALSE
- return TRUE
-
-/datum/riding/taur/force_dismount(mob/M)
- . = ..()
- ridden.visible_message(span_notice("[M] stops riding [ridden]!"))
-
-//Hoooo boy.
-/datum/riding/taur/get_offsets(pass_index) // list(dir = x, y, layer)
- var/mob/living/L = ridden
- var/scale_x = L.icon_scale_x * L.size_multiplier //VOREStation Edit Start
- var/scale_y = L.icon_scale_y * L.size_multiplier
- var/scale_difference = (L.size_multiplier - rider_size) * 10
-
- var/list/values = list(
- "[NORTH]" = list(0, 8*scale_y + scale_difference, ABOVE_MOB_LAYER),
- "[SOUTH]" = list(0, 8*scale_y + scale_difference, BELOW_MOB_LAYER),
- "[EAST]" = list(-10*scale_x, 8*scale_y + scale_difference, ABOVE_MOB_LAYER),
- "[WEST]" = list(10*scale_x, 8*scale_y + scale_difference, ABOVE_MOB_LAYER)) //VOREStation Edit End
-
- return values
-
-//Human overrides for taur riding
-/mob/living/carbon/human
- max_buckled_mobs = 1 //Yeehaw
- can_buckle = TRUE
- buckle_movable = TRUE
- buckle_lying = FALSE
-
-/mob/living/carbon/human/buckle_mob(mob/living/M, forced = FALSE, check_loc = TRUE)
- if(forced)
- return ..() // Skip our checks
- if(is_incorporeal(src) || is_incorporeal(M))
- return FALSE
- if(!istaurtail(tail_style))
- return FALSE
- else
- var/datum/sprite_accessory/tail/taur/taurtype = tail_style
- if(!taurtype.can_ride)
- return FALSE
- if(lying)
- return FALSE
- if(!ishuman(M))
- return FALSE
- if(M in buckled_mobs)
- return FALSE
-// if(M.size_multiplier > size_multiplier * 1.2)
-// to_chat(M,span_warning("This isn't a pony show! You need to be bigger for them to ride."))
-// return FALSE
- if(M.loc != src.loc)
- if(M.Adjacent(src))
- M.forceMove(get_turf(src))
-
- var/mob/living/carbon/human/H = M
-
- if(istaurtail(H.tail_style))
- to_chat(src,span_warning("Too many legs. TOO MANY LEGS!!"))
- return FALSE
-
- . = ..()
- if(.)
- riding_datum.rider_size = M.size_multiplier
- buckled_mobs[M] = "riding"
-
-/mob/living/carbon/human/MouseDrop_T(mob/living/M, mob/living/user) //Prevention for forced relocation caused by can_buckle. Base proc has no other use.
- return
-
-/mob/living/carbon/human/proc/taur_mount(mob/living/M in living_mobs(1))
- set name = "Taur Mount/Dismount"
- set category = "Abilities.General"
- set desc = "Let people ride on you."
-
- if(LAZYLEN(buckled_mobs) && riding_datum)
- var/datum/riding/R = riding_datum
- for(var/rider in buckled_mobs)
- R.force_dismount(rider)
- return
- if (stat != CONSCIOUS)
- return
- if(!can_buckle || !istype(M) || !M.Adjacent(src) || M.buckled)
- return
- if(buckle_mob(M))
- visible_message(span_notice("[M] starts riding [name]!"))
-
-/mob/living/carbon/human/attack_hand(mob/user as mob)
- if(LAZYLEN(buckled_mobs) && riding_datum)
- //We're getting off!
- if(user in buckled_mobs)
- riding_datum.force_dismount(user)
- //We're kicking everyone off!
- if(user == src)
- for(var/rider in buckled_mobs)
- riding_datum.force_dismount(rider)
- else
- . = ..()
-
-/*
-////////////////////////////
-/ =--------------------= /
-/ == Taur Definitions == /
-/ =--------------------= /
-////////////////////////////
-*/
-
-// Tails/taurhalves for everyone
-
-/datum/sprite_accessory/tail/taur/wolf
- name = "Wolf (Taur)"
- icon_state = "wolf_s"
- under_sprites = 'icons/mob/taursuits_wolf.dmi'
- suit_sprites = 'icons/mob/taursuits_wolf.dmi'
- icon_sprite_tag = "wolf"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 4
- vore_tail_sprite_variant = "N"
- fullness_icons = 3
- struggle_anim = TRUE
-
-/datum/sprite_accessory/tail/taur/fatwolf
- name = "Fat Wolf (Taur)"
- icon_state = "fatwolf_s"
- icon_sprite_tag = "wolf" //This could be modified later.
- loaf_offset = 3
-
-/datum/sprite_accessory/tail/taur/wolf/wolf_wag
- name = "Wolf (Taur, Fat vwag)"
- icon_state = "wolf_s"
- ani_state = "fatwolf_s"
-
-/datum/sprite_accessory/tail/taur/wolf/wolf_2c
- name = "Wolf 3-color (Taur)"
- icon_state = "wolf_s"
- extra_overlay = "wolf_markings"
- extra_overlay2 = "wolf_markings_2"
- //icon_sprite_tag = "wolf2c"
-
-/datum/sprite_accessory/tail/taur/wolf/fatwolf_2c
- name = "Fat Wolf 3-color (Taur)"
- icon_state = "fatwolf2_s"
- extra_overlay = "fatwolf2_markings"
- extra_overlay2 = "fatwolf2_markings_2"
- loaf_offset = 3
-
-/datum/sprite_accessory/tail/taur/wolf/wolf_2c_wag
- name = "Wolf 3-color (Taur, Fat vwag)"
- icon_state = "wolf2_s"
- extra_overlay = "wolf2_markings"
- extra_overlay2 = "wolf2_markings_2"
- extra_overlay_w = "fatwolf2_markings"
- extra_overlay2_w = "fatwolf2_markings_2"
- ani_state = "fatwolf2_s"
-
-/datum/sprite_accessory/tail/taur/wolf/synthwolf
- name = "SynthWolf dual-color (Taur)"
- icon_state = "synthwolf_s"
- extra_overlay = "synthwolf_markings"
- extra_overlay2 = "synthwolf_glow"
- //icon_sprite_tag = "synthwolf"
- loaf_offset = 3
-
-/datum/sprite_accessory/tail/taur/wolf/fatsynthwolf
- name = "Fat SynthWolf dual-color (Taur)"
- icon_state = "fatsynthwolf_s"
- extra_overlay = "fatsynthwolf_markings"
- extra_overlay2 = "fatsynthwolf_glow"
- loaf_offset = 3
-
-/datum/sprite_accessory/tail/taur/wolf/fatsynthwolf_wag
- name = "SynthWolf dual-color (Taur, Fat vwag)"
- icon_state = "synthwolf_s"
- extra_overlay = "synthwolf_markings"
- extra_overlay2 = "synthwolf_glow"
- ani_state = "fatsynthwolf_s"
- extra_overlay_w = "fatsynthwolf_markings"
- extra_overlay2_w = "fatsynthwolf_glow"
-
-/datum/sprite_accessory/tail/taur/skunk
- name = "Skunk (Taur)"
- icon_state = "skunk_s"
- extra_overlay = "skunk_markings"
- extra_overlay2 = "skunk_markings_2"
- icon_sprite_tag = "skunk"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 3
- vore_tail_sprite_variant = "Skunk" //Sadly there appears to be no sprites... For now!
- belly_variant_when_loaf = TRUE
- fullness_icons = 1
-
-/datum/sprite_accessory/tail/taur/naga
- name = "Naga (Taur)"
- icon_state = "naga_s"
- suit_sprites = 'icons/mob/taursuits_naga.dmi'
- //icon_sprite_tag = "naga"
- vore_tail_sprite_variant = "Naga"
- fullness_icons = 1
-
- msg_owner_help_walk = "You carefully slither around %prey."
- msg_prey_help_walk = "%owner's huge tail slithers past beside you!"
-
- msg_owner_help_run = "You carefully slither around %prey."
- msg_prey_help_run = "%owner's huge tail slithers past beside you!"
-
- msg_owner_disarm_run = "Your tail slides over %prey, pushing them down to the ground!"
- msg_prey_disarm_run = "%owner's tail slides over you, forcing you down to the ground!"
-
- msg_owner_disarm_walk = "You push down on %prey with your tail, pinning them down under you!"
- msg_prey_disarm_walk = "%owner pushes down on you with their tail, pinning you down below them!"
-
- msg_owner_harm_run = "Your heavy tail carelessly slides past %prey, crushing them!"
- msg_prey_harm_run = "%owner quickly goes over your body, carelessly crushing you with their heavy tail!"
-
- msg_owner_harm_walk = "Your heavy tail slowly and methodically slides down upon %prey, crushing against the floor below!"
- msg_prey_harm_walk = "%owner's thick, heavy tail slowly and methodically slides down upon your body, mercilessly crushing you into the floor below!"
-
- msg_owner_grab_success = "You slither over %prey with your large, thick tail, smushing them against the ground before coiling up around them, trapping them within the tight confines of your tail!"
- msg_prey_grab_success = "%owner slithers over you with their large, thick tail, smushing you against the ground before coiling up around you, trapping you within the tight confines of their tail!"
-
- msg_owner_grab_fail = "You squish %prey under your large, thick tail, forcing them onto the ground!"
- msg_prey_grab_fail = "%owner pins you under their large, thick tail, forcing you onto the ground!"
-
- msg_prey_stepunder = "You jump over %prey's thick tail."
- msg_owner_stepunder = "%owner bounds over your tail."
-
-/datum/sprite_accessory/tail/taur/naga/fat
- name = "Naga (Taur, Fat, dual color)"
- icon_state = "fatnaga_s"
- extra_overlay = "fatnaga_markings"
- suit_sprites = null
-
-/datum/sprite_accessory/tail/taur/naga/naga_2c
- name = "Naga dual-color (Taur)"
- icon_state = "naga_s"
- extra_overlay = "naga_markings"
- //icon_sprite_tag = "naga2c"
-
-/datum/sprite_accessory/tail/taur/naga/alt_2c
- name = "Naga alt style dual-color (Taur)"
- suit_sprites = 'icons/mob/taursuits_naga.dmi' //TODO: PORT CHOMPS NAGA_ALT AND MAKE THESE NAGA_ALT.
- icon_state = "altnaga_s"
- extra_overlay = "altnaga_markings"
- //icon_sprite_tag = "altnaga2c"
-
-/datum/sprite_accessory/tail/taur/naga/alt_3c
- name = "Naga alt style tri-color (Taur)"
- suit_sprites = 'icons/mob/taursuits_naga.dmi' //TODO: PORT CHOMPS NAGA_ALT AND MAKE THESE NAGA_ALT.
- icon_state = "altnaga_s"
- extra_overlay = "altnaga_markings"
- extra_overlay2 = "altnaga_stripes"
-
-/datum/sprite_accessory/tail/taur/naga/alt_3c_rattler
- name = "Naga alt style tri-color, rattler (Taur)"
- suit_sprites = 'icons/mob/taursuits_naga.dmi' //TODO: PORT CHOMPS NAGA_ALT AND MAKE THESE NAGA_ALT.
- icon_state = "altnaga_s"
- extra_overlay = "altnaga_markings"
- extra_overlay2 = "altnaga_rattler"
-
-/datum/sprite_accessory/tail/taur/naga/alt_3c_tailmaw
- name = "Naga alt style tri-color, tailmaw (Taur)"
- suit_sprites = 'icons/mob/taursuits_naga.dmi' //TODO: PORT CHOMPS NAGA_ALT AND MAKE THESE NAGA_ALT.
- icon_state = "altnagatailmaw_s"
- extra_overlay = "altnagatailmaw_markings"
- extra_overlay2 = "altnagatailmaw_eyes"
-
-/datum/sprite_accessory/tail/taur/horse
- name = "Horse (Taur)"
- icon_state = "horse_s"
- under_sprites = 'icons/mob/taursuits_horse.dmi'
- suit_sprites = 'icons/mob/taursuits_horse.dmi'
- icon_sprite_tag = "horse"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 4
- vore_tail_sprite_variant = "Horse"
- fullness_icons = 1
-
- msg_owner_disarm_run = "You quickly push %prey to the ground with your hoof!"
- msg_prey_disarm_run = "%owner pushes you down to the ground with their hoof!"
-
- msg_owner_disarm_walk = "You firmly push your hoof down on %prey, painfully but harmlessly pinning them to the ground!"
- msg_prey_disarm_walk = "%owner firmly pushes their hoof down on you, quite painfully but harmlessly pinning you to the ground!"
-
- msg_owner_harm_walk = "You methodically place your hoof down upon %prey's body, slowly applying pressure, crushing them against the floor below!"
- msg_prey_harm_walk = "%owner methodically places their hoof upon your body, slowly applying pressure, crushing you against the floor below!"
-
- msg_owner_grab_success = "You pin %prey to the ground before scooping them up with your hooves!"
- msg_prey_grab_success = "%owner pins you to the ground before scooping you up with their hooves!"
-
- msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
- msg_prey_grab_fail = "%owner steps down and squishes you with their hoof, forcing you down to the ground!"
-
-/datum/sprite_accessory/tail/taur/horse/horse_2c
- name = "Horse & colorable tail (Taur)"
- extra_overlay = "horse_markings"
- //icon_sprite_tag = "wolf2c"
-
-/datum/sprite_accessory/tail/taur/horse/synthhorse
- name = "SynthHorse dual-color (Taur)"
- icon_state = "synthhorse_s"
- extra_overlay = "synthhorse_markings"
- extra_overlay2 = "synthhorse_glow"
- //icon_sprite_tag = "synthhorse"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 3
-
-/datum/sprite_accessory/tail/taur/cow
- name = "Cow (Taur)"
- icon_state = "cow_s"
- suit_sprites = 'icons/mob/taursuits_cow.dmi'
- icon_sprite_tag = "cow"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 3
- vore_tail_sprite_variant = "Cow"
- fullness_icons = 1
-
- msg_owner_disarm_run = "You quickly push %prey to the ground with your hoof!"
- msg_prey_disarm_run = "%owner pushes you down to the ground with their hoof!"
-
- msg_owner_disarm_walk = "You firmly push your hoof down on %prey, painfully but harmlessly pinning them to the ground!"
- msg_prey_disarm_walk = "%owner firmly pushes their hoof down on you, quite painfully but harmlessly pinning you to the ground!"
-
- msg_owner_harm_walk = "You methodically place your hoof down upon %prey's body, slowly applying pressure, crushing them against the floor below!"
- msg_prey_harm_walk = "%owner methodically places their hoof upon your body, slowly applying pressure, crushing you against the floor below!"
-
- msg_owner_grab_success = "You pin %prey to the ground before scooping them up with your hooves!"
- msg_prey_grab_success = "%owner pins you to the ground before scooping you up with their hooves!"
-
- msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
- msg_prey_grab_fail = "%owner steps down and squishes you with their hoof, forcing you down to the ground!"
-
-/datum/sprite_accessory/tail/taur/cow/fat
- name = "Fat Cow (Taur)"
- icon_state = "fatcow_s"
-
-/datum/sprite_accessory/tail/taur/cow/wag
- name = "Cow (Taur, Fat vwag)"
- icon_state = "cow_s"
- ani_state = "fatcow_s"
-
-/datum/sprite_accessory/tail/taur/deer
- name = "Deer dual-color (Taur)"
- icon_state = "deer_s"
- extra_overlay = "deer_markings"
- suit_sprites = 'icons/mob/taursuits_deer.dmi'
- icon_sprite_tag = "deer"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 7
- vore_tail_sprite_variant = "Deer"
- belly_variant_when_loaf = TRUE
- fullness_icons = 3
-
- msg_owner_disarm_run = "You quickly push %prey to the ground with your hoof!"
- msg_prey_disarm_run = "%owner pushes you down to the ground with their hoof!"
-
- msg_owner_disarm_walk = "You firmly push your hoof down on %prey, painfully but harmlessly pinning them to the ground!"
- msg_prey_disarm_walk = "%owner firmly pushes their hoof down on you, quite painfully but harmlessly pinning you to the ground!"
-
- msg_owner_harm_walk = "You methodically place your hoof down upon %prey's body, slowly applying pressure, crushing them against the floor below!"
- msg_prey_harm_walk = "%owner methodically places their hoof upon your body, slowly applying pressure, crushing you against the floor below!"
-
- msg_owner_grab_success = "You pin %prey to the ground before scooping them up with your hooves!"
- msg_prey_grab_success = "%owner pins you to the ground before scooping you up with their hooves!"
-
- msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
- msg_prey_grab_fail = "%owner steps down and squishes you with their hoof, forcing you down to the ground!"
-
-/datum/sprite_accessory/tail/taur/deer/fatdeer
- name = "Fat Deer (Dual-color Taur)"
- icon_state = "fatdeer_s"
- extra_overlay = "fatdeer_markings"
-
-/datum/sprite_accessory/tail/taur/deer/deer_wag
- name = "Deer vwag (Dual-color, Taur, Fat)"
- icon_state = "deer_s"
- ani_state = "fatdeer_s"
- extra_overlay_w = "fatdeer_markings"
-
-/datum/sprite_accessory/tail/taur/lizard
- name = "Lizard (Taur)"
- icon_state = "lizard_s"
- suit_sprites = 'icons/mob/taursuits_lizard_ch.dmi'
- icon_sprite_tag = "lizard"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 5
- vore_tail_sprite_variant = "Lizard"
- fullness_icons = 1
-
-/datum/sprite_accessory/tail/taur/lizard/fatlizard
- name = "Fat Lizard (Taur)"
- icon_state = "fatlizard_s"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 3
-
-/datum/sprite_accessory/tail/taur/lizard/lizard_wag
- name = "Lizard (Taur, Fat vwag)"
- icon_state = "lizard_s"
- ani_state = "fatlizard_s"
-
-/datum/sprite_accessory/tail/taur/lizard/lizard_2c
- name = "Lizard dual-color (Taur)"
- icon_state = "lizard_s"
- extra_overlay = "lizard_markings"
- //icon_sprite_tag = "lizard2c"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 5
-
-/datum/sprite_accessory/tail/taur/lizard/fatlizard_2c
- name = "Fat Lizard (Taur, dual-color)"
- icon_state = "fatlizard_s"
- extra_overlay = "fatlizard_markings"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 3
-
-/datum/sprite_accessory/tail/taur/lizard/lizard_2c_wag
- name = "Fat Lizard (Taur, dual-color, Fat vwag)"
- icon_state = "lizard_s"
- extra_overlay = "lizard_markings"
- ani_state = "fatlizard_s"
- extra_overlay_w = "fatlizard_markings"
-
-/datum/sprite_accessory/tail/taur/lizard/synthlizard
- name = "SynthLizard dual-color (Taur)"
- icon_state = "synthlizard_s"
- extra_overlay = "synthlizard_markings"
- extra_overlay2 = "synthlizard_glow"
- //icon_sprite_tag = "synthlizard"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 3
- vore_tail_sprite_variant = "SynthLiz"
- fullness_icons = 1
-
-/datum/sprite_accessory/tail/taur/lizard/fatsynthlizard
- name = "Fat SynthLizard dual-color (Taur)"
- icon_state = "fatsynthlizard_s"
- extra_overlay = "fatsynthlizard_markings"
- extra_overlay2 = "fatsynthlizard_glow"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 3
-
-/datum/sprite_accessory/tail/taur/lizard/synthlizard_wag
- name = "SynthLizard dual-color (Taur, Fat vwag)"
- icon_state = "synthlizard_s"
- extra_overlay = "synthlizard_markings"
- extra_overlay2 = "synthlizard_glow"
- ani_state = "fatsynthlizard_s"
- extra_overlay_w = "fatsynthlizard_markings"
- extra_overlay2_w = "fatsynthlizard_glow"
-
-/datum/sprite_accessory/tail/taur/spider
- name = "Spider (Taur)"
- icon_state = "spider_s"
- suit_sprites = 'icons/mob/taursuits_spider.dmi'
- icon_sprite_tag = "spider"
-
- msg_owner_disarm_run = "You quickly push %prey to the ground with your leg!"
- msg_prey_disarm_run = "%owner pushes you down to the ground with their leg!"
-
- msg_owner_disarm_walk = "You firmly push your leg down on %prey, painfully but harmlessly pinning them to the ground!"
- msg_prey_disarm_walk = "%owner firmly pushes their leg down on you, quite painfully but harmlessly pinning you to the ground!"
-
- msg_owner_harm_walk = "You methodically place your leg down upon %prey's body, slowly applying pressure, crushing them against the floor below!"
- msg_prey_harm_walk = "%owner methodically places their leg upon your body, slowly applying pressure, crushing you against the floor below!"
-
- msg_owner_grab_success = "You pin %prey down on the ground with your front leg before using your other leg to pick them up, trapping them between two of your front legs!"
- msg_prey_grab_success = "%owner pins you down on the ground with their front leg before using their other leg to pick you up, trapping you between two of their front legs!"
-
- msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
- msg_prey_grab_fail = "%owner steps down and squishes you with their leg, forcing you down to the ground!"
-
-/datum/sprite_accessory/tail/taur/tents
- name = "Tentacles (Taur)"
- icon_state = "tent_s"
- icon_sprite_tag = "tentacle"
- can_ride = 0
-
- msg_prey_stepunder = "You run between %prey's tentacles."
- msg_owner_stepunder = "%owner runs between your tentacles."
-
- msg_owner_disarm_run = "You quickly push %prey to the ground with some of your tentacles!"
- msg_prey_disarm_run = "%owner pushes you down to the ground with some of their tentacles!"
-
- msg_owner_disarm_walk = "You push down on %prey with some of your tentacles, pinning them down firmly under you!"
- msg_prey_disarm_walk = "%owner pushes down on you with some of their tentacles, pinning you down firmly below them!"
-
- msg_owner_harm_run = "Your tentacles carelessly slide past %prey, crushing them!"
- msg_prey_harm_run = "%owner quickly goes over your body, carelessly crushing you with their tentacles!"
-
- msg_owner_harm_walk = "Your tentacles methodically apply pressure on %prey's body, crushing them against the floor below!"
- msg_prey_harm_walk = "%owner's thick tentacles methodically apply pressure on your body, crushing you into the floor below!"
-
- msg_owner_grab_success = "You slide over %prey with your tentacles, smushing them against the ground before wrapping one up around them, trapping them within the tight confines of your tentacles!"
- msg_prey_grab_success = "%owner slides over you with their tentacles, smushing you against the ground before wrapping one up around you, trapping you within the tight confines of their tentacles!"
-
- msg_owner_grab_fail = "You step down onto %prey with one of your tentacles, forcing them onto the ground!"
- msg_prey_grab_fail = "%owner steps down onto you with one of their tentacles, squishing you and forcing you onto the ground!"
-
-/datum/sprite_accessory/tail/taur/tents/thick
- name = "Thick Tentacles (Taur)"
- icon_state = "tentacle_s"
- can_ride = 0
- icon_sprite_tag = "thick_tentacles"
-
-/datum/sprite_accessory/tail/taur/feline
- name = "Feline (Taur)"
- icon_state = "feline_s"
- suit_sprites = 'icons/mob/taursuits_deer.dmi'
- icon_sprite_tag = "feline"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 5
- vore_tail_sprite_variant = "Feline"
- belly_variant_when_loaf = TRUE
- fullness_icons = 1
-
-/datum/sprite_accessory/tail/taur/fatfeline
- name = "Fat Feline (Taur)"
- icon_state = "fatfeline_s"
- //icon_sprite_tag = "fatfeline"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 3
-
-/datum/sprite_accessory/tail/taur/fatfeline_wag
- name = "Fat Feline (Taur, Fat vwag)"
- icon_state = "fatfeline_s"
- ani_state = "fatfeline_w"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 3
-
-/datum/sprite_accessory/tail/taur/feline/feline_2c
- name = "Feline 3-color (Taur)"
- icon_state = "feline_s"
- extra_overlay = "feline_markings"
- extra_overlay2 = "feline_markings_2"
- //icon_sprite_tag = "feline2c"
- can_loaf = TRUE
-
-/datum/sprite_accessory/tail/taur/feline/fatfeline_2c
- name = "Fat Feline 3-color (Taur)"
- icon_state = "fatfeline2_s"
- extra_overlay = "fatfeline2_markings"
- extra_overlay2 = "fatfeline2_markings_2"
- can_loaf = TRUE
- loaf_offset = 3
-
-/datum/sprite_accessory/tail/taur/feline/feline_2c_wag
- name = "Feline 3-color (Taur, Fat vwag)"
- icon_state = "fatfeline2_s"
- extra_overlay = "fatfeline2_markings"
- extra_overlay2 = "fatfeline2_markings_2"
- ani_state = "fatfeline_s"
- extra_overlay_w = "fatfeline_markings_vwag"
- extra_overlay2_w = "fatfeline_markings_vwag2"
- loaf_offset = 3
-
-/datum/sprite_accessory/tail/taur/feline/synthfeline
- name = "SynthFeline dual-color (Taur)"
- icon_state = "synthfeline_s"
- extra_overlay = "synthfeline_markings"
- extra_overlay2 = "synthfeline_glow"
- //icon_sprite_tag = "synthfeline"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 3
-
-/datum/sprite_accessory/tail/taur/feline/fatsynthfeline
- name = "Fat SynthFeline dual-color (Taur)"
- icon_state = "fatsynthfeline_s"
- extra_overlay = "fatsynthfeline_markings"
- extra_overlay2 = "fatsynthfeline_glow"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 3
-
-/datum/sprite_accessory/tail/taur/feline/synthfeline_wag
- name = "SynthFeline dual-color (Taur, Fat vwag)"
- icon_state = "synthfeline_s"
- extra_overlay = "synthfeline_markings"
- extra_overlay2 = "synthfeline_glow"
- ani_state = "fatsynthfeline_s"
- extra_overlay_w = "fatsynthfeline_markings"
- extra_overlay2_w = "fatsynthfeline_glow"
-
-/datum/sprite_accessory/tail/taur/tiger
- name = "Tiger (Taur)"
- icon_state = "tiger_s"
- suit_sprites = 'icons/mob/taursuits_deer.dmi'
- icon_sprite_tag = "feline"
- extra_overlay = "tiger_markings"
- extra_overlay2 = "tiger_markings_2"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 5
- vore_tail_sprite_variant = "Feline"
- belly_variant_when_loaf = TRUE
- fullness_icons = 1
-
-/datum/sprite_accessory/tail/taur/tiger/fat
- name = "Fat Tiger (Taur)"
- icon_state = "fattiger_s"
- extra_overlay = "fattiger_markings"
- extra_overlay2 = "fattiger_markings_2"
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 3
-
-/datum/sprite_accessory/tail/taur/tiger/fat_vwag
- name = "Tiger (Taur, Fat vwag)"
- ani_state = "fattiger_s"
- extra_overlay_w = "fattiger_markings"
- extra_overlay2_w = "fattiger_markings_2"
-
-/datum/sprite_accessory/tail/taur/synthetic/syntheticagi
- name = "Synthetic chassis - agile (Taur)"
- icon_state = "synthtaur1_s"
- extra_overlay = "synthtaur1_markings"
- extra_overlay2 = "synthtaur1_glow"
- clip_mask_state = "taur_clip_mask_synthtaur1"
-
-/datum/sprite_accessory/tail/taur/synthetic/syntheticagi_fat
- name = "Synthetic chassis - agile (Taur, Fat)"
- icon_state = "synthtaur1_s"
- extra_overlay = "synthtaur1_fat_markings"
- extra_overlay2 = "synthtaur1_glow"
- clip_mask_state = "taur_clip_mask_synthtaur1"
-
-/datum/sprite_accessory/tail/taur/synthetic/syntheticagi_wag
- name = "Synthetic chassis - agile (Taur, Fat vwag)"
- icon_state = "synthtaur1_s"
- extra_overlay = "synthtaur1_markings"
- extra_overlay2 = "synthtaur1_glow"
- ani_state = "synthtaur1_s"
- extra_overlay_w = "synthtaur1_fat_markings"
- extra_overlay2_w = "synthtaur1_glow"
- clip_mask_state = "taur_clip_mask_synthtaur1"
-
-/datum/sprite_accessory/tail/taur/slug
- name = "Slug (Taur)"
- icon_state = "slug_s"
- suit_sprites = 'icons/mob/taursuits_deer.dmi' //Yes it sounds odd, but they share the same sprites.
- icon_sprite_tag = "slug"
- vore_tail_sprite_variant = "Slug"
- fullness_icons = 1
-
- msg_owner_help_walk = "You carefully slither around %prey."
- msg_prey_help_walk = "%owner's huge tail slithers past beside you!"
-
- msg_owner_help_run = "You carefully slither around %prey."
- msg_prey_help_run = "%owner's huge tail slithers past beside you!"
-
- msg_owner_disarm_run = "Your tail slides over %prey, pushing them down to the ground!"
- msg_prey_disarm_run = "%owner's tail slides over you, forcing you down to the ground!"
-
- msg_owner_disarm_walk = "You push down on %prey with your tail, pinning them down under you!"
- msg_prey_disarm_walk = "%owner pushes down on you with their tail, pinning you down below them!"
-
- msg_owner_harm_run = "Your heavy tail carelessly slides past %prey, crushing them!"
- msg_prey_harm_run = "%owner quickly goes over your body, carelessly crushing you with their heavy tail!"
-
- msg_owner_harm_walk = "Your heavy tail slowly and methodically slides down upon %prey, crushing against the floor below!"
- msg_prey_harm_walk = "%owner's thick, heavy tail slowly and methodically slides down upon your body, mercilessly crushing you into the floor below!"
-
- msg_owner_grab_success = "You slither over %prey with your large, thick tail, smushing them against the ground before coiling up around them, trapping them within the tight confines of your tail!"
- msg_prey_grab_success = "%owner slithers over you with their large, thick tail, smushing you against the ground before coiling up around you, trapping you within the tight confines of their tail!"
-
- msg_owner_grab_fail = "You squish %prey under your large, thick tail, forcing them onto the ground!"
- msg_prey_grab_fail = "%owner pins you under their large, thick tail, forcing you onto the ground!"
-
- msg_prey_stepunder = "You jump over %prey's thick tail."
- msg_owner_stepunder = "%owner bounds over your tail."
-
-/datum/sprite_accessory/tail/taur/slug/snail
- name = "Snail (Taur)"
- icon_state = "slug_s"
- extra_overlay = "snail_shell_marking"
-
-/datum/sprite_accessory/tail/taur/frog
- name = "Frog (Taur)"
- icon_state = "frog_s"
- icon_sprite_tag = "frog"
-
-/datum/sprite_accessory/tail/taur/drake //Enabling on request, no suit compatibility but then again see 2 above.
- name = "Drake (Taur)"
- icon_state = "drake_s"
- extra_overlay = "drake_markings"
-/// suit_sprites = 'icons/mob/taursuits_drake.dmi'
- suit_sprites = 'icons/mob/taursuits_drake_ch.dmi'
- icon_sprite_tag = "drake"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 6
- vore_tail_sprite_variant = "Drake"
- belly_variant_when_loaf = TRUE
- fullness_icons = 3
-
-/datum/sprite_accessory/tail/taur/drake/fat
- name = "Fat Drake (Taur)"
- icon_state = "fatdrake_s"
- extra_overlay = "fatdrake_markings"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 6
-
-/datum/sprite_accessory/tail/taur/drake/drake_vwag
- name = "Drake (Taur, Fat vwag)"
- icon_state = "drake_s"
- extra_overlay = "drake_markings"
- ani_state = "fatdrake_s"
- extra_overlay_w = "fatdrake_markings"
- can_loaf = TRUE
-
-/datum/sprite_accessory/tail/taur/otie
- name = "Otie (Taur)"
- icon_state = "otie_s"
- extra_overlay = "otie_markings"
- extra_overlay2 = "otie_markings_2"
- suit_sprites = 'icons/mob/taursuits_otie.dmi'
- icon_sprite_tag = "otie"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 5
- vore_tail_sprite_variant = "Otie"
- belly_variant_when_loaf = TRUE
- fullness_icons = 1
-
-/datum/sprite_accessory/tail/taur/alraune/alraune_2c
- name = "Alraune (dual color)"
- icon_state = "alraunecolor_s"
- ani_state = "alraunecolor_closed_s"
- ckeys_allowed = null
- do_colouration = 1
- extra_overlay = "alraunecolor_markings"
- extra_overlay_w = "alraunecolor_closed_markings"
- clip_mask_state = "taur_clip_mask_alraune"
- icon_sprite_tag = "alraune"
-
-/datum/sprite_accessory/tail/taur/wasp
- name = "Wasp (dual color)"
- icon_state = "wasp_s"
- extra_overlay = "wasp_markings"
- clip_mask_state = "taur_clip_mask_wasp"
- icon_sprite_tag = "wasp"
-
- msg_owner_disarm_run = "You quickly push %prey to the ground with your leg!"
- msg_prey_disarm_run = "%owner pushes you down to the ground with their leg!"
-
- msg_owner_disarm_walk = "You firmly push your leg down on %prey, painfully but harmlessly pinning them to the ground!"
- msg_prey_disarm_walk = "%owner firmly pushes their leg down on you, quite painfully but harmlessly pinning you to the ground!"
-
- msg_owner_harm_walk = "You methodically place your leg down upon %prey's body, slowly applying pressure, crushing them against the floor!"
- msg_prey_harm_walk = "%owner methodically places their leg upon your body, slowly applying pressure, crushing you against the floor!"
-
- msg_owner_grab_success = "You pin %prey down on the ground with your front leg before using your other leg to pick them up, trapping them between two of your front legs!"
- msg_prey_grab_success = "%owner pins you down on the ground with their front leg before using their other leg to pick you up, trapping you between two of their front legs!"
-
- msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
- msg_prey_grab_fail = "%owner steps down and squishes you with their leg, forcing you down to the ground!"
-
-/datum/sprite_accessory/tail/taur/mermaid
- name = "Mermaid (Taur)"
- icon_state = "mermaid_s"
- can_ride = 0
- icon_sprite_tag = "mermaid"
-
- msg_owner_help_walk = "You carefully slither around %prey."
- msg_prey_help_walk = "%owner's huge tail slithers past beside you!"
-
- msg_owner_help_run = "You carefully slither around %prey."
- msg_prey_help_run = "%owner's huge tail slithers past beside you!"
-
- msg_owner_disarm_run = "Your tail slides over %prey, pushing them down to the ground!"
- msg_prey_disarm_run = "%owner's tail slides over you, forcing you down to the ground!"
-
- msg_owner_disarm_walk = "You push down on %prey with your tail, pinning them down under you!"
- msg_prey_disarm_walk = "%owner pushes down on you with their tail, pinning you down below them!"
-
- msg_owner_harm_run = "Your heavy tail carelessly slides past %prey, crushing them!"
- msg_prey_harm_run = "%owner quickly goes over your body, carelessly crushing you with their heavy tail!"
-
- msg_owner_harm_walk = "Your heavy tail slowly and methodically slides down upon %prey, crushing against the floor below!"
- msg_prey_harm_walk = "%owner's thick, heavy tail slowly and methodically slides down upon your body, mercilessly crushing you into the floor below!"
-
- msg_owner_grab_success = "You slither over %prey with your large, thick tail, smushing them against the ground before coiling up around them, trapping them within the tight confines of your tail!"
- msg_prey_grab_success = "%owner slithers over you with their large, thick tail, smushing you against the ground before coiling up around you, trapping you within the tight confines of their tail!"
-
- msg_owner_grab_fail = "You squish %prey under your large, thick tail, forcing them onto the ground!"
- msg_prey_grab_fail = "%owner pins you under their large, thick tail, forcing you onto the ground!"
-
- msg_prey_stepunder = "You jump over %prey's thick tail."
- msg_owner_stepunder = "%owner bounds over your tail."
-
-/datum/sprite_accessory/tail/taur/mermaid/alt
- name = "Mermaid Alt. (Taur)"
- icon_state = "altmermaid_s"
- icon_sprite_tag = "altmermaid"
-
-/datum/sprite_accessory/tail/taur/mermaid/alt/marked
- name = "Mermaid Koi (Taur)"
- icon_state = "altmermaid_s"
- extra_overlay = "altmermaid_markings"
- extra_overlay2 = "altmermaid_markings2"
-
-/datum/sprite_accessory/tail/taur/pawcow // this grabs suit sprites from the normal cow, the outline is the same
- name = "Cow w/ paws (Taur)"
- icon_state = "pawcow_s"
- extra_overlay = "pawcow_markings"
- suit_sprites = 'icons/mob/taursuits_cow.dmi'
- icon_sprite_tag = "cow"
-
- msg_owner_disarm_run = "You quickly push %prey to the ground with your paw!"
- msg_prey_disarm_run = "%owner pushes you down to the ground with their paw!"
-
- msg_owner_disarm_walk = "You firmly push your paw down on %prey, painfully but harmlessly pinning them to the ground!"
- msg_prey_disarm_walk = "%owner firmly pushes their paw down on you, quite painfully but harmlessly pinning you to the ground!"
-
- msg_owner_harm_walk = "You methodically place your paw down upon %prey's body, slowly applying pressure, crushing them against the floor below!"
- msg_prey_harm_walk = "%owner methodically places their paw upon your body, slowly applying pressure, crushing you against the floor below!"
-
- msg_owner_grab_success = "You pin %prey to the ground before scooping them up with your paws!"
- msg_prey_grab_success = "%owner pins you to the ground before scooping you up with their paws!"
-
- msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
- msg_prey_grab_fail = "%owner steps down and squishes you with their paw, forcing you down to the ground!"
-
-/datum/sprite_accessory/tail/taur/zorgoia
- name = "Zorgoia (Taur)"
- icon_state = "zorgoia"
- extra_overlay = "zorgoia_fluff"
-
-/datum/sprite_accessory/tail/taur/zorgoia/fat
- name = "Zorgoia (Fat Taur)"
- extra_overlay = "zorgoia_fat2"
-
-/datum/sprite_accessory/tail/taur/rat
- name = "Rat (Taur)"
- icon_state = "rat_s"
- extra_overlay = "rat_markings"
- clip_mask_state = "taur_clip_mask_rat"
- icon_sprite_tag = "rat"
-
-/datum/sprite_accessory/tail/taur/noodle
- name = "Eastern Dragon (Taur)"
- icon_state = "noodle_s"
- extra_overlay = "noodle_markings"
- extra_overlay2 = "noodle_markings_2"
- suit_sprites = 'icons/mob/taursuits_noodle.dmi'
- clip_mask_state = "taur_clip_mask_noodle"
- icon_sprite_tag = "noodle"
-
-/datum/sprite_accessory/tail/taur/sect_drone/drone_wag
- name = "Sect Drone (Taur, Fat vwag)"
- icon_state = "sect_drone"
- extra_overlay = "sect_drone_markings"
- ani_state = "fat_sect_drone"
- extra_overlay_w = "fat_sect_drone_markings"
- icon_sprite_tag = "sect_drone"
-
-/datum/sprite_accessory/tail/taur/giantspider
- name = "Giant Spider (Taur)"
- icon_state = "giantspidertaur"
- extra_overlay = null
- icon_sprite_tag = "giantspidertaur"
-
- msg_owner_disarm_run = "You quickly push %prey to the ground with your leg!"
- msg_prey_disarm_run = "%owner pushes you down to the ground with their leg!"
-
- msg_owner_disarm_walk = "You firmly push your leg down on %prey, painfully but harmlessly pinning them to the ground!"
- msg_prey_disarm_walk = "%owner firmly pushes their leg down on you, quite painfully but harmlessly pinning you to the ground!"
-
- msg_owner_harm_walk = "You methodically place your leg down upon %prey's body, slowly applying pressure, crushing them against the floor!"
- msg_prey_harm_walk = "%owner methodically places their leg upon your body, slowly applying pressure, crushing you against the floor!"
-
- msg_owner_grab_success = "You pin %prey down on the ground with your front leg before using your other leg to pick them up, trapping them between two of your front legs!"
- msg_prey_grab_success = "%owner pins you down on the ground with their front leg before using their other leg to pick you up, trapping you between two of their front legs!"
-
- msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
- msg_prey_grab_fail = "%owner steps down and squishes you with their leg, forcing you down to the ground!"
-
-/datum/sprite_accessory/tail/taur/giantspider/colorable
- name = "Giant Spider dual-color (Taur)"
- icon_state = "giantspidertaur-colorable"
- extra_overlay = "giantspidertaur-colorable-markings"
- icon_sprite_tag = "giantspidertaur-colorable"
-
-/datum/sprite_accessory/tail/taur/giantspider/carrier
- name = "Carrier Spider (Taur)"
- icon_state = "carrierspidertaur"
- extra_overlay = null
- icon_sprite_tag = "carrierspidertaur"
-
-/datum/sprite_accessory/tail/taur/giantspider/phoron
- name = "Phorogenic Spider (Taur)"
- icon_state = "phoronspidertaur"
- extra_overlay = null
- icon_sprite_tag = "phoronspidertaur"
-
-/datum/sprite_accessory/tail/taur/giantspider/spark
- name = "Voltaic Spider (Taur)"
- icon_state = "sparkspidertaur"
- extra_overlay = null
- icon_sprite_tag = "sparkspidertaur"
-
-/datum/sprite_accessory/tail/taur/giantspider/frost
- name = "Frost Spider (Taur)"
- icon_state = "frostspidertaur"
- extra_overlay = null
- icon_sprite_tag = "frostspidertaur"
-
-/datum/sprite_accessory/tail/taur/giantspider/ant //technically not a spider, but it inherits the same messages
- name = "Ant (dual color)"
- icon_state = "ant_s"
- extra_overlay = "ant_markings"
- clip_mask_state = "taur_clip_mask_wasp"
- icon_sprite_tag = "wasp"
-
-/datum/sprite_accessory/tail/taur/fox
- name = "Fox (Taur, 3-color)"
- icon_state = "fox"
- extra_overlay = "fox_markings"
- extra_overlay2 = "fox_markings2"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- vore_tail_sprite_variant = "F"
- fullness_icons = 3
- loaf_offset = 4
-
-/datum/sprite_accessory/tail/taur/kitsune
- name = "Kitsune (Taur)"
- icon_state = "kitsune"
-
-/*
-/datum/sprite_accessory/tail/taur/teppi // Mostly used as example/template/test subject as to how you use the 'big' taur sprites. Pls give it better icons before uncommenting...
- name = "Teppi (Taur)"
- icon_state = "teppi_s"
- clip_mask_icon = 'icons/mob/vore/taurs128x64.dmi'
- icon = 'icons/mob/vore/taurs128x64.dmi'
- clip_mask_state = "taur_clip_mask_teppi"
- icon_sprite_tag = "teppi"
- offset_x = -32
- offset_y = -11
- mob_offset_y = 11
-*/
-
-/datum/sprite_accessory/tail/taur/bunny
- name = "Bunny (Taur, Fat vwag)"
- icon = 'icons/rogue-star/tails_64x32_rs.dmi'
- icon_state = "bnytr"
- extra_overlay = "bnytr-m1"
- extra_overlay2 = "bnytr-m2"
- ani_state = "bnytr-f"
- extra_overlay_w = "bnytr-m1"
- extra_overlay2_w = "bnytr-f-m2"
-
- can_loaf = TRUE
- icon_loaf = 'icons/rogue-star/loafs_64x32.dmi'
- loaf_offset = 4
-// Special snowflake tails/taurhalves
-
-//spoopylizz: Roiz Lizden
-/datum/sprite_accessory/tail/taur/roiz_long_lizard // Not ACTUALLY a taur, but it uses 32x64 so it wouldn't fit in tails.dmi, and having it as a tail bugs up the sprite.
- name = "Long Lizard Tail (Roiz Lizden)"
- icon_state = "roiz_tail_s"
- do_colouration = 0
- ckeys_allowed = list("spoopylizz")
- hide_body_parts = null
- clip_mask_icon = null
- clip_mask_state = null
-
-//grallstonefist: Ranihrönn Skrolk
-/datum/sprite_accessory/tail/taur/altmermaid/orcamermaid
- name = "Mermaid Orca (Taur)"
- icon_state = "orcamermaid_s"
- can_ride = 1
- do_colouration = 0
- ckeys_allowed = list("grallstonefist")
-
-//wickedtemp: Chakat Tempest
-/datum/sprite_accessory/tail/taur/feline/tempest
- name = "Feline (wickedtemp) (Taur)"
- icon_state = "tempest_s"
- ckeys_allowed = list("wickedtemp")
- can_loaf = FALSE
-
-//silencedmp5a5: Serdykov Antoz
-/datum/sprite_accessory/tail/taur/wolf/serdy
- name = "CyberSerdy (silencedmp5a5) (Taur)"
- icon_state = "serdy_s"
- ckeys_allowed = list("silencedmp5a5")
- can_loaf = FALSE
-
-//liquidfirefly: Ariana Scol
-/datum/sprite_accessory/tail/taur/centipede
- name = "Centipede (liquidfirefly) (Taur)"
- icon_state = "ariana_s"
- ckeys_allowed = list("liquidfirefly")
- do_colouration = 0
-
- msg_owner_disarm_run = "You quickly push %prey to the ground with your leg!"
- msg_prey_disarm_run = "%owner pushes you down to the ground with their leg!"
-
- msg_owner_disarm_walk = "You firmly push your leg down on %prey, painfully but harmlessly pinning them to the ground!"
- msg_prey_disarm_walk = "%owner firmly pushes their leg down on you, quite painfully but harmlessly pinning you to the ground!"
-
- msg_owner_harm_walk = "You methodically place your leg down upon %prey's body, slowly applying pressure, crushing them against the floor below!"
- msg_prey_harm_walk = "%owner methodically places their leg upon your body, slowly applying pressure, crushing you against the floor below!"
-
- msg_owner_grab_success = "You pin %prey down on the ground with your front leg before using your other leg to pick them up, trapping them between two of your front legs!"
- msg_prey_grab_success = "%owner pins you down on the ground with their front leg before using their other leg to pick you up, trapping you between two of their front legs!"
-
- msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
- msg_prey_grab_fail = "%owner steps down and squishes you with their leg, forcing you down to the ground!"
-
-//natje:
-/datum/sprite_accessory/tail/taur/alraune
- name = "Alraune (natje) (Taur)"
- icon_state = "alraune_s"
- ani_state = "alraune_closed_s"
- ckeys_allowed = list("natje")
- do_colouration = 0
- can_ride = 0
- clip_mask_state = "taur_clip_mask_alraune"
-
-
- msg_prey_stepunder = "You run between %prey's vines."
- msg_owner_stepunder = "%owner runs between your vines."
-
- msg_owner_disarm_run = "You quickly push %prey to the ground with some of your vines!"
- msg_prey_disarm_run = "%owner pushes you down to the ground with some of their vines!"
-
- msg_owner_disarm_walk = "You push down on %prey with some of your vines, pinning them down firmly under you!"
- msg_prey_disarm_walk = "%owner pushes down on you with some of their vines, pinning you down firmly below them!"
-
- msg_owner_harm_run = "Your vines carelessly slide past %prey, crushing them!"
- msg_prey_harm_run = "%owner quickly goes over your body, carelessly crushing you with their vines!"
-
- msg_owner_harm_walk = "Your vines methodically apply pressure on %prey's body, crushing them against the floor below!"
- msg_prey_harm_walk = "%owner's thick vines methodically apply pressure on your body, crushing you into the floor below!"
-
- msg_owner_grab_success = "You slide over %prey with your vines, smushing them against the ground before wrapping one up around them, trapping them within the tight confines of your vines!"
- msg_prey_grab_success = "%owner slides over you with their vines, smushing you against the ground before wrapping one up around you, trapping you within the tight confines of their vines!"
-
- msg_owner_grab_fail = "You step down onto %prey with one of your vines, forcing them onto the ground!"
- msg_prey_grab_fail = "%owner steps down onto you with one of their vines, squishing you and forcing you onto the ground!"
-
-/datum/sprite_accessory/tail/taur/redpanda
- name = "Red Panda (Taur)"
- icon_state = "redpanda"
-
-/datum/sprite_accessory/tail/taur/redpandadc
- name = "Red Panda (Taur dual-color)"
- icon_state = "redpanda_dc"
- extra_overlay = "redpanda_dc_markings"
-
-/datum/sprite_accessory/tail/taur/wolf/fatwolf_2c/fatwolfalt
- name = "Fat Wolf 3-color-alt (Taur)"
- icon_state = "fatwolfalt_s"
- extra_overlay = "fatwolfalt_markings1"
- extra_overlay2 = "fatwolfalt_markings2"
- icon_sprite_tag = "wolf"
-
-/datum/sprite_accessory/tail/taur/naga/alt
- name = "Naga alt (Taur)"
- icon_state = "naga_alt_s"
- vore_tail_sprite_variant = "NagaAlt"
- fullness_icons = 1
-
-/datum/sprite_accessory/tail/taur/naga/alt/second
- name = "Naga dual-color alt (Taur)"
- extra_overlay = "naga_alt_markings"
-
-/datum/sprite_accessory/tail/taur/naga/synthnaga
- name = "Synthetic Naga dual-color (Taur)"
- icon_state = "synthnaga"
- extra_overlay = "synthnaga_belly"
-
-/datum/sprite_accessory/tail/taur/horse/scoli
- name = "Scolipede (Taur)"
- icon_state = "scoli_s"
- extra_overlay = "scoli_markings1"
- extra_overlay2 = "scoli_markings2"
-
-/datum/sprite_accessory/tail/taur/sergal/wheaties
- name = "Sergal (Taur)"
- icon_state = "sergwheat"
- icon_sprite_tag = "wolf"
- vore_tail_sprite_variant = "N"
- fullness_icons = 3
- struggle_anim = TRUE
-
-/datum/sprite_accessory/tail/taur/longvirus
- name = "Long Virus (Taur)"
- icon_state = "longvirus_s"
- extra_overlay = "longvirus_markings"
- icon_sprite_tag = "virus"
-
-/datum/sprite_accessory/tail/taur/sectdrone
- name = "Sect Drone (Taur)"
- icon_state = "sectdrone"
- extra_overlay = "sectdrone_markings"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- vore_tail_sprite_variant = "SectDrone"
- belly_variant_when_loaf = TRUE
- struggle_anim = TRUE
- loaf_offset = 3
- fullness_icons = 3
-
- msg_owner_disarm_run = "You quickly push %prey to the ground with your leg!"
- msg_prey_disarm_run = "%owner pushes you down to the ground with their leg!"
-
- msg_owner_disarm_walk = "You firmly push your leg down on %prey, painfully but harmlessly pinning them to the ground!"
- msg_prey_disarm_walk = "%owner firmly pushes their leg down on you, quite painfully but harmlessly pinning you to the ground!"
-
- msg_owner_harm_walk = "You methodically place your leg down upon %prey's body, slowly applying pressure, crushing them against the floor!"
- msg_prey_harm_walk = "%owner methodically places their leg upon your body, slowly applying pressure, crushing you against the floor!"
-
- msg_owner_grab_success = "You pin %prey down on the ground with your front leg before using your other leg to pick them up, trapping them between two of your front legs!"
- msg_prey_grab_success = "%owner pins you down on the ground with their front leg before using their other leg to pick you up, trapping you between two of their front legs!"
-
- msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
- msg_prey_grab_fail = "%owner steps down and squishes you with their leg, forcing you down to the ground!"
-
-/datum/sprite_accessory/tail/taur/sect_drone/fat
- name = "Fat Sect Drone (Taur)"
- icon_state = "fat_sect_drone"
- extra_overlay = "fat_sect_drone_markings"
- icon_sprite_tag = "sect_drone"
-
-/datum/sprite_accessory/tail/taur/sergal/fatwheaties
- name = "Fat Sergal (Taur)"
- icon_state = "fatsergal"
- icon_sprite_tag = "wolf"
- vore_tail_sprite_variant = "N"
- fullness_icons = 3
- struggle_anim = TRUE
-
-/datum/sprite_accessory/tail/taur/sergal/wheaties_2c
- name = "Sergal (Taur, dual-color)"
- icon_state = "sergwheat"
- extra_overlay = "sergwheat_markings"
- icon_sprite_tag = "wolf"
- vore_tail_sprite_variant = "N"
- fullness_icons = 3
- struggle_anim = TRUE
-
-/datum/sprite_accessory/tail/taur/sergal/fatwheaties_2c
- name = "Fat Sergal (Taur, dual-color)"
- icon_state = "fatsergal"
- extra_overlay = "sergwheat_markings"
- icon_sprite_tag = "wolf"
- vore_tail_sprite_variant = "N"
- fullness_icons = 3
- struggle_anim = TRUE
-
-/datum/sprite_accessory/tail/taur/cow_alt
- name = "Cow Alt (Taur dual-color)"
- icon_state = "cow_alt"
- extra_overlay = "cow_alt_2"
- vore_tail_sprite_variant = "CowAlt"
- fullness_icons = 1
-
-/datum/sprite_accessory/tail/taur/bigleggy
- name = "Big Leggies"
- icon_state = "bigleggy"
- extra_overlay = "bigleggy_markings"
- vore_tail_sprite_variant = "bigleggy"
- fullness_icons = 3
- ani_state = "bigleggy_stanced"
- extra_overlay_w = "bigleggy_markings_stanced"
- clip_mask_state = "taur_clip_mask_def" //Leaving this here to make it clear it it's INTENTIONAL it shows above clothes. Use the marking if you want it to show UNDER clothes!
-
-/datum/sprite_accessory/tail/taur/bigleggy/canine
- name = "Big Leggies (Canine Tail)"
- extra_overlay2 = "bigleggy_canine"
- extra_overlay2_w = "bigleggy_canine"
-
-/datum/sprite_accessory/tail/taur/bigleggy/feline
- name = "Big Leggies (Feline Tail)"
- extra_overlay2 = "bigleggy_feline"
- extra_overlay2_w = "bigleggy_feline"
-
-/datum/sprite_accessory/tail/taur/bigleggy/reptile
- name = "Big Leggies (Reptile Tail)"
- extra_overlay2 = "bigleggy_reptile"
- extra_overlay2_w = "bigleggy_reptile"
-
-/datum/sprite_accessory/tail/taur/bigleggy/snake
- name = "Big Leggies (Snake Tail)"
- extra_overlay2 = "bigleggy_snake"
- extra_overlay2_w = "bigleggy_snake"
-
-/datum/sprite_accessory/tail/taur/bigleggy/fox
- name = "Big Leggies (Fox Tail)"
- extra_overlay2 = "bigleggy_vulpine"
- extra_overlay2_w = "bigleggy_vulpine"
-
-/datum/sprite_accessory/tail/taur/bigleggy/bird
- name = "Big Leggies (Bird)"
- extra_overlay = "bigleggy_m_bird"
- extra_overlay2 = "bigleggy_bird"
- extra_overlay_w = "bigleggy_m_bird_stanced"
- extra_overlay2_w = "bigleggy_bird"
-
-/datum/sprite_accessory/tail/taur/bigleggy/plug
- name = "Big Leggies (Plug Tail)"
- extra_overlay2 = "bigleggy_plug"
- extra_overlay2_w = "bigleggy_plug"
-
-/datum/sprite_accessory/tail/taur/bigleggy/AlienSlug
- name = "Big Leggies (Alien Slug Tail)"
- icon_state = "bigleggy_full_alienslug"
- extra_overlay = "bigleggy_alienslug"
- extra_overlay_w = "bigleggy_alienslug"
- extra_overlay2 = "bigleggy_alienslug_m"
- extra_overlay2_w = "bigleggy_alienslug_m"
-
-/datum/sprite_accessory/tail/taur/drake/extended
- name = "Fat Drake Extended (Taur)"
- icon_state = "extended_fatdrake"
- extra_overlay = "extended_fatdrake_markings"
- extra_overlay2 = "extended_fatdrake_markings2"
- fullness_icons = 2
- can_loaf = TRUE //Soon //Actually, NOW
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
- loaf_offset = 5
-
-/datum/sprite_accessory/tail/taur/lizard/spotty
- name = "Spotted Lizard (Taur, Tricolor)"
- icon_state = "spottedlizard_s"
- extra_overlay = "spottedlizard_markings"
- extra_overlay_w = "spottedlizard_markings"
- extra_overlay2 = "spottedlizard_markings_2"
- extra_overlay2_w = "spottedlizard_markings_2"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
- loaf_offset = 5
-
-
-
-/datum/sprite_accessory/tail/taur/lizard/spotty_fat
- name = "Fat Spotted Lizard (Taur, Tricolor)"
- icon_state = "fatspottedlizard_s"
- extra_overlay = "fatspottedlizard_markings"
- extra_overlay_w = "fatspottedlizard_markings"
- extra_overlay2 = "fatspottedlizard_markings_2"
- extra_overlay2_w = "fatspottedlizard_markings_2"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
- loaf_offset = 3
-
-/datum/sprite_accessory/tail/taur/drake/extended/spotty
- name = "Fat Spotted Drake Extended (Taur)"
- vore_tail_sprite_variant = "FatDrake"
- icon_state = "spottedextended_fatdrake"
- extra_overlay = "spottedextended_fatdrake_markings"
- extra_overlay_w = "spottedextended_fatdrake_markings"
- extra_overlay2 = "spottedextended_fatdrake_markings_2"
- extra_overlay2_w = "spottedextended_fatdrake_markings_2"
- fullness_icons = 2
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
- loaf_offset = 5
-
-/datum/sprite_accessory/tail/taur/drake/spotty
- name = "Spotted Drake (Taur, Tricolor)"
- icon_state = "spotteddrake_s"
- extra_overlay = "spotteddrake_markings"
- extra_overlay_w = "spotteddrake_markings"
- extra_overlay2 = "spotteddrake_markings_2"
- extra_overlay2_w = "spotteddrake_markings_2"
- suit_sprites = 'icons/mob/taursuits_drake_ch.dmi'
- icon_sprite_tag = "drake"
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
- loaf_offset = 6
-
-/datum/sprite_accessory/tail/taur/drake/fat/spotty
- name = "Fat Spotted Drake (Taur, Tricolor)"
- vore_tail_sprite_variant = "FatDrake"
- icon_state = "fatspotteddrake_s"
- extra_overlay = "fatspotteddrake_markings"
- extra_overlay_w = "fatspotteddrake_markings"
- extra_overlay2 = "fatspotteddrake_markings_2"
- extra_overlay2_w = "fatspotteddrake_markings_2"
- fullness_icons = 2
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
- loaf_offset = 6
-
-/datum/sprite_accessory/tail/taur/drake/extended_alt
- name = "Drake Extended (Taur)"
- vore_tail_sprite_variant = "Drake"
- icon_state = "extended_drake"
- extra_overlay = "extended_drake_markings"
- extra_overlay_w = "extended_drake_markings"
- extra_overlay2 = "extended_drake_markings_2"
- extra_overlay2_w = "extended_drake_markings_2"
- fullness_icons = 3
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
- loaf_offset = 5
-
-/datum/sprite_accessory/tail/taur/drake/extended_alt/spotted
- name = "Spotted Drake Extended (Taur)"
- vore_tail_sprite_variant = "Drake"
- icon_state = "spottedextended_drake"
- extra_overlay = "spottedextended_drake_markings"
- extra_overlay_w = "spottedextended_drake_markings"
- extra_overlay2 = "spottedextended_drake_markings_2"
- extra_overlay2_w = "spottedextended_drake_markings_2"
- fullness_icons = 3
- can_loaf = TRUE
- icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
- loaf_offset = 5
-
-/datum/sprite_accessory/tail/taur/zorgoia_new
- name = "Zorgoia (Taur) (New)"
- icon_state = "zorgoia_new"
- extra_overlay = "zorgoia_new_fluff"
-
-/datum/sprite_accessory/tail/taur/zorgoia_new/fat
- name = "Zorgoia (Fat Taur) (New)"
- icon_state = "zorgoia_new_fat"
- extra_overlay = "zorgoia_new_fat_overlay"
-
-/datum/sprite_accessory/tail/taur/sloog
- name = "Sloog (Taur)"
- icon_state = "sloog"
- extra_overlay = "sloog_glowstripe"
- extra_overlay_w = "sloog_glowstripe"
- can_loaf = FALSE
-
-/datum/sprite_accessory/tail/taur/horse/big
- name = "Kentauri (Taur)"
- icon_state = "kentauri_s"
- extra_overlay = "kentauri_markings"
-
-/datum/sprite_accessory/tail/taur/wolf/husky
- name = "Husky (Taur)"
- icon_state = "husky_s"
-
-/datum/sprite_accessory/tail/taur/wolf/huskyfat
- name = "Fat Husky (Taur)"
- icon_state = "huskyf_s"
-
-/datum/sprite_accessory/tail/taur/wolf/wolf_2
- name = "WolfTG (Taur)"
- icon_state = "wolf3_s"
-
-/datum/sprite_accessory/tail/taur/long_lizard
- name = "Large Dragon Tail"
- icon_state = "big_liz"
- can_ride = 0
- hide_body_parts = null
- clip_mask_icon = null
- clip_mask_state = null
-
-/datum/sprite_accessory/tail/taur/long_lizard/scaled
- name = "Large Dragon Tail/W scales"
- extra_overlay = "big_liz_mark"
-
-/datum/sprite_accessory/tail/taur/treeoak_roots
- name = "Tree Roots (Oak)"
- icon_state = "tree_oak_roots"
- can_ride = 0
-
-/datum/sprite_accessory/tail/longtail/scug // Wawa
- name = "Catslug Tail"
- icon_state = "scug"
-
-/datum/sprite_accessory/tail/longtail/scug/dots
- name = "Catslug Tail Dotted"
- extra_overlay = "scug_markings"
-
-/datum/sprite_accessory/tail/taur/teshari // chickenbutt
- name = "Teshari dual-color (Taur)"
- icon = 'icons/mob/human_races/sprite_accessories/taurs_teshari.dmi'
- icon_loaf = 'icons/mob/vore/taurs_teshari_loaf.dmi'
- icon_state = "tesh"
- icon_sprite_tag = "tesh"
- extra_overlay = "tesh_markings"
- can_loaf = TRUE
- belly_variant_when_loaf = TRUE
- loaf_offset = 4
- fullness_icons = 1
- vore_tail_sprite_variant = "Tesh"
-
-/datum/sprite_accessory/tail/taur/teshari/alt
- name = "Teshari dual-color Alt (Taur)"
- extra_overlay = "tesh_markings_alt"
diff --git a/code/modules/mob/new_player/tails/sprite_accessories_tail.dm b/code/modules/mob/new_player/tails/sprite_accessories_tail.dm
new file mode 100644
index 00000000000..e7e411d5046
--- /dev/null
+++ b/code/modules/mob/new_player/tails/sprite_accessories_tail.dm
@@ -0,0 +1,212 @@
+/*
+////////////////////////////
+/ =--------------------= /
+/ == Tail Definitions == /
+/ =--------------------= /
+////////////////////////////
+*/
+/datum/sprite_accessory/tail
+ name = DEVELOPER_WARNING_NAME
+ var/desc = DEVELOPER_WARNING_NAME
+// icon = 'icons/mob/human_races/sprite_accessories/tails.dmi'
+ do_colouration = TRUE //Set to FALSE to disable coloration using the tail color.
+ /// Only appliciable if do_coloration = TRUE, ICON_MULTIPLY is a white bias, ICON_ADD is a black bias for colorations of sprites.
+ /// Virtually all sprites now are white-biased greyscale. The ones that aren't are pre-colored, typically donator snowflake.
+ color_blend_mode = ICON_MULTIPLY
+ em_block = TRUE
+ var/extra_overlay // Icon state of an additional overlay to blend in.
+ var/extra_overlay2 //Tertiary.
+ var/show_species_tail = FALSE // If false, do not render species' tail.
+ var/clothing_can_hide = TRUE // If true, clothing with HIDETAIL hides it
+ var/ani_state // State when wagging/animated
+ var/extra_overlay_w // Wagging state for extra overlay
+ var/extra_overlay2_w // Tertiary wagging.
+ 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
+ var/offset_x = 0
+ var/offset_y = 0
+ var/mob_offset_x = 0
+ var/mob_offset_y = 0
+
+ // Taur Loafing - IMPORTANT, READ BELOW.
+ ///IF SET TO TRUE, THE icon_state, extra_overlay, and extra_overlay2 MUST BE IN WHATEVER YOU SET icon_loaf to!
+ ///ADDITIONALLY, IF YOU ADD A SPECIAL VWAG, YOU NEED TO INCLUDE ani_state, extra_overlay_w, and extra_overlay2_w INTO icon_loaf TOO!
+ var/can_loaf = FALSE
+ var/loaf_offset = 0
+ var/list/lower_layer_dirs = list(SOUTH, WEST, EAST)
+ var/icon_loaf = null
+
+ // Taur Vore
+ var/vore_tail_sprite_variant = ""
+ var/belly_variant_when_loaf = FALSE
+ var/fullness_icons = 0
+ var/struggle_anim = FALSE
+ var/bellies_icon_path = 'icons/mob/vore/Taur_Bellies.dmi'
+
+/datum/sprite_accessory/tail/New()
+ . = ..()
+ if(clip_mask_state)
+ clip_mask = icon(icon = (clip_mask_icon ? clip_mask_icon : icon), icon_state = clip_mask_state)
+
+// Default invis tail
+/datum/sprite_accessory/tail/invisible
+ name = "hide species-sprite tail"
+ icon = null
+ icon_state = null
+
+//For all species tails. Includes haircolored tails.
+/datum/sprite_accessory/tail/special
+ name = DEVELOPER_WARNING_NAME
+ icon = 'icons/effects/species_tails.dmi'
+
+/datum/sprite_accessory/tail/special/unathi
+ name = "unathi tail"
+ desc = ""
+ icon_state = "sogtail_s"
+
+/datum/sprite_accessory/tail/special/tajaran
+ name = "tajaran tail"
+ desc = ""
+ icon_state = "tajtail_s"
+
+/datum/sprite_accessory/tail/special/sergal
+ name = "sergal tail"
+ desc = ""
+ icon_state = "sergtail_s"
+
+/datum/sprite_accessory/tail/special/akula
+ name = "akula tail"
+ desc = ""
+ icon_state = "sharktail_s"
+
+/datum/sprite_accessory/tail/special/nevrean
+ name = "nevrean tail"
+ desc = ""
+ icon_state = "nevreantail_s"
+
+/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/tesharitail
+ name = "teshari tail"
+ desc = ""
+ icon_state = "seromitail_s"
+
+/datum/sprite_accessory/tail/special/tesharitailfeathered
+ name = "teshari tail w/ feathers"
+ desc = ""
+ icon_state = "seromitail_s"
+ extra_overlay = "seromitail_feathers_s"
+
+/datum/sprite_accessory/tail/special/unathihc
+ name = "unathi tail, colorable"
+ desc = ""
+ icon_state = "sogtail_hc_s"
+
+/datum/sprite_accessory/tail/special/tajaranhc
+ name = "tajaran tail, colorable"
+ desc = ""
+ icon_state = "tajtail_hc_s"
+
+/datum/sprite_accessory/tail/special/sergalhc
+ name = "sergal tail, colorable"
+ desc = ""
+ icon_state = "sergtail_hc_s"
+
+/datum/sprite_accessory/tail/special/akulahc
+ name = "akula tail, colorable"
+ desc = ""
+ icon_state = "sharktail_hc_s"
+
+/datum/sprite_accessory/tail/special/nevreanhc
+ name = "nevrean tail, colorable"
+ desc = ""
+ icon_state = "nevreantail_hc_s"
+
+/datum/sprite_accessory/tail/special/foxdefault
+ name = "default zorren tail, colorable"
+ desc = ""
+ icon_state = "zorren_tail"
+
+/datum/sprite_accessory/tail/special/foxhc
+ name = "highlander zorren tail, colorable"
+ desc = ""
+ icon_state = "foxtail_hc_s"
+
+/datum/sprite_accessory/tail/special/fennechc
+ name = "flatland zorren tail, colorable"
+ desc = ""
+ icon_state = "fentail_hc_s"
+
+/datum/sprite_accessory/tail/special/armalishc
+ name = "armalis tail, colorable"
+ desc = ""
+ icon_state = "armalis_tail_humanoid_hc_s"
+
+/datum/sprite_accessory/tail/special/xenodronehc
+ name = "xenomorph drone tail, colorable"
+ desc = ""
+ icon_state = "xenos_drone_tail_hc_s"
+
+/datum/sprite_accessory/tail/special/xenosentinelhc
+ name = "xenomorph sentinel tail, colorable"
+ desc = ""
+ icon_state = "xenos_sentinel_tail_hc_s"
+
+/datum/sprite_accessory/tail/special/xenohunterhc
+ name = "xenomorph hunter tail, colorable"
+ desc = ""
+ icon_state = "xenos_hunter_tail_hc_s"
+
+/datum/sprite_accessory/tail/special/xenoqueenhc
+ name = "xenomorph queen tail, colorable"
+ desc = ""
+ icon_state = "xenos_queen_tail_hc_s"
+
+/datum/sprite_accessory/tail/special/monkeyhc
+ name = "monkey tail, colorable"
+ desc = ""
+ icon_state = "chimptail_hc_s"
+
+/datum/sprite_accessory/tail/special/tesharitailhc
+ name = "teshari tail, colorable"
+ desc = ""
+ icon_state = "seromitail_hc_s"
+
+/datum/sprite_accessory/tail/special/tesharitailfeatheredhc
+ name = "teshari tail w/ feathers, colorable"
+ desc = ""
+ icon_state = "seromitail_feathers_hc_s"
+
+/datum/sprite_accessory/tail/special/vulpan
+ name = "vulpkanin, colorable"
+ desc = ""
+ icon_state = "vulptail_s"
diff --git a/code/modules/mob/new_player/tails/tails_animal.dm b/code/modules/mob/new_player/tails/tails_animal.dm
new file mode 100644
index 00000000000..c138e337aec
--- /dev/null
+++ b/code/modules/mob/new_player/tails/tails_animal.dm
@@ -0,0 +1,401 @@
+/datum/sprite_accessory/tail/squirrel
+ name = "squirrel, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "squirrel"
+
+/datum/sprite_accessory/tail/kitty
+ name = "kitty, colorable, downwards"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "kittydown"
+
+/datum/sprite_accessory/tail/kittyup
+ name = "kitty, colorable, upwards"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "kittyup"
+
+/datum/sprite_accessory/tail/tiger_white
+ name = "tiger, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "tiger"
+ extra_overlay = "tigerinnerwhite"
+
+/datum/sprite_accessory/tail/stripey
+ name = "stripey taj, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "stripeytail"
+ extra_overlay = "stripeytail_mark"
+
+/datum/sprite_accessory/tail/bunny
+ name = "bunny, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "bunny"
+
+/datum/sprite_accessory/tail/rabbit
+ name = "rabbit, colourable (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "rabbit"
+ ani_state = "rabbit_w"
+
+/datum/sprite_accessory/tail/rabbitalt
+ name = "rabbit, dual color (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "rabbitalt"
+ extra_overlay = "rabbitalt-tips"
+ ani_state = "rabbitalt_w"
+ extra_overlay_w = "rabbitalt-tips_w"
+
+/datum/sprite_accessory/tail/bear
+ name = "bear, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "bear"
+
+/datum/sprite_accessory/tail/wolf
+ name = "wolf, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "wolf"
+ extra_overlay = "wolfinner"
+ extra_overlay2 = "wolftip"
+
+/datum/sprite_accessory/tail/mouse
+ name = "mouse, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "mouse"
+
+/datum/sprite_accessory/tail/horse
+ name = "horse tail, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "horse"
+
+/datum/sprite_accessory/tail/cow
+ name = "cow tail, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "cow"
+
+/datum/sprite_accessory/tail/crossfox
+ name = "cross fox"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "crossfox"
+ extra_overlay = "crossfox_marking_back"
+ extra_overlay2 = "crossfox_marking_tip"
+
+/datum/sprite_accessory/tail/fantail
+ name = "avian fantail, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "fantail"
+
+/datum/sprite_accessory/tail/wagtail
+ name = "avian wagtail, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "wagtail"
+
+/datum/sprite_accessory/tail/ketrai_wag
+ name = "fennix tail (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "ketraitail"
+ ani_state = "ketraitail_w"
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/ketrainew_wag
+ name = "new fennix tail (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "ketraitailnew"
+ ani_state = "ketraitailnew_w"
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/redpanda
+ name = "red panda"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "redpanda"
+
+/datum/sprite_accessory/tail/ringtail
+ name = "ringtail, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "ringtail"
+ extra_overlay = "ringtail_mark"
+
+/datum/sprite_accessory/tail/raccoon
+ name = "raccoon tail (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "raccoon"
+ ani_state = "raccoon_w"
+ extra_overlay = "raccoon-stripes"
+ extra_overlay_w = "raccoon-stripes_w"
+
+/datum/sprite_accessory/tail/ringtailwag
+ name = "ringtail (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "wah"
+ ani_state = "wah_w"
+ extra_overlay = "wah-stripes"
+ extra_overlay_w = "wah-stripes_w"
+
+/datum/sprite_accessory/tail/curltail
+ name = "curltail (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "curltail"
+ ani_state = "curltail_w"
+ extra_overlay = "curltail_mark"
+ extra_overlay_w = "curltail_mark_w"
+
+/datum/sprite_accessory/tail/shorttail
+ name = "shorttail (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "straighttail"
+ ani_state = "straighttail_w"
+
+/datum/sprite_accessory/tail/sneptail
+ name = "Snep/Furry Tail (vwag) (old)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "sneptail"
+ ani_state = "sneptail_w"
+ extra_overlay = "sneptail_mark"
+ extra_overlay_w = "sneptail_mark_w"
+
+/datum/sprite_accessory/tail/sneptail_new //From Skyrat
+ name = "Snep/Furry Tail (vwag) (new)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "sneptail_new"
+ ani_state = "sneptail_new_w"
+ extra_overlay = "sneptail_new_mark"
+ extra_overlay_w = "sneptail_new_mark_w"
+
+/datum/sprite_accessory/tail/tiger_new
+ name = "tiger tail (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "tigertail"
+ ani_state = "tigertail_w"
+ extra_overlay = "tigertail_mark"
+ extra_overlay_w = "tigertail_mark_w"
+
+/datum/sprite_accessory/tail/tigeralt
+ name = "tiger tail, alt (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "tigeralt"
+ extra_overlay = "tigeralt-tips"
+ extra_overlay2 = "tigeralt-tips2"
+ ani_state = "tigeralt_w"
+ extra_overlay_w = "tigeralt-tips_w"
+ extra_overlay2_w = "tigeralt-tips2_w"
+
+/datum/sprite_accessory/tail/twotiger
+ name = "tiger tail, double (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "twotiger"
+ extra_overlay = "twotiger-tips"
+ extra_overlay2 = "twotiger-tips2"
+ ani_state = "twotiger_w"
+ extra_overlay_w = "twotiger-tips_w"
+ extra_overlay2_w = "twotiger-tips2_w"
+
+/datum/sprite_accessory/tail/twocat
+ name = "cat tail, double (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "twocat"
+ ani_state = "twocat_w"
+
+/datum/sprite_accessory/tail/threecat
+ name = "cat tail, triple (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "threecat"
+ ani_state = "threecat_w"
+
+/datum/sprite_accessory/tail/leopard
+ name = "Leopard tail, dual-color (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "leopard"
+ ani_state = "leopard_w"
+ extra_overlay = "leopard_spots"
+ extra_overlay_w = "leopard_spots_w"
+
+/datum/sprite_accessory/tail/fennec_tail
+ name = "Fennec tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "fennec_tail_s"
+
+/datum/sprite_accessory/tail/fox_tail
+ name = "Fox tail, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "fox_tail_s"
+
+/datum/sprite_accessory/tail/fox_tail_plain
+ name = "Fox tail, colorable, plain"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "fox_tail_plain_s"
+
+/datum/sprite_accessory/tail/foxtail
+ name = "Fox tail, colourable (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "foxtail"
+ extra_overlay = "foxtail-tips"
+ ani_state = "foxtail_w"
+ extra_overlay_w = "foxtail-tips_w"
+
+/datum/sprite_accessory/tail/doublekitsune
+ name = "Kitsune 2 tails, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "doublekitsune"
+
+/datum/sprite_accessory/tail/doublekitsunealt
+ name = "Kitsune 2 tails, colorable, alt"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "doublekitsunealt"
+ extra_overlay = "doublekitsunealt-tips"
+
+/datum/sprite_accessory/tail/triplekitsune_colorable
+ name = "Kitsune 3 tails, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "triplekitsune"
+ extra_overlay = "triplekitsune_tips"
+
+/datum/sprite_accessory/tail/sevenkitsune_colorable
+ name = "Kitsune 7 tails, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "sevenkitsune"
+ extra_overlay = "sevenkitsune-tips"
+
+/datum/sprite_accessory/tail/ninekitsune_colorable
+ name = "Kitsune 9 tails, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "ninekitsune"
+ extra_overlay = "ninekitsune-tips"
+
+/datum/sprite_accessory/tail/hideableninetails
+ name = "Kitsune 9-in-1 tail, colourable (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "ninekitsune"
+ extra_overlay = "ninekitsune-tips"
+ ani_state = "foxtail_w"
+ extra_overlay_w = "foxtail-tips_w"
+
+/datum/sprite_accessory/tail/vulp_new
+ name = "new vulp tail (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "vulptail"
+ ani_state = "vulptail_w"
+ extra_overlay = "vulptail_mark"
+ extra_overlay_w = "vulptail_mark_w"
+
+/datum/sprite_accessory/tail/vulpan_alt
+ name = "vulpkanin alt style, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "vulptail_alt"
+
+/datum/sprite_accessory/tail/otietail
+ name = "otie tail (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "otie"
+ ani_state = "otie_w"
+
+/datum/sprite_accessory/tail/ztail
+ name = "jagged flufftail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "ztail"
+
+/datum/sprite_accessory/tail/sergaltaildc
+ name = "sergal, dual-color"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "sergal"
+ extra_overlay = "sergal_mark"
+
+/datum/sprite_accessory/tail/skunktail
+ name = "skunk, dual-color"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "skunktail"
+ extra_overlay = "skunktail_mark"
+
+/datum/sprite_accessory/tail/deertail
+ name = "deer, dual-color"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "deertail"
+ extra_overlay = "deertail_mark"
+
+/datum/sprite_accessory/tail/deeralt
+ name = "deer alt, colorable (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "deeralt"
+ ani_state = "deeralt_w"
+
+/datum/sprite_accessory/tail/zorgoia
+ name = "Zorgoia tail, dual-color"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "zorgoia"
+ extra_overlay = "zorgoia_fluff"
+ extra_overlay2 = "zorgoia_fluff_top"
+
+/datum/sprite_accessory/tail/shark_finless
+ name = "shark tail, finless (colorable)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "sharktail_finless"
+
+/datum/sprite_accessory/tail/turkey //Would have been a really good thing for Thanksgiving probably but I'm not going to wait that long.
+ name = "turkey"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "turkey"
+
+/datum/sprite_accessory/tail/shark_markings
+ name = "akula tail, colorable, tail and fins"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "sharktail"
+ extra_overlay = "sharktail_markings"
+
+/datum/sprite_accessory/tail/shark_stripes
+ name = "akula tail, colorable, stripe"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "sharktail"
+ extra_overlay = "sharktail_stripemarkings"
+
+/datum/sprite_accessory/tail/shark_tips
+ name = "akula tail, colorable, tips"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "sharktail"
+ extra_overlay = "sharktail_tipmarkings"
+
+/datum/sprite_accessory/tail/narrow_tail
+ name = "feathered narrow tail, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "narrowtail"
+
+/datum/sprite_accessory/tail/narrow_tail2
+ name = "feathered narrow tail, 2 colors"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "narrowtail_2color"
+ extra_overlay = "narrowtail_2color-1"
+
+/datum/sprite_accessory/tail/vale_tail
+ name = "Vale Tail, dual color (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "valetail"
+ ani_state = "valetail_w"
+ extra_overlay = "valetail_mark"
+ extra_overlay_w = "valetail_mark_w"
+
+/datum/sprite_accessory/tail/orca_f
+ name = "Orca tail (Female)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "orca_tail_f"
+ extra_overlay = "orca_tail_markings"
+
+/datum/sprite_accessory/tail/wolf_tail
+ name = "Wolf Tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "wolf_tail"
+
+/datum/sprite_accessory/tail/vulpkanin_alt_color
+ name = "Vulpkanin alt"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "vulpkanin_alt_color"
+ extra_overlay = "vulpkanin_alt_color_tips"
+ ani_state = "vulpkanin_alt_color_w"
+ extra_overlay_w = "vulpkanin_alt_color_tips_w"
+
+/datum/sprite_accessory/tail/raccoon_tail
+ name = "Raccoon gray tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "raccoon_tail"
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/striped_tail
+ name = "Striped tail, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi'
+ icon_state = "stripedtail_colorable"
+ extra_overlay = "stripedtail_colorable_w"
diff --git a/code/modules/mob/new_player/tails/tails_bug.dm b/code/modules/mob/new_player/tails/tails_bug.dm
new file mode 100644
index 00000000000..2597826bbbe
--- /dev/null
+++ b/code/modules/mob/new_player/tails/tails_bug.dm
@@ -0,0 +1,217 @@
+/datum/sprite_accessory/tail/beethorax
+ name = "bee thorax"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "beethorax"
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/buggo
+ name = "Bug abdomen, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_s"
+
+/datum/sprite_accessory/tail/buggobee
+ name = "Bug abdomen, bee top, dual-colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_s"
+ extra_overlay = "buggobee_markings"
+
+/datum/sprite_accessory/tail/buggobeefull
+ name = "Bug abdomen, bee full, dual-colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_s"
+ extra_overlay = "buggobeefull_markings"
+
+/datum/sprite_accessory/tail/buggounder
+ name = "Bug abdomen, underside, dual-colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_s"
+ extra_overlay = "buggounder_markings"
+
+/datum/sprite_accessory/tail/buggofirefly
+ name = "Bug abdomen, firefly, dual-colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_s"
+ extra_overlay = "buggofirefly_markings"
+
+/datum/sprite_accessory/tail/buggofat
+ name = "Fat bug abdomen, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggofat_s"
+
+/datum/sprite_accessory/tail/buggofatbee
+ name = "Fat bug abdomen, bee top, dual-colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggofat_s"
+ extra_overlay = "buggofatbee_markings"
+
+/datum/sprite_accessory/tail/buggofatbeefull
+ name = "Fat bug abdomen, bee full, dual-colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggofat_s"
+ extra_overlay = "buggofatbeefull_markings"
+
+/datum/sprite_accessory/tail/buggofatunder
+ name = "Fat bug abdomen, underside, dual-colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggofat_s"
+ extra_overlay = "buggofatunder_markings"
+
+/datum/sprite_accessory/tail/buggofatfirefly
+ name = "Fat bug abdomen, firefly, dual-colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggofat_s"
+ extra_overlay = "buggofatfirefly_markings"
+
+/datum/sprite_accessory/tail/buggowag
+ name = "Bug abdomen, colorable, vwag change"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_s"
+ ani_state = "buggofat_s"
+
+/datum/sprite_accessory/tail/buggobeewag
+ name = "Bug abdomen, bee top, dual color, vwag"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_s"
+ ani_state = "buggofat_s"
+ extra_overlay = "buggobee_markings"
+ extra_overlay_w = "buggofatbee_markings"
+
+/datum/sprite_accessory/tail/buggobeefullwag
+ name = "Bug abdomen, bee full, dual color, vwag"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_s"
+ ani_state = "buggofat_s"
+ extra_overlay = "buggobeefull_markings"
+ extra_overlay_w = "buggofatbeefull_markings"
+
+/datum/sprite_accessory/tail/buggounderwag
+ name = "Bug abdomen, underside, dual color, vwag"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_s"
+ ani_state = "buggofat_s"
+ extra_overlay = "buggounder_markings"
+ extra_overlay_w = "buggofatunder_markings"
+
+/datum/sprite_accessory/tail/buggofireflywag
+ name = "Bug abdomen, firefly, dual color, vwag"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_s"
+ ani_state = "buggofat_s"
+ extra_overlay = "buggofirefly_markings"
+ extra_overlay_w = "buggofatfirefly_markings"
+
+//Vass buggo variants!
+
+/datum/sprite_accessory/tail/buggovass
+ name = "Bug abdomen, vass, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_vass_s"
+
+/datum/sprite_accessory/tail/buggovassbee
+ name = "Bug abdomen, bee top, dc, vass"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_vass_s"
+ extra_overlay = "buggobee_vass_markings"
+
+/datum/sprite_accessory/tail/buggovassbeefull
+ name = "Bug abdomen, bee full, dc, vass"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_vass_s"
+ extra_overlay = "buggobeefull_vass_markings"
+
+/datum/sprite_accessory/tail/buggovassunder
+ name = "Bug abdomen, underside, dc, vass"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_vass_s"
+ extra_overlay = "buggounder_vass_markings"
+
+/datum/sprite_accessory/tail/buggovassfirefly
+ name = "Bug abdomen, firefly, dc, vass"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_vass_s"
+ extra_overlay = "buggofirefly_vass_markings"
+
+/datum/sprite_accessory/tail/buggovassfat
+ name = "Fat bug abdomen, vass, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggofat_vass_s"
+
+/datum/sprite_accessory/tail/buggovassfatbee
+ name = "Fat bug abdomen, bee top, dc, vass"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggofat_vass_s"
+ extra_overlay = "buggofatbee_vass_markings"
+
+/datum/sprite_accessory/tail/buggovassfatbeefull
+ name = "Fat bug abdomen, bee full, dc, vass"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggofat_vass_s"
+ extra_overlay = "buggofatbeefull_vass_markings"
+
+/datum/sprite_accessory/tail/buggovassfatunder
+ name = "Fat bug abdomen, underside, dc, vass"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggofat_vass_s"
+ extra_overlay = "buggofatunder_vass_markings"
+
+/datum/sprite_accessory/tail/buggovassfatfirefly
+ name = "Fat bug abdomen, firefly, dc, vass"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggofat_vass_s"
+ extra_overlay = "buggofatfirefly_vass_markings"
+
+/datum/sprite_accessory/tail/buggovasswag
+ name = "Bug abdomen, vass, colorable, vwag change"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_vass_s"
+ ani_state = "buggofat_vass_s"
+
+/datum/sprite_accessory/tail/buggovassbeewag
+ name = "Bug abdomen, bee top, dc, vass, vwag"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_vass_s"
+ ani_state = "buggofat_vass_s"
+ extra_overlay = "buggobee_vass_markings"
+ extra_overlay_w = "buggofatbee_vass_markings"
+
+/datum/sprite_accessory/tail/buggovassbeefullwag
+ name = "Bug abdomen, bee full, dc, vass, vwag"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_vass_s"
+ ani_state = "buggofat_vass_s"
+ extra_overlay = "buggobeefull_vass_markings"
+ extra_overlay_w = "buggofatbeefull_vass_markings"
+
+/datum/sprite_accessory/tail/buggovassunderwag
+ name = "Bug abdomen, underside, dc, vass, vwag"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_vass_s"
+ ani_state = "buggofat_vass_s"
+ extra_overlay = "buggounder_vass_markings"
+ extra_overlay_w = "buggofatunder_vass_markings"
+
+/datum/sprite_accessory/tail/buggovassfireflywag
+ name = "Bug abdomen, firefly, dc, vass, vwag"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "buggo_vass_s"
+ ani_state = "buggofat_vass_s"
+ extra_overlay = "buggofirefly_vass_markings"
+ extra_overlay_w = "buggofatfirefly_vass_markings"
+
+/datum/sprite_accessory/tail/small_bugbum
+ name = "Bug Abdomen, Alt, Small (Dual-Color)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "smallbug1"
+ extra_overlay = "smallbug2"
+
+/datum/sprite_accessory/tail/mid_bugbum
+ name = "Bug Abdomen, Alt, Medium (Dual-Color)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "midbug1"
+ extra_overlay = "midbug2"
+
+/datum/sprite_accessory/tail/big_bugbum
+ name = "Bug Abdomen, Alt, Big (Dual-Color)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi'
+ icon_state = "bigbug1"
+ extra_overlay = "bigbug2"
diff --git a/code/modules/mob/new_player/tails/tails_exotic.dm b/code/modules/mob/new_player/tails/tails_exotic.dm
new file mode 100644
index 00000000000..cc890c29208
--- /dev/null
+++ b/code/modules/mob/new_player/tails/tails_exotic.dm
@@ -0,0 +1,136 @@
+/datum/sprite_accessory/tail/alien_slug
+ name = "Alien slug tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "alien_slug"
+ extra_overlay = "alien_slug_markings"
+
+/datum/sprite_accessory/tail/nevreandc
+ name = "nevrean tail, dual-color"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "nevreantail_dc"
+ extra_overlay = "nevreantail_dc_tail"
+
+/datum/sprite_accessory/tail/nevreanwagdc
+ name = "nevrean wagtail, dual-color"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "wagtail"
+ extra_overlay = "wagtail_dc_tail"
+
+/datum/sprite_accessory/tail/nevreanwagdc_alt
+ name = "nevrean wagtail, marked, dual-color"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "wagtail2_dc"
+ extra_overlay = "wagtail2_dc_mark"
+
+/datum/sprite_accessory/tail/spade_color
+ name = "spade-tail (colorable)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ color_blend_mode = ICON_ADD
+ icon_state = "spadetail-black"
+
+/datum/sprite_accessory/tail/succubustail
+ name = "Succubus Tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "Succubustail"
+
+/datum/sprite_accessory/tail/snag
+ name = "xenomorph tail 1"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "snag"
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/xenotail
+ name = "xenomorph tail 2"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "xenotail"
+
+/datum/sprite_accessory/tail/xenotail_fullcolour
+ name = "xenomorph tail (fully colourable)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "xenotail_fullcolour"
+
+/datum/sprite_accessory/tail/xenotailalt_fullcolour
+ name = "xenomorph tail alt. (fully colourable)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "xenotailalt_fullcolour"
+
+/datum/sprite_accessory/tail/xenotail_fullcolour_vwag
+ name = "xenomorph tail (fully colourable, vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "xenotail_fullcolouralt"
+ ani_state = "xenotail_fullcolouralt_w"
+
+/datum/sprite_accessory/tail/lleill
+ name = "Lleill tail"
+ icon = 'icons/mob/species/lleill/tail.dmi'
+ icon_state = "tail"
+ extra_overlay = "tail_marking"
+
+/datum/sprite_accessory/tail/lleill/large
+ name = "Lleill tail, Large"
+ icon_state = "tail2"
+ extra_overlay = "tail2_marking"
+
+/datum/sprite_accessory/tail/lleill/small
+ name = "Lleill tail, Small"
+ icon_state = "tail3"
+ extra_overlay = "tail3_marking"
+
+/datum/sprite_accessory/tail/altevian
+ name = "Altevian Tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "altevian"
+ lower_layer_dirs = list(SOUTH, WEST)
+
+/datum/sprite_accessory/tail/altevian_eyed
+ name = "Eyed Tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "altevian_eyed"
+ extra_overlay = "altevian_eyed2"
+ extra_overlay2 = "altevian_eyed3"
+ lower_layer_dirs = list(SOUTH, WEST)
+
+/datum/sprite_accessory/tail/tailmaw
+ name = "tailmaw, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "tailmaw"
+
+/datum/sprite_accessory/tail/newtailmaw
+ name = "new tailmaw (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "newtailmaw"
+ ani_state = "newtailmaw_w"
+
+/datum/sprite_accessory/tail/shadekin_short
+ name = "Shadekin Short Tail, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "shadekin-short"
+
+/datum/sprite_accessory/tail/tentacle
+ name = "Tentacle, colorable (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "tentacle"
+ ani_state = "tentacle_w"
+
+/datum/sprite_accessory/tail/blade_like_tail
+ name = "Blade-like Tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "blade-like-tail"
+
+/datum/sprite_accessory/tail/anthrovirus_tail
+ name = "Anthro Virus Tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "anthrovirustail_mark"
+ extra_overlay = "anthrovirustail"
+
+/datum/sprite_accessory/tail/tyranid_tail
+ name = "Tyranid"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "tyranid"
+
+/datum/sprite_accessory/tail/chu
+ name = "chu tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi'
+ icon_state = "chu"
+ extra_overlay = "chu_markings"
+ extra_overlay2 = "chu_tipmarkings"
diff --git a/code/modules/mob/new_player/tails/tails_long.dm b/code/modules/mob/new_player/tails/tails_long.dm
new file mode 100644
index 00000000000..6c72ce72955
--- /dev/null
+++ b/code/modules/mob/new_player/tails/tails_long.dm
@@ -0,0 +1,166 @@
+/datum/sprite_accessory/tail/longtail
+ name = DEVELOPER_WARNING_NAME
+ desc = ""
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_long.dmi'
+ offset_x = -16
+ do_colouration = TRUE // Yes color, using tail color
+
+/datum/sprite_accessory/tail/longtail/shadekin_tail
+ name = "Shadekin Tail"
+ icon_state = "shadekin_s"
+
+/datum/sprite_accessory/tail/longtail/shadekin_tail/shadekin_tail_2c
+ name = "Shadekin Tail (dual color)"
+ extra_overlay = "shadekin_markings"
+
+/datum/sprite_accessory/tail/longtail/shadekin_tail/shadekin_tail_long
+ name = "Shadekin Long Tail"
+ icon_state = "shadekin_long_s"
+
+/datum/sprite_accessory/tail/longtail/shadekin_tail/shadekin_tail_fat
+ name = "Shadekin Fat Tail"
+ icon_state = "shadekin_fat_s"
+
+/datum/sprite_accessory/tail/longtail/shadekin_tail/shadekin_tail_fat/spots
+ name = "Shadekin Fat Tail (Spotted)"
+ extra_overlay = "shadekin_fat_spots"
+
+/datum/sprite_accessory/tail/longtail/zaprat
+ name = "bolt-shaped tail, dual color"
+ icon_state = "zaprat_s"
+ extra_overlay = "zaprat_markings"
+
+/datum/sprite_accessory/tail/longtail/zaprat/heart
+ name = "heart-bolt-shaped tail, dual color"
+ icon_state = "zaprat_heart_s"
+ extra_overlay = "zaprat_heart_markings"
+
+/datum/sprite_accessory/tail/longtail/kaiju_tail_a_long
+ name = "Kaiju tail A, dual color"
+ icon_state = "kaiju_long_a"
+ extra_overlay = "kaiju_long_a_spikes"
+
+/datum/sprite_accessory/tail/longtail/kaiju_tail_a_long_glow
+ name = "Kaiju tail A, dual color, glow"
+ icon_state = "kaiju_long_a"
+ extra_overlay = "kaiju_long_a_spikes"
+ extra_overlay2 = "kaiju_long_a_spikes_glow"
+
+/datum/sprite_accessory/tail/longtail/longflufftail
+ name = "Long fluffy tail"
+ icon_state = "longflufftail"
+
+/datum/sprite_accessory/tail/longtail/ringtailbig
+ name = "Long ring tail"
+ icon_state = "bigringtail"
+ extra_overlay = "bigringtail_markings"
+
+/datum/sprite_accessory/tail/longtail/desert_nightstalker
+ name = "Desert Nightstalker Tail (vwag)"
+ icon_state = "nightstalker_desert"
+ ani_state = "nightstalker_desert_w"
+ do_colouration = FALSE // We're not coloring this, these are pre-colored
+
+/datum/sprite_accessory/tail/longtail/diamondback_nightstalker
+ name = "Diamondback Nightstalker Tail (dual-color, vwag)"
+ icon_state = "nightstalker_diamondback"
+ ani_state = "nightstalker_diamondback_w"
+ extra_overlay = "nightstalker_diamondback_markings"
+ extra_overlay_w = "nightstalker_diamondback_markings_w"
+
+/datum/sprite_accessory/tail/longtail/demitesh_fluffytail
+ name = "demi-teshari tail, alternative"
+ icon_state = "demitesh_fluffytail"
+ extra_overlay = "demitesh_fluffytail_marks"
+
+/datum/sprite_accessory/tail/longtail/largeshark
+ name = "Large Shark"
+ icon_state = "large-shark"
+ extra_overlay = "large-shark-underbelly"
+ extra_overlay2 = "large-shark-tips"
+
+/datum/sprite_accessory/tail/longtail/largeshark/finless
+ name = "Large Shark (finless)"
+ icon_state = "large-shark-finless"
+ extra_overlay2 = "large-shark-tips-finless"
+
+/datum/sprite_accessory/tail/longtail/largeshark/stripes
+ name = "Large Shark (striped)"
+ extra_overlay = "large-shark-stripes"
+ extra_overlay2 = "large-shark-stripes-underbelly"
+
+/datum/sprite_accessory/tail/longtail/largeshark/stripes2
+ name = "Large Shark (striped, underbelly)"
+ extra_overlay = "large-shark-underbelly"
+ extra_overlay2 = "large-shark-stripes-underbelly"
+
+/datum/sprite_accessory/tail/longtail/largeshark/stripes/finless
+ name = "Large Shark (striped, finless)"
+ icon_state = "large-shark-finless"
+
+/datum/sprite_accessory/tail/longtail/largeshark/stripes2/finless
+ name = "Large Shark (striped, finless, underbelly)"
+ icon_state = "large-shark-finless"
+
+/datum/sprite_accessory/tail/longtail/flagtail
+ name = "Flagtail"
+ icon = 'icons/rogue-star/tails_64x32_rs.dmi'
+ icon_state = "flagtail"
+ extra_overlay = "flagtail-1"
+ extra_overlay2 = "flagtail-2"
+
+/datum/sprite_accessory/tail/longtail/chonksqrl
+ name = "Squirrel (Big)"
+ icon = 'icons/rogue-star/tails_64x32_rs.dmi'
+ icon_state = "chonksqrl"
+ extra_overlay = "chonksqrl-m1"
+ extra_overlay2 = "chonksqrl-m2"
+
+/datum/sprite_accessory/tail/longtail/qaavos
+ name = "Qaavos Tail"
+ icon_state = "qaavos_tail"
+
+/datum/sprite_accessory/tail/longtail/anteater
+ name = "Anteater tail"
+ icon_state = "anteater_tail"
+
+/datum/sprite_accessory/tail/longtail/brush
+ name = "Snake Tail with Brush"
+ icon_state = "bigsnaketailbrush"
+ extra_overlay = "bigsnaketailbrush_brush"
+
+/datum/sprite_accessory/tail/longtail/brushscutes
+ name = "Snake Tail with Brush and Scutes"
+ icon_state = "bigsnaketailbrushunder"
+ extra_overlay = "bigsnaketailbrushunder_scutes"
+ extra_overlay2 = "bigsnaketailbrush_brush"
+
+/datum/sprite_accessory/tail/longtail/clawscutes
+ name = "Snake Tail with Claw and Scutes"
+ icon_state = "bigsnaketailbrushunder"
+ extra_overlay = "bigsnaketailbrushunder_scutes"
+ extra_overlay2 = "bigsnaketailclaw_claw"
+
+/datum/sprite_accessory/tail/longtail/claw
+ name = "Snake Tail with Claw"
+ icon_state = "bigsnaketailbrush"
+ extra_overlay = "bigsnaketailclaw_claw"
+
+/datum/sprite_accessory/tail/longtail/scug // Wawa
+ name = "Catslug Tail"
+ icon_state = "scug"
+
+/datum/sprite_accessory/tail/longtail/scug/dots
+ name = "Catslug Tail Dotted"
+ extra_overlay = "scug_markings"
+
+/datum/sprite_accessory/tail/longtail/long_lizard
+ name = "Large Dragon Tail"
+ icon_state = "big_liz"
+ hide_body_parts = null
+ clip_mask_icon = null
+ clip_mask_state = null
+
+/datum/sprite_accessory/tail/longtail/long_lizard/scaled
+ name = "Large Dragon Tail/W scales"
+ extra_overlay = "big_liz_mark"
diff --git a/code/modules/mob/new_player/tails/tails_reptile.dm b/code/modules/mob/new_player/tails/tails_reptile.dm
new file mode 100644
index 00000000000..4a583dea903
--- /dev/null
+++ b/code/modules/mob/new_player/tails/tails_reptile.dm
@@ -0,0 +1,130 @@
+/datum/sprite_accessory/tail/chameleon
+ name = "Chameleon, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "chameleon"
+
+/datum/sprite_accessory/tail/dragon
+ name = "dragon, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "dragon"
+
+/datum/sprite_accessory/tail/nightstalker
+ name = "Nightstalker, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "nightstalker"
+
+/datum/sprite_accessory/tail/snaketail
+ name = "snake tail, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "snaketail"
+
+/datum/sprite_accessory/tail/bigsnaketail
+ name = "large snake tail (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "bigsnaketail"
+ ani_state = "bigsnaketail_w"
+
+/datum/sprite_accessory/tail/bigsnaketailstripes
+ name = "large snake tail, striped (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "bigsnaketailstripes"
+ extra_overlay = "bigsnaketailstripes-tips"
+ ani_state = "bigsnaketailstripes_w"
+ extra_overlay_w = "bigsnaketailstripes-tips_w"
+
+/datum/sprite_accessory/tail/bigsnaketailstripes_alt
+ name = "large snake tail, striped, alt (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "bigsnaketailstripesalt"
+ extra_overlay = "bigsnaketailstripesalt-tips"
+ ani_state = "bigsnaketailstripesalt_w"
+ extra_overlay_w = "bigsnaketailstripesalt-tips_w"
+
+/datum/sprite_accessory/tail/bigsnaketaildual
+ name = "large snake tail, dual color (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "bigsnaketaildual"
+ extra_overlay = "bigsnaketaildual-tips"
+ ani_state = "bigsnaketaildual_w"
+ extra_overlay_w = "bigsnaketaildual-tips_w"
+
+/datum/sprite_accessory/tail/bigsnaketailunder
+ name = "large snake tail, under (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "bigsnaketailunder"
+ extra_overlay = "bigsnaketailunder-tips"
+ ani_state = "bigsnaketailunder_w"
+ extra_overlay_w = "bigsnaketailunder-tips_w"
+
+/datum/sprite_accessory/tail/tail_smooth
+ name = "Smooth Lizard Tail, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "tail_smooth"
+ ani_state = "tail_smooth_w"
+
+/datum/sprite_accessory/tail/tail_smooth_dual
+ name = "Smooth Lizard Tail, dual color"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "tail_smooth"
+ extra_overlay = "tail_smooth_markings"
+
+/datum/sprite_accessory/tail/Easterntail
+ name = "Eastern Dragon (Animated)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "Easterntail"
+ extra_overlay = "EasterntailColorTip"
+ ani_state = "Easterntail_w"
+ extra_overlay_w = "EasterntailColorTip_w"
+
+/datum/sprite_accessory/tail/lizard_tail_smooth
+ name = "Lizard Tail (Smooth)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "lizard_tail_smooth"
+
+/datum/sprite_accessory/tail/lizard_tail_dark_tiger
+ name = "Lizard Tail (Dark Tiger)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "lizard_tail_dark_tiger"
+
+/datum/sprite_accessory/tail/lizard_tail_light_tiger
+ name = "Lizard Tail (Light Tiger)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "lizard_tail_light_tiger"
+
+/datum/sprite_accessory/tail/lizard_tail_spiked
+ name = "Lizard Tail (Spiked)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "lizard_tail_spiked"
+
+/datum/sprite_accessory/tail/clubtail
+ name = "dino clubtail, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "clubtail"
+ extra_overlay = "clubtail-1"
+
+/datum/sprite_accessory/tail/spiketail
+ name = "dino spiketail, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "spiketail"
+ extra_overlay = "spiketail-1"
+
+/datum/sprite_accessory/tail/kururak
+ name = "kururak tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "kururak"
+
+/datum/sprite_accessory/tail/snaketail_stripes
+ name = "snake tail with stripes, dual-color"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "snaketail"
+ extra_overlay = "snaketail_stripes"
+
+/datum/sprite_accessory/tail/featheredraptor
+ name = "feathered Raptor"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ icon_state = "feathered_raptor"
+
+/datum/sprite_accessory/tail/featheredraptor/twotone
+ name = "feathered Raptor, dual colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi'
+ extra_overlay = "feather_raptor-overlay"
diff --git a/code/modules/mob/new_player/tails/tails_snowflake.dm b/code/modules/mob/new_player/tails/tails_snowflake.dm
new file mode 100644
index 00000000000..ec68ac78ba8
--- /dev/null
+++ b/code/modules/mob/new_player/tails/tails_snowflake.dm
@@ -0,0 +1,120 @@
+/datum/sprite_accessory/tail/peacocktail_red //this is ckey locked for now, but prettiebyrd wants these tails to be unlocked at a later date
+ name = "Peacock tail (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
+ icon_state = "peacocktail_red"
+ ani_state = "peacocktail_red_w"
+ ckeys_allowed = list("prettiebyrd")
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/peacocktail //ditto
+ name = "Peacock tail, colorable (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
+ icon_state = "peacocktail"
+ ani_state = "peacocktail_w"
+ do_colouration = FALSE
+ ckeys_allowed = list("prettiebyrd")
+
+/datum/sprite_accessory/tail/perrin_tentacles
+ name = "octopus tentacles"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
+ icon_state = "perrintentacles"
+ ckeys_allowed = list("codeme", "siennaathens")
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/kara //SatinIsle fluff item
+ name = "Pterokara Tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
+ icon_state = "kara_tail"
+ ckeys_allowed = list("satinisle")
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/molenar_kitsune
+ name = "quintail kitsune tails (Molenar)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
+ icon_state = "molenar-kitsune"
+ ckeys_allowed = list("molenar")
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/miria_fluffdragon
+ name = "fluffdragon tail (Miria Masters)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
+ icon_state = "miria-fluffdragontail"
+ ckeys_allowed = list("miriamasters")
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/miria_kitsune
+ name = "Black kitsune tails (Miria Masters)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
+ icon_state = "miria-kitsunetail"
+ ckeys_allowed = list("miriamasters")
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/molenar_deathclaw
+ name = "deathclaw bits (Molenar)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
+ icon_state = "molenar-deathclaw"
+ ckeys_allowed = list("molenar","silvertalismen","jertheace")
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/runac
+ name = "fennecsune tails (Runac)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
+ icon_state = "runac"
+ ckeys_allowed = list("rebcom1807")
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/reika //Leaving this since it was too hard to split the wings from the tail.
+ name = "fox tail (+ beewings) (Reika)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
+ icon_state = "reika"
+ ckeys_allowed = list("rikaru19xjenkins")
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/rosey
+ name = "tritail kitsune tails (Rosey)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
+ icon_state = "rosey_three"
+ ckeys_allowed = list("joey4298")
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/rosey2
+ name = "pentatail kitsune tails (Rosey)" //I predict seven tails next. ~CK
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
+ icon_state = "rosey_five"
+ do_colouration = FALSE
+ ckeys_allowed = list("joey4298")
+
+/datum/sprite_accessory/tail/scree
+ name = "green taj tail (Scree)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
+ icon_state = "scree"
+ ckeys_allowed = list("scree")
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/aronai
+ name = "aronai tail (Aronai)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
+ icon_state = "aronai"
+ ckeys_allowed = list("arokha")
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/cabletail
+ name = "cabletail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
+ icon_state = "tuckercabletail"
+ ckeys_allowed = list("tucker0666")
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/featherfluff_tail
+ name = "featherfluff_tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
+ icon_state = "tuckerfeather_tail"
+ ckeys_allowed = list("tucker0666")
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/holly
+ name = "tigress tail (Holly)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi'
+ icon_state = "hoodootail"
+ ckeys_allowed = list("hoodoo")
+ do_colouration = FALSE
diff --git a/code/modules/mob/new_player/tails/tails_synth.dm b/code/modules/mob/new_player/tails/tails_synth.dm
new file mode 100644
index 00000000000..bc415996b18
--- /dev/null
+++ b/code/modules/mob/new_player/tails/tails_synth.dm
@@ -0,0 +1,61 @@
+/datum/sprite_accessory/tail/eboop
+ name = "EGN mech tail (dual color)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_synth.dmi'
+ icon_state = "eboop"
+ extra_overlay = "eboop_mark"
+
+/datum/sprite_accessory/tail/zenghu_taj
+ name = "Zeng-Hu Tajaran Synth tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_synth.dmi'
+ icon_state = "zenghu_taj"
+
+/datum/sprite_accessory/tail/wartacosushi_tail //brightened +20RGB from matching roboparts
+ name = "Ward-Takahashi Tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_synth.dmi'
+ icon_state = "wardtakahashi_vulp"
+
+/datum/sprite_accessory/tail/wartacosushi_tail_dc
+ name = "Ward-Takahashi Tail, dual-color"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_synth.dmi'
+ icon_state = "wardtakahashi_vulp_dc"
+ extra_overlay = "wardtakahashi_vulp_dc_mark"
+
+/datum/sprite_accessory/tail/synthtail_static
+ name = "Synthetic lizard tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_synth.dmi'
+ icon_state = "synthtail"
+
+/datum/sprite_accessory/tail/synthtail_vwag
+ name = "Synthetic lizard tail (vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_synth.dmi'
+ icon_state = "synthtail"
+ ani_state = "synthtail_w"
+
+/datum/sprite_accessory/tail/Plugtail
+ name = "Synthetic plug tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_synth.dmi'
+ icon_state = "Plugtail"
+ extra_overlay = "PlugtailMarking"
+ extra_overlay2 = "PlugtailMarking2"
+
+/datum/sprite_accessory/tail/Segmentedtail
+ name = "Segmented tail, animated"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_synth.dmi'
+ icon_state = "Segmentedtail"
+ extra_overlay = "Segmentedtailmarking"
+ ani_state = "Segmentedtail_w"
+ extra_overlay_w = "Segmentedtailmarking_w"
+
+/datum/sprite_accessory/tail/Segmentedlights
+ name = "Segmented tail, animated synth"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_synth.dmi'
+ icon_state = "Segmentedtail"
+ extra_overlay = "Segmentedlights"
+ ani_state = "Segmentedtail_w"
+ extra_overlay_w = "Segmentedlights_w"
+
+/datum/sprite_accessory/tail/sectdrone_tail
+ name = "Sect Drone Tail (To use with bodytype-marking)"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_synth.dmi'
+ icon_state = "sectdrone_tail"
+ extra_overlay = "sectdrone_tail_mark"
diff --git a/code/modules/mob/new_player/tails/tails_teshari.dm b/code/modules/mob/new_player/tails/tails_teshari.dm
new file mode 100644
index 00000000000..f91700389de
--- /dev/null
+++ b/code/modules/mob/new_player/tails/tails_teshari.dm
@@ -0,0 +1,112 @@
+
+/datum/sprite_accessory/tail/demi_tesh_feathered
+ name = "Demi-Teshari tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "demi-tesh-kit-tail"
+ extra_overlay = "demi-tesh-kit-tail_floof"
+
+/datum/sprite_accessory/tail/bigsnaketeshari
+ name = "Large snake tail, Teshari"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "snaketailteshari"
+
+/datum/sprite_accessory/tail/tesh_feathered
+ name = "Teshari tail"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "teshtail_s"
+ extra_overlay = "teshtail_feathers_s"
+
+/datum/sprite_accessory/tail/teshari_fluffytail
+ name = "Teshari alternative, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "teshari_fluffytail"
+ extra_overlay = "teshari_fluffytail_mark"
+
+/datum/sprite_accessory/tail/tesh_pattern_male
+ name = "Teshari male tail pattern"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "teshtail_s"
+ extra_overlay = "teshpattern_male_tail"
+
+/datum/sprite_accessory/tail/tesh_pattern_male_alt
+ name = "Teshari male tail alt. pattern"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "teshtail_s"
+ extra_overlay = "teshpattern_male_alt"
+
+/datum/sprite_accessory/tail/tesh_pattern_fem
+ name = "Teshari female tail pattern"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "teshtail_s"
+ extra_overlay = "teshpattern_fem_tail"
+
+/datum/sprite_accessory/tail/tesh_pattern_fem_alt
+ name = "Teshari fem tail alt. pattern"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "teshtail_s"
+ extra_overlay = "teshpattern_fem_alt"
+
+//Bug
+/datum/sprite_accessory/tail/teshbeethorax
+ name = "Teshari bee thorax"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "beethorax_tesh"
+ do_colouration = FALSE
+
+/datum/sprite_accessory/tail/teshbuggo
+ name = "Teshari bug abdomen, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "teshbug_s"
+
+/datum/sprite_accessory/tail/teshbuggobee
+ name = "Teshari bug abdomen, bee top, dual-colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "teshbug_s"
+ extra_overlay = "teshbee_markings"
+
+/datum/sprite_accessory/tail/teshbeefull
+ name = "Teshari bug abdomen, bee full, dual-colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "teshbug_s"
+ extra_overlay = "teshbeefull_markings"
+
+/datum/sprite_accessory/tail/teshbuggounder
+ name = "Teshari bug abdomen, underside, dual-colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "teshbug_s"
+ extra_overlay = "teshunder_markings"
+
+/datum/sprite_accessory/tail/teshbuggofirefly
+ name = "Teshari bug abdomen, firefly, dual-colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "teshbug_s"
+ extra_overlay = "teshfirefly_markings"
+
+/datum/sprite_accessory/tail/fatteshbuggo
+ name = "Teshari fat bug abdomen, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "teshbugfat_s"
+
+/datum/sprite_accessory/tail/fatteshbuggobee
+ name = "Teshari fat bug abdomen, bee top, dual-colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "teshbugfat_s"
+ extra_overlay = "teshfatbee_markings"
+
+/datum/sprite_accessory/tail/fatteshbeefull
+ name = "Teshari fat bug abdomen, bee full, dual-colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "teshbugfat_s"
+ extra_overlay = "teshfatbeefull_markings"
+
+/datum/sprite_accessory/tail/fatteshbuggounder
+ name = "Teshari fat bug abdomen, underside, dual-colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "teshbugfat_s"
+ extra_overlay = "teshfatunder_markings"
+
+/datum/sprite_accessory/tail/fatteshbuggofirefly
+ name = "Teshari fat bug abdomen, firefly, dual-colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi'
+ icon_state = "teshbugfat_s"
+ extra_overlay = "teshfatfirefly_markings"
diff --git a/code/modules/mob/new_player/taur/not_taur_legs.dm b/code/modules/mob/new_player/taur/not_taur_legs.dm
new file mode 100644
index 00000000000..ec7838b3083
--- /dev/null
+++ b/code/modules/mob/new_player/taur/not_taur_legs.dm
@@ -0,0 +1,84 @@
+// This is for the Big legs that are NOT TAURIC AND DON'T NEED TO BE INVOLVED IN TAURIC LEGS AAAAAAAA
+// These sprites should really be a seperate leg mode like digitigrade are.
+
+/datum/sprite_accessory/tail/satyr
+ name = "goat legs, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/not_tail_legs.dmi'
+ icon_state = "satyr"
+ 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/human_races/sprite_accessories/biglegs.dmi'
+ clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms.
+
+/datum/sprite_accessory/tail/satyrtail
+ name = "goat legs with tail, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/not_tail_legs.dmi'
+ icon_state = "satyr"
+ 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/human_races/sprite_accessories/biglegs.dmi'
+ clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms.
+ extra_overlay = "horse" //I can't believe this works.
+
+/datum/sprite_accessory/tail/synthetic_stilt_legs
+ name = "synthetic stilt-legs, colorable"
+ icon = 'icons/mob/human_races/sprite_accessories/tails/not_tail_legs.dmi'
+ icon_state = "synth_stilts"
+ extra_overlay = "synth_stilts_marking"
+ 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/human_races/sprite_accessories/biglegs.dmi'
+ clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms.
+
+/datum/sprite_accessory/tail/taur/bigleggy
+ name = "Big Leggies"
+ icon = 'icons/mob/human_races/sprite_accessories/biglegs.dmi'
+ icon_state = "bigleggy"
+ extra_overlay = "bigleggy_markings"
+ vore_tail_sprite_variant = "bigleggy"
+ fullness_icons = 3
+ ani_state = "bigleggy_stanced"
+ extra_overlay_w = "bigleggy_markings_stanced"
+ clip_mask_state = "taur_clip_mask_def" //Leaving this here to make it clear it it's INTENTIONAL it shows above clothes. Use the marking if you want it to show UNDER clothes!
+
+/datum/sprite_accessory/tail/taur/bigleggy/canine
+ name = "Big Leggies (Canine Tail)"
+ extra_overlay2 = "bigleggy_canine"
+ extra_overlay2_w = "bigleggy_canine"
+
+/datum/sprite_accessory/tail/taur/bigleggy/feline
+ name = "Big Leggies (Feline Tail)"
+ extra_overlay2 = "bigleggy_feline"
+ extra_overlay2_w = "bigleggy_feline"
+
+/datum/sprite_accessory/tail/taur/bigleggy/reptile
+ name = "Big Leggies (Reptile Tail)"
+ extra_overlay2 = "bigleggy_reptile"
+ extra_overlay2_w = "bigleggy_reptile"
+
+/datum/sprite_accessory/tail/taur/bigleggy/snake
+ name = "Big Leggies (Snake Tail)"
+ extra_overlay2 = "bigleggy_snake"
+ extra_overlay2_w = "bigleggy_snake"
+
+/datum/sprite_accessory/tail/taur/bigleggy/fox
+ name = "Big Leggies (Fox Tail)"
+ extra_overlay2 = "bigleggy_vulpine"
+ extra_overlay2_w = "bigleggy_vulpine"
+
+/datum/sprite_accessory/tail/taur/bigleggy/bird
+ name = "Big Leggies (Bird)"
+ extra_overlay = "bigleggy_m_bird"
+ extra_overlay2 = "bigleggy_bird"
+ extra_overlay_w = "bigleggy_m_bird_stanced"
+ extra_overlay2_w = "bigleggy_bird"
+
+/datum/sprite_accessory/tail/taur/bigleggy/plug
+ name = "Big Leggies (Plug Tail)"
+ extra_overlay2 = "bigleggy_plug"
+ extra_overlay2_w = "bigleggy_plug"
+
+/datum/sprite_accessory/tail/taur/bigleggy/AlienSlug
+ name = "Big Leggies (Alien Slug Tail)"
+ icon_state = "bigleggy_full_alienslug"
+ extra_overlay = "bigleggy_alienslug"
+ extra_overlay_w = "bigleggy_alienslug"
+ extra_overlay2 = "bigleggy_alienslug_m"
+ extra_overlay2_w = "bigleggy_alienslug_m"
diff --git a/code/modules/mob/new_player/taur/sprite_accessories_taur.dm b/code/modules/mob/new_player/taur/sprite_accessories_taur.dm
new file mode 100644
index 00000000000..fad0baa2b9b
--- /dev/null
+++ b/code/modules/mob/new_player/taur/sprite_accessories_taur.dm
@@ -0,0 +1,156 @@
+/datum/sprite_accessory/tail/taur
+ name = DEVELOPER_WARNING_NAME
+ do_colouration = TRUE // Yes color, using tail color
+ color_blend_mode = ICON_MULTIPLY // The sprites for taurs are designed for ICON_MULTIPLY
+
+ var/can_ride = TRUE //whether we're real rideable taur or just in that category
+ offset_x = -16
+ em_block = TRUE
+
+ var/icon/suit_sprites = null //File for suit sprites, if any.
+ var/icon/under_sprites = null
+
+ var/icon_sprite_tag // This is where we put stuff like _Horse, so we can assign icons easier.
+
+ //Could do nested lists but it started becoming a nightmare. It'd be more fun for lookups of a_intent and m_intent, but then subtypes need to
+ //duplicate all the messages, and it starts getting awkward. These are singletons, anyway!
+
+ //Messages to owner when stepping on/over
+ var/msg_owner_help_walk = "You carefully step over %prey."
+ var/msg_owner_help_run = "You carefully step over %prey."
+ var/msg_owner_harm_walk = "You methodically place your foot down upon %prey's body, slowly applying pressure, crushing them against the floor below!"
+ var/msg_owner_harm_run = "You carelessly step down onto %prey, crushing them!"
+ var/msg_owner_disarm_walk = "You firmly push your foot down on %prey, painfully but harmlessly pinning them to the ground!"
+ var/msg_owner_disarm_run = "You quickly push %prey to the ground with your foot!"
+ var/msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
+ var/msg_owner_grab_success = "You pin %prey down onto the floor with your foot and curl your toes up around their body, trapping them inbetween them!"
+
+ //Messages to prey when stepping on/over
+ var/msg_prey_help_walk = "%owner steps over you carefully!"
+ var/msg_prey_help_run = "%owner steps over you carefully!"
+ var/msg_prey_harm_walk = "%owner methodically places their foot upon your body, slowly applying pressure, crushing you against the floor below!"
+ var/msg_prey_harm_run = "%owner steps carelessly on your body, crushing you!"
+ var/msg_prey_disarm_walk = "%owner firmly pushes their foot down on you, quite painfully but harmlessly pinning you to the ground!"
+ var/msg_prey_disarm_run = "%owner pushes you down to the ground with their foot!"
+ var/msg_prey_grab_fail = "%owner steps down and squishes you with their foot, forcing you down to the ground!"
+ var/msg_prey_grab_success = "%owner pins you down to the floor with their foot and curls their toes up around your body, trapping you inbetween them!"
+
+ //Messages for smalls moving under larges
+ var/msg_owner_stepunder = "%owner runs between your legs." //Weird becuase in the case this is used, %owner is the 'bumper' (src)
+ var/msg_prey_stepunder = "You run between %prey's legs." //Same, inverse
+ hide_body_parts = list(BP_L_LEG, BP_L_FOOT, BP_R_LEG, BP_R_FOOT) //Exclude pelvis just in case.
+ clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms.
+
+/datum/riding/taur
+ keytype = /obj/item/material/twohanded/riding_crop // Crack!
+ nonhuman_key_exemption = FALSE // If true, nonhumans who can't hold keys don't need them, like borgs and simplemobs.
+ key_name = "a riding crop" // What the 'keys' for the thing being rided on would be called.
+ only_one_driver = TRUE // If true, only the person in 'front' (first on list of riding mobs) can drive.
+
+/datum/riding/taur/handle_vehicle_layer()
+ if(ridden.has_buckled_mobs())
+ ridden.layer = initial(ridden.layer)
+ else
+ var/mob/living/L = ridden
+ if(!(istype(L) && (L.status_flags & HIDING)))
+ ridden.layer = initial(ridden.layer)
+
+/datum/riding/taur/ride_check(mob/living/M)
+ var/mob/living/L = ridden
+ if(L.stat)
+ force_dismount(M)
+ return FALSE
+ return TRUE
+
+/datum/riding/taur/force_dismount(mob/M)
+ . = ..()
+ ridden.visible_message(span_notice("[M] stops riding [ridden]!"))
+
+//Hoooo boy.
+/datum/riding/taur/get_offsets(pass_index) // list(dir = x, y, layer)
+ var/mob/living/L = ridden
+ var/scale_x = L.icon_scale_x * L.size_multiplier //VOREStation Edit Start
+ var/scale_y = L.icon_scale_y * L.size_multiplier
+ var/scale_difference = (L.size_multiplier - rider_size) * 10
+
+ var/list/values = list(
+ "[NORTH]" = list(0, 8*scale_y + scale_difference, ABOVE_MOB_LAYER),
+ "[SOUTH]" = list(0, 8*scale_y + scale_difference, BELOW_MOB_LAYER),
+ "[EAST]" = list(-10*scale_x, 8*scale_y + scale_difference, ABOVE_MOB_LAYER),
+ "[WEST]" = list(10*scale_x, 8*scale_y + scale_difference, ABOVE_MOB_LAYER)) //VOREStation Edit End
+
+ return values
+
+//Human overrides for taur riding
+/mob/living/carbon/human
+ max_buckled_mobs = 1 //Yeehaw
+ can_buckle = TRUE
+ buckle_movable = TRUE
+ buckle_lying = FALSE
+
+/mob/living/carbon/human/buckle_mob(mob/living/M, forced = FALSE, check_loc = TRUE)
+ if(forced)
+ return ..() // Skip our checks
+ if(is_incorporeal(src) || is_incorporeal(M))
+ return FALSE
+ if(!istaurtail(tail_style))
+ return FALSE
+ else
+ var/datum/sprite_accessory/tail/taur/taurtype = tail_style
+ if(!taurtype.can_ride)
+ return FALSE
+ if(lying)
+ return FALSE
+ if(!ishuman(M))
+ return FALSE
+ if(M in buckled_mobs)
+ return FALSE
+// if(M.size_multiplier > size_multiplier * 1.2)
+// to_chat(M,span_warning("This isn't a pony show! You need to be bigger for them to ride."))
+// return FALSE
+ if(M.loc != src.loc)
+ if(M.Adjacent(src))
+ M.forceMove(get_turf(src))
+
+ var/mob/living/carbon/human/H = M
+
+ if(istaurtail(H.tail_style))
+ to_chat(src,span_warning("Too many legs. TOO MANY LEGS!!"))
+ return FALSE
+
+ . = ..()
+ if(.)
+ riding_datum.rider_size = M.size_multiplier
+ buckled_mobs[M] = "riding"
+
+/mob/living/carbon/human/MouseDrop_T(mob/living/M, mob/living/user) //Prevention for forced relocation caused by can_buckle. Base proc has no other use.
+ return
+
+/mob/living/carbon/human/proc/taur_mount(mob/living/M in living_mobs(1))
+ set name = "Taur Mount/Dismount"
+ set category = "Abilities.General"
+ set desc = "Let people ride on you."
+
+ if(LAZYLEN(buckled_mobs) && riding_datum)
+ var/datum/riding/R = riding_datum
+ for(var/rider in buckled_mobs)
+ R.force_dismount(rider)
+ return
+ if (stat != CONSCIOUS)
+ return
+ if(!can_buckle || !istype(M) || !M.Adjacent(src) || M.buckled)
+ return
+ if(buckle_mob(M))
+ visible_message(span_notice("[M] starts riding [name]!"))
+
+/mob/living/carbon/human/attack_hand(mob/user as mob)
+ if(LAZYLEN(buckled_mobs) && riding_datum)
+ //We're getting off!
+ if(user in buckled_mobs)
+ riding_datum.force_dismount(user)
+ //We're kicking everyone off!
+ if(user == src)
+ for(var/rider in buckled_mobs)
+ riding_datum.force_dismount(rider)
+ else
+ . = ..()
diff --git a/code/modules/mob/new_player/taur/taur_animal.dm b/code/modules/mob/new_player/taur/taur_animal.dm
new file mode 100644
index 00000000000..0aba39e842c
--- /dev/null
+++ b/code/modules/mob/new_player/taur/taur_animal.dm
@@ -0,0 +1,432 @@
+/datum/sprite_accessory/tail/taur/bunny
+ name = "Bunny (Taur, Fat vwag)"
+ icon = 'icons/rogue-star/tails_64x32_rs.dmi'
+ icon_state = "bnytr"
+ extra_overlay = "bnytr-m1"
+ extra_overlay2 = "bnytr-m2"
+ ani_state = "bnytr-f"
+ extra_overlay_w = "bnytr-m1"
+ extra_overlay2_w = "bnytr-f-m2"
+
+ can_loaf = TRUE
+ icon_loaf = 'icons/rogue-star/loafs_64x32.dmi'
+ loaf_offset = 4
+
+/datum/sprite_accessory/tail/taur/cow
+ name = "Cow (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
+ icon_state = "cow_s"
+ suit_sprites = 'icons/mob/taursuits_cow.dmi'
+ icon_sprite_tag = "cow"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 3
+ vore_tail_sprite_variant = "Cow"
+ fullness_icons = 1
+
+ msg_owner_disarm_run = "You quickly push %prey to the ground with your hoof!"
+ msg_prey_disarm_run = "%owner pushes you down to the ground with their hoof!"
+
+ msg_owner_disarm_walk = "You firmly push your hoof down on %prey, painfully but harmlessly pinning them to the ground!"
+ msg_prey_disarm_walk = "%owner firmly pushes their hoof down on you, quite painfully but harmlessly pinning you to the ground!"
+
+ msg_owner_harm_walk = "You methodically place your hoof down upon %prey's body, slowly applying pressure, crushing them against the floor below!"
+ msg_prey_harm_walk = "%owner methodically places their hoof upon your body, slowly applying pressure, crushing you against the floor below!"
+
+ msg_owner_grab_success = "You pin %prey to the ground before scooping them up with your hooves!"
+ msg_prey_grab_success = "%owner pins you to the ground before scooping you up with their hooves!"
+
+ msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
+ msg_prey_grab_fail = "%owner steps down and squishes you with their hoof, forcing you down to the ground!"
+
+/datum/sprite_accessory/tail/taur/cow/fat
+ name = "Fat Cow (Taur)"
+ icon_state = "fatcow_s"
+
+/datum/sprite_accessory/tail/taur/cow/fat_wag
+ name = "Cow (Taur, Fat vwag)"
+ icon_state = "cow_s"
+ ani_state = "fatcow_s"
+
+/datum/sprite_accessory/tail/taur/cow/paw // this grabs suit sprites from the normal cow, the outline is the same
+ name = "Cow w/ paws (Taur)"
+ icon_state = "pawcow_s"
+ extra_overlay = "pawcow_markings"
+ suit_sprites = 'icons/mob/taursuits_cow.dmi'
+ icon_sprite_tag = "cow"
+
+ msg_owner_disarm_run = "You quickly push %prey to the ground with your paw!"
+ msg_prey_disarm_run = "%owner pushes you down to the ground with their paw!"
+
+ msg_owner_disarm_walk = "You firmly push your paw down on %prey, painfully but harmlessly pinning them to the ground!"
+ msg_prey_disarm_walk = "%owner firmly pushes their paw down on you, quite painfully but harmlessly pinning you to the ground!"
+
+ msg_owner_harm_walk = "You methodically place your paw down upon %prey's body, slowly applying pressure, crushing them against the floor below!"
+ msg_prey_harm_walk = "%owner methodically places their paw upon your body, slowly applying pressure, crushing you against the floor below!"
+
+ msg_owner_grab_success = "You pin %prey to the ground before scooping them up with your paws!"
+ msg_prey_grab_success = "%owner pins you to the ground before scooping you up with their paws!"
+
+ msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
+ msg_prey_grab_fail = "%owner steps down and squishes you with their paw, forcing you down to the ground!"
+
+/datum/sprite_accessory/tail/taur/deer
+ name = "Deer dual-color (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
+ icon_state = "deer_s"
+ extra_overlay = "deer_markings"
+ suit_sprites = 'icons/mob/taursuits_deer.dmi'
+ icon_sprite_tag = "deer"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 7
+ vore_tail_sprite_variant = "Deer"
+ belly_variant_when_loaf = TRUE
+ fullness_icons = 3
+
+ msg_owner_disarm_run = "You quickly push %prey to the ground with your hoof!"
+ msg_prey_disarm_run = "%owner pushes you down to the ground with their hoof!"
+
+ msg_owner_disarm_walk = "You firmly push your hoof down on %prey, painfully but harmlessly pinning them to the ground!"
+ msg_prey_disarm_walk = "%owner firmly pushes their hoof down on you, quite painfully but harmlessly pinning you to the ground!"
+
+ msg_owner_harm_walk = "You methodically place your hoof down upon %prey's body, slowly applying pressure, crushing them against the floor below!"
+ msg_prey_harm_walk = "%owner methodically places their hoof upon your body, slowly applying pressure, crushing you against the floor below!"
+
+ msg_owner_grab_success = "You pin %prey to the ground before scooping them up with your hooves!"
+ msg_prey_grab_success = "%owner pins you to the ground before scooping you up with their hooves!"
+
+ msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
+ msg_prey_grab_fail = "%owner steps down and squishes you with their hoof, forcing you down to the ground!"
+
+/datum/sprite_accessory/tail/taur/deer/deer_wag
+ name = "Deer vwag (Dual-color, Taur, Fat)"
+ icon_state = "deer_s"
+ ani_state = "fatdeer_s"
+ extra_overlay_w = "fatdeer_markings"
+
+/datum/sprite_accessory/tail/taur/deer/fatdeer
+ name = "Fat Deer (Dual-color Taur)"
+ icon_state = "fatdeer_s"
+ extra_overlay = "fatdeer_markings"
+
+/datum/sprite_accessory/tail/taur/feline
+ name = "Feline (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
+ icon_state = "feline_s" //I just want to talk to whomever thought every feline varient needed this same sprite but uniquely renamed...
+ suit_sprites = 'icons/mob/taursuits_deer.dmi'
+ icon_sprite_tag = "feline"
+ extra_overlay = "feline_markings"
+ ani_state = "feline_w"
+ extra_overlay_w = "feline_markings" //Honestly there ought to be a wag overlay, but the ones here are too faint that... nah.
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 5
+ vore_tail_sprite_variant = "Feline"
+ belly_variant_when_loaf = TRUE
+ fullness_icons = 1
+
+/datum/sprite_accessory/tail/taur/feline/fat
+ name = "Fat Feline (Taur)"
+ icon_state = "fatfeline_s"
+ extra_overlay = "fatfeline_markings" //feet, belly, and chest
+ ani_state = "fatfeline_w"
+ extra_overlay_w = "fatfeline_markings"
+ loaf_offset = 3
+
+/datum/sprite_accessory/tail/taur/feline/fat_wag
+ name = "Fat Feline (Taur, Fat vwag)"
+ ani_state = "fatfeline_s" //static fat sprite
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 3
+
+/datum/sprite_accessory/tail/taur/feline/fatfeline_2c
+ name = "Fat Feline 3-color (Taur)"
+ icon_state = "fatfeline_s"
+ extra_overlay = "fatfeline2_markings" // chest and belly
+ extra_overlay2 = "fatfeline2_markings_2" // feet
+ can_loaf = TRUE
+ loaf_offset = 3
+
+/datum/sprite_accessory/tail/taur/feline/feline_2c
+ name = "Feline 3-color (Taur)"
+ icon_state = "feline_s"
+ extra_overlay = "feline2_markings"
+ extra_overlay2 = "feline2_markings_2"
+ //icon_sprite_tag = "feline2c"
+ can_loaf = TRUE
+
+/datum/sprite_accessory/tail/taur/feline/feline_2c_wag
+ name = "Feline 3-color (Taur, Fat vwag)"
+ extra_overlay = "feline2_markings"
+ extra_overlay2 = "feline2_markings_2"
+ ani_state = "fatfeline_s"
+ extra_overlay = "fatfeline2_markings"
+ extra_overlay2 = "fatfeline2_markings_2"
+ loaf_offset = 3
+
+/datum/sprite_accessory/tail/taur/feline/tiger
+ name = "Tiger (Taur)"
+ suit_sprites = 'icons/mob/taursuits_deer.dmi'
+ icon_sprite_tag = "feline"
+ extra_overlay = "feline_markings"
+ extra_overlay2 = "tiger_markings"
+ extra_overlay2_w = "tiger_markings_w"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 5
+ vore_tail_sprite_variant = "Feline"
+ belly_variant_when_loaf = TRUE
+ fullness_icons = 1
+
+/datum/sprite_accessory/tail/taur/feline/tiger/fat
+ name = "Fat Tiger (Taur)"
+ icon_state = "fatfeline_s"
+ extra_overlay = "fatfeline_markings"
+ extra_overlay2 = "fattiger_markings"
+ extra_overlay2_w = "fattiger_markings_w"
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 3
+
+/datum/sprite_accessory/tail/taur/feline/tiger/fat_vwag
+ name = "Tiger (Taur, Fat vwag)"
+ ani_state = "fatfeline_s"
+ extra_overlay_w = "fatfeline_markings"
+ extra_overlay2_w = "fattiger_markings"
+
+/datum/sprite_accessory/tail/taur/fox
+ name = "Fox (Taur, 3-color)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
+ icon_state = "fox"
+ extra_overlay = "fox_markings"
+ extra_overlay2 = "fox_markings2"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ vore_tail_sprite_variant = "F"
+ fullness_icons = 3
+ loaf_offset = 4
+
+/datum/sprite_accessory/tail/taur/fox/kitsune
+ name = "Kitsune (Taur)"
+ icon_state = "kitsune"
+ extra_overlay = "kitsune_markings"
+ extra_overlay2 = "kitsune_markings2"
+
+/datum/sprite_accessory/tail/taur/frog
+ name = "Frog (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
+ icon_state = "frog_s"
+ icon_sprite_tag = "frog"
+
+/datum/sprite_accessory/tail/taur/horse
+ name = "Horse (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
+ icon_state = "horse_s"
+ under_sprites = 'icons/mob/taursuits_horse.dmi'
+ suit_sprites = 'icons/mob/taursuits_horse.dmi'
+ icon_sprite_tag = "horse"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 4
+ vore_tail_sprite_variant = "Horse"
+ fullness_icons = 1
+
+ msg_owner_disarm_run = "You quickly push %prey to the ground with your hoof!"
+ msg_prey_disarm_run = "%owner pushes you down to the ground with their hoof!"
+
+ msg_owner_disarm_walk = "You firmly push your hoof down on %prey, painfully but harmlessly pinning them to the ground!"
+ msg_prey_disarm_walk = "%owner firmly pushes their hoof down on you, quite painfully but harmlessly pinning you to the ground!"
+
+ msg_owner_harm_walk = "You methodically place your hoof down upon %prey's body, slowly applying pressure, crushing them against the floor below!"
+ msg_prey_harm_walk = "%owner methodically places their hoof upon your body, slowly applying pressure, crushing you against the floor below!"
+
+ msg_owner_grab_success = "You pin %prey to the ground before scooping them up with your hooves!"
+ msg_prey_grab_success = "%owner pins you to the ground before scooping you up with their hooves!"
+
+ msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
+ msg_prey_grab_fail = "%owner steps down and squishes you with their hoof, forcing you down to the ground!"
+
+/datum/sprite_accessory/tail/taur/horse/big
+ name = "Kentauri (Taur)"
+ icon_state = "kentauri_s"
+ extra_overlay = "kentauri_markings"
+
+/datum/sprite_accessory/tail/taur/horse/horse_2c
+ name = "Horse & colorable tail (Taur)"
+ extra_overlay = "horse_markings"
+ //icon_sprite_tag = "wolf2c"
+
+/datum/sprite_accessory/tail/taur/otie
+ name = "Otie (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
+ icon_state = "otie_s"
+ extra_overlay = "otie_markings"
+ extra_overlay2 = "otie_markings_2"
+ suit_sprites = 'icons/mob/taursuits_otie.dmi'
+ icon_sprite_tag = "otie"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 5
+ vore_tail_sprite_variant = "Otie"
+ belly_variant_when_loaf = TRUE
+ fullness_icons = 1
+
+/datum/sprite_accessory/tail/taur/rat
+ name = "Rat (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
+ icon_state = "rat_s"
+ extra_overlay = "rat_markings"
+ clip_mask_state = "taur_clip_mask_rat"
+ icon_sprite_tag = "rat"
+
+/datum/sprite_accessory/tail/taur/redpanda
+ name = "Red Panda (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
+ icon_state = "redpanda"
+
+/datum/sprite_accessory/tail/taur/redpanda/dc
+ name = "Red Panda (Taur dual-color)"
+ icon_state = "redpanda_dc"
+ extra_overlay = "redpanda_dc_markings"
+
+/datum/sprite_accessory/tail/taur/sergal/wheaties
+ name = "Sergal (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
+ icon_state = "sergwheat"
+ icon_sprite_tag = "wolf"
+ vore_tail_sprite_variant = "N"
+ fullness_icons = 3
+ struggle_anim = TRUE
+
+/datum/sprite_accessory/tail/taur/sergal/wheaties/fat
+ name = "Fat Sergal (Taur)"
+ icon_state = "fatsergal"
+ icon_sprite_tag = "wolf"
+ vore_tail_sprite_variant = "N"
+ fullness_icons = 3
+ struggle_anim = TRUE
+
+/datum/sprite_accessory/tail/taur/sergal/wheaties_2c
+ name = "Sergal (Taur, dual-color)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
+ icon_state = "sergwheat"
+ extra_overlay = "sergwheat_markings"
+ icon_sprite_tag = "wolf"
+ vore_tail_sprite_variant = "N"
+ fullness_icons = 3
+ struggle_anim = TRUE
+
+/datum/sprite_accessory/tail/taur/sergal/wheaties_2c/fat
+ name = "Fat Sergal (Taur, dual-color)"
+ icon_state = "fatsergal"
+ extra_overlay = "sergwheat_markings"
+ icon_sprite_tag = "wolf"
+ vore_tail_sprite_variant = "N"
+ fullness_icons = 3
+ struggle_anim = TRUE
+
+/datum/sprite_accessory/tail/taur/skunk
+ name = "Skunk (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
+ icon_state = "skunk_s"
+ extra_overlay = "skunk_markings"
+ extra_overlay2 = "skunk_markings_2"
+ icon_sprite_tag = "skunk"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 3
+ vore_tail_sprite_variant = "Skunk" //Sadly there appears to be no sprites... For now!
+ belly_variant_when_loaf = TRUE
+ fullness_icons = 1
+
+/datum/sprite_accessory/tail/taur/wolf
+ name = "Wolf (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
+ icon_state = "wolf_s"
+ under_sprites = 'icons/mob/taursuits_wolf.dmi'
+ suit_sprites = 'icons/mob/taursuits_wolf.dmi'
+ icon_sprite_tag = "wolf"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 4
+ vore_tail_sprite_variant = "N"
+ fullness_icons = 3
+ struggle_anim = TRUE
+
+/datum/sprite_accessory/tail/taur/wolf/fat
+ name = "Fat Wolf (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
+ icon_state = "fatwolf_s"
+ icon_sprite_tag = "wolf" //This could be modified later.
+ loaf_offset = 3
+
+/datum/sprite_accessory/tail/taur/wolf/fat_wag
+ name = "Wolf (Taur, Fat vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
+ icon_state = "wolf_s"
+ ani_state = "fatwolf_s"
+
+/datum/sprite_accessory/tail/taur/wolf/fatwolf_2c
+ name = "Fat Wolf 3-color (Taur)"
+ icon_state = "fatwolf2_s"
+ extra_overlay = "fatwolf2_markings"
+ extra_overlay2 = "fatwolf2_markings_2"
+ loaf_offset = 3
+
+/datum/sprite_accessory/tail/taur/wolf/fatwolf_2c/fatwolfalt
+ name = "Fat Wolf 3-color-alt (Taur)"
+ icon_state = "fatwolfalt_s"
+ extra_overlay = "fatwolfalt_markings1"
+ extra_overlay2 = "fatwolfalt_markings2"
+ icon_sprite_tag = "wolf"
+
+/datum/sprite_accessory/tail/taur/wolf/wolf_2c
+ name = "Wolf 3-color (Taur)"
+ icon_state = "wolf_s"
+ extra_overlay = "wolf_markings"
+ extra_overlay2 = "wolf_markings_2"
+ //icon_sprite_tag = "wolf2c"
+
+/datum/sprite_accessory/tail/taur/wolf/wolf_2c_wag
+ name = "Wolf 3-color (Taur, Fat vwag)"
+ icon_state = "wolf2_s"
+ extra_overlay = "wolf2_markings"
+ extra_overlay2 = "wolf2_markings_2"
+ extra_overlay_w = "fatwolf2_markings"
+ extra_overlay2_w = "fatwolf2_markings_2"
+ ani_state = "fatwolf2_s"
+
+/datum/sprite_accessory/tail/taur/wolf/wolf_3
+ name = "WolfTG (Taur)" //It's Citadel, not TG. :V
+ icon_state = "wolf3_s"
+ do_colouration = FALSE //this is already pre-colored.
+
+/datum/sprite_accessory/tail/taur/wolf/husky
+ name = "Husky (Taur)"
+ icon_state = "husky_s"
+
+/datum/sprite_accessory/tail/taur/wolf/huskyfat
+ name = "Fat Husky (Taur)"
+ icon_state = "huskyf_s"
+
+/datum/sprite_accessory/tail/taur/zorgoia
+ name = "Zorgoia (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
+ icon_state = "zorgoia"
+ extra_overlay = "zorgoia_fluff"
+
+/datum/sprite_accessory/tail/taur/zorgoia/fat
+ name = "Zorgoia (Fat Taur)"
+ extra_overlay = "zorgoia_fat2"
+
+/datum/sprite_accessory/tail/taur/zorgoia_new
+ name = "Zorgoia (Taur) (New)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi'
+ icon_state = "zorgoia_new"
+ extra_overlay = "zorgoia_new_fluff"
+
+/datum/sprite_accessory/tail/taur/zorgoia_new/fat
+ name = "Zorgoia (Fat Taur) (New)"
+ icon_state = "zorgoia_new_fat"
+ extra_overlay = "zorgoia_new_fat_overlay"
diff --git a/code/modules/mob/new_player/taur/taur_exotic.dm b/code/modules/mob/new_player/taur/taur_exotic.dm
new file mode 100644
index 00000000000..97f0ec4b787
--- /dev/null
+++ b/code/modules/mob/new_player/taur/taur_exotic.dm
@@ -0,0 +1,257 @@
+/datum/sprite_accessory/tail/taur/alraune/alraune_2c
+ name = "Alraune (dual color)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi'
+ icon_state = "alraunecolor_s"
+ ani_state = "alraunecolor_closed_s"
+ ckeys_allowed = null
+ do_colouration = TRUE
+ extra_overlay = "alraunecolor_markings"
+ extra_overlay_w = "alraunecolor_closed_markings"
+ clip_mask_state = "taur_clip_mask_alraune"
+ icon_sprite_tag = "alraune"
+
+/datum/sprite_accessory/tail/taur/giantspider
+ name = "Giant Spider (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi'
+ icon_state = "giantspidertaur"
+ do_colouration = FALSE
+ extra_overlay = null
+ icon_sprite_tag = "giantspidertaur"
+
+ msg_owner_disarm_run = "You quickly push %prey to the ground with your leg!"
+ msg_prey_disarm_run = "%owner pushes you down to the ground with their leg!"
+
+ msg_owner_disarm_walk = "You firmly push your leg down on %prey, painfully but harmlessly pinning them to the ground!"
+ msg_prey_disarm_walk = "%owner firmly pushes their leg down on you, quite painfully but harmlessly pinning you to the ground!"
+
+ msg_owner_harm_walk = "You methodically place your leg down upon %prey's body, slowly applying pressure, crushing them against the floor!"
+ msg_prey_harm_walk = "%owner methodically places their leg upon your body, slowly applying pressure, crushing you against the floor!"
+
+ msg_owner_grab_success = "You pin %prey down on the ground with your front leg before using your other leg to pick them up, trapping them between two of your front legs!"
+ msg_prey_grab_success = "%owner pins you down on the ground with their front leg before using their other leg to pick you up, trapping you between two of their front legs!"
+
+ msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
+ msg_prey_grab_fail = "%owner steps down and squishes you with their leg, forcing you down to the ground!"
+
+/datum/sprite_accessory/tail/taur/giantspider/colorable
+ name = "Giant Spider dual-color (Taur)"
+ icon_state = "giantspidertaur-colorable"
+ do_colouration = TRUE
+ extra_overlay = "giantspidertaur-colorable-markings"
+ icon_sprite_tag = "giantspidertaur-colorable"
+
+/datum/sprite_accessory/tail/taur/giantspider/carrier
+ name = "Carrier Spider (Taur)"
+ icon_state = "carrierspidertaur"
+ extra_overlay = null
+ icon_sprite_tag = "carrierspidertaur"
+
+/datum/sprite_accessory/tail/taur/giantspider/phoron
+ name = "Phorogenic Spider (Taur)"
+ icon_state = "phoronspidertaur"
+ extra_overlay = null
+ icon_sprite_tag = "phoronspidertaur"
+
+/datum/sprite_accessory/tail/taur/giantspider/spark
+ name = "Voltaic Spider (Taur)"
+ icon_state = "sparkspidertaur"
+ extra_overlay = null
+ icon_sprite_tag = "sparkspidertaur"
+
+/datum/sprite_accessory/tail/taur/giantspider/frost
+ name = "Frost Spider (Taur)"
+ icon_state = "frostspidertaur"
+ extra_overlay = null
+ icon_sprite_tag = "frostspidertaur"
+
+/datum/sprite_accessory/tail/taur/giantspider/ant //technically not a spider, but it inherits the same messages
+ name = "Ant (dual color)"
+ icon_state = "ant_s"
+ do_colouration = TRUE
+ extra_overlay = "ant_markings"
+ clip_mask_state = "taur_clip_mask_wasp"
+ icon_sprite_tag = "wasp"
+
+/datum/sprite_accessory/tail/taur/giantspider/wasp //same as above, but for wasps
+ name = "Wasp (dual color)"
+ icon_state = "wasp_s"
+ do_colouration = TRUE
+ extra_overlay = "wasp_markings"
+ clip_mask_state = "taur_clip_mask_wasp"
+ icon_sprite_tag = "wasp"
+
+/datum/sprite_accessory/tail/taur/mermaid
+ name = "Mermaid (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi'
+ icon_state = "mermaid_s"
+ can_ride = FALSE
+ icon_sprite_tag = "mermaid"
+
+ msg_owner_help_walk = "You carefully slither around %prey."
+ msg_prey_help_walk = "%owner's huge tail slithers past beside you!"
+
+ msg_owner_help_run = "You carefully slither around %prey."
+ msg_prey_help_run = "%owner's huge tail slithers past beside you!"
+
+ msg_owner_disarm_run = "Your tail slides over %prey, pushing them down to the ground!"
+ msg_prey_disarm_run = "%owner's tail slides over you, forcing you down to the ground!"
+
+ msg_owner_disarm_walk = "You push down on %prey with your tail, pinning them down under you!"
+ msg_prey_disarm_walk = "%owner pushes down on you with their tail, pinning you down below them!"
+
+ msg_owner_harm_run = "Your heavy tail carelessly slides past %prey, crushing them!"
+ msg_prey_harm_run = "%owner quickly goes over your body, carelessly crushing you with their heavy tail!"
+
+ msg_owner_harm_walk = "Your heavy tail slowly and methodically slides down upon %prey, crushing against the floor below!"
+ msg_prey_harm_walk = "%owner's thick, heavy tail slowly and methodically slides down upon your body, mercilessly crushing you into the floor below!"
+
+ msg_owner_grab_success = "You slither over %prey with your large, thick tail, smushing them against the ground before coiling up around them, trapping them within the tight confines of your tail!"
+ msg_prey_grab_success = "%owner slithers over you with their large, thick tail, smushing you against the ground before coiling up around you, trapping you within the tight confines of their tail!"
+
+ msg_owner_grab_fail = "You squish %prey under your large, thick tail, forcing them onto the ground!"
+ msg_prey_grab_fail = "%owner pins you under their large, thick tail, forcing you onto the ground!"
+
+ msg_prey_stepunder = "You jump over %prey's thick tail."
+ msg_owner_stepunder = "%owner bounds over your tail."
+
+/datum/sprite_accessory/tail/taur/mermaid/alt
+ name = "Mermaid Alt. (Taur)"
+ icon_state = "altmermaid_s"
+ icon_sprite_tag = "altmermaid"
+
+/datum/sprite_accessory/tail/taur/mermaid/alt/marked
+ name = "Mermaid Koi (Taur)"
+ icon_state = "altmermaid_s"
+ extra_overlay = "altmermaid_markings"
+ extra_overlay2 = "altmermaid_markings2"
+
+/datum/sprite_accessory/tail/taur/horse/scoli
+ name = "Scolipede (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi'
+ icon_state = "scoli_s"
+ extra_overlay = "scoli_markings1"
+ extra_overlay2 = "scoli_markings2"
+
+/datum/sprite_accessory/tail/taur/spider
+ name = "Spider (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi'
+ icon_state = "spider_s"
+ suit_sprites = 'icons/mob/taursuits_spider.dmi'
+ icon_sprite_tag = "spider"
+
+ msg_owner_disarm_run = "You quickly push %prey to the ground with your leg!"
+ msg_prey_disarm_run = "%owner pushes you down to the ground with their leg!"
+
+ msg_owner_disarm_walk = "You firmly push your leg down on %prey, painfully but harmlessly pinning them to the ground!"
+ msg_prey_disarm_walk = "%owner firmly pushes their leg down on you, quite painfully but harmlessly pinning you to the ground!"
+
+ msg_owner_harm_walk = "You methodically place your leg down upon %prey's body, slowly applying pressure, crushing them against the floor below!"
+ msg_prey_harm_walk = "%owner methodically places their leg upon your body, slowly applying pressure, crushing you against the floor below!"
+
+ msg_owner_grab_success = "You pin %prey down on the ground with your front leg before using your other leg to pick them up, trapping them between two of your front legs!"
+ msg_prey_grab_success = "%owner pins you down on the ground with their front leg before using their other leg to pick you up, trapping you between two of their front legs!"
+
+ msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
+ msg_prey_grab_fail = "%owner steps down and squishes you with their leg, forcing you down to the ground!"
+
+/datum/sprite_accessory/tail/taur/sloog
+ name = "Sloog (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi'
+ icon_state = "sloog"
+ extra_overlay = "sloog_glowstripe"
+ extra_overlay_w = "sloog_glowstripe"
+ can_loaf = FALSE
+
+/datum/sprite_accessory/tail/taur/slug
+ name = "Slug (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi'
+ icon_state = "slug_s"
+ suit_sprites = 'icons/mob/taursuits_deer.dmi' //Yes it sounds odd, but they share the same sprites.
+ icon_sprite_tag = "slug"
+ vore_tail_sprite_variant = "Slug"
+ fullness_icons = 1
+
+ msg_owner_help_walk = "You carefully slither around %prey."
+ msg_prey_help_walk = "%owner's huge tail slithers past beside you!"
+
+ msg_owner_help_run = "You carefully slither around %prey."
+ msg_prey_help_run = "%owner's huge tail slithers past beside you!"
+
+ msg_owner_disarm_run = "Your tail slides over %prey, pushing them down to the ground!"
+ msg_prey_disarm_run = "%owner's tail slides over you, forcing you down to the ground!"
+
+ msg_owner_disarm_walk = "You push down on %prey with your tail, pinning them down under you!"
+ msg_prey_disarm_walk = "%owner pushes down on you with their tail, pinning you down below them!"
+
+ msg_owner_harm_run = "Your heavy tail carelessly slides past %prey, crushing them!"
+ msg_prey_harm_run = "%owner quickly goes over your body, carelessly crushing you with their heavy tail!"
+
+ msg_owner_harm_walk = "Your heavy tail slowly and methodically slides down upon %prey, crushing against the floor below!"
+ msg_prey_harm_walk = "%owner's thick, heavy tail slowly and methodically slides down upon your body, mercilessly crushing you into the floor below!"
+
+ msg_owner_grab_success = "You slither over %prey with your large, thick tail, smushing them against the ground before coiling up around them, trapping them within the tight confines of your tail!"
+ msg_prey_grab_success = "%owner slithers over you with their large, thick tail, smushing you against the ground before coiling up around you, trapping you within the tight confines of their tail!"
+
+ msg_owner_grab_fail = "You squish %prey under your large, thick tail, forcing them onto the ground!"
+ msg_prey_grab_fail = "%owner pins you under their large, thick tail, forcing you onto the ground!"
+
+ msg_prey_stepunder = "You jump over %prey's thick tail."
+ msg_owner_stepunder = "%owner bounds over your tail."
+
+/datum/sprite_accessory/tail/taur/slug/snail
+ name = "Snail (Taur)"
+ icon_state = "slug_s"
+ extra_overlay = "snail_shell_marking"
+
+/datum/sprite_accessory/tail/taur/tents
+ name = "Tentacles (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi'
+ icon_state = "tent_s"
+ icon_sprite_tag = "tentacle"
+ can_ride = 0
+
+ msg_prey_stepunder = "You run between %prey's tentacles."
+ msg_owner_stepunder = "%owner runs between your tentacles."
+
+ msg_owner_disarm_run = "You quickly push %prey to the ground with some of your tentacles!"
+ msg_prey_disarm_run = "%owner pushes you down to the ground with some of their tentacles!"
+
+ msg_owner_disarm_walk = "You push down on %prey with some of your tentacles, pinning them down firmly under you!"
+ msg_prey_disarm_walk = "%owner pushes down on you with some of their tentacles, pinning you down firmly below them!"
+
+ msg_owner_harm_run = "Your tentacles carelessly slide past %prey, crushing them!"
+ msg_prey_harm_run = "%owner quickly goes over your body, carelessly crushing you with their tentacles!"
+
+ msg_owner_harm_walk = "Your tentacles methodically apply pressure on %prey's body, crushing them against the floor below!"
+ msg_prey_harm_walk = "%owner's thick tentacles methodically apply pressure on your body, crushing you into the floor below!"
+
+ msg_owner_grab_success = "You slide over %prey with your tentacles, smushing them against the ground before wrapping one up around them, trapping them within the tight confines of your tentacles!"
+ msg_prey_grab_success = "%owner slides over you with their tentacles, smushing you against the ground before wrapping one up around you, trapping you within the tight confines of their tentacles!"
+
+ msg_owner_grab_fail = "You step down onto %prey with one of your tentacles, forcing them onto the ground!"
+ msg_prey_grab_fail = "%owner steps down onto you with one of their tentacles, squishing you and forcing you onto the ground!"
+
+/datum/sprite_accessory/tail/taur/tents/thick
+ name = "Thick Tentacles (Taur)"
+ icon_state = "tentacle_s"
+ can_ride = FALSE
+ icon_sprite_tag = "thick_tentacles"
+
+/datum/sprite_accessory/tail/taur/treeoak_roots
+ name = "Tree Roots (Oak)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi'
+ icon_state = "tree_oak_roots"
+ can_ride = FALSE
+
+/*
+/datum/sprite_accessory/tail/taur/teppi // Mostly used as example/template/test subject as to how you use the 'big' taur sprites. Pls give it better icons before uncommenting...
+ name = "Teppi (Taur)"
+ icon_state = "teppi_s"
+ clip_mask_icon = 'icons/mob/vore/taurs128x64.dmi'
+ icon = 'icons/mob/vore/taurs128x64.dmi'
+ clip_mask_state = "taur_clip_mask_teppi"
+ icon_sprite_tag = "teppi"
+ offset_x = -32
+ offset_y = -11
+ mob_offset_y = 11
+*/
diff --git a/code/modules/mob/new_player/taur/taur_reptile.dm b/code/modules/mob/new_player/taur/taur_reptile.dm
new file mode 100644
index 00000000000..aef6dd538da
--- /dev/null
+++ b/code/modules/mob/new_player/taur/taur_reptile.dm
@@ -0,0 +1,288 @@
+/datum/sprite_accessory/tail/taur/drake //Enabling on request, no suit compatibility but then again see 2 above.
+ name = "Drake (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_reptile.dmi'
+ icon_state = "drake_s"
+ extra_overlay = "drake_markings"
+/// suit_sprites = 'icons/mob/taursuits_drake.dmi'
+ suit_sprites = 'icons/mob/taursuits_drake_ch.dmi'
+ icon_sprite_tag = "drake"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 6
+ vore_tail_sprite_variant = "Drake"
+ belly_variant_when_loaf = TRUE
+ fullness_icons = 3
+
+/datum/sprite_accessory/tail/taur/drake/fat
+ name = "Fat Drake (Taur)"
+ icon_state = "fatdrake_s"
+ extra_overlay = "fatdrake_markings"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 6
+
+/datum/sprite_accessory/tail/taur/drake/drake_vwag
+ name = "Drake (Taur, Fat vwag)"
+ icon_state = "drake_s"
+ extra_overlay = "drake_markings"
+ ani_state = "fatdrake_s"
+ extra_overlay_w = "fatdrake_markings"
+ can_loaf = TRUE
+
+/datum/sprite_accessory/tail/taur/drake/extended
+ name = "Fat Drake Extended (Taur)"
+ icon_state = "extended_fatdrake"
+ extra_overlay = "extended_fatdrake_markings"
+ extra_overlay2 = "extended_fatdrake_markings2"
+ fullness_icons = 2
+ can_loaf = TRUE //Soon //Actually, NOW
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
+ loaf_offset = 5
+
+/datum/sprite_accessory/tail/taur/drake/extended/spotty
+ name = "Fat Spotted Drake Extended (Taur)"
+ vore_tail_sprite_variant = "FatDrake"
+ icon_state = "spottedextended_fatdrake"
+ extra_overlay = "spottedextended_fatdrake_markings"
+ extra_overlay_w = "spottedextended_fatdrake_markings"
+ extra_overlay2 = "spottedextended_fatdrake_markings_2"
+ extra_overlay2_w = "spottedextended_fatdrake_markings_2"
+ fullness_icons = 2
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
+ loaf_offset = 5
+
+/datum/sprite_accessory/tail/taur/drake/spotty
+ name = "Spotted Drake (Taur, Tricolor)"
+ icon_state = "spotteddrake_s"
+ extra_overlay = "spotteddrake_markings"
+ extra_overlay_w = "spotteddrake_markings"
+ extra_overlay2 = "spotteddrake_markings_2"
+ extra_overlay2_w = "spotteddrake_markings_2"
+ suit_sprites = 'icons/mob/taursuits_drake_ch.dmi'
+ icon_sprite_tag = "drake"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
+ loaf_offset = 6
+
+/datum/sprite_accessory/tail/taur/drake/fat/spotty
+ name = "Fat Spotted Drake (Taur, Tricolor)"
+ vore_tail_sprite_variant = "FatDrake"
+ icon_state = "fatspotteddrake_s"
+ extra_overlay = "fatspotteddrake_markings"
+ extra_overlay_w = "fatspotteddrake_markings"
+ extra_overlay2 = "fatspotteddrake_markings_2"
+ extra_overlay2_w = "fatspotteddrake_markings_2"
+ fullness_icons = 2
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
+ loaf_offset = 6
+
+/datum/sprite_accessory/tail/taur/drake/extended_alt
+ name = "Drake Extended (Taur)"
+ vore_tail_sprite_variant = "Drake"
+ icon_state = "extended_drake"
+ extra_overlay = "extended_drake_markings"
+ extra_overlay_w = "extended_drake_markings"
+ extra_overlay2 = "extended_drake_markings_2"
+ extra_overlay2_w = "extended_drake_markings_2"
+ fullness_icons = 3
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 5
+
+/datum/sprite_accessory/tail/taur/drake/extended_alt/spotted
+ name = "Spotted Drake Extended (Taur)"
+ vore_tail_sprite_variant = "Drake"
+ icon_state = "spottedextended_drake"
+ extra_overlay = "spottedextended_drake_markings"
+ extra_overlay_w = "spottedextended_drake_markings"
+ extra_overlay2 = "spottedextended_drake_markings_2"
+ extra_overlay2_w = "spottedextended_drake_markings_2"
+ fullness_icons = 3
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
+ loaf_offset = 5
+
+/datum/sprite_accessory/tail/taur/lizard
+ name = "Lizard (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_reptile.dmi'
+ icon_state = "lizard_s"
+ suit_sprites = 'icons/mob/taursuits_lizard_ch.dmi'
+ icon_sprite_tag = "lizard"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 5
+ vore_tail_sprite_variant = "Lizard"
+ fullness_icons = 1
+
+/datum/sprite_accessory/tail/taur/lizard/fatlizard
+ name = "Fat Lizard (Taur)"
+ icon_state = "fatlizard_s"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 3
+
+/datum/sprite_accessory/tail/taur/lizard/lizard_wag
+ name = "Lizard (Taur, Fat vwag)"
+ icon_state = "lizard_s"
+ ani_state = "fatlizard_s"
+
+/datum/sprite_accessory/tail/taur/lizard/lizard_2c
+ name = "Lizard dual-color (Taur)"
+ icon_state = "lizard_s"
+ extra_overlay = "lizard_markings"
+ //icon_sprite_tag = "lizard2c"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 5
+
+/datum/sprite_accessory/tail/taur/lizard/fatlizard_2c
+ name = "Fat Lizard (Taur, dual-color)"
+ icon_state = "fatlizard_s"
+ extra_overlay = "fatlizard_markings"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 3
+
+/datum/sprite_accessory/tail/taur/lizard/lizard_2c_wag
+ name = "Fat Lizard (Taur, dual-color, Fat vwag)"
+ icon_state = "lizard_s"
+ extra_overlay = "lizard_markings"
+ ani_state = "fatlizard_s"
+ extra_overlay_w = "fatlizard_markings"
+
+/datum/sprite_accessory/tail/taur/lizard/spotty
+ name = "Spotted Lizard (Taur, Tricolor)"
+ icon_state = "spottedlizard_s"
+ extra_overlay = "spottedlizard_markings"
+ extra_overlay_w = "spottedlizard_markings"
+ extra_overlay2 = "spottedlizard_markings_2"
+ extra_overlay2_w = "spottedlizard_markings_2"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
+ loaf_offset = 5
+
+/datum/sprite_accessory/tail/taur/lizard/spotty_fat
+ name = "Fat Spotted Lizard (Taur, Tricolor)"
+ icon_state = "fatspottedlizard_s"
+ extra_overlay = "fatspottedlizard_markings"
+ extra_overlay_w = "fatspottedlizard_markings"
+ extra_overlay2 = "fatspottedlizard_markings_2"
+ extra_overlay2_w = "fatspottedlizard_markings_2"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi' //This file needs to be nuked during the removal of 'taurs_ch_loaf.dmi' into the normal loaf file.
+ loaf_offset = 3
+
+/datum/sprite_accessory/tail/taur/naga
+ name = "Naga (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_reptile.dmi'
+ icon_state = "naga_s"
+ suit_sprites = 'icons/mob/taursuits_naga.dmi'
+ //icon_sprite_tag = "naga"
+ vore_tail_sprite_variant = "Naga"
+ fullness_icons = 1
+
+ msg_owner_help_walk = "You carefully slither around %prey."
+ msg_prey_help_walk = "%owner's huge tail slithers past beside you!"
+
+ msg_owner_help_run = "You carefully slither around %prey."
+ msg_prey_help_run = "%owner's huge tail slithers past beside you!"
+
+ msg_owner_disarm_run = "Your tail slides over %prey, pushing them down to the ground!"
+ msg_prey_disarm_run = "%owner's tail slides over you, forcing you down to the ground!"
+
+ msg_owner_disarm_walk = "You push down on %prey with your tail, pinning them down under you!"
+ msg_prey_disarm_walk = "%owner pushes down on you with their tail, pinning you down below them!"
+
+ msg_owner_harm_run = "Your heavy tail carelessly slides past %prey, crushing them!"
+ msg_prey_harm_run = "%owner quickly goes over your body, carelessly crushing you with their heavy tail!"
+
+ msg_owner_harm_walk = "Your heavy tail slowly and methodically slides down upon %prey, crushing against the floor below!"
+ msg_prey_harm_walk = "%owner's thick, heavy tail slowly and methodically slides down upon your body, mercilessly crushing you into the floor below!"
+
+ msg_owner_grab_success = "You slither over %prey with your large, thick tail, smushing them against the ground before coiling up around them, trapping them within the tight confines of your tail!"
+ msg_prey_grab_success = "%owner slithers over you with their large, thick tail, smushing you against the ground before coiling up around you, trapping you within the tight confines of their tail!"
+
+ msg_owner_grab_fail = "You squish %prey under your large, thick tail, forcing them onto the ground!"
+ msg_prey_grab_fail = "%owner pins you under their large, thick tail, forcing you onto the ground!"
+
+ msg_prey_stepunder = "You jump over %prey's thick tail."
+ msg_owner_stepunder = "%owner bounds over your tail."
+
+/datum/sprite_accessory/tail/taur/naga/fat
+ name = "Naga (Taur, Fat, dual color)"
+ icon_state = "fatnaga_s"
+ extra_overlay = "fatnaga_markings"
+ suit_sprites = null
+
+/datum/sprite_accessory/tail/taur/naga/naga_2c
+ name = "Naga dual-color (Taur)"
+ icon_state = "naga_s"
+ extra_overlay = "naga_markings"
+ //icon_sprite_tag = "naga2c"
+
+/datum/sprite_accessory/tail/taur/naga/alt
+ name = "Naga alt (Taur)"
+ icon_state = "naga_alt_s"
+ vore_tail_sprite_variant = "NagaAlt"
+ fullness_icons = 1
+
+/datum/sprite_accessory/tail/taur/naga/alt/second
+ name = "Naga dual-color alt (Taur)"
+ extra_overlay = "naga_alt_markings"
+
+/datum/sprite_accessory/tail/taur/naga/alt_2c
+ name = "Naga alt style dual-color (Taur)"
+ suit_sprites = 'icons/mob/taursuits_naga.dmi' //TODO: PORT CHOMPS NAGA_ALT AND MAKE THESE NAGA_ALT.
+ icon_state = "altnaga_s"
+ extra_overlay = "altnaga_markings"
+ //icon_sprite_tag = "altnaga2c"
+
+/datum/sprite_accessory/tail/taur/naga/alt_3c
+ name = "Naga alt style tri-color (Taur)"
+ suit_sprites = 'icons/mob/taursuits_naga.dmi' //TODO: PORT CHOMPS NAGA_ALT AND MAKE THESE NAGA_ALT.
+ icon_state = "altnaga_s"
+ extra_overlay = "altnaga_markings"
+ extra_overlay2 = "altnaga_stripes"
+
+/datum/sprite_accessory/tail/taur/naga/alt_3c_rattler
+ name = "Naga alt style tri-color, rattler (Taur)"
+ suit_sprites = 'icons/mob/taursuits_naga.dmi' //TODO: PORT CHOMPS NAGA_ALT AND MAKE THESE NAGA_ALT.
+ icon_state = "altnaga_s"
+ extra_overlay = "altnaga_markings"
+ extra_overlay2 = "altnaga_rattler"
+
+/datum/sprite_accessory/tail/taur/naga/alt_3c_tailmaw
+ name = "Naga alt style tri-color, tailmaw (Taur)"
+ suit_sprites = 'icons/mob/taursuits_naga.dmi' //TODO: PORT CHOMPS NAGA_ALT AND MAKE THESE NAGA_ALT.
+ icon_state = "altnagatailmaw_s"
+ extra_overlay = "altnagatailmaw_markings"
+ extra_overlay2 = "altnagatailmaw_eyes"
+
+/datum/sprite_accessory/tail/taur/noodle
+ name = "Eastern Dragon (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_reptile.dmi'
+ icon_state = "noodle_s"
+ extra_overlay = "noodle_markings"
+ extra_overlay2 = "noodle_markings_2"
+ suit_sprites = 'icons/mob/taursuits_noodle.dmi'
+ clip_mask_state = "taur_clip_mask_noodle"
+ icon_sprite_tag = "noodle"
+
+/datum/sprite_accessory/tail/taur/teshari // chickenbutt
+ name = "Teshari dual-color (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_teshari.dmi'
+ icon_loaf = 'icons/mob/vore/taurs_teshari_loaf.dmi'
+ icon_state = "tesh"
+ icon_sprite_tag = "tesh"
+ extra_overlay = "tesh_markings"
+ can_loaf = TRUE
+ belly_variant_when_loaf = TRUE
+ loaf_offset = 4
+ fullness_icons = 1
+ vore_tail_sprite_variant = "Tesh"
+
+/datum/sprite_accessory/tail/taur/teshari/alt
+ name = "Teshari dual-color Alt (Taur)"
+ extra_overlay = "tesh_markings_alt"
diff --git a/code/modules/mob/new_player/taur/taur_snowflake.dm b/code/modules/mob/new_player/taur/taur_snowflake.dm
new file mode 100644
index 00000000000..a199be11013
--- /dev/null
+++ b/code/modules/mob/new_player/taur/taur_snowflake.dm
@@ -0,0 +1,93 @@
+// Special snowflake tails/taurhalves
+
+//spoopylizz: Roiz Lizden
+/datum/sprite_accessory/tail/taur/roiz_long_lizard // Not ACTUALLY a taur, but it uses 64x32 so it wouldn't fit in tails.dmi, and having it as a tail bugs up the sprite.
+ name = "Long Lizard Tail (Roiz Lizden)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_snowflake.dmi'
+ icon_state = "roiz_tail_s"
+ do_colouration = FALSE
+ ckeys_allowed = list("spoopylizz")
+ hide_body_parts = null
+ clip_mask_icon = null
+ clip_mask_state = null
+
+//grallstonefist: Ranihrönn Skrolk
+/datum/sprite_accessory/tail/taur/altmermaid/orcamermaid
+ name = "Mermaid Orca (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_snowflake.dmi'
+ icon_state = "orcamermaid_s"
+ can_ride = TRUE
+ do_colouration = FALSE
+ ckeys_allowed = list("grallstonefist")
+
+//wickedtemp: Chakat Tempest
+/datum/sprite_accessory/tail/taur/feline/tempest
+ name = "Feline (wickedtemp) (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_snowflake.dmi'
+ icon_state = "tempest_s"
+ ckeys_allowed = list("wickedtemp")
+ can_loaf = FALSE
+
+//silencedmp5a5: Serdykov Antoz
+/datum/sprite_accessory/tail/taur/wolf/serdy
+ name = "CyberSerdy (silencedmp5a5) (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_snowflake.dmi'
+ icon_state = "serdy_s"
+ ckeys_allowed = list("silencedmp5a5")
+ can_loaf = FALSE
+
+//liquidfirefly: Ariana Scol
+/datum/sprite_accessory/tail/taur/centipede
+ name = "Centipede (liquidfirefly) (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_snowflake.dmi'
+ icon_state = "ariana_s"
+ ckeys_allowed = list("liquidfirefly")
+ do_colouration = FALSE
+
+ msg_owner_disarm_run = "You quickly push %prey to the ground with your leg!"
+ msg_prey_disarm_run = "%owner pushes you down to the ground with their leg!"
+
+ msg_owner_disarm_walk = "You firmly push your leg down on %prey, painfully but harmlessly pinning them to the ground!"
+ msg_prey_disarm_walk = "%owner firmly pushes their leg down on you, quite painfully but harmlessly pinning you to the ground!"
+
+ msg_owner_harm_walk = "You methodically place your leg down upon %prey's body, slowly applying pressure, crushing them against the floor below!"
+ msg_prey_harm_walk = "%owner methodically places their leg upon your body, slowly applying pressure, crushing you against the floor below!"
+
+ msg_owner_grab_success = "You pin %prey down on the ground with your front leg before using your other leg to pick them up, trapping them between two of your front legs!"
+ msg_prey_grab_success = "%owner pins you down on the ground with their front leg before using their other leg to pick you up, trapping you between two of their front legs!"
+
+ msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
+ msg_prey_grab_fail = "%owner steps down and squishes you with their leg, forcing you down to the ground!"
+
+//natje:
+/datum/sprite_accessory/tail/taur/alraune
+ name = "Alraune (natje) (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_snowflake.dmi'
+ icon_state = "alraune_s"
+ ani_state = "alraune_closed_s"
+ ckeys_allowed = list("natje")
+ do_colouration = FALSE
+ can_ride = FALSE
+ clip_mask_state = "taur_clip_mask_alraune"
+
+
+ msg_prey_stepunder = "You run between %prey's vines."
+ msg_owner_stepunder = "%owner runs between your vines."
+
+ msg_owner_disarm_run = "You quickly push %prey to the ground with some of your vines!"
+ msg_prey_disarm_run = "%owner pushes you down to the ground with some of their vines!"
+
+ msg_owner_disarm_walk = "You push down on %prey with some of your vines, pinning them down firmly under you!"
+ msg_prey_disarm_walk = "%owner pushes down on you with some of their vines, pinning you down firmly below them!"
+
+ msg_owner_harm_run = "Your vines carelessly slide past %prey, crushing them!"
+ msg_prey_harm_run = "%owner quickly goes over your body, carelessly crushing you with their vines!"
+
+ msg_owner_harm_walk = "Your vines methodically apply pressure on %prey's body, crushing them against the floor below!"
+ msg_prey_harm_walk = "%owner's thick vines methodically apply pressure on your body, crushing you into the floor below!"
+
+ msg_owner_grab_success = "You slide over %prey with your vines, smushing them against the ground before wrapping one up around them, trapping them within the tight confines of your vines!"
+ msg_prey_grab_success = "%owner slides over you with their vines, smushing you against the ground before wrapping one up around you, trapping you within the tight confines of their vines!"
+
+ msg_owner_grab_fail = "You step down onto %prey with one of your vines, forcing them onto the ground!"
+ msg_prey_grab_fail = "%owner steps down onto you with one of their vines, squishing you and forcing you onto the ground!"
diff --git a/code/modules/mob/new_player/taur/taur_synth.dm b/code/modules/mob/new_player/taur/taur_synth.dm
new file mode 100644
index 00000000000..dfa1da1ec03
--- /dev/null
+++ b/code/modules/mob/new_player/taur/taur_synth.dm
@@ -0,0 +1,185 @@
+/datum/sprite_accessory/tail/taur/sectdrone
+ name = "Sect Drone (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "sectdrone"
+ extra_overlay = "sectdrone_markings"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ vore_tail_sprite_variant = "SectDrone"
+ belly_variant_when_loaf = TRUE
+ struggle_anim = TRUE
+ loaf_offset = 3
+ fullness_icons = 3
+
+ msg_owner_disarm_run = "You quickly push %prey to the ground with your leg!"
+ msg_prey_disarm_run = "%owner pushes you down to the ground with their leg!"
+
+ msg_owner_disarm_walk = "You firmly push your leg down on %prey, painfully but harmlessly pinning them to the ground!"
+ msg_prey_disarm_walk = "%owner firmly pushes their leg down on you, quite painfully but harmlessly pinning you to the ground!"
+
+ msg_owner_harm_walk = "You methodically place your leg down upon %prey's body, slowly applying pressure, crushing them against the floor!"
+ msg_prey_harm_walk = "%owner methodically places their leg upon your body, slowly applying pressure, crushing you against the floor!"
+
+ msg_owner_grab_success = "You pin %prey down on the ground with your front leg before using your other leg to pick them up, trapping them between two of your front legs!"
+ msg_prey_grab_success = "%owner pins you down on the ground with their front leg before using their other leg to pick you up, trapping you between two of their front legs!"
+
+ msg_owner_grab_fail = "You step down onto %prey, squishing them and forcing them down to the ground!"
+ msg_prey_grab_fail = "%owner steps down and squishes you with their leg, forcing you down to the ground!"
+
+/datum/sprite_accessory/tail/taur/sect_drone/drone_wag
+ name = "Sect Drone (Taur, Fat vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "sect_drone"
+ extra_overlay = "sect_drone_markings"
+ ani_state = "fat_sect_drone"
+ extra_overlay_w = "fat_sect_drone_markings"
+ icon_sprite_tag = "sect_drone"
+
+/datum/sprite_accessory/tail/taur/sect_drone/fat
+ name = "Fat Sect Drone (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "fat_sect_drone"
+ extra_overlay = "fat_sect_drone_markings"
+ icon_sprite_tag = "sect_drone"
+
+/datum/sprite_accessory/tail/taur/horse/synthhorse
+ name = "SynthHorse dual-color (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "synthhorse_s"
+ extra_overlay = "synthhorse_markings"
+ extra_overlay2 = "synthhorse_glow"
+ //icon_sprite_tag = "synthhorse"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 3
+
+/datum/sprite_accessory/tail/taur/feline/synthfeline
+ name = "SynthFeline dual-color (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "synthfeline_s"
+ extra_overlay = "synthfeline_markings"
+ extra_overlay2 = "synthfeline_glow"
+ //icon_sprite_tag = "synthfeline"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 3
+
+/datum/sprite_accessory/tail/taur/feline/fatsynthfeline
+ name = "Fat SynthFeline dual-color (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "fatsynthfeline_s"
+ extra_overlay = "fatsynthfeline_markings"
+ extra_overlay2 = "fatsynthfeline_glow"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 3
+
+/datum/sprite_accessory/tail/taur/feline/synthfeline_wag
+ name = "SynthFeline dual-color (Taur, Fat vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "synthfeline_s"
+ extra_overlay = "synthfeline_markings"
+ extra_overlay2 = "synthfeline_glow"
+ ani_state = "fatsynthfeline_s"
+ extra_overlay_w = "fatsynthfeline_markings"
+ extra_overlay2_w = "fatsynthfeline_glow"
+
+/datum/sprite_accessory/tail/taur/synthetic/syntheticagi
+ name = "Synthetic chassis - agile (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "synthtaur1_s"
+ extra_overlay = "synthtaur1_markings"
+ extra_overlay2 = "synthtaur1_glow"
+ clip_mask_state = "taur_clip_mask_synthtaur1"
+
+/datum/sprite_accessory/tail/taur/synthetic/syntheticagi_fat
+ name = "Synthetic chassis - agile (Taur, Fat)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "synthtaur1_s"
+ extra_overlay = "synthtaur1_fat_markings"
+ extra_overlay2 = "synthtaur1_glow"
+ clip_mask_state = "taur_clip_mask_synthtaur1"
+
+/datum/sprite_accessory/tail/taur/synthetic/syntheticagi_wag
+ name = "Synthetic chassis - agile (Taur, Fat vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "synthtaur1_s"
+ extra_overlay = "synthtaur1_markings"
+ extra_overlay2 = "synthtaur1_glow"
+ ani_state = "synthtaur1_s"
+ extra_overlay_w = "synthtaur1_fat_markings"
+ extra_overlay2_w = "synthtaur1_glow"
+ clip_mask_state = "taur_clip_mask_synthtaur1"
+
+/datum/sprite_accessory/tail/taur/lizard/synthlizard
+ name = "SynthLizard dual-color (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "synthlizard_s"
+ extra_overlay = "synthlizard_markings"
+ extra_overlay2 = "synthlizard_glow"
+ //icon_sprite_tag = "synthlizard"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 3
+ vore_tail_sprite_variant = "SynthLiz"
+ fullness_icons = 1
+
+/datum/sprite_accessory/tail/taur/lizard/fatsynthlizard
+ name = "Fat SynthLizard dual-color (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "fatsynthlizard_s"
+ extra_overlay = "fatsynthlizard_markings"
+ extra_overlay2 = "fatsynthlizard_glow"
+ can_loaf = TRUE
+ icon_loaf = 'icons/mob/vore/taurs_loaf.dmi'
+ loaf_offset = 3
+
+/datum/sprite_accessory/tail/taur/lizard/synthlizard_wag
+ name = "SynthLizard dual-color (Taur, Fat vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "synthlizard_s"
+ extra_overlay = "synthlizard_markings"
+ extra_overlay2 = "synthlizard_glow"
+ ani_state = "fatsynthlizard_s"
+ extra_overlay_w = "fatsynthlizard_markings"
+ extra_overlay2_w = "fatsynthlizard_glow"
+
+/datum/sprite_accessory/tail/taur/naga/synthnaga
+ name = "Synthetic Naga dual-color (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "synthnaga"
+ extra_overlay = "synthnaga_belly"
+
+/datum/sprite_accessory/tail/taur/longvirus
+ name = "Long Virus (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "longvirus_s"
+ extra_overlay = "longvirus_markings"
+ icon_sprite_tag = "virus"
+
+/datum/sprite_accessory/tail/taur/wolf/synthwolf
+ name = "SynthWolf dual-color (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "synthwolf_s"
+ extra_overlay = "synthwolf_markings"
+ extra_overlay2 = "synthwolf_glow"
+ //icon_sprite_tag = "synthwolf"
+ loaf_offset = 3
+
+/datum/sprite_accessory/tail/taur/wolf/fatsynthwolf
+ name = "Fat SynthWolf dual-color (Taur)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "fatsynthwolf_s"
+ extra_overlay = "fatsynthwolf_markings"
+ extra_overlay2 = "fatsynthwolf_glow"
+ loaf_offset = 3
+
+/datum/sprite_accessory/tail/taur/wolf/fatsynthwolf_wag
+ name = "SynthWolf dual-color (Taur, Fat vwag)"
+ icon = 'icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi'
+ icon_state = "synthwolf_s"
+ extra_overlay = "synthwolf_markings"
+ extra_overlay2 = "synthwolf_glow"
+ ani_state = "fatsynthwolf_s"
+ extra_overlay_w = "fatsynthwolf_markings"
+ extra_overlay2_w = "fatsynthwolf_glow"
diff --git a/icons/effects/species_tails.dmi b/icons/effects/species_tails.dmi
index 5fea0671c65..2cc556873ef 100644
Binary files a/icons/effects/species_tails.dmi and b/icons/effects/species_tails.dmi differ
diff --git a/icons/mob/human_races/sprite_accessories/biglegs.dmi b/icons/mob/human_races/sprite_accessories/biglegs.dmi
new file mode 100644
index 00000000000..b46e8b0c12e
Binary files /dev/null and b/icons/mob/human_races/sprite_accessories/biglegs.dmi differ
diff --git a/icons/mob/human_races/sprite_accessories/tails.dmi b/icons/mob/human_races/sprite_accessories/oldtails.dmi
similarity index 100%
rename from icons/mob/human_races/sprite_accessories/tails.dmi
rename to icons/mob/human_races/sprite_accessories/oldtails.dmi
diff --git a/icons/mob/human_races/sprite_accessories/tails/not_tail_legs.dmi b/icons/mob/human_races/sprite_accessories/tails/not_tail_legs.dmi
new file mode 100644
index 00000000000..1704b042a43
Binary files /dev/null and b/icons/mob/human_races/sprite_accessories/tails/not_tail_legs.dmi differ
diff --git a/icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi b/icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi
new file mode 100644
index 00000000000..cc63d30fd18
Binary files /dev/null and b/icons/mob/human_races/sprite_accessories/tails/tails_animal.dmi differ
diff --git a/icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi b/icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi
new file mode 100644
index 00000000000..b18ee1fd4fd
Binary files /dev/null and b/icons/mob/human_races/sprite_accessories/tails/tails_bug.dmi differ
diff --git a/icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi b/icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi
new file mode 100644
index 00000000000..7d981ea65a1
Binary files /dev/null and b/icons/mob/human_races/sprite_accessories/tails/tails_exotic.dmi differ
diff --git a/icons/mob/human_races/sprite_accessories/tails/tails_long.dmi b/icons/mob/human_races/sprite_accessories/tails/tails_long.dmi
new file mode 100644
index 00000000000..74a96279178
Binary files /dev/null and b/icons/mob/human_races/sprite_accessories/tails/tails_long.dmi differ
diff --git a/icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi b/icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi
new file mode 100644
index 00000000000..f066c8a0745
Binary files /dev/null and b/icons/mob/human_races/sprite_accessories/tails/tails_reptile.dmi differ
diff --git a/icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi b/icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi
new file mode 100644
index 00000000000..3363d8cd62f
Binary files /dev/null and b/icons/mob/human_races/sprite_accessories/tails/tails_snowflake.dmi differ
diff --git a/icons/mob/human_races/sprite_accessories/tails/tails_synth.dmi b/icons/mob/human_races/sprite_accessories/tails/tails_synth.dmi
new file mode 100644
index 00000000000..045946929e0
Binary files /dev/null and b/icons/mob/human_races/sprite_accessories/tails/tails_synth.dmi differ
diff --git a/icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi b/icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi
new file mode 100644
index 00000000000..78fff086001
Binary files /dev/null and b/icons/mob/human_races/sprite_accessories/tails/tails_teshari.dmi differ
diff --git a/icons/mob/human_races/sprite_accessories/taurs.dmi b/icons/mob/human_races/sprite_accessories/taurs.dmi
deleted file mode 100644
index 09438cd84b9..00000000000
Binary files a/icons/mob/human_races/sprite_accessories/taurs.dmi and /dev/null differ
diff --git a/icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi b/icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi
new file mode 100644
index 00000000000..a8db3ca9a19
Binary files /dev/null and b/icons/mob/human_races/sprite_accessories/taurs/taurs_animal.dmi differ
diff --git a/icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi b/icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi
new file mode 100644
index 00000000000..c15c56e959d
Binary files /dev/null and b/icons/mob/human_races/sprite_accessories/taurs/taurs_exotic.dmi differ
diff --git a/icons/mob/human_races/sprite_accessories/taurs/taurs_reptile.dmi b/icons/mob/human_races/sprite_accessories/taurs/taurs_reptile.dmi
new file mode 100644
index 00000000000..88b0b3765d0
Binary files /dev/null and b/icons/mob/human_races/sprite_accessories/taurs/taurs_reptile.dmi differ
diff --git a/icons/mob/human_races/sprite_accessories/taurs/taurs_snowflake.dmi b/icons/mob/human_races/sprite_accessories/taurs/taurs_snowflake.dmi
new file mode 100644
index 00000000000..217d92ff748
Binary files /dev/null and b/icons/mob/human_races/sprite_accessories/taurs/taurs_snowflake.dmi differ
diff --git a/icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi b/icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi
new file mode 100644
index 00000000000..8824df3d334
Binary files /dev/null and b/icons/mob/human_races/sprite_accessories/taurs/taurs_synth.dmi differ
diff --git a/icons/mob/human_races/sprite_accessories/taurs_teshari.dmi b/icons/mob/human_races/sprite_accessories/taurs/taurs_teshari.dmi
similarity index 100%
rename from icons/mob/human_races/sprite_accessories/taurs_teshari.dmi
rename to icons/mob/human_races/sprite_accessories/taurs/taurs_teshari.dmi
diff --git a/icons/mob/human_races/sprite_accessories/unsortedtaurs.dmi b/icons/mob/human_races/sprite_accessories/unsortedtaurs.dmi
new file mode 100644
index 00000000000..5c33d324e7e
Binary files /dev/null and b/icons/mob/human_races/sprite_accessories/unsortedtaurs.dmi differ
diff --git a/icons/mob/vore/taurs_loaf.dmi b/icons/mob/vore/taurs_loaf.dmi
index 318a6f105af..bc5a2b18d9b 100644
Binary files a/icons/mob/vore/taurs_loaf.dmi and b/icons/mob/vore/taurs_loaf.dmi differ
diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Ears.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Ears.tsx
index 44b781046cd..e67c5764a7d 100644
--- a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Ears.tsx
+++ b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Ears.tsx
@@ -1,6 +1,13 @@
import { type PropsWithChildren, useCallback, useState } from 'react';
import { useBackend } from 'tgui/backend';
-import { Box, Button, ImageButton, Input, Section } from 'tgui-core/components';
+import {
+ Box,
+ Button,
+ ImageButton,
+ Input,
+ Section,
+ Stack,
+} from 'tgui-core/components';
import {
ColorizedImageButton,
@@ -46,6 +53,21 @@ export const EarsImageButton = (
}
const data = serverData.ear_styles[style];
+ if (data.icon_state === null || data.icon === null) {
+ return (
+ }
+ >
+ {props.children}
+
+ );
+ }
// Must be wrapped with useCallback or else it'll rerender every frame
const postRender = useCallback(
@@ -117,62 +139,69 @@ export const EarsDimmer = (props: {
);
};
diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/EarsSecondary.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/EarsSecondary.tsx
index 4afebdc7ac8..8e346ec9bc4 100644
--- a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/EarsSecondary.tsx
+++ b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/EarsSecondary.tsx
@@ -1,6 +1,6 @@
import { useState } from 'react';
import { useBackend } from 'tgui/backend';
-import { Button, Input, Section } from 'tgui-core/components';
+import { Button, Input, Section, Stack } from 'tgui-core/components';
import { ColorPicker, ColorType } from '../../helper_components';
import type {
@@ -40,59 +40,68 @@ export const EarsSecondaryDimmer = (props: {
);
};
diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Facial.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Facial.tsx
index 0bbc9f96456..56580d5f9fe 100644
--- a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Facial.tsx
+++ b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Facial.tsx
@@ -1,7 +1,14 @@
import { type PropsWithChildren, useCallback, useState } from 'react';
import { useBackend } from 'tgui/backend';
import { getIconFromRefMap } from 'tgui/events/handlers/assets';
-import { Button, ImageButton, Input, Section } from 'tgui-core/components';
+import {
+ Box,
+ Button,
+ ImageButton,
+ Input,
+ Section,
+ Stack,
+} from 'tgui-core/components';
import {
ColorizedImageButton,
ColorPicker,
@@ -49,6 +56,22 @@ export const FacialImageButton = (
}
const data = serverData.facial_styles[hairStyle];
+ if (data.icon_state === null || data.icon === null) {
+ return (
+ }
+ >
+ {props.children}
+
+ );
+ }
+
return (
setShow(BodyPopup.None)} color="bad">
Close
}
>
- {our_species.appearance_flags & AppearanceFlags.HAS_HAIR_COLOR ? (
- {
- act('set_facial_hair_color');
- }}
- color_one={hairColor}
- />
- ) : null}
- setSearch(val)}
- value={search}
- mt={1}
- />
-
- {hair_styles.map((hairStyle) => (
- {
- act('set_facial_hair_style', { facial_hair_style: hairStyle });
- }}
- selected={hairStyle === data.f_style}
- >
- {hairStyle}
-
- ))}
+
+ {our_species.appearance_flags & AppearanceFlags.HAS_HAIR_COLOR ? (
+
+ {
+ act('set_facial_hair_color');
+ }}
+ color_one={hairColor}
+ />
+
+ ) : null}
+
+ setSearch(val)}
+ value={search}
+ />
+
+
+
+ {hair_styles.map((hairStyle) => (
+ {
+ act('set_facial_hair_style', {
+ facial_hair_style: hairStyle,
+ });
+ }}
+ selected={hairStyle === data.f_style}
+ >
+ {hairStyle}
+
+ ))}
+
+
+
);
};
diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Gradient.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Gradient.tsx
index d5a46ccd984..10c5a33b1a6 100644
--- a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Gradient.tsx
+++ b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Gradient.tsx
@@ -1,6 +1,13 @@
import { type PropsWithChildren, useState } from 'react';
import { useBackend } from 'tgui/backend';
-import { Button, ImageButton, Input, Section } from 'tgui-core/components';
+import {
+ Box,
+ Button,
+ ImageButton,
+ Input,
+ Section,
+ Stack,
+} from 'tgui-core/components';
import { ColorizedImageButton, ColorPicker } from '../../helper_components';
import type {
@@ -31,6 +38,22 @@ export const GradientImageButton = (
}
const data = serverData.grad_styles[style];
+ if (data.icon_state === null || data.icon === null) {
+ return (
+ }
+ >
+ {props.children}
+
+ );
+ }
+
return (
setShow(BodyPopup.None)} color="bad">
Close
}
>
- {
- act('set_grad_color');
- }}
- color_one={color}
- />
- setSearch(val)}
- value={search}
- mt={1}
- />
-
- {grad_styles.map((style) => (
- act('set_grad_style', { grad_style: style })}
- >
- {style}
-
- ))}
+
+
+ {
+ act('set_grad_color');
+ }}
+ color_one={color}
+ />
+
+
+ setSearch(val)}
+ value={search}
+ />
+
+
+
+ {grad_styles.map((style) => (
+ act('set_grad_style', { grad_style: style })}
+ >
+ {style}
+
+ ))}
+
+
+
);
};
diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Hair.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Hair.tsx
index 9429870ea00..dee79776f4a 100644
--- a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Hair.tsx
+++ b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Hair.tsx
@@ -1,7 +1,7 @@
import { type PropsWithChildren, useCallback, useState } from 'react';
import { useBackend } from 'tgui/backend';
import { getIconFromRefMap } from 'tgui/events/handlers/assets';
-import { Button, ImageButton, Input, Section } from 'tgui-core/components';
+import { Box, Button, ImageButton, Input, Section } from 'tgui-core/components';
import {
ColorizedImageButton,
ColorPicker,
@@ -48,6 +48,22 @@ export const HairImageButton = (
);
}
const data = serverData.hair_styles[hairStyle];
+ if (data.icon_state === null || data.icon === null) {
+ return (
+ }
+ >
+ {props.children}
+
+ );
+ }
+
return (
setShow(BodyPopup.None)} color="bad">
Close
diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Tail.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Tail.tsx
index 17fd99fed0d..63e820a4033 100644
--- a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Tail.tsx
+++ b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Tail.tsx
@@ -1,6 +1,13 @@
import { type PropsWithChildren, useCallback, useState } from 'react';
import { useBackend } from 'tgui/backend';
-import { Box, Button, ImageButton, Input, Section } from 'tgui-core/components';
+import {
+ Box,
+ Button,
+ ImageButton,
+ Input,
+ Section,
+ Stack,
+} from 'tgui-core/components';
import {
ColorizedImageButton,
@@ -45,6 +52,21 @@ export const TailImageButton = (
);
}
const data = serverData.tail_styles[style];
+ if (data.icon_state === null || data.icon === null) {
+ return (
+ }
+ >
+ {props.children}
+
+ );
+ }
// Must be wrapped with useCallback or else it'll rerender every frame
const postRender = useCallback(
@@ -118,61 +140,68 @@ export const TailDimmer = (props: {
);
};
diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Wings.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Wings.tsx
index 5a1251c2d36..0ae5c92851b 100644
--- a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Wings.tsx
+++ b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/body/Wings.tsx
@@ -1,6 +1,13 @@
import { type PropsWithChildren, useCallback, useState } from 'react';
import { useBackend } from 'tgui/backend';
-import { Box, Button, ImageButton, Input, Section } from 'tgui-core/components';
+import {
+ Box,
+ Button,
+ ImageButton,
+ Input,
+ Section,
+ Stack,
+} from 'tgui-core/components';
import {
ColorizedImageButton,
@@ -45,6 +52,21 @@ export const WingsImageButton = (
);
}
const data = serverData.wing_styles[style];
+ if (data.icon_state === null || data.icon === null) {
+ return (
+ }
+ >
+ {props.children}
+
+ );
+ }
// Must be wrapped with useCallback or else it'll rerender every frame
const postRender = useCallback(
@@ -115,61 +137,68 @@ export const WingsDimmer = (props: {
);
};
diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/data.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/data.ts
index 005a8408a35..8662260fc61 100644
--- a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/data.ts
+++ b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/general/data.ts
@@ -329,7 +329,11 @@ export type GeneralDataStatic = Partial<{
available_wing_styles: string[];
}>;
-export type StandardStyle = { name: string; icon: string; icon_state: string };
+export type StandardStyle = {
+ name: string;
+ icon: string | null;
+ icon_state: string | null;
+};
export type EarStyle = StandardStyle & {
type: string;
diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/helper_components.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/helper_components.tsx
index 22428355cd3..c5601b48450 100644
--- a/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/helper_components.tsx
+++ b/tgui/packages/tgui/interfaces/PreferencesMenu/bay_prefs/helper_components.tsx
@@ -62,13 +62,13 @@ export const CanvasBackedImage = (props: {
export const drawColorizedIconToOffscreenCanvas = async (
color: string,
- icon: string,
- icon_state: string,
+ icon: string | null,
+ icon_state: string | null,
dir?: string,
): Promise => {
const canvas = new OffscreenCanvas(64, 64);
const ctx = canvas.getContext('2d');
- if (!ctx) {
+ if (!ctx || !icon || !icon_state) {
return null;
}
@@ -96,8 +96,8 @@ export const drawColorizedIconToOffscreenCanvas = async (
};
export const ColorizedImage = (props: {
- iconRef: string;
- iconState: string;
+ iconRef: string | null;
+ iconState: string | null;
preRender?: (ctx: OffscreenCanvasRenderingContext2D) => Promise;
postRender?: (ctx: OffscreenCanvasRenderingContext2D) => Promise;
color?: string | null;
@@ -178,8 +178,8 @@ export const CustomImageButton = (
export const ColorizedImageButton = (
props: PropsWithChildren<{
- iconRef: string;
- iconState: string;
+ iconRef: string | null;
+ iconState: string | null;
color?: string | null;
dir?: string;
onClick: () => void;
diff --git a/vorestation.dme b/vorestation.dme
index eefc6ba28c9..88aae8c6001 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -4020,10 +4020,24 @@
#include "code\modules\mob\new_player\sprite_accessories_ear.dm"
#include "code\modules\mob\new_player\sprite_accessories_hair.dm"
#include "code\modules\mob\new_player\sprite_accessories_markings.dm"
-#include "code\modules\mob\new_player\sprite_accessories_tail.dm"
-#include "code\modules\mob\new_player\sprite_accessories_taur.dm"
#include "code\modules\mob\new_player\sprite_accessories_wing.dm"
#include "code\modules\mob\new_player\sprite_accessories_wing_large.dm"
+#include "code\modules\mob\new_player\tails\sprite_accessories_tail.dm"
+#include "code\modules\mob\new_player\tails\tails_animal.dm"
+#include "code\modules\mob\new_player\tails\tails_bug.dm"
+#include "code\modules\mob\new_player\tails\tails_exotic.dm"
+#include "code\modules\mob\new_player\tails\tails_long.dm"
+#include "code\modules\mob\new_player\tails\tails_reptile.dm"
+#include "code\modules\mob\new_player\tails\tails_snowflake.dm"
+#include "code\modules\mob\new_player\tails\tails_synth.dm"
+#include "code\modules\mob\new_player\tails\tails_teshari.dm"
+#include "code\modules\mob\new_player\taur\not_taur_legs.dm"
+#include "code\modules\mob\new_player\taur\sprite_accessories_taur.dm"
+#include "code\modules\mob\new_player\taur\taur_animal.dm"
+#include "code\modules\mob\new_player\taur\taur_exotic.dm"
+#include "code\modules\mob\new_player\taur\taur_reptile.dm"
+#include "code\modules\mob\new_player\taur\taur_snowflake.dm"
+#include "code\modules\mob\new_player\taur\taur_synth.dm"
#include "code\modules\modular_computers\laptop_vendor.dm"
#include "code\modules\modular_computers\computers\modular_computer\core.dm"
#include "code\modules\modular_computers\computers\modular_computer\damage.dm"