diff --git a/code/modules/client/preferences/migrations/17_tails.dm b/code/modules/client/preferences/migrations/17_tails.dm new file mode 100644 index 0000000000..efe90cdad8 --- /dev/null +++ b/code/modules/client/preferences/migrations/17_tails.dm @@ -0,0 +1,19 @@ +/// Changes a few tails to their new paths. +/datum/preferences/proc/migration_17_tails(datum/json_savefile/S) + for(var/slot in 1 to CONFIG_GET(number/character_slots)) + var/list/prefs = S.get_entry("character[slot]", null) + if(!islist(prefs)) + continue + prefs["tail_style"] = replacetext(prefs["tail_style"], "Kitsune 3 tails - colorable", "Kitsune 3 tails, colorable") + prefs["tail_style"] = replacetext(prefs["tail_style"], "Kitsune 9 tails - colorable", "Kitsune 9 tails, colorable") + + prefs["tail_style"] = replacetext(prefs["tail_style"], "Male teshari tail(Pattern)", "Teshari male tail pattern") + prefs["tail_style"] = replacetext(prefs["tail_style"], "Female teshari tail(Pattern)", "Teshari female tail pattern") + + prefs["tail_style"] = replacetext(prefs["tail_style"], "Male teshari tail(Pattern, Alt.)", "Teshari male tail alt. pattern") + prefs["tail_style"] = replacetext(prefs["tail_style"], "Female teshari tail(Pattern, Alt.)", "Teshari fem tail alt. pattern") + + prefs["tail_style"] = replacetext(prefs["tail_style"], "feathered Raptor, duel colorable", "feathered Raptor, dual colorable") + S.set_entry("character[slot]", prefs) + + S.save() diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 9c45e44418..d8d947e0ae 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -1,5 +1,5 @@ #define SAVEFILE_VERSION_MIN 8 -#define SAVEFILE_VERSION_MAX 16 +#define SAVEFILE_VERSION_MAX 17 /* SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn @@ -79,6 +79,15 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car log_debug("[client_ckey] preferences successfully migrated from [current_version] to v16.") to_chat(client, span_danger("v16 savefile migration complete.")) + // Migration for old named tails so downstream doesn't have their savefiles borked + if(current_version < 17) + log_debug("[client_ckey] preferences migrating from [current_version] to v17....") + to_chat(client, span_danger("Migrating savefile from version [current_version] to v17...")) + + migration_17_tails(S) + + log_debug("[client_ckey] preferences successfully migrated from [current_version] to v17.") + to_chat(client, span_danger("v17 savefile migration complete.")) /datum/preferences/proc/update_character(current_version, list/save_data) // Migration from BYOND savefiles to JSON: Important milemark. diff --git a/code/modules/mob/new_player/sprite_accessories_tail.dm b/code/modules/mob/new_player/sprite_accessories_tail.dm index 7137186ab0..00922b3817 100644 --- a/code/modules/mob/new_player/sprite_accessories_tail.dm +++ b/code/modules/mob/new_player/sprite_accessories_tail.dm @@ -31,7 +31,7 @@ // Taur Loafing var/can_loaf = FALSE var/loaf_offset = 0 - var/list/lower_layer_dirs = list(SOUTH) + var/list/lower_layer_dirs = list(SOUTH, WEST, EAST) var/icon_loaf = null // Taur Vore @@ -1630,7 +1630,34 @@ icon_state = "demitesh_fluffytail" extra_overlay = "demitesh_fluffytail_marks" -//RS backport tails +/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" @@ -1646,6 +1673,139 @@ extra_overlay = "chonksqrl-m1" extra_overlay2 = "chonksqrl-m2" +/datum/sprite_accessory/tail/longtail/qaavos + name = "Qaavos Tail" + icon_state = "qaavos_tail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/longtail/anteater + name = "Anteater tail" + icon_state = "anteater_tail" + + +/datum/sprite_accessory/tail/small_bugbum + name = "Bug Abdomen, Alt, Small (Dual-Color)" + icon_state = "smallbug1" + do_colouration = 1 + 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 + 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 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "bigbug2" + +/datum/sprite_accessory/tail/succubustail + name = "Succubus Tail" + icon_state = "Succubustail" + do_colouration = 1 + 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 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "snaketail_stripes" + +/datum/sprite_accessory/tail/leopard + name = "Leopard tail, dual-color (vwag)" + icon_state = "leopard" + ani_state = "leopard_w" + extra_overlay = "leopard_spots" + extra_overlay_w = "leopard_spots_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/vale_tail + name = "Vale Tail, dual color (vwag)" + desc = "" + icon_state = "valetail" + ani_state = "valetail_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "valetail_mark" + extra_overlay_w = "valetail_mark_w" + +/datum/sprite_accessory/tail/orca_f + name = "Orca tail (Female)" + icon_state = "orca_tail_f" + do_colouration = 1 + 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 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "anthrovirustail" + +/datum/sprite_accessory/tail/tyranid_tail + name = "Tyranid" + icon_state = "tyranid" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/bigsnaketeshari + name = "Large snake tail, Teshari" + icon_state = "snaketailteshari" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/featheredraptor + name = "feathered Raptor" + icon_state = "feathered_raptor" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/featheredraptor/twotone + name = "feathered Raptor, dual colorable" + extra_overlay = "feather_raptor-overlay" + +/datum/sprite_accessory/tail/wolf_tail + name = "Wolf Tail" + desc = "" + icon_state = "wolf_tail" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/vulpkanin_alt_color + name = "Vulpkanin alt" + desc = "" + icon_state = "vulpkanin_alt_color" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + 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" + desc = "" + icon_state = "raccoon_tail" + do_colouration = 0 + color_blend_mode = ICON_MULTIPLY + +/datum/sprite_accessory/tail/striped_tail + name = "Striped tail, colorable" + desc = "" + icon_state = "stripedtail_colorable" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + extra_overlay = "stripedtail_colorable_w" + // Exclusive Tails /datum/sprite_accessory/tail/peacocktail_red //this is ckey locked for now, but prettiebyrd wants these tails to be unlocked at a later date diff --git a/code/modules/mob/new_player/sprite_accessories_taur.dm b/code/modules/mob/new_player/sprite_accessories_taur.dm index 885cf9e25b..972a192989 100644 --- a/code/modules/mob/new_player/sprite_accessories_taur.dm +++ b/code/modules/mob/new_player/sprite_accessories_taur.dm @@ -1406,3 +1406,32 @@ 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" diff --git a/icons/mob/human_races/sprite_accessories/tails.dmi b/icons/mob/human_races/sprite_accessories/tails.dmi index 9cb485e26c..0f01bccc0c 100644 Binary files a/icons/mob/human_races/sprite_accessories/tails.dmi and b/icons/mob/human_races/sprite_accessories/tails.dmi differ diff --git a/icons/mob/human_races/sprite_accessories/taurs.dmi b/icons/mob/human_races/sprite_accessories/taurs.dmi index 8e4f8112ce..56e8c717de 100644 Binary files a/icons/mob/human_races/sprite_accessories/taurs.dmi and b/icons/mob/human_races/sprite_accessories/taurs.dmi differ diff --git a/vorestation.dme b/vorestation.dme index c2960c4a7c..8cdd7f68c7 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2181,6 +2181,7 @@ #include "code\modules\client\preferences\migrations\14_nifs.dm" #include "code\modules\client\preferences\migrations\15_nif_path.dm" #include "code\modules\client\preferences\migrations\16_colors.dm" +#include "code\modules\client\preferences\migrations\17_tails.dm" #include "code\modules\client\preferences\types\character\antagonism\01_basic.dm" #include "code\modules\client\preferences\types\character\general\01_basic.dm" #include "code\modules\client\preferences\types\character\general\03_body.dm"