diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 6c43253e2e5..fc945cebcf0 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -377,7 +377,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) //Mutant stuff var/mutant_category = 0 - if("tail_lizard" in pref_species.default_features) + if(pref_species.mutant_bodyparts["tail_lizard"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -390,7 +390,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 - if("snout" in pref_species.default_features) + if(pref_species.mutant_bodyparts["snout"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -403,7 +403,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 - if("horns" in pref_species.default_features) + if(pref_species.mutant_bodyparts["horns"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -416,7 +416,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 - if("frills" in pref_species.default_features) + if(pref_species.mutant_bodyparts["frills"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -429,7 +429,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 - if("spines" in pref_species.default_features) + if(pref_species.mutant_bodyparts["spines"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -442,7 +442,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 - if("body_markings" in pref_species.default_features) + if(pref_species.mutant_bodyparts["body_markings"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -455,7 +455,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 - if("legs" in pref_species.default_features) + if(pref_species.mutant_bodyparts["legs"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -468,7 +468,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 - if("moth_wings" in pref_species.default_features) + if(pref_species.mutant_bodyparts["moth_wings"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -481,7 +481,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 - if("moth_antennae" in pref_species.default_features) + if(pref_species.mutant_bodyparts["moth_antennae"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -494,7 +494,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 - if("moth_markings" in pref_species.default_features) + if(pref_species.mutant_bodyparts["moth_markings"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -507,7 +507,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 - if("tail_human" in pref_species.default_features) + if(pref_species.mutant_bodyparts["tail_human"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -520,7 +520,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 - if("ears" in pref_species.default_features) + if(pref_species.mutant_bodyparts["ears"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -541,7 +541,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(CONFIG_GET(flag/join_with_mutant_humans)) - if("wings" in pref_species.default_features && GLOB.r_wings_list.len >1) + if(pref_species.mutant_bodyparts["wings"] && GLOB.r_wings_list.len >1) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -1932,10 +1932,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.set_species(chosen_species, icon_update = FALSE, pref_load = TRUE) character.dna.real_name = character.real_name - if("tail_lizard" in pref_species.default_features) - character.dna.species.mutant_bodyparts |= "tail_lizard" - if("spines" in pref_species.default_features) - character.dna.species.mutant_bodyparts |= "spines" + if(pref_species.mutant_bodyparts["tail_lizard"]) + character.dna.species.mutant_bodyparts["tail_lizard"] = pref_species.mutant_bodyparts["tail_lizard"] + if(pref_species.mutant_bodyparts["spines"]) + character.dna.species.mutant_bodyparts["spines"] = pref_species.mutant_bodyparts["spines"] if(icon_updates) character.update_body() diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 9a8b251b70b..a9e0a8d77bc 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -142,7 +142,7 @@ /datum/emote/living/carbon/human/wing/select_message_type(mob/user, intentional) . = ..() var/mob/living/carbon/human/H = user - if("wings" in H.dna.species.mutant_bodyparts) + if(H.dna.species.mutant_bodyparts["wings"]) . = "opens " + message else . = "closes " + message @@ -157,17 +157,17 @@ /mob/living/carbon/human/proc/OpenWings() if(!dna || !dna.species) return - if("wings" in dna.species.mutant_bodyparts) + if(dna.species.mutant_bodyparts["wings"]) + dna.species.mutant_bodyparts["wingsopen"] = dna.species.mutant_bodyparts["wings"] dna.species.mutant_bodyparts -= "wings" - dna.species.mutant_bodyparts |= "wingsopen" update_body() /mob/living/carbon/human/proc/CloseWings() if(!dna || !dna.species) return - if("wingsopen" in dna.species.mutant_bodyparts) + if(dna.species.mutant_bodyparts["wingsopen"]) + dna.species.mutant_bodyparts["wings"] = dna.species.mutant_bodyparts["wingsopen"] dna.species.mutant_bodyparts -= "wingsopen" - dna.species.mutant_bodyparts |= "wings" update_body() if(isturf(loc)) var/turf/T = loc diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 100b97bea59..be548064265 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -54,17 +54,17 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/say_mod = "says" ///What languages this species can understand and say. Use a [language holder datum][/datum/language_holder] in this var. var/species_language_holder = /datum/language_holder - /// Default mutant bodyparts for this species, like horns. Don't forget to set one for every mutant bodypart you allow this species to have. - var/list/default_features = list() - /// Visible CURRENT bodyparts that are unique to a species. - /// - /// DO NOT USE THIS AS A LIST OF ALL POSSIBLE BODYPARTS AS IT WILL FUCK - /// SHIT UP! Changes to this list for non-species specific bodyparts (ie - /// cat ears and tails) should be assigned at organ level if possible. - /// Layer hiding is handled by [/datum/species/proc/handle_mutant_bodyparts] - /// below. - //var/list/mutant_bodyparts = list() - ORIGINAL - var/list/list/mutant_bodyparts = list() //SKYRAT EDIT CHANGE - CUSTOMIZATION + /** + * Visible CURRENT bodyparts that are unique to a species. + * DO NOT USE THIS AS A LIST OF ALL POSSIBLE BODYPARTS AS IT WILL FUCK + * SHIT UP! Changes to this list for non-species specific bodyparts (ie + * cat ears and tails) should be assigned at organ level if possible. + * Assoc values are defaults for given bodyparts, also modified by aforementioned organs. + * They also allow for faster '[]' list access versus 'in'. Other than that, they are useless right now. + * Layer hiding is handled by [/datum/species/proc/handle_mutant_bodyparts] below. + */ + //var/list/mutant_bodyparts = list() //ORIGINAL + var/list/list/mutant_bodyparts = list() //SKYRAT EDIT CHANGE - CUSTOMIZATION (typed list) ///Internal organs that are unique to this race, like a tail. var/list/mutant_organs = list() ///Multiplier for the race's speed. Positive numbers make it move slower, negative numbers make it move faster. @@ -346,7 +346,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) C.hud_used.update_locked_slots() // this needs to be FIRST because qdel calls update_body which checks if we have DIGITIGRADE legs or not and if not then removes DIGITIGRADE from species_traits - if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Digitigrade Legs") + if(C.dna.species.mutant_bodyparts["legs"] && C.dna.features["legs"] == "Digitigrade Legs") species_traits += DIGITIGRADE if(DIGITIGRADE in species_traits) C.Digitigrade_Leg_Swap(FALSE) @@ -441,8 +441,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(C.movement_type & FLYING) ToggleFlight(C) if(C.dna && C.dna.species && (C.dna.features["wings"] == wings_icon)) - if("wings" in C.dna.species.mutant_bodyparts) - C.dna.species.mutant_bodyparts -= "wings" + C.dna.species.mutant_bodyparts -= "wings" C.dna.features["wings"] = "None" C.update_body() @@ -738,64 +737,64 @@ GLOBAL_LIST_EMPTY(roundstart_races) var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD) - if("tail_lizard" in mutant_bodyparts) + if(mutant_bodyparts["tail_lizard"]) if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) bodyparts_to_add -= "tail_lizard" - if("waggingtail_lizard" in mutant_bodyparts) + if(mutant_bodyparts["waggingtail_lizard"]) if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) bodyparts_to_add -= "waggingtail_lizard" - else if ("tail_lizard" in mutant_bodyparts) + else if (mutant_bodyparts["tail_lizard"]) bodyparts_to_add -= "waggingtail_lizard" - if("tail_human" in mutant_bodyparts) + if(mutant_bodyparts["tail_human"]) if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) bodyparts_to_add -= "tail_human" - if("waggingtail_human" in mutant_bodyparts) + if(mutant_bodyparts["waggingtail_human"]) if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) bodyparts_to_add -= "waggingtail_human" - else if ("tail_human" in mutant_bodyparts) + else if (mutant_bodyparts["tail_human"]) bodyparts_to_add -= "waggingtail_human" - if("spines" in mutant_bodyparts) + if(mutant_bodyparts["spines"]) if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) bodyparts_to_add -= "spines" - if("waggingspines" in mutant_bodyparts) + if(mutant_bodyparts["waggingspines"]) if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) bodyparts_to_add -= "waggingspines" - else if ("tail" in mutant_bodyparts) + else if (mutant_bodyparts["tail"]) bodyparts_to_add -= "waggingspines" - if("snout" in mutant_bodyparts) //Take a closer look at that snout! + if(mutant_bodyparts["snout"]) //Take a closer look at that snout! if((H.wear_mask && (H.wear_mask.flags_inv & HIDEFACE)) || (H.head && (H.head.flags_inv & HIDEFACE)) || !HD || HD.status == BODYPART_ROBOTIC) bodyparts_to_add -= "snout" - if("frills" in mutant_bodyparts) + if(mutant_bodyparts["frills"]) if(!H.dna.features["frills"] || H.dna.features["frills"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || !HD || HD.status == BODYPART_ROBOTIC) bodyparts_to_add -= "frills" - if("horns" in mutant_bodyparts) + if(mutant_bodyparts["horns"]) if(!H.dna.features["horns"] || H.dna.features["horns"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == BODYPART_ROBOTIC) bodyparts_to_add -= "horns" - if("ears" in mutant_bodyparts) + if(mutant_bodyparts["ears"]) if(!H.dna.features["ears"] || H.dna.features["ears"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == BODYPART_ROBOTIC) bodyparts_to_add -= "ears" - if("wings" in mutant_bodyparts) + if(mutant_bodyparts["wings"]) if(!H.dna.features["wings"] || H.dna.features["wings"] == "None" || (H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT) && (!H.wear_suit.species_exception || !is_type_in_list(src, H.wear_suit.species_exception)))) bodyparts_to_add -= "wings" - if("wings_open" in mutant_bodyparts) + if(mutant_bodyparts["wings_open"]) if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT) && (!H.wear_suit.species_exception || !is_type_in_list(src, H.wear_suit.species_exception))) bodyparts_to_add -= "wings_open" - else if ("wings" in mutant_bodyparts) + else if (mutant_bodyparts["wings"]) bodyparts_to_add -= "wings_open" - if("moth_antennae" in mutant_bodyparts) + if(mutant_bodyparts["moth_antennae"]) if(!H.dna.features["moth_antennae"] || H.dna.features["moth_antennae"] == "None" || !HD) bodyparts_to_add -= "moth_antennae" @@ -1936,7 +1935,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) fly = new fly.Grant(H) if(H.dna.features["wings"] != wings_icon) - mutant_bodyparts |= "wings" + mutant_bodyparts["wings"] = wings_icon H.dna.features["wings"] = wings_icon H.update_body() diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm index fcd97492e47..4585e532e51 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -4,7 +4,7 @@ default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS, HAS_FLESH, HAS_BONE) inherent_traits = list(TRAIT_NOHUNGER,TRAIT_NOBREATH) - default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None") + mutant_bodyparts = list("tail_human" = "None", "ears" = "None", "wings" = "None") use_skintones = TRUE mutantbrain = /obj/item/organ/brain/dullahan mutanteyes = /obj/item/organ/eyes/dullahan diff --git a/code/modules/mob/living/carbon/human/species_types/felinid.dm b/code/modules/mob/living/carbon/human/species_types/felinid.dm index 274758e9f5f..6f638c7da85 100644 --- a/code/modules/mob/living/carbon/human/species_types/felinid.dm +++ b/code/modules/mob/living/carbon/human/species_types/felinid.dm @@ -5,8 +5,7 @@ say_mod = "meows" limbs_id = "human" - mutant_bodyparts = list("ears", "tail_human") - default_features = list("mcolor" = "FFF", "tail_human" = "Cat", "ears" = "Cat", "wings" = "None") + mutant_bodyparts = list("tail_human" = "Cat", "ears" = "Cat", "wings" = "None") //mutantears = /obj/item/organ/ears/cat //SKYRAT EDIT REMOVAL - CUSTOMIZATION //mutant_organs = list(/obj/item/organ/tail/cat) //SKYRAT EDIT REMOVAL - CUSTOMIZATION @@ -30,23 +29,23 @@ . = ..() /datum/species/human/felinid/can_wag_tail(mob/living/carbon/human/H) - return ("tail_human" in mutant_bodyparts) || ("waggingtail_human" in mutant_bodyparts) + return mutant_bodyparts["tail_human"] || mutant_bodyparts["waggingtail_human"] /datum/species/human/felinid/is_wagging_tail(mob/living/carbon/human/H) - return ("waggingtail_human" in mutant_bodyparts) + return mutant_bodyparts["waggingtail_human"] /datum/species/human/felinid/start_wagging_tail(mob/living/carbon/human/H) - if("tail_human" in mutant_bodyparts) + if(mutant_bodyparts["tail_human"]) + mutant_bodyparts["waggingtail_human"] = mutant_bodyparts["tail_human"] mutant_bodyparts -= "tail_human" - mutant_bodyparts |= "waggingtail_human" H.update_body() */ //SKYRAT EDIT REMOVAL END /datum/species/human/felinid/stop_wagging_tail(mob/living/carbon/human/H) - if("waggingtail_human" in mutant_bodyparts) + if(mutant_bodyparts["waggingtail_human"]) + mutant_bodyparts["tail_human"] = mutant_bodyparts["waggingtail_human"] mutant_bodyparts -= "waggingtail_human" - mutant_bodyparts |= "tail_human" H.update_body() /datum/species/human/felinid/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load) diff --git a/code/modules/mob/living/carbon/human/species_types/humans.dm b/code/modules/mob/living/carbon/human/species_types/humans.dm index fce8d234aa4..5848371b092 100644 --- a/code/modules/mob/living/carbon/human/species_types/humans.dm +++ b/code/modules/mob/living/carbon/human/species_types/humans.dm @@ -3,7 +3,7 @@ id = "human" default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,HAS_FLESH,HAS_BONE) - default_features = list("mcolor" = "FFF", "wings" = "None") + mutant_bodyparts = list("wings" = "None") use_skintones = 1 skinned_type = /obj/item/stack/sheet/animalhide/human disliked_food = GROSS | RAW diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 9d3c47e2bd7..9360203fa84 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -6,13 +6,13 @@ default_color = "00FF00" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAS_FLESH,HAS_BONE) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_REPTILE - mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs") + mutant_bodyparts = list("tail_lizard" = "Smooth", "snout" = "Round", "horns" = "None", + "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs") mutanttongue = /obj/item/organ/tongue/lizard //mutant_organs = list(/obj/item/organ/tail/lizard) //SKYRAT EDIT REMOVAL - CUSTOMIZATION coldmod = 1.5 heatmod = 0.67 payday_modifier = 0.75 - default_features = list("mcolor" = "0F0", "tail_lizard" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs") changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT attack_verb = "slash" attack_sound = 'sound/weapons/slash.ogg' @@ -60,25 +60,25 @@ . = ..() /datum/species/lizard/can_wag_tail(mob/living/carbon/human/H) - return ("tail_lizard" in mutant_bodyparts) || ("waggingtail_lizard" in mutant_bodyparts) + return mutant_bodyparts["tail_lizard"] || mutant_bodyparts["waggingtail_lizard"] /datum/species/lizard/is_wagging_tail(mob/living/carbon/human/H) - return ("waggingtail_lizard" in mutant_bodyparts) + return mutant_bodyparts["waggingtail_lizard"] /datum/species/lizard/start_wagging_tail(mob/living/carbon/human/H) - if("tail_lizard" in mutant_bodyparts) + if(mutant_bodyparts["tail_lizard"]) + mutant_bodyparts["waggingtail_lizard"] = mutant_bodyparts["tail_lizard"] + mutant_bodyparts["waggingspines"] = mutant_bodyparts["spines"] mutant_bodyparts -= "tail_lizard" mutant_bodyparts -= "spines" - mutant_bodyparts |= "waggingtail_lizard" - mutant_bodyparts |= "waggingspines" H.update_body() /datum/species/lizard/stop_wagging_tail(mob/living/carbon/human/H) - if("waggingtail_lizard" in mutant_bodyparts) + if(mutant_bodyparts["waggingtail_lizard"]) + mutant_bodyparts["tail_lizard"] = mutant_bodyparts["waggingtail_lizard"] + mutant_bodyparts["spines"] = mutant_bodyparts["waggingspines"] mutant_bodyparts -= "waggingtail_lizard" mutant_bodyparts -= "waggingspines" - mutant_bodyparts |= "tail_lizard" - mutant_bodyparts |= "spines" H.update_body() /datum/species/lizard/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load) @@ -97,10 +97,7 @@ var/obj/item/organ/tail/lizard/new_tail = new /obj/item/organ/tail/lizard() new_tail.tail_type = C.dna.features["tail_lizard"] - C.dna.species.mutant_bodyparts |= "tail_lizard" - new_tail.spines = C.dna.features["spines"] - C.dna.species.mutant_bodyparts |= "spines" // organ.Insert will qdel any existing organs in the same slot, so // we don't need to manage that. diff --git a/code/modules/mob/living/carbon/human/species_types/mothmen.dm b/code/modules/mob/living/carbon/human/species_types/mothmen.dm index bc0d31e8047..ef18bfa4184 100644 --- a/code/modules/mob/living/carbon/human/species_types/mothmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/mothmen.dm @@ -5,8 +5,7 @@ default_color = "00FF00" species_traits = list(LIPS, NOEYESPRITES, HAS_FLESH, HAS_BONE, HAS_MARKINGS) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BUG - mutant_bodyparts = list("moth_wings", "moth_antennae", "moth_markings") - default_features = list("moth_wings" = "Plain", "moth_antennae" = "Plain", "moth_markings" = "None") + mutant_bodyparts = list("moth_wings" = "Plain", "moth_antennae" = "Plain", "moth_markings" = "None") attack_verb = "slash" attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' diff --git a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm index ca20e5e6aa7..885850f417f 100644 --- a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm @@ -1,8 +1,7 @@ /datum/species/mush //mush mush codecuck name = "Mushroomperson" id = "mush" - mutant_bodyparts = list("caps") - default_features = list("caps" = "Round") + mutant_bodyparts = list("caps" = "Round") changesource_flags = MIRROR_BADMIN | WABBAJACK | ERT_SPAWN fixed_mut_color = "DBBF92" diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm index c8477d2fbc9..8703f790cb5 100644 --- a/code/modules/mob/living/carbon/human/species_types/synths.dm +++ b/code/modules/mob/living/carbon/human/species_types/synths.dm @@ -66,7 +66,6 @@ meat = S.meat mutant_bodyparts = S.mutant_bodyparts.Copy() mutant_organs = S.mutant_organs.Copy() - default_features = S.default_features.Copy() nojumpsuit = S.nojumpsuit no_equip = S.no_equip.Copy() limbs_id = S.limbs_id @@ -83,7 +82,6 @@ attack_sound = initial(attack_sound) miss_sound = initial(miss_sound) mutant_bodyparts = list() - default_features = list() nojumpsuit = initial(nojumpsuit) no_equip = list() qdel(fake_species) diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index a6d3c218bf6..80f15653616 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -5,7 +5,7 @@ species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,DRINKSBLOOD, HAS_FLESH, HAS_BONE) inherent_traits = list(TRAIT_NOHUNGER,TRAIT_NOBREATH) inherent_biotypes = MOB_UNDEAD|MOB_HUMANOID - default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "None") + mutant_bodyparts = list("tail_human" = "None", "ears" = "None", "wings" = "None") changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | ERT_SPAWN exotic_bloodtype = "U" use_skintones = TRUE diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index af72a5b2e04..14bd2a41364 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -125,7 +125,7 @@ var/mob/living/carbon/human/H = user var/open = FALSE if(H.dna.features["wings"] != "None") - if("wingsopen" in H.dna.species.mutant_bodyparts) + if(H.dna.species.mutant_bodyparts["wingsopen"]) open = TRUE H.CloseWings() else diff --git a/code/modules/surgery/organs/ears.dm b/code/modules/surgery/organs/ears.dm index b275c0aac83..6c5a154dda8 100644 --- a/code/modules/surgery/organs/ears.dm +++ b/code/modules/surgery/organs/ears.dm @@ -72,11 +72,10 @@ ..() if(istype(H)) color = H.hair_color - H.dna.species.mutant_bodyparts |= "ears" - H.dna.features["ears"] = "Cat" - H.update_body()*/ + H.dna.features["ears"] = H.dna.species.mutant_bodyparts["ears"] = "Cat" + H.update_body() -/*/obj/item/organ/ears/cat/Remove(mob/living/carbon/human/H, special = 0) +/obj/item/organ/ears/cat/Remove(mob/living/carbon/human/H, special = 0) ..() if(istype(H)) color = H.hair_color diff --git a/code/modules/surgery/organs/tails.dm b/code/modules/surgery/organs/tails.dm index 908bc0455bf..18761fb2687 100644 --- a/code/modules/surgery/organs/tails.dm +++ b/code/modules/surgery/organs/tails.dm @@ -23,12 +23,12 @@ /obj/item/organ/tail/cat/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE) ..() if(istype(H)) - if(!("tail_human" in H.dna.species.mutant_bodyparts)) - H.dna.species.mutant_bodyparts |= "tail_human" - H.dna.features["tail_human"] = tail_type - H.update_body()*/ + var/default_part = H.dna.species.mutant_bodyparts["tail_human"] + if(!default_part || default_part == "None") + H.dna.features["tail_human"] = H.dna.species.mutant_bodyparts["tail_human"] = tail_type + H.update_body() -/*/obj/item/organ/tail/cat/Remove(mob/living/carbon/human/H, special = 0) +/obj/item/organ/tail/cat/Remove(mob/living/carbon/human/H, special = 0) ..() if(istype(H)) H.dna.features["tail_human"] = "None" @@ -55,13 +55,13 @@ ..() if(istype(H)) // Checks here are necessary so it wouldn't overwrite the tail of a lizard it spawned in - if(!("tail_lizard" in H.dna.species.mutant_bodyparts)) - H.dna.features["tail_lizard"] = tail_type - H.dna.species.mutant_bodyparts |= "tail_lizard" + var/default_part = H.dna.species.mutant_bodyparts["tail_lizard"] + if(!default_part || default_part == "None") + H.dna.features["tail_lizard"] = H.dna.species.mutant_bodyparts["tail_lizard"] = tail_type - if(!("spines" in H.dna.species.mutant_bodyparts)) - H.dna.features["spines"] = spines - H.dna.species.mutant_bodyparts |= "spines" + default_part = H.dna.species.mutant_bodyparts["spines"] + if(!default_part || default_part == "None") + H.dna.features["spines"] = H.dna.species.mutant_bodyparts["spines"] = spines H.update_body() /obj/item/organ/tail/lizard/Remove(mob/living/carbon/human/H, special = 0) diff --git a/modular_skyrat/modules/customization/modules/client/preferences.dm b/modular_skyrat/modules/customization/modules/client/preferences.dm index eb0ad61d66f..2507189c77f 100644 --- a/modular_skyrat/modules/customization/modules/client/preferences.dm +++ b/modular_skyrat/modules/customization/modules/client/preferences.dm @@ -2708,8 +2708,6 @@ gent.aroused = arousal_preview gent.update_sprite_suffix() - /*if("tail_lizard" in pref_species.default_features) - character.dna.species.mutant_bodyparts |= "tail_lizard"*/ if(length(augments)) for(var/key in augments) var/datum/augment_item/aug = GLOB.augment_items[augments[key]] diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm index ccd4f0e9bbc..23a7dd33169 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm @@ -228,8 +228,6 @@ H.apply_overlay(BODY_FRONT_LAYER) /datum/species - ///This holds 3 lists. Each of the list is possible colors to choose for randomization of a species, first list is primary, second secondary, third tertiary - default_features = null ///What accessories can a species have aswell as their default accessory of such type e.g. "frills" = "Aquatic". Default accessory colors is dictated by the accessory properties and mutcolors of the specie var/list/default_mutant_bodyparts = list() @@ -243,35 +241,28 @@ default_mutant_bodyparts["penis"] = "None" /datum/species/dullahan - default_features = null mutant_bodyparts = list() /datum/species/human/felinid - default_features = null mutant_bodyparts = list() default_mutant_bodyparts = list("tail" = "Cat", "ears" = "Cat") /datum/species/human - default_features = null mutant_bodyparts = list() default_mutant_bodyparts = list("ears" = "None", "tail" = "None", "wings" = "None") /datum/species/mush - default_features = null mutant_bodyparts = list() /datum/species/vampire - default_features = null mutant_bodyparts = list() /datum/species/plasmaman - default_features = null mutant_bodyparts = list() can_have_genitals = FALSE can_augment = FALSE /datum/species/ethereal - default_features = null mutant_bodyparts = list() can_have_genitals = FALSE can_augment = FALSE diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/akula.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/akula.dm index e52dd30ce51..5109b1e57ed 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/akula.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/akula.dm @@ -4,7 +4,6 @@ default_color = "4B4B4B" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAS_FLESH,HAS_BONE,HAIR) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID - default_features = null mutant_bodyparts = list() default_mutant_bodyparts = list("tail" = ACC_RANDOM, "snout" = ACC_RANDOM, "ears" = ACC_RANDOM, "legs" = "Normal Legs") attack_verb = "slash" diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/aquatic.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/aquatic.dm index edbb9ede334..0d0591eb5df 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/aquatic.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/aquatic.dm @@ -4,7 +4,6 @@ default_color = "4B4B4B" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAS_FLESH,HAS_BONE,HAIR, FACEHAIR) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID - default_features = null mutant_bodyparts = list() default_mutant_bodyparts = list("tail" = ACC_RANDOM, "snout" = ACC_RANDOM, "horns" = "None", "ears" = ACC_RANDOM, "legs" = "Normal Legs", "wings" = "None") attack_verb = "slash" diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/humanoid.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/humanoid.dm index de12f35ae3d..a53614b302e 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/humanoid.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/humanoid.dm @@ -4,7 +4,6 @@ default_color = "4B4B4B" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAS_FLESH,HAS_BONE,HAIR,FACEHAIR) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID - default_features = null mutant_bodyparts = list() default_mutant_bodyparts = list("tail" = "None", "snout" = "None", "ears" = "None", "legs" = "Normal Legs", "wings" = "None", "taur" = "None", "horns" = "None") changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/insect.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/insect.dm index 906264ba40c..b5551b0102c 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/insect.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/insect.dm @@ -4,7 +4,6 @@ default_color = "4B4B4B" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAS_FLESH,HAS_BONE,HAIR,FACEHAIR) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BUG - default_features = null mutant_bodyparts = list() default_mutant_bodyparts = list("tail" = "None", "snout" = "None", "horns" = "None", "ears" = "None", "legs" = "Normal Legs", "taur" = "None", "wings" = "Bee", "moth_antennae" = ACC_RANDOM) changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/lizard.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/lizard.dm index 4a416cb199d..20ea1e4f276 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/lizard.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/lizard.dm @@ -1,5 +1,4 @@ /datum/species/lizard - default_features = null mutant_bodyparts = list() species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAS_FLESH,HAS_BONE,HAIR,FACEHAIR) default_mutant_bodyparts = list("tail" = ACC_RANDOM, "snout" = ACC_RANDOM, "spines" = ACC_RANDOM, "frills" = ACC_RANDOM, "horns" = ACC_RANDOM, "body_markings" = ACC_RANDOM, "legs" = "Digitigrade Legs", "taur" = "None", "wings" = "None") diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/mammal.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/mammal.dm index 10dacbb37d6..2b5d35ce1f3 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/mammal.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/mammal.dm @@ -4,7 +4,6 @@ default_color = "4B4B4B" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAS_FLESH,HAS_BONE,HAIR,FACEHAIR) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID - default_features = null mutant_bodyparts = list() default_mutant_bodyparts = list("tail" = ACC_RANDOM, "snout" = ACC_RANDOM, "horns" = "None", "ears" = ACC_RANDOM, "legs" = ACC_RANDOM, "taur" = "None", "wings" = "None") attack_verb = "slash" diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/moth.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/moth.dm index 1ed9a966397..6d845d5d758 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/moth.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/moth.dm @@ -1,5 +1,4 @@ /datum/species/moth - default_features = null mutant_bodyparts = list() default_mutant_bodyparts = list("wings" = ACC_RANDOM, "moth_antennae" = ACC_RANDOM) diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/robotic.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/robotic.dm index 2b725fa7568..c1e7f1d827a 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/robotic.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/robotic.dm @@ -3,7 +3,6 @@ default_color = "00FF00" inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID inherent_traits = list(TRAIT_RADIMMUNE,TRAIT_VIRUSIMMUNE,TRAIT_NOBREATH, TRAIT_TOXIMMUNE, TRAIT_NOCLONELOSS, TRAIT_GENELESS, TRAIT_STABLEHEART,TRAIT_LIMBATTACHMENT, TRAIT_NO_HUSK, TRAIT_OXYIMMUNE) - default_features = null mutant_bodyparts = list() changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT reagent_flags = PROCESS_SYNTHETIC diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/skrell.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/skrell.dm index f0201d465ca..baa83b80958 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/skrell.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/skrell.dm @@ -4,7 +4,6 @@ default_color = "4B4B4B" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAS_FLESH,HAS_BONE) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID - default_features = null mutant_bodyparts = list() default_mutant_bodyparts = list("skrell_hair" = ACC_RANDOM) changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/tajaran.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/tajaran.dm index fc16d3256f7..4baff3a8643 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/tajaran.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/tajaran.dm @@ -4,7 +4,6 @@ default_color = "4B4B4B" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAS_FLESH,HAS_BONE,HAIR) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID - default_features = null mutant_bodyparts = list() default_mutant_bodyparts = list("tail" = ACC_RANDOM, "snout" = ACC_RANDOM, "ears" = ACC_RANDOM, "legs" = "Normal Legs") attack_verb = "slash" diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/unathi.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/unathi.dm index 5de71a061c1..04fa61a6001 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/unathi.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/unathi.dm @@ -4,7 +4,6 @@ default_color = "4B4B4B" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAS_FLESH,HAS_BONE,HAIR) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID - default_features = null mutant_bodyparts = list() default_mutant_bodyparts = list("tail" = ACC_RANDOM, "snout" = ACC_RANDOM, "spines" = "None", "frills" = "None", "horns" = ACC_RANDOM, "body_markings" = ACC_RANDOM, "legs" = "Normal Legs") attack_verb = "slash" diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/vulpkanin.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/vulpkanin.dm index 856f1232733..72451622d9e 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/vulpkanin.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/vulpkanin.dm @@ -4,7 +4,6 @@ default_color = "4B4B4B" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAS_FLESH,HAS_BONE,HAIR) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID - default_features = null mutant_bodyparts = list() default_mutant_bodyparts = list("tail" = ACC_RANDOM, "snout" = ACC_RANDOM, "ears" = ACC_RANDOM, "legs" = "Normal Legs") attack_verb = "slash" diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/xeno.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/xeno.dm index ef2f34e38aa..58117a8b376 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/xeno.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species/xeno.dm @@ -6,7 +6,6 @@ default_color = "00FF00" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAS_FLESH,HAS_BONE) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID - default_features = null mutant_bodyparts = list() default_mutant_bodyparts = list("tail" = "Xenomorph Tail", "legs" = "Digitigrade Legs", "xenodorsal" = ACC_RANDOM, "xenohead" = ACC_RANDOM, "taur" = "None") attack_verb = "slash"