diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm
index 107e182f8d..89e44fc215 100644
--- a/code/__DEFINES/citadel_defines.dm
+++ b/code/__DEFINES/citadel_defines.dm
@@ -121,6 +121,6 @@
#define MATRIX_BLUE "blue"
#define MATRIX_RED_GREEN "red_green"
#define MATRIX_RED_BLUE "red_blue"
-#define MATRIX_BLUE_GREEN "blue_green"
+#define MATRIX_GREEN_BLUE "green_blue"
#define MATRIX_ALL "red_green_blue"
#define MATRIX_NONE "none"
\ No newline at end of file
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 7832c79e18..2dfcde2949 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -561,14 +561,29 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(accessory)
if(accessory.color_src == MATRIXED || accessory.color_src == MUTCOLORS || accessory.color_src == MUTCOLORS2 || accessory.color_src == MUTCOLORS3) //mutcolors1-3 are deprecated now, please don't rely on these in the future
var/primary_feature = "[mutant_part]_primary"
+ var/secondary_feature = "[mutant_part]_secondary"
+ var/tertiary_feature = "[mutant_part]_tertiary"
+ var/matrixed_sections = accessory.matrixed_sections
+ if(accessory.color_src == MATRIXED && !matrixed_sections)
+ message_admins("Sprite Accessory Failure (customization): Accessory [accessory.type] is a matrixed item without any matrixed sections set!")
+ continue
+ else if(accessory.color_src == MATRIXED)
+ switch(matrixed_sections)
+ if(MATRIX_GREEN) //only composed of a green section
+ primary_feature = secondary_feature //swap primary for secondary, so it properly assigns the second colour, reserved for the green section
+ if(MATRIX_BLUE)
+ primary_feature = tertiary_feature //same as above, but the tertiary feature is for the blue section
+ if(MATRIX_RED_BLUE) //composed of a red and blue section
+ secondary_feature = tertiary_feature //swap secondary for tertiary, as blue should always be tertiary
+ if(MATRIX_GREEN_BLUE) //composed of a green and blue section
+ primary_feature = secondary_feature //swap primary for secondary, as first option is green, which is linked to the secondary
+ secondary_feature = tertiary_feature //swap secondary for tertiary, as second option is blue, which is linked to the tertiary
dat += "Primary Color
"
dat += " Change
"
- if(accessory.color_src == MATRIXED || (accessory.extra && (accessory.extra_color_src == MUTCOLORS || accessory.extra_color_src == MUTCOLORS2 || accessory.extra_color_src == MUTCOLORS3)))
- var/secondary_feature = "[mutant_part]_secondary"
+ if((accessory.color_src == MATRIXED && (matrixed_sections == MATRIX_RED_BLUE || matrixed_sections == MATRIX_GREEN_BLUE || matrixed_sections == MATRIX_ALL)) || (accessory.extra && (accessory.extra_color_src == MUTCOLORS || accessory.extra_color_src == MUTCOLORS2 || accessory.extra_color_src == MUTCOLORS3)))
dat += "Secondary Color
"
dat += " Change
"
- if(accessory.color_src == MATRIXED || (accessory.extra2 && (accessory.extra2_color_src == MUTCOLORS || accessory.extra2_color_src == MUTCOLORS2 || accessory.extra2_color_src == MUTCOLORS3)))
- var/tertiary_feature = "[mutant_part]_tertiary"
+ if((accessory.color_src == MATRIXED && matrixed_sections == MATRIX_ALL) || (accessory.extra2 && (accessory.extra2_color_src == MUTCOLORS || accessory.extra2_color_src == MUTCOLORS2 || accessory.extra2_color_src == MUTCOLORS3)))
dat += "Tertiary Color
"
dat += " Change
"
@@ -2055,7 +2070,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["xenodorsal"] = new_dors
//every single primary/secondary/tertiary colouring done at once
- if("xenodorsal_primary","xenodorsal_secondary","xenodorsal_tertiary","xhead_primary"."xhead_secondary","xhead_tertiary","tail_primary","tail_secondary","tail_tertiary","bodymarkings_primary","bodymarkings_secondary","bodymarkings_tertiary","ears_primary","ears_secondary","ears_tertiary","frills_primary"."frills_secondary","frills_tertiary","ipcantenna_primary","ipcantenna_secondary","ipcantenna_tertiary","taur_primary","taur_secondary","taur_tertiary","snout_primary","snout_secondary","snout_tertiaty","spines_primary","spines_secondary","spines_tertiary")
+ if("xenodorsal_primary","xenodorsal_secondary","xenodorsal_tertiary","xhead_primary","xhead_secondary","xhead_tertiary","tail_primary","tail_secondary","tail_tertiary","bodymarkings_primary","bodymarkings_secondary","bodymarkings_tertiary","ears_primary","ears_secondary","ears_tertiary","frills_primary","frills_secondary","frills_tertiary","ipcantenna_primary","ipcantenna_secondary","ipcantenna_tertiary","taur_primary","taur_secondary","taur_tertiary","snout_primary","snout_secondary","snout_tertiaty","spines_primary","spines_secondary","spines_tertiary")
var/the_feature = features[href_list["preference"]]
if(!the_feature)
features[href_list["preference"]] = "FFFFFF"
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 1f3762f8ad..4097bad5eb 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -228,6 +228,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(current_version < 39) //extreme changes to how things are coloured
for(var/feature in features)
+ message_admins("[feature]")
var/feature_type = features[feature]
var/ref_list = GLOB.mutant_reference_list[feature_type]
if(ref_list)
@@ -237,6 +238,20 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
var/primary_string = "[feature_type]_primary"
var/secondary_string = "[feature_type]_secondary]"
var/tertiary_string = "[feature_type]_tertiary]"
+ if(accessory.matrixed_sections)
+ switch(accessory.matrixed_sections)
+ if(MATRIX_GREEN) //only composed of a green section
+ primary_string = secondary_string //swap primary for secondary, so it properly assigns the second colour, reserved for the green section
+ if(MATRIX_BLUE)
+ primary_string = tertiary_string //same as above, but the tertiary feature is for the blue section
+ if(MATRIX_RED_BLUE) //composed of a red and blue section
+ secondary_string = tertiary_string //swap secondary for tertiary, as blue should always be tertiary
+ if(MATRIX_GREEN_BLUE) //composed of a green and blue section
+ primary_string = secondary_string //swap primary for secondary, as first option is green, which is linked to the secondary
+ secondary_string = tertiary_string //swap secondary for tertiary, as second option is blue, which is linked to the tertiary
+ else if(accessory.color_src != MATRIXED)
+ message_admins("Sprite Accessory Failure (migration from [current_version] to 39): Accessory [accessory.type] is a matrixed item without any matrixed sections set!")
+ continue
if(accessory.color_src == MATRIXED)
features[primary_string] = features["mcolor"]
features[secondary_string] = features["mcolor2"]
@@ -248,7 +263,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
else if(accessory.color_src == MUTCOLORS3)
features[tertiary_string] = features["mcolor3"]
-
/datum/preferences/proc/load_path(ckey,filename="preferences.sav")
if(!ckey)
return
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm
index 554549c0c3..b3a89d9115 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm
@@ -120,26 +120,6 @@
color_src = MATRIXED
matrixed_sections = MATRIX_RED
-/datum/sprite_accessory/tails/mam_tails/batl
- name = "Bat (Long)"
- icon = 'modular_citadel/icons/mob/mam_tails.dmi'
- icon_state = "batl"
-
-/datum/sprite_accessory/tails_animated/mam_tails_animated/batl
- name = "Bat (Long)"
- icon = 'modular_citadel/icons/mob/mam_tails.dmi'
- icon_state = "batl"
-
-/datum/sprite_accessory/tails/mam_tails/bats
- name = "Bat (Short)"
- icon = 'modular_citadel/icons/mob/mam_tails.dmi'
- icon_state = "bats"
-
-/datum/sprite_accessory/tails_animated/mam_tails_animated/bats
- name = "Bat (Short)"
- icon = 'modular_citadel/icons/mob/mam_tails.dmi'
- icon_state = "bats"
-
/datum/sprite_accessory/tails/human/bee
name = "Bee"
icon_state = "bee"
@@ -229,60 +209,70 @@
icon_state = "datashark"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED_BLUE
/datum/sprite_accessory/tails_animated/human/datashark
name = "datashark"
icon_state = "datashark"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED_BLUE
/datum/sprite_accessory/tails/human/eevee
name = "Eevee"
icon_state = "eevee"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
color_src = MATRIXED
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/human/eevee
name = "Eevee"
icon_state = "eevee"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
color_src = MATRIXED
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/human/fennec
name = "Fennec"
icon_state = "fennec"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
color_src = MATRIXED
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/human/fennec
name = "Fennec"
icon_state = "fennec"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
color_src = MATRIXED
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/human/fish
name = "Fish"
icon_state = "fish"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
color_src = MATRIXED
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/human/fish
name = "Fish"
icon_state = "fish"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
color_src = MATRIXED
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/human/fox
name = "Fox"
icon_state = "fox"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
color_src = MATRIXED
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/human/fox
name = "Fox"
icon_state = "fox"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
color_src = MATRIXED
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/human/horse
name = "Horse"
@@ -301,36 +291,42 @@
icon_state = "husky"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
color_src = MATRIXED
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/human/husky
name = "Husky"
icon_state = "husky"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
color_src = MATRIXED
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/human/insect
name = "Insect"
icon_state = "insect"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
color_src = MATRIXED
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/human/insect
name = "Insect"
icon_state = "insect"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
color_src = MATRIXED
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/human/kitsune
name = "Kitsune"
icon_state = "kitsune"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/human/kitsune
name = "Kitsune"
icon_state = "kitsune"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/human/ltiger
name = "Light Tiger"
@@ -345,108 +341,126 @@
icon_state = "murid"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_GREEN
/datum/sprite_accessory/tails_animated/human/murid
name = "Murid"
icon_state = "murid"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_GREEN
/datum/sprite_accessory/tails/orca
name = "Orca"
icon_state = "orca"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/orca
name = "Orca"
icon_state = "orca"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/human/otie
name = "Otusian"
icon_state = "otie"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/human/otie
name = "Otusian"
icon_state = "otie"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/human/rabbit
name = "Rabbit"
icon_state = "rabbit"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/human/rabbit
name = "Rabbit"
icon_state = "rabbit"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/human/ailurus
name = "Red Panda"
icon_state = "wah"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
color_src = MATRIXED
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/human/ailurus
name = "Red Panda"
icon_state = "wah"
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
color_src = MATRIXED
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/human/pede
name = "Scolipede"
icon_state = "pede"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/human/pede
name = "Scolipede"
icon_state = "pede"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/human/sergal
name = "Sergal"
icon_state = "sergal"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/human/sergal
name = "Sergal"
icon_state = "sergal"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/human/shark
name = "Shark"
icon_state = "shark"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/human/shark
name = "Shark"
icon_state = "shark"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/human/skunk
name = "skunk"
icon_state = "skunk"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_ALL
/datum/sprite_accessory/tails_animated/human/skunk
name = "skunk"
icon_state = "skunk"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_ALL
/datum/sprite_accessory/tails/human/smooth
name = "Smooth"
@@ -477,60 +491,70 @@
icon_state = "squirrel"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/human/squirrel
name = "Squirrel"
icon_state = "squirrel"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/human/tamamo_kitsune
name = "Tamamo Kitsune Tails" //Tamamo-no-Tiro, let it be known!
icon_state = "9sune"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/human/tamamo_kitsune
name = "Tamamo Kitsune Tails"
icon_state = "9sune"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/human/tentacle
name = "Tentacle"
icon_state = "tentacle"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/human/tentacle
name = "Tentacle"
icon_state = "tentacle"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/human/tiger
name = "Tiger"
icon_state = "tiger"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_ALL
/datum/sprite_accessory/tails_animated/human/tiger
name = "Tiger"
icon_state = "tiger"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_ALL
/datum/sprite_accessory/tails/human/wolf
name = "Wolf"
icon_state = "wolf"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/human/wolf
name = "Wolf"
icon_state = "wolf"
color_src = MATRIXED
icon = 'modular_citadel/icons/mob/mam_tails.dmi'
+ matrixed_sections = MATRIX_RED
/******************************************
************** Furry Tails ****************
@@ -566,34 +590,42 @@
/datum/sprite_accessory/tails/mam_tails/axolotl
name = "Axolotl"
icon_state = "axolotl"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/axolotl
name = "Axolotl"
icon_state = "axolotl"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tails/batl
name = "Bat (Long)"
icon_state = "batl"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/mam_tails_animated/batl
name = "Bat (Long)"
icon_state = "batl"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/mam_tails/bats
name = "Bat (Short)"
icon_state = "bats"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/mam_tails_animated/bats
name = "Bat (Short)"
icon_state = "bats"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/mam_tails/bee
name = "Bee"
icon_state = "bee"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/mam_tails_animated/bee
name = "Bee"
icon_state = "bee"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/mam_tails/cat
name = "Cat"
@@ -608,34 +640,42 @@
/datum/sprite_accessory/tails/mam_tails/catbig
name = "Cat, Big"
icon_state = "catbig"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/catbig
name = "Cat, Big"
icon_state = "catbig"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tails/twocat
name = "Cat, Double"
icon_state = "twocat"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/twocat
name = "Cat, Double"
icon_state = "twocat"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tails/corvid
name = "Corvid"
icon_state = "crow"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/corvid
name = "Corvid"
icon_state = "crow"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tail/cow
name = "Cow"
icon_state = "cow"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/cow
name = "Cow"
icon_state = "cow"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tails/dtiger
name = "Dark Tiger"
@@ -652,42 +692,52 @@
/datum/sprite_accessory/tails/mam_tails/eevee
name = "Eevee"
icon_state = "eevee"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/mam_tails_animated/eevee
name = "Eevee"
icon_state = "eevee"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/mam_tails/fennec
name = "Fennec"
icon_state = "fennec"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/mam_tails_animated/fennec
name = "Fennec"
icon_state = "fennec"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/mam_tails/human/fish
name = "Fish"
icon_state = "fish"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/human/fish
name = "Fish"
icon_state = "fish"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tails/fox
name = "Fox"
icon_state = "fox"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/mam_tails_animated/fox
name = "Fox"
icon_state = "fox"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/mam_tails/hawk
name = "Hawk"
icon_state = "hawk"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/hawk
name = "Hawk"
icon_state = "hawk"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tails/horse
name = "Horse"
@@ -702,42 +752,52 @@
/datum/sprite_accessory/tails/mam_tails/husky
name = "Husky"
icon_state = "husky"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/mam_tails_animated/husky
name = "Husky"
icon_state = "husky"
+ matrixed_sections = MATRIX_RED_GREEN
datum/sprite_accessory/tails/mam_tails/insect
name = "Insect"
icon_state = "insect"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/insect
name = "Insect"
icon_state = "insect"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tails/kangaroo
name = "kangaroo"
icon_state = "kangaroo"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/kangaroo
name = "kangaroo"
icon_state = "kangaroo"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tails/kitsune
name = "Kitsune"
icon_state = "kitsune"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/mam_tails_animated/kitsune
name = "Kitsune"
icon_state = "kitsune"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/mam_tails/lab
name = "Lab"
icon_state = "lab"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/lab
name = "Lab"
icon_state = "lab"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tails/ltiger
name = "Light Tiger"
@@ -754,84 +814,104 @@ datum/sprite_accessory/tails/mam_tails/insect
/datum/sprite_accessory/tails/mam_tails/murid
name = "Murid"
icon_state = "murid"
+ matrixed_sections = MATRIX_GREEN
/datum/sprite_accessory/tails_animated/mam_tails_animated/murid
name = "Murid"
icon_state = "murid"
+ matrixed_sections = MATRIX_GREEN
/datum/sprite_accessory/tails/mam_tails/orca
name = "Orca"
icon_state = "orca"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/orca
name = "Orca"
icon_state = "orca"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tails/otie
name = "Otusian"
icon_state = "otie"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/otie
name = "Otusian"
icon_state = "otie"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tails/rabbit
name = "Rabbit"
icon_state = "rabbit"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/rabbit
name = "Rabbit"
icon_state = "rabbit"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tails/ailurus
name = "Red Panda"
icon_state = "wah"
extra = TRUE
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/mam_tails_animated/ailurus
name = "Red Panda"
icon_state = "wah"
extra = TRUE
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/mam_tails/pede
name = "Scolipede"
icon_state = "pede"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/pede
name = "Scolipede"
icon_state = "pede"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tails/sergal
name = "Sergal"
icon_state = "sergal"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/mam_tails_animated/sergal
name = "Sergal"
icon_state = "sergal"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/mam_tails/shark
name = "Shark"
icon_state = "shark"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/shark
name = "Shark"
icon_state = "shark"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tails/shepherd
name = "Shepherd"
icon_state = "shepherd"
+ matrixed_sections = MATRIX_GREEN_BLUE
/datum/sprite_accessory/tails_animated/mam_tails_animated/shepherd
name = "Shepherd"
icon_state = "shepherd"
+ matrixed_sections = MATRIX_GREEN_BLUE
/datum/sprite_accessory/tails/mam_tails/skunk
name = "Skunk"
icon_state = "skunk"
+ matrixed_sections = MATRIX_ALL
/datum/sprite_accessory/tails_animated/mam_tails_animated/skunk
name = "Skunk"
icon_state = "skunk"
+ matrixed_sections = MATRIX_ALL
/datum/sprite_accessory/tails/mam_tails/smooth
name = "Smooth"
@@ -860,47 +940,59 @@ datum/sprite_accessory/tails/mam_tails/insect
/datum/sprite_accessory/tails/mam_tails/straighttail
name = "Straight Tail"
icon_state = "straighttail"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/straighttail
name = "Straight Tail"
icon_state = "straighttail"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tails/squirrel
name = "Squirrel"
icon_state = "squirrel"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/squirrel
name = "Squirrel"
icon_state = "squirrel"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tails/tamamo_kitsune
name = "Tamamo Kitsune Tails"
icon_state = "9sune"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails_animated/mam_tails_animated/tamamo_kitsune
name = "Tamamo Kitsune Tails"
icon_state = "9sune"
+ matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/tails/mam_tails/tentacle
name = "Tentacle"
icon_state = "tentacle"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/tentacle
name = "Tentacle"
icon_state = "tentacle"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails/mam_tails/tiger
name = "Tiger"
icon_state = "tiger"
+ matrixed_sections = MATRIX_ALL
/datum/sprite_accessory/tails_animated/mam_tails_animated/tiger
name = "Tiger"
icon_state = "tiger"
+ matrixed_sections = MATRIX_ALL
/datum/sprite_accessory/tails/mam_tails/wolf
name = "Wolf"
icon_state = "wolf"
+ matrixed_sections = MATRIX_RED
/datum/sprite_accessory/tails_animated/mam_tails_animated/wolf
name = "Wolf"
icon_state = "wolf"
+ matrixed_sections = MATRIX_RED
diff --git a/icons/mob/mutant_bodyparts.dmi b/icons/mob/mutant_bodyparts.dmi
index 1334ce9e0e..8d34fb8dc3 100644
Binary files a/icons/mob/mutant_bodyparts.dmi and b/icons/mob/mutant_bodyparts.dmi differ