diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm
index bf3bb7c521..7132011793 100644
--- a/code/__HELPERS/global_lists.dm
+++ b/code/__HELPERS/global_lists.dm
@@ -32,7 +32,7 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_body_markings, mam_body_markings_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails, mam_tails_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_ears, mam_ears_list)
- init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails_animated, mam_tails_animated_list)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tail_animated, mam_tails_animated_list)
//Species
for(var/spath in subtypesof(/datum/species))
diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm
index 86c2537f22..11f412de0d 100644
--- a/code/_globalvars/lists/flavor_misc.dm
+++ b/code/_globalvars/lists/flavor_misc.dm
@@ -39,6 +39,7 @@ var/global/list/mam_body_markings_list = list()
var/global/list/mam_ears_list = list()
var/global/list/mam_tails_list = list()
var/global/list/mam_tails_animated_list = list()
+
var/global/list/ghost_forms_with_directions_list = list("ghost") //stores the ghost forms that support directional sprites
var/global/list/ghost_forms_with_accessories_list = list("ghost") //stores the ghost forms that support hair and other such things
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 5bd4c80c01..b3d0c731c0 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -76,7 +76,7 @@ var/list/preferences_datums = list()
var/skin_tone = "caucasian1" //Skin color
var/eye_color = "000" //Eye color
var/datum/species/pref_species = new /datum/species/human() //Mutant race
- var/list/features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "mam_body_markings" = "None", "mam_ears" = "None", "mam_tail" = "None", "mam_tails_animated" = "None")
+ var/list/features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "mam_body_markings" = "None", "mam_ears" = "None", "mam_tail" = "None", "mam_tail_animated" = "None")
var/list/custom_names = list("clown", "mime", "ai", "cyborg", "religion", "deity")
//Mob preview
@@ -344,6 +344,24 @@ var/list/preferences_datums = list()
dat += ""
+ if("mam_tail" in pref_species.mutant_bodyparts)
+ dat += "
"
+
+ dat += "Tail"
+
+ dat += "[features["mam_tail"]] "
+
+ dat += " | "
+
+ if("mam_ears" in pref_species.mutant_bodyparts)
+ dat += ""
+
+ dat += "Ears"
+
+ dat += "[features["mam_ears"]] "
+
+ dat += " | "
+
if(config.mutant_humans)
if("tail_human" in pref_species.mutant_bodyparts)
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index bfc85722a4..ce0800894c 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -338,7 +338,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["feature_mam_body_markings"] >> features["mam_body_markings"]
S["feature_mam_tail"] >> features["mam_tail"]
S["feature_mam_ears"] >> features["mam_ears"]
- S["feature_mam_tails_animated"] >> features["mam_tails_animated"]
+ S["feature_mam_tail_animated"] >> features["mam_tail_animated"]
if(!config.mutant_humans)
features["tail_human"] = "none"
features["ears"] = "none"
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 58a945a7b5..a9c2355cce 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -333,13 +333,22 @@
if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))
bodyparts_to_add -= "tail_human"
-
if("waggingtail_human" in mutant_bodyparts)
if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))
bodyparts_to_add -= "waggingtail_human"
else if ("tail_human" in mutant_bodyparts)
bodyparts_to_add -= "waggingtail_human"
+ if("mam_tail" in mutant_bodyparts)
+ if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))
+ bodyparts_to_add -= "mam_tail"
+
+ if("mam_waggingtail" in mutant_bodyparts)
+ if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))
+ bodyparts_to_add -= "mam_waggingtail"
+ else if ("mam_tail" in mutant_bodyparts)
+ bodyparts_to_add -= "mam_waggingtail"
+
if("spines" in mutant_bodyparts)
if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))
bodyparts_to_add -= "spines"
diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm
index 8c8b02bbd8..be7882ce71 100644
--- a/code/modules/mob/living/carbon/human/species_types.dm
+++ b/code/modules/mob/living/carbon/human/species_types.dm
@@ -8,7 +8,7 @@
default_color = "FFFFFF"
specflags = list(EYECOLOR,HAIR,FACEHAIR,LIPS)
mutant_bodyparts = list("tail_human", "ears")
- default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None")
+ default_features = list("tail_human" = "None", "ears" = "None", "wings" = "None")
use_skintones = 1
skinned_type = /obj/item/stack/sheet/animalhide/human
@@ -166,6 +166,7 @@
meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/shadow
specflags = list(NOBREATH,NOBLOOD,RADIMMUNE,VIRUSIMMUNE)
dangerous_existence = 1
+ restricted = 2
/datum/species/shadow/spec_life(mob/living/carbon/human/H)
var/light_amount = 0
@@ -193,6 +194,7 @@
meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime
exotic_blood = "slimejelly"
var/datum/action/innate/regenerate_limbs/regenerate_limbs
+ restricted = 2
/datum/species/jelly/on_species_loss(mob/living/carbon/C)
if(regenerate_limbs)
@@ -1063,8 +1065,8 @@ datum/species/canid
default_color = "4B4B4B"
roundstart = 1
specflags = list(MUTCOLORS,EYECOLOR,LIPS,HAIR)
- mutant_bodyparts = list("mam_tail", "mam_ears", "snout", "mam_body_markings")
- default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_tail" = "Wolf", "mam_ears" = "Wolf", "wings" = "None", "mam_body_markings" = "Belly")
+ mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "snout")
+ default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "body_markings" = "None", "mam_tail" = "Wolf", "mam_ears" = "Wolf", "mam_body_markings" = "Belly")
attack_verb = "claw"
attack_sound = 'sound/weapons/slash.ogg'
miss_sound = 'sound/weapons/slashmiss.ogg'
diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm
index c0154dd6bd..fb92db99e8 100644
--- a/code/modules/mob/new_player/sprite_accessories.dm
+++ b/code/modules/mob/new_player/sprite_accessories.dm
@@ -1230,6 +1230,8 @@
name = "Aquatic"
icon_state = "aqua"
+/datum/sprite_accessory/tails/human
+ color_src = HAIR
/datum/sprite_accessory/tails/human/none
name = "None"
icon_state = "none"
@@ -1435,7 +1437,7 @@
name = "Fox"
icon_state = "fox"
-/datum/sprite_accessory/tails_animated/human/fox
+/datum/sprite_accessory/tail_animated/human/fox
name = "Fox"
icon_state = "fox"
@@ -1445,15 +1447,25 @@
//Mammal Body Markings
/datum/sprite_accessory/mam_body_markings
- name = "None"
+ name = "None"
icon_state = "none"
color_src = MUTCOLORS2
+
/datum/sprite_accessory/mam_body_markings/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/mam_body_markings/belly
name = "Belly"
- icon_state = "mam_belly"
+ icon_state = "belly"
gender_specific = 1
- color_src = MUTCOLORS2
+
+/datum/sprite_accessory/mam_body_markings/handsfeet
+ name = "Hands & Feet"
+ icon_state = "handsfeet"
+ color_src = MUTCOLORS3
+
+/datum/sprite_accessory/mam_body_markings/bellyhandsfeet
+ name = "Belly,Hands,Feet"
+ icon_state = "bellyhandsfeet"
+ gender_specific = 1
\ No newline at end of file
diff --git a/icons/mob/mutant_bodyparts.dmi b/icons/mob/mutant_bodyparts.dmi
index 77cd935a42..d63eb12fb0 100644
Binary files a/icons/mob/mutant_bodyparts.dmi and b/icons/mob/mutant_bodyparts.dmi differ
diff --git a/icons/turf/floors/warning.dmi b/icons/turf/floors/warning.dmi
index f406e176f5..fa8b79b594 100644
Binary files a/icons/turf/floors/warning.dmi and b/icons/turf/floors/warning.dmi differ