diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index 0407daeb80..c60e122936 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -71,6 +71,8 @@ #define EASYDISMEMBER 20 #define EASYLIMBATTACHMENT 21 #define TOXINLOVER 22 +#define MUTCOLORS2 23 +#define MUTCOLORS3 24 #define FLYING 65536 diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index 50af9c470a..8e0bd5f6ad 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -28,6 +28,7 @@ #define CHAT_GHOSTWHISPER 128 #define CHAT_GHOSTPDA 256 #define CHAT_GHOSTRADIO 512 +#define CHAT_LOOC 1024 #define TOGGLES_DEFAULT_CHAT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_PULLR|CHAT_GHOSTWHISPER|CHAT_GHOSTPDA|CHAT_GHOSTRADIO) diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 9ade3ce5e2..bf3bb7c521 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -30,6 +30,9 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, r_wings_list,roundstart = TRUE) //mammal bodyparts (fucking furries) 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) //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 208521fa32..86c2537f22 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -36,7 +36,9 @@ var/global/list/r_wings_list = list() //Mammal Specific Mutant Human Bits 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 0edab005a6..5bd4c80c01 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -41,13 +41,6 @@ var/list/preferences_datums = list() var/allow_midround_antag = 1 var/preferred_map = null - //vore code - var/mutant_tail = "none" - var/mutant_wing = "none" - var/wingcolor = "FFF" - //var/special_color[COLOUR_LIST_SIZE] - //var/special_color_one = null - //var/special_color_two = null var/vore_banned_methods = 0 var/vore_extra_bans = 65535 var/list/vore_ability = list( @@ -83,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") + 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/custom_names = list("clown", "mime", "ai", "cyborg", "religion", "deity") //Mob preview @@ -1011,6 +1004,12 @@ var/list/preferences_datums = list() if(new_tail) features["tail_human"] = new_tail + if("mam_tail") + var/new_tail + new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in mam_tails_list + if(new_tail) + features["mam_tail"] = new_tail + if("snout") var/new_snout new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in snouts_list @@ -1023,6 +1022,12 @@ var/list/preferences_datums = list() if(new_horns) features["horns"] = new_horns + if("mam_ears") + var/new_ears + new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in mam_ears_list + if(new_ears) + features["mam_ears"] = new_ears + if("ears") var/new_ears new_ears = input(user, "Choose your character's ears:", "Character Preference") as null|anything in ears_list diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index c100a0d2f5..bfc85722a4 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -310,22 +310,22 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["features["mcolor3"]"] << "#FFF" //Character - S["Flavor_Text"] >> flavor_text - S["real_name"] >> real_name - S["name_is_always_random"] >> be_random_name - S["body_is_always_random"] >> be_random_body - S["gender"] >> gender - S["age"] >> age - S["hair_color"] >> hair_color - S["facial_hair_color"] >> facial_hair_color - S["eye_color"] >> eye_color - S["skin_tone"] >> skin_tone - S["hair_style_name"] >> hair_style - S["facial_style_name"] >> facial_hair_style - S["underwear"] >> underwear - S["undershirt"] >> undershirt - S["socks"] >> socks - S["backbag"] >> backbag + S["Flavor_Text"] >> flavor_text + S["real_name"] >> real_name + S["name_is_always_random"] >> be_random_name + S["body_is_always_random"] >> be_random_body + S["gender"] >> gender + S["age"] >> age + S["hair_color"] >> hair_color + S["facial_hair_color"] >> facial_hair_color + S["eye_color"] >> eye_color + S["skin_tone"] >> skin_tone + S["hair_style_name"] >> hair_style + S["facial_style_name"] >> facial_hair_style + S["underwear"] >> underwear + S["undershirt"] >> undershirt + S["socks"] >> socks + S["backbag"] >> backbag S["feature_mcolor"] >> features["mcolor"] S["feature_mcolor2"] >> features["mcolor2"] S["feature_mcolor3"] >> features["mcolor3"] @@ -335,7 +335,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_lizard_frills"] >> features["frills"] S["feature_lizard_spines"] >> features["spines"] S["feature_lizard_body_markings"] >> features["body_markings"] - S["feature_mammal_body_markings"] >> features["mam_body_markings"] + 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"] 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 81e9e00392..58a945a7b5 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -56,6 +56,8 @@ var/siemens_coeff = 1 //base electrocution coefficient var/exotic_damage_overlay = "" var/fixed_mut_color = "" //to use MUTCOLOR with a fixed color that's independent of dna.feature["mcolor"] + var/fixed_mut_color2 = "" + var/fixed_mut_color3 = "" var/generic="something" var/adjective="unknown" var/restricted=0 //Set to 1 to not allow anyone to choose it, 2 to hide it from the DNA scanner, and text to restrict it to one person @@ -394,6 +396,10 @@ S = tails_list_human[H.dna.features["tail_human"]] if("waggingtail_human") S.= animated_tails_list_human[H.dna.features["tail_human"]] + if("mam_tail") + S = mam_tails_list[H.dna.features["mam_tail"]] + if("mam_waggingtail") + S.= mam_tails_animated_list[H.dna.features["mam_tail"]] if("spines") S = spines_list[H.dna.features["spines"]] if("waggingspines") @@ -409,7 +415,7 @@ 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"]] + S. = mam_body_markings_list[H.dna.features["mam_body_markings"]] if("wings") S = wings_list[H.dna.features["wings"]] if("wingsopen") @@ -445,6 +451,16 @@ I.color = "#[fixed_mut_color]" else I.color = "#[H.dna.features["mcolor"]]" + if(MUTCOLORS2) + if(fixed_mut_color2) + I.color = "#[fixed_mut_color2]" + else + I.color = "#[H.dna.features["mcolor2"]]" + if(MUTCOLORS3) + if(fixed_mut_color3) + I.color = "#[fixed_mut_color3]" + else + I.color = "#[H.dna.features["mcolor3"]]" if(HAIR) if(hair_color == "mutcolor") I.color = "#[H.dna.features["mcolor"]]" diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index 6cf655904d..8c8b02bbd8 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -6,7 +6,7 @@ name = "Human" id = "human" default_color = "FFFFFF" - specflags = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,LIPS) + 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") use_skintones = 1 @@ -1063,8 +1063,8 @@ datum/species/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", "mam_body_markings" = "None") + 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") attack_verb = "claw" attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' @@ -1072,7 +1072,7 @@ datum/species/canid /datum/species/canid/spec_death(gibbed, mob/living/carbon/human/H) if(H) H.endTailWag() - +/* /datum/species/canid/wolf name = "Wolf" id = "wolf" @@ -1097,7 +1097,7 @@ datum/species/canid miss_sound = 'sound/weapons/slashmiss.ogg' //FELINE// -/* + /datum/species/tajaran name = "Tajaran" id = "tajaran" diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index c4b772eb2d..c0154dd6bd 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -1125,6 +1125,7 @@ /datum/sprite_accessory/body_markings icon = 'icons/mob/mutant_bodyparts.dmi' + color_src = MUTCOLORS2 /datum/sprite_accessory/body_markings/none name = "None" @@ -1407,39 +1408,52 @@ icon_state = "aqua" //WOLF// -/datum/sprite_accessory/ears/wolf +/datum/sprite_accessory/mam_ears/wolf name = "Wolf" icon_state = "wolf" hasinner = 1 - color_src = HAIR -/datum/sprite_accessory/tails/human/wolf + +/datum/sprite_accessory/mam_tails/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 + +/datum/sprite_accessory/mam_tails_animated/wolf name = "Wolf" icon_state = "wolf" + +/datum/sprite_accessory/snouts/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" +/datum/sprite_accessory/snouts/fox + name = "Fox" + icon_state = "fox" + //Mammal Body Markings +/datum/sprite_accessory/mam_body_markings + name = "None" + icon_state = "none" + color_src = MUTCOLORS2 /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" + icon_state = "none" + +/datum/sprite_accessory/mam_body_markings/belly + name = "Belly" + icon_state = "mam_belly" gender_specific = 1 -/datum/sprite_accessory/mam_body_markings/dbelly - name = "Dark Belly" - icon_state = "mam_dbelly" - gender_specific = 1 \ No newline at end of file + color_src = MUTCOLORS2 diff --git a/icons/mob/mutant_bodyparts.dmi b/icons/mob/mutant_bodyparts.dmi index 0df0136e82..77cd935a42 100644 Binary files a/icons/mob/mutant_bodyparts.dmi and b/icons/mob/mutant_bodyparts.dmi differ