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