diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 8f9f4b5918..c6bac044cb 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -83,7 +83,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")
+ 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")
var/list/custom_names = list("clown", "mime", "ai", "cyborg", "religion", "deity")
//Mob preview
@@ -216,18 +216,6 @@ var/list/preferences_datums = list()
if(!kpcode_cantaur(pref_species.id))
dat += " (not available for [pref_species.id])"
dat += "
"
- /*if(special_color[1])
- dat += " Primary
"
- else
- dat += "Primary?
"
- if(special_color[2])
- dat += " Secondary
"
- else
- dat += "Secondary?
"
- if(special_color[3])
- dat += " Tertiary
"
- else
- dat += "Tertiary?
"*/
else
dat += "Species: Human
"
@@ -238,11 +226,6 @@ var/list/preferences_datums = list()
dat += "Size: [character_size]
"
dat += "Vore Preferences: Open
"
- /*dat += "
Wings
"
-
- dat += "[mutant_wing]
"
- dat += " Change
"*/
-
dat += "Set Flavor Text
"
if(lentext(flavor_text) <= 40)
if(!lentext(flavor_text))
@@ -364,6 +347,15 @@ var/list/preferences_datums = list()
dat += ""
+ if("mam_body_markings" in pref_species.mutant_bodyparts)
+ dat += ""
+
+ dat += "Mammal Body Markings"
+
+ dat += "[features["mam_body_markings"]] "
+
+ dat += " | "
+
if(config.mutant_humans)
if("tail_human" in pref_species.mutant_bodyparts)
@@ -1106,13 +1098,19 @@ var/list/preferences_datums = list()
if(new_body_markings)
features["body_markings"] = new_body_markings
+ if("mam_body_markings")
+ var/new_mam_body_markings
+ new_mam_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in mam_body_markings_list
+ if(new_mam_body_markings)
+ features["mam_body_markings"] = new_mam_body_markings
+
if("s_tone")
var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in skin_tones
if(new_s_tone)
skin_tone = new_s_tone
if("ooccolor")
- var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference") as color|null
+ var/new_ooccolor = input(user, "Choose your OOC color:", "Game Preference") as color|null
if(new_ooccolor)
ooccolor = sanitize_ooccolor(new_ooccolor)
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 5e418255cf..a0b6c35610 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -298,7 +298,7 @@
var/datum/sprite_accessory/socks/U3 = socks_list[H.socks]
if(U3)
standing += image("icon"=U3.icon, "icon_state"="[U3.icon_state]_s", "layer"=-BODY_LAYER)
-
+ /*
//Custom Code
if(H.dna&&H.dna.taur&&!kpcode_cantaur(id))H.dna.taur=0//VERY BAD TEMP FIX
@@ -337,10 +337,12 @@
if(H.vore_womb_datum.has_people()||H.vore_stomach_datum.has_people())
taur_state+="_f"
standing += generate_colour_icon('icons/mob/special/taur.dmi',"[taur_state]",H.dna.special_color,offset_x=-16,add_layer=-BODY_LAYER)
+ */
+ if(standing.len)
+ H.overlays_standing[BODY_LAYER] = standing
H.apply_overlay(BODY_LAYER)
-
/datum/species/proc/handle_mutant_bodyparts(mob/living/carbon/human/H, forced_colour)
var/list/bodyparts_to_add = mutant_bodyparts.Copy()
var/list/relevent_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER)
@@ -369,7 +371,6 @@
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"
@@ -446,6 +447,8 @@
S = ears_list[H.dna.features["ears"]]
if("body_markings")
S = body_markings_list[H.dna.features["body_markings"]]
+ if("mam_body_markings")
+ S = mam_body_markings_list[H.dna.features["mam_body_markings"]]
if("wings")
S = wings_list[H.dna.features["wings"]]
if("wingsopen")
diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm
index 10c7bc64a7..d36950e42c 100644
--- a/code/modules/mob/living/carbon/human/species_types.dm
+++ b/code/modules/mob/living/carbon/human/species_types.dm
@@ -7,8 +7,8 @@
id = "human"
default_color = "FFFFFF"
specflags = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,LIPS)
- mutant_bodyparts = list("tail_human", "ears", "wings")
- default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None")
+ mutant_bodyparts = list("tail_human", "ears")
+ default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None")
use_skintones = 1
skinned_type = /obj/item/stack/sheet/animalhide/human
@@ -57,7 +57,7 @@
specflags = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,FACEHAIR)
mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings")
mutant_organs = list(/obj/item/organ/tongue/lizard)
- default_features = list("mcolor" = "0F0", "tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None")
+ default_features = list("mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0", "tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None")
attack_verb = "slash"
attack_sound = 'sound/weapons/slash.ogg'
miss_sound = 'sound/weapons/slashmiss.ogg'
@@ -1056,23 +1056,35 @@ SYNDICATE BLACK OPS
//CANINE//
-/datum/species/wolf
+datum/species/canid
+ name = "Canid"
+ id = "canid"
+ default_color = "4B4B4B"
+ roundstart = 1
+ specflags = list(MUTCOLORS,EYECOLOR,LIPS,HAIR)
+ mutant_bodyparts = list("tail_human", "ears", "snout", "mam_body_markings") //Most mammal species will use the 'tail_human' and 'ears'. For exotic species and birds, consider making and using a different type to avoid monstrocities.
+ default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "tail_human" = "Wolf", "ears" = "Wolf", "wings" = "None")
+ attack_verb = "claw"
+ attack_sound = 'sound/weapons/slash.ogg'
+ miss_sound = 'sound/weapons/slashmiss.ogg'
+
+/datum/species/canid/spec_death(gibbed, mob/living/carbon/human/H)
+ if(H)
+ H.endTailWag()
+
+/datum/species/canid/wolf
name = "Wolf"
id = "wolf"
default_color = "4B4B4B"
roundstart = 1
specflags = list(MUTCOLORS,EYECOLOR,LIPS,HAIR)
mutant_bodyparts = list("tail_human", "ears", "wings") //Most mammal species will use the 'tail_human' and 'ears'. For exotic species and birds, consider making and using a different type to avoid monstrocities.
- default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "tail_human" = "Wolf", "ears" = "Wolf", "wings" = "None")
+ default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "tail_human" = "Wolf", "ears" = "Wolf", "wings" = "None", "snout" = "Round")
attack_verb = "claw"
attack_sound = 'sound/weapons/slash.ogg'
miss_sound = 'sound/weapons/slashmiss.ogg'
-/datum/species/wolf/spec_death(gibbed, mob/living/carbon/human/H)
- if(H)
- H.endTailWag()
-
-/datum/species/fox
+/datum/species/canid/fox
name = "Fox"
id = "fox"
default_color = "FF7414"
@@ -1084,18 +1096,16 @@ SYNDICATE BLACK OPS
attack_sound = 'sound/weapons/slash.ogg'
miss_sound = 'sound/weapons/slashmiss.ogg'
-/datum/species/fox/spec_death(gibbed, mob/living/carbon/human/H)
- if(H)
- H.endTailWag()
//FELINE//
+/*
/datum/species/tajaran
name = "Tajaran"
id = "tajaran"
default_color = "BCAC9B"
roundstart = 1
specflags = list(MUTCOLORS,EYECOLOR,LIPS,HAIR)
- mutant_bodyparts = list("tail_human", "ears", "wings")
- default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "tail_human" = "Tajaran", "ears" = "Tajaran", "wings" = "None")
+ mutant_bodyparts = list("tail_human", "ears", "wings", "mam_body_markings")
+ default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "tail_human" = "Tajaran", "ears" = "Tajaran", "wings" = "None", "mam_body_markings" = "Light Belly")
attack_verb = "claw"
attack_sound = 'sound/weapons/slash.ogg'
miss_sound = 'sound/weapons/slashmiss.ogg'
@@ -1103,6 +1113,7 @@ SYNDICATE BLACK OPS
/datum/species/tajaran/spec_death(gibbed, mob/living/carbon/human/H)
if(H)
H.endTailWag()
+*/
//AVIAN//
//RODENT//
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index c05462a84f..e6e0fea00a 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -562,6 +562,8 @@ var/global/list/limb_icon_cache = list()
. += "-coloured-[dna.species.fixed_mut_color]"
else if(dna.features["mcolor"])
. += "-coloured-[dna.features["mcolor"]]"
+ else if(dna.features["mcolor"] && dna.species.use_skintones)
+ . += "-coloured-[skin_tone]"
else
. += "-not_coloured"
diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm
index 3c4559e7e6..6744e1e07c 100644
--- a/code/modules/mob/new_player/sprite_accessories.dm
+++ b/code/modules/mob/new_player/sprite_accessories.dm
@@ -1411,15 +1411,33 @@
name = "Wolf"
icon_state = "wolf"
hasinner = 1
-
+ color_src = HAIR
/datum/sprite_accessory/tails/human/wolf
name = "Wolf"
icon_state = "wolf"
-
+//The static and wagging sprites can be toggled on and off with 'say "*wag"'
/datum/sprite_accessory/tails_animated/human/wolf
name = "Wolf"
icon_state = "wolf"
+//FOX//
+/datum/sprite_accessory/ears/fox
+ name = "Fox"
+ icon_state = "fox"
+ hasinner = 0
+/datum/sprite_accessory/tails/human/fox
+ name = "Fox"
+ icon_state = "fox"
+/datum/sprite_accessory/tails_animated/human/fox
+ name = "Fox"
+ icon_state = "fox"
-//coming soon:
-
-//FOX//
\ No newline at end of file
+//Mammal Body Markings
+/datum/sprite_accessory/mam_body_markings/none
+ name = "None"
+ icon_state = ""
+/datum/sprite_accessory/mam_body_markings/lbelly
+ name = "Light Belly"
+ icon_state = "mam_lbelly"
+/datum/sprite_accessory/mam_body_markings/dbelly
+ name = "Dark Belly"
+ icon_state = "mam_dbelly"
\ No newline at end of file
diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi
index 7e3518e8a2..f12db2bd71 100644
Binary files a/icons/mob/human.dmi and b/icons/mob/human.dmi differ
diff --git a/icons/mob/human_parts.dmi b/icons/mob/human_parts.dmi
index 17a4129440..b0a1fc7a3b 100644
Binary files a/icons/mob/human_parts.dmi and b/icons/mob/human_parts.dmi differ
diff --git a/icons/mob/human_parts_greyscale.dmi b/icons/mob/human_parts_greyscale.dmi
index 36548c9ed8..52081f9e94 100644
Binary files a/icons/mob/human_parts_greyscale.dmi and b/icons/mob/human_parts_greyscale.dmi differ
diff --git a/icons/mob/mutant_bodyparts.dmi b/icons/mob/mutant_bodyparts.dmi
index b485bca5ab..ecaed63c58 100644
Binary files a/icons/mob/mutant_bodyparts.dmi and b/icons/mob/mutant_bodyparts.dmi differ