From 26e2ec92cace66c90cf11d355591e7dd553c80b4 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sat, 21 Mar 2020 02:04:57 +0100 Subject: [PATCH 1/2] Removes species default_features variable. --- code/modules/client/preferences.dm | 69 +++++++++---------- .../food_and_drinks/food/snacks_pie.dm | 2 +- .../mob/living/carbon/carbon_defense.dm | 30 ++------ code/modules/mob/living/carbon/human/emote.dm | 10 +-- .../mob/living/carbon/human/species.dm | 61 ++++++++-------- .../carbon/human/species_types/angel.dm | 9 ++- .../carbon/human/species_types/bugmen.dm | 15 ++-- .../carbon/human/species_types/dullahan.dm | 2 +- .../carbon/human/species_types/dwarves.dm | 1 - .../carbon/human/species_types/felinid.dm | 15 ++-- .../carbon/human/species_types/furrypeople.dm | 18 +++-- .../carbon/human/species_types/humans.dm | 15 ++-- .../living/carbon/human/species_types/ipc.dm | 3 +- .../carbon/human/species_types/jellypeople.dm | 19 +++-- .../human/species_types/lizardpeople.dm | 18 ++--- .../carbon/human/species_types/mushpeople.dm | 3 +- .../carbon/human/species_types/podpeople.dm | 17 +++-- .../carbon/human/species_types/synthliz.dm | 17 +++-- .../carbon/human/species_types/synths.dm | 2 - .../carbon/human/species_types/vampire.dm | 2 +- .../mob/living/carbon/human/update_icons.dm | 12 ++-- code/modules/mob/living/emote.dm | 2 +- code/modules/surgery/bodyparts/bodyparts.dm | 6 +- code/modules/surgery/organs/ears.dm | 2 +- code/modules/surgery/organs/tails.dm | 12 ++-- 25 files changed, 161 insertions(+), 201 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 17e9720590..904fbb34af 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -429,7 +429,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" 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 @@ -442,7 +442,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 - if("mam_tail" in pref_species.default_features) + if(pref_species.mutant_bodyparts["mam_tail"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -454,7 +454,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(mutant_category >= MAX_MUTANT_ROWS) 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 @@ -467,7 +467,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 - if("meat_type" in pref_species.default_features) + if(pref_species.mutant_bodyparts["meat_type"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -479,7 +479,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(mutant_category >= MAX_MUTANT_ROWS) dat += "" mutant_category = 0 - if("snout" in pref_species.default_features) + if(pref_species.mutant_bodyparts["snout"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -491,7 +491,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(mutant_category >= MAX_MUTANT_ROWS) dat += "" mutant_category = 0 - if("horns" in pref_species.default_features) + if(pref_species.mutant_bodyparts["horns"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -504,7 +504,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) mutant_category++ if(mutant_category >= MAX_MUTANT_ROWS) dat += "" - if("frills" in pref_species.default_features) + if(pref_species.mutant_bodyparts["frills"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -517,7 +517,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 @@ -530,7 +530,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 @@ -542,7 +542,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(mutant_category >= MAX_MUTANT_ROWS) dat += "" mutant_category = 0 - if("mam_body_markings" in pref_species.default_features) + if(pref_species.mutant_bodyparts["mam_body_markings"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -554,7 +554,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(mutant_category >= MAX_MUTANT_ROWS) dat += "" - if("mam_ears" in pref_species.default_features) + if(pref_species.mutant_bodyparts["mam_ears"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -567,7 +567,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 @@ -580,7 +580,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 - if("mam_snouts" in pref_species.default_features) + if(pref_species.mutant_bodyparts["mam_snouts"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -592,7 +592,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(mutant_category >= MAX_MUTANT_ROWS) dat += "" mutant_category = 0 - if("legs" in pref_species.default_features) + if(pref_species.mutant_bodyparts["legs"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -604,7 +604,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(mutant_category >= MAX_MUTANT_ROWS) dat += "" mutant_category = 0 - if("deco_wings" in pref_species.default_features) + if(pref_species.mutant_bodyparts["deco_wings"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -613,7 +613,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "[features["deco_wings"]]" dat += "    Change
" - if("insect_wings" in pref_species.default_features) + if(pref_species.mutant_bodyparts["insect_wings"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -625,7 +625,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(mutant_category >= MAX_MUTANT_ROWS) dat += "" mutant_category = 0 - if("insect_fluff" in pref_species.default_features) + if(pref_species.mutant_bodyparts["insect_fluff"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -636,7 +636,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(mutant_category >= MAX_MUTANT_ROWS) dat += "" mutant_category = 0 - if("taur" in pref_species.default_features) + if(pref_species.mutant_bodyparts["taur"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -644,7 +644,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "[features["taur"]]" - if("insect_markings" in pref_species.default_features) + if(pref_species.mutant_bodyparts["insect_markings"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -661,7 +661,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(mutant_category >= MAX_MUTANT_ROWS) dat += "" mutant_category = 0 - if("wings" in pref_species.mutant_bodyparts && 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 @@ -673,7 +673,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(mutant_category >= MAX_MUTANT_ROWS) dat += "" mutant_category = 0 - if("xenohead" in pref_species.default_features) + if(pref_species.mutant_bodyparts["xenohead"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -685,7 +685,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(mutant_category >= MAX_MUTANT_ROWS) dat += "" mutant_category = 0 - if("xenotail" in pref_species.default_features) + if(pref_species.mutant_bodyparts["xenotail"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -697,7 +697,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(mutant_category >= MAX_MUTANT_ROWS) dat += "" mutant_category = 0 - if("xenodorsal" in pref_species.default_features) + if(pref_species.mutant_bodyparts["xenodorsal"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -709,7 +709,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(mutant_category >= MAX_MUTANT_ROWS) dat += "" mutant_category = 0 - if("ipc_screen" in pref_species.default_features) + if(pref_species.mutant_bodyparts["ipc_screen"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -721,7 +721,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(mutant_category >= MAX_MUTANT_ROWS) dat += "" mutant_category = 0 - if("ipc_antenna" in pref_species.default_features) + if(pref_species.mutant_bodyparts["ipc_antenna"]) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -1574,14 +1574,14 @@ GLOBAL_LIST_EMPTY(preferences_datums) pref_species = new newtype() //let's ensure that no weird shit happens on species swapping. custom_species = null - if(!("body_markings" in pref_species.default_features)) + if(!pref_species.mutant_bodyparts["body_markings"]) features["body_markings"] = "None" - if(!("mam_body_markings" in pref_species.default_features)) + if(!pref_species.mutant_bodyparts["mam_body_markings"]) features["mam_body_markings"] = "None" - if("mam_body_markings" in pref_species.default_features) + if(pref_species.mutant_bodyparts["mam_body_markings"]) if(features["mam_body_markings"] == "None") features["mam_body_markings"] = "Plain" - if("tail_lizard" in pref_species.default_features) + if(pref_species.mutant_bodyparts["tail_lizard"]) features["tail_lizard"] = "Smooth" if(pref_species.id == "felinid") features["mam_tail"] = "Cat" @@ -2413,17 +2413,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.dna.nameless = character.nameless character.dna.custom_species = character.custom_species - if("tail_lizard" in pref_species.default_features) - character.dna.species.mutant_bodyparts |= "tail_lizard" - if("mam_tail" in pref_species.default_features) - character.dna.species.mutant_bodyparts |= "mam_tail" - if("xenotail" in pref_species.default_features) - character.dna.species.mutant_bodyparts |= "xenotail" - - if("meat_type" in pref_species.default_features) + if(pref_species.mutant_bodyparts["meat_type"]) character.type_of_meat = GLOB.meat_types[features["meat_type"]] - if(("legs" in character.dna.species.mutant_bodyparts) && (character.dna.features["legs"] == "Digitigrade" || character.dna.features["legs"] == "Avian")) + if(character.dna.species.mutant_bodyparts["legs"] && (character.dna.features["legs"] == "Digitigrade" || character.dna.features["legs"] == "Avian")) pref_species.species_traits |= DIGITIGRADE else pref_species.species_traits -= DIGITIGRADE diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm index dfb62ef59d..03f4640718 100644 --- a/code/modules/food_and_drinks/food/snacks_pie.dm +++ b/code/modules/food_and_drinks/food/snacks_pie.dm @@ -44,7 +44,7 @@ if(ishuman(hit_atom)) var/mob/living/carbon/human/H = hit_atom var/mutable_appearance/creamoverlay = mutable_appearance('icons/effects/creampie.dmi') - if((("mam_snouts" in H.dna.species.default_features) && H.dna.features["mam_snouts"] != "None") || (("snout" in H.dna.species.default_features) && H.dna.features["snout"] != "None")) + if((H.dna.species.mutant_bodyparts["mam_snouts"] && H.dna.features["mam_snouts"] != "None") || (H.dna.species.mutant_bodyparts["snout"] && H.dna.features["snout"] != "None")) creamoverlay.icon_state = "creampie_snout" else creamoverlay.icon_state = "creampie_human" diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 8bd1a35e07..aa0812cd01 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -301,30 +301,12 @@ "You give [src] a pat on the head to make [p_them()] feel better!") SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "headpat", /datum/mood_event/headpat) friendly_check = TRUE - if(S?.can_wag_tail(src)) - if("tail_human" in S.default_features) - if(dna.features["tail_human"] == "None") - return - else - if(!dna.species.is_wagging_tail()) - emote("wag") - - if("tail_lizard" in S.default_features) - if(dna.features["tail_lizard"] == "None") - return - else - if(!dna.species.is_wagging_tail()) - emote("wag") - - if("mam_tail" in S.default_features) - if(dna.features["mam_tail"] == "None") - return - else - if(!dna.species.is_wagging_tail()) - emote("wag") - - else - return + if(S?.can_wag_tail(src) && !dna.species.is_wagging_tail()) + var/static/list/many_tails = list("tail_human", "tail_lizard", "mam_tail") + for(var/T in many_tails) + if(S.mutant_bodyparts[T] && dna.features[T] != "None") + emote("wag") + break else if(check_zone(M.zone_selected) == BODY_ZONE_R_ARM || check_zone(M.zone_selected) == BODY_ZONE_L_ARM) M.visible_message( \ diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index acaf713e28..cb0dbef332 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -128,7 +128,7 @@ /datum/emote/living/carbon/human/wing/select_message_type(mob/user) . = ..() 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 @@ -143,17 +143,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 fc2817f134..9034ed1203 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -53,8 +53,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/blacklisted = 0 //Flag to exclude from green slime core species. var/dangerous_existence //A flag for transformation spells that tells them "hey if you turn a person into one of these without preperation, they'll probably die!" var/say_mod = "says" // affects the speech message - var/list/default_features = list() // Default mutant bodyparts for this species. Don't forget to set one for every mutant bodypart you allow this species to have. - var/list/mutant_bodyparts = 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 handle_mutant_bodyparts() below. + var/list/mutant_bodyparts = list() // Visible CURRENT bodyparts that are unique to a species. 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 handle_mutant_bodyparts() below. var/list/mutant_organs = list() //Internal organs that are unique to this race. var/speedmod = 0 // this affects the race's speed. positive numbers make it move slower, negative numbers make it move faster var/armor = 0 // overall defense for the race... or less defense, if it's negative. @@ -291,7 +290,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) 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" || C.dna.features["legs"] == "Avian")) + if(C.dna.species.mutant_bodyparts["legs"] && (C.dna.features["legs"] == "Digitigrade" || C.dna.features["legs"] == "Avian")) species_traits |= DIGITIGRADE if(DIGITIGRADE in species_traits) C.Digitigrade_Leg_Swap(FALSE) @@ -329,7 +328,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/mob/living/carbon/human/H = C if(NOGENITALS in H.dna.species.species_traits) H.give_genitals(TRUE) //call the clean up proc to delete anything on the mob then return. - if("meat_type" in default_features) //I can't believe it's come to the meat + if(mutant_bodyparts["meat_type"]) //I can't believe it's come to the meat H.type_of_meat = GLOB.meat_types[H.dna.features["meat_type"]] C.add_movespeed_modifier(MOVESPEED_ID_SPECIES, TRUE, 100, override=TRUE, multiplicative_slowdown=speedmod, movetypes=(~FLYING)) @@ -352,7 +351,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) C.remove_movespeed_modifier(MOVESPEED_ID_SPECIES) - if("meat_type" in default_features) + if(mutant_bodyparts["meat_type"]) C.type_of_meat = GLOB.meat_types[C.dna.features["meat_type"]] else C.type_of_meat = initial(meat) @@ -617,99 +616,99 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD) var/tauric = H.dna.features["taur"] && H.dna.features["taur"] != "None" - if("tail_lizard" in mutant_bodyparts) + if(mutant_bodyparts["tail_lizard"]) if((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric) 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 & HIDETAUR)) || tauric) 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 & HIDETAUR)) || tauric) 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 & HIDETAUR)) || tauric) 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 & HIDETAUR)) 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 & HIDETAUR)) 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 & HIDESNOUT)) || (H.head && (H.head.flags_inv & HIDESNOUT)) || !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 & HIDEEARS) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEEARS)) || !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("insect_fluff" in mutant_bodyparts) + if(mutant_bodyparts["insect_fluff"]) if(!H.dna.features["insect_fluff"] || H.dna.features["insect_fluff"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) bodyparts_to_add -= "insect_fluff" //CITADEL EDIT //Race specific bodyparts: //Xenos - if("xenodorsal" in mutant_bodyparts) + if(mutant_bodyparts["xenodorsal"]) if(!H.dna.features["xenodorsal"] || H.dna.features["xenodorsal"] == "None" || (H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))) bodyparts_to_add -= "xenodorsal" - if("xenohead" in mutant_bodyparts)//This is an overlay for different castes using different head crests + if(mutant_bodyparts["xenohead"])//This is an overlay for different castes using different head crests if(!H.dna.features["xenohead"] || H.dna.features["xenohead"] == "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 -= "xenohead" - if("xenotail" in mutant_bodyparts) + if(mutant_bodyparts["xenotail"]) if(!H.dna.features["xenotail"] || H.dna.features["xenotail"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT)) bodyparts_to_add -= "xenotail" //Other Races - if("mam_tail" in mutant_bodyparts) + if(mutant_bodyparts["mam_tail"]) if((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric) bodyparts_to_add -= "mam_tail" - if("mam_waggingtail" in mutant_bodyparts) + if(mutant_bodyparts["mam_waggingtail"]) if((H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR)) || tauric) bodyparts_to_add -= "mam_waggingtail" - else if ("mam_tail" in mutant_bodyparts) + else if (mutant_bodyparts["mam_tail"]) bodyparts_to_add -= "mam_waggingtail" - if("mam_ears" in mutant_bodyparts) + if(mutant_bodyparts["mam_ears"]) if(!H.dna.features["mam_ears"] || H.dna.features["mam_ears"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEEARS)) || !HD || HD.status == BODYPART_ROBOTIC) bodyparts_to_add -= "mam_ears" - if("mam_snouts" in mutant_bodyparts) //Take a closer look at that snout! + if(mutant_bodyparts["mam_snouts"]) //Take a closer look at that snout! if((H.wear_mask && (H.wear_mask.flags_inv & HIDESNOUT)) || (H.head && (H.head.flags_inv & HIDESNOUT)) || !HD || HD.status == BODYPART_ROBOTIC) bodyparts_to_add -= "mam_snouts" - if("taur" in mutant_bodyparts) + if(mutant_bodyparts["taur"]) if(!tauric || (H.wear_suit && (H.wear_suit.flags_inv & HIDETAUR))) bodyparts_to_add -= "taur" diff --git a/code/modules/mob/living/carbon/human/species_types/angel.dm b/code/modules/mob/living/carbon/human/species_types/angel.dm index 924f5f9c6a..5474adcf88 100644 --- a/code/modules/mob/living/carbon/human/species_types/angel.dm +++ b/code/modules/mob/living/carbon/human/species_types/angel.dm @@ -3,8 +3,7 @@ id = "angel" default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS) - mutant_bodyparts = list("wings") - default_features = list("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "wings" = "Angel") + mutant_bodyparts = list("tail_human" = "None", "ears" = "None", "wings" = "Angel") use_skintones = 1 no_equip = list(SLOT_BACK) blacklisted = 1 @@ -16,8 +15,8 @@ /datum/species/angel/on_species_gain(mob/living/carbon/human/H, datum/species/old_species) ..() if(H.dna && H.dna.species && (H.dna.features["wings"] != "Angel")) - if(!("wings" in H.dna.species.mutant_bodyparts)) - H.dna.species.mutant_bodyparts |= "wings" + if(!H.dna.species.mutant_bodyparts["wings"]) + H.dna.species.mutant_bodyparts["wings"] = "Angel" H.dna.features["wings"] = "Angel" H.update_body() if(ishuman(H) && !fly) @@ -32,7 +31,7 @@ H.setMovetype(H.movement_type & ~FLYING) ToggleFlight(H,0) if(H.dna && H.dna.species && (H.dna.features["wings"] == "Angel")) - if("wings" in H.dna.species.mutant_bodyparts) + if(H.dna.species.mutant_bodyparts["wings"]) H.dna.species.mutant_bodyparts -= "wings" H.dna.features["wings"] = "None" H.update_body() diff --git a/code/modules/mob/living/carbon/human/species_types/bugmen.dm b/code/modules/mob/living/carbon/human/species_types/bugmen.dm index 6bd8a44e0a..da53adece3 100644 --- a/code/modules/mob/living/carbon/human/species_types/bugmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/bugmen.dm @@ -4,8 +4,7 @@ default_color = "00FF00" species_traits = list(LIPS,EYECOLOR,HAIR,FACEHAIR,MUTCOLORS,HORNCOLOR,WINGCOLOR) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BUG - mutant_bodyparts = list("mam_ears","mam_tail", "taur", "insect_wings","mam_snout", "mam_snouts", "insect_fluff","insect_markings") - default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_tail" = "None", "mam_ears" = "None", + mutant_bodyparts = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_tail" = "None", "mam_ears" = "None", "insect_wings" = "None", "insect_fluff" = "None", "mam_snouts" = "None", "taur" = "None", "insect_markings" = "None") attack_verb = "slash" attack_sound = 'sound/weapons/slash.ogg' @@ -25,21 +24,21 @@ . = ..() /datum/species/insect/can_wag_tail(mob/living/carbon/human/H) - return ("mam_tail" in mutant_bodyparts) || ("mam_waggingtail" in mutant_bodyparts) + return mutant_bodyparts["mam_tail"] || mutant_bodyparts["mam_waggingtail"] /datum/species/insect/is_wagging_tail(mob/living/carbon/human/H) - return ("mam_waggingtail" in mutant_bodyparts) + return mutant_bodyparts["mam_waggingtail"] /datum/species/insect/start_wagging_tail(mob/living/carbon/human/H) - if("mam_tail" in mutant_bodyparts) + if(mutant_bodyparts["mam_tail"]) + mutant_bodyparts["mam_waggingtail"] = mutant_bodyparts["mam_tail"] mutant_bodyparts -= "mam_tail" - mutant_bodyparts |= "mam_waggingtail" H.update_body() /datum/species/insect/stop_wagging_tail(mob/living/carbon/human/H) - if("mam_waggingtail" in mutant_bodyparts) + if(mutant_bodyparts["mam_waggingtail"]) + mutant_bodyparts["mam_tail"] = mutant_bodyparts["mam_waggingtail"] mutant_bodyparts -= "mam_waggingtail" - mutant_bodyparts |= "mam_tail" H.update_body() /datum/species/insect/qualifies_for_rank(rank, list/features) 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 499e3b0276..a41cc8c55a 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) 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", "deco_wings" = "None") use_skintones = TRUE mutant_brain = /obj/item/organ/brain/dullahan mutanteyes = /obj/item/organ/eyes/dullahan diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm index 15422b2cdd..5a9b830bc8 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -8,7 +8,6 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,NO_UNDERWEAR) inherent_traits = list() - default_features = list("mcolor" = "FFF", "wings" = "None") limbs_id = "human" use_skintones = 1 say_mod = "bellows" //high energy, EXTRA BIOLOGICAL FUEL 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 5801e163e5..2f0595e2c0 100644 --- a/code/modules/mob/living/carbon/human/species_types/felinid.dm +++ b/code/modules/mob/living/carbon/human/species_types/felinid.dm @@ -4,8 +4,7 @@ id = "felinid" limbs_id = "human" - mutant_bodyparts = list("mam_ears", "mam_tail", "deco_wings") - default_features = list("mcolor" = "FFF", "mam_tail" = "Cat", "mam_ears" = "Cat", "wings" = "None", "deco_wings" = "None") + mutant_bodyparts = list("mam_tail" = "Cat", "mam_ears" = "Cat", "deco_wings" = "None") mutantears = /obj/item/organ/ears/cat mutanttail = /obj/item/organ/tail/cat @@ -25,21 +24,21 @@ /datum/species/human/felinid/can_wag_tail(mob/living/carbon/human/H) - return ("mam_tail" in mutant_bodyparts) || ("mam_waggingtail" in mutant_bodyparts) + return mutant_bodyparts["mam_tail"] || mutant_bodyparts["mam_waggingtail"] /datum/species/human/felinid/is_wagging_tail(mob/living/carbon/human/H) - return ("mam_waggingtail" in mutant_bodyparts) + return mutant_bodyparts["mam_waggingtail"] /datum/species/human/felinid/start_wagging_tail(mob/living/carbon/human/H) - if("mam_tail" in mutant_bodyparts) + if(mutant_bodyparts["mam_tail"]) + mutant_bodyparts["mam_waggingtail"] = mutant_bodyparts["mam_tail"] mutant_bodyparts -= "mam_tail" - mutant_bodyparts |= "mam_waggingtail" H.update_body() /datum/species/human/felinid/stop_wagging_tail(mob/living/carbon/human/H) - if("mam_waggingtail" in mutant_bodyparts) + if(mutant_bodyparts["mam_waggingtail"]) + mutant_bodyparts["mam_tail"] = mutant_bodyparts["mam_waggingtail"] mutant_bodyparts -= "mam_waggingtail" - mutant_bodyparts |= "mam_tail" 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/furrypeople.dm b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index 608d71e2c5..d4b8ea7897 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -5,8 +5,7 @@ icon_limbs = DEFAULT_BODYPART_ICON_CITADEL species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,HORNCOLOR,WINGCOLOR) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BEAST - mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "mam_snouts", "deco_wings", "taur", "horns", "legs") - default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "deco_wings" = "None", + mutant_bodyparts = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "deco_wings" = "None", "mam_body_markings" = "Husky", "taur" = "None", "horns" = "None", "legs" = "Plantigrade", "meat_type" = "Mammalian") attack_verb = "claw" attack_sound = 'sound/weapons/slash.ogg' @@ -26,21 +25,21 @@ . = ..() /datum/species/mammal/can_wag_tail(mob/living/carbon/human/H) - return ("mam_tail" in mutant_bodyparts) || ("mam_waggingtail" in mutant_bodyparts) + return mutant_bodyparts["mam_tail"] || mutant_bodyparts["mam_waggingtail"] /datum/species/mammal/is_wagging_tail(mob/living/carbon/human/H) - return ("mam_waggingtail" in mutant_bodyparts) + return mutant_bodyparts["mam_waggingtail"] /datum/species/mammal/start_wagging_tail(mob/living/carbon/human/H) - if("mam_tail" in mutant_bodyparts) + if(mutant_bodyparts["mam_tail"]) + mutant_bodyparts["mam_waggingtail"] = mutant_bodyparts["mam_tail"] mutant_bodyparts -= "mam_tail" - mutant_bodyparts |= "mam_waggingtail" H.update_body() /datum/species/mammal/stop_wagging_tail(mob/living/carbon/human/H) - if("mam_waggingtail" in mutant_bodyparts) + if(mutant_bodyparts["mam_waggingtail"]) + mutant_bodyparts["mam_tail"] = mutant_bodyparts["mam_waggingtail"] mutant_bodyparts -= "mam_waggingtail" - mutant_bodyparts |= "mam_tail" H.update_body() @@ -57,8 +56,7 @@ default_color = "00FF00" icon_limbs = DEFAULT_BODYPART_ICON_CITADEL species_traits = list(MUTCOLORS,EYECOLOR,LIPS) - mutant_bodyparts = list("xenotail", "xenohead", "xenodorsal", "mam_body_markings", "taur", "legs") - default_features = list("xenotail"="Xenomorph Tail","xenohead"="Standard","xenodorsal"="Standard", "mam_body_markings" = "Xeno","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None", "legs" = "Digitigrade") + mutant_bodyparts = list("xenotail"="Xenomorph Tail","xenohead"="Standard","xenodorsal"="Standard", "mam_body_markings" = "Xeno","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None", "legs" = "Digitigrade") 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/humans.dm b/code/modules/mob/living/carbon/human/species_types/humans.dm index 3332465c78..02cff6d924 100644 --- a/code/modules/mob/living/carbon/human/species_types/humans.dm +++ b/code/modules/mob/living/carbon/human/species_types/humans.dm @@ -4,8 +4,7 @@ default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,MUTCOLORS_PARTSONLY,WINGCOLOR) - mutant_bodyparts = list("ears", "tail_human", "wings", "taur", "deco_wings") // CITADEL EDIT gives humans snowflake parts - default_features = list("mcolor" = "FFF", "mcolor2" = "FFF","mcolor3" = "FFF","tail_human" = "None", "ears" = "None", "wings" = "None", "taur" = "None", "deco_wings" = "None") + mutant_bodyparts = list("mcolor" = "FFF", "mcolor2" = "FFF","mcolor3" = "FFF","tail_human" = "None", "ears" = "None", "taur" = "None", "deco_wings" = "None") use_skintones = 1 skinned_type = /obj/item/stack/sheet/animalhide/human disliked_food = GROSS | RAW @@ -24,19 +23,19 @@ . = ..() /datum/species/human/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/is_wagging_tail(mob/living/carbon/human/H) - return ("waggingtail_human" in mutant_bodyparts) + return mutant_bodyparts["waggingtail_human"] /datum/species/human/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() /datum/species/human/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() diff --git a/code/modules/mob/living/carbon/human/species_types/ipc.dm b/code/modules/mob/living/carbon/human/species_types/ipc.dm index b7305a9228..94d5456c3d 100644 --- a/code/modules/mob/living/carbon/human/species_types/ipc.dm +++ b/code/modules/mob/living/carbon/human/species_types/ipc.dm @@ -8,8 +8,7 @@ sexes = 0 species_traits = list(MUTCOLORS,NOEYES,NOTRANSSTING) inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID - mutant_bodyparts = list("ipc_screen", "ipc_antenna") - default_features = list("ipc_screen" = "Blank", "ipc_antenna" = "None") + mutant_bodyparts = list("ipc_screen" = "Blank", "ipc_antenna" = "None") meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc gib_types = list(/obj/effect/gibspawner/ipc, /obj/effect/gibspawner/ipc/bodypartless) mutanttongue = /obj/item/organ/tongue/robot/ipc diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index cf2950ff6f..3b91bad01b 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -7,8 +7,7 @@ species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,WINGCOLOR) mutantlungs = /obj/item/organ/lungs/slime mutant_heart = /obj/item/organ/heart/slime - mutant_bodyparts = list("mam_tail", "mam_ears", "mam_snouts", "taur", "deco_wings") //CIT CHANGE - default_features = list("mcolor" = "FFF", "mam_tail" = "None", "mam_ears" = "None", "mam_snouts" = "None", "taur" = "None", "deco_wings" = "None") //CIT CHANGE + mutant_bodyparts = list("mcolor" = "FFF", "mam_tail" = "None", "mam_ears" = "None", "mam_snouts" = "None", "taur" = "None", "deco_wings" = "None") inherent_traits = list(TRAIT_TOXINLOVER) meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime gib_types = list(/obj/effect/gibspawner/slime, /obj/effect/gibspawner/slime/bodypartless) @@ -127,23 +126,24 @@ . = ..() /datum/species/jelly/can_wag_tail(mob/living/carbon/human/H) - return ("mam_tail" in mutant_bodyparts) || ("mam_waggingtail" in mutant_bodyparts) + return mutant_bodyparts["mam_tail"] || mutant_bodyparts["mam_waggingtail"] /datum/species/jelly/is_wagging_tail(mob/living/carbon/human/H) - return ("mam_waggingtail" in mutant_bodyparts) + return mutant_bodyparts["mam_waggingtail"] /datum/species/jelly/start_wagging_tail(mob/living/carbon/human/H) - if("mam_tail" in mutant_bodyparts) + if(mutant_bodyparts["mam_tail"]) + mutant_bodyparts["mam_waggingtail"] = mutant_bodyparts["mam_tail"] mutant_bodyparts -= "mam_tail" - mutant_bodyparts |= "mam_waggingtail" H.update_body() /datum/species/jelly/stop_wagging_tail(mob/living/carbon/human/H) - if("mam_waggingtail" in mutant_bodyparts) + if(mutant_bodyparts["mam_waggingtail"]) + mutant_bodyparts["mam_tail"] = mutant_bodyparts["mam_waggingtail"] mutant_bodyparts -= "mam_waggingtail" - mutant_bodyparts |= "mam_tail" H.update_body() + ////////////////////////////////////////////////////////SLIMEPEOPLE/////////////////////////////////////////////////////////////////// //Slime people are able to split like slimes, retaining a single mind that can swap between bodies at will, even after death. @@ -431,8 +431,7 @@ default_color = "00FFFF" species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR) inherent_traits = list(TRAIT_TOXINLOVER) - mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "mam_snouts", "taur") - default_features = list("mcolor" = "FFF", "mcolor2" = "FFF","mcolor3" = "FFF", "mam_tail" = "None", "mam_ears" = "None", "mam_body_markings" = "Plain", "mam_snouts" = "None", "taur" = "None") + mutant_bodyparts = list("mcolor" = "FFF", "mcolor2" = "FFF","mcolor3" = "FFF", "mam_tail" = "None", "mam_ears" = "None", "mam_body_markings" = "Plain", "mam_snouts" = "None", "taur" = "None") say_mod = "says" hair_color = "mutcolor" hair_alpha = 160 //a notch brighter so it blends better. 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 6468bd1544..9a6bc2659d 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -11,7 +11,7 @@ mutanttail = /obj/item/organ/tail/lizard coldmod = 1.5 heatmod = 0.67 - default_features = list("mcolor" = "0F0", "mcolor2" = "0F0", "mcolor3" = "0F0", "tail_lizard" = "Smooth", "snout" = "Round", + mutant_bodyparts = list("mcolor" = "0F0", "mcolor2" = "0F0", "mcolor3" = "0F0", "tail_lizard" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Digitigrade", "taur" = "None", "deco_wings" = "None") attack_verb = "slash" @@ -53,25 +53,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() /* 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 9d5ca92894..3c17ef9066 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 = "Anthromorphic Mushroom" id = "mush" - mutant_bodyparts = list("caps") - default_features = list("caps" = "Round") + mutant_bodyparts = list("caps" = "Round") fixed_mut_color = "DBBF92" hair_color = "FF4B19" //cap color, spot color uses eye color diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index 7ccccd588d..44a794c2ab 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -76,14 +76,13 @@ name = "Anthromorphic Plant" id = "podweak" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,MUTCOLORS) - mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "mam_snouts", "taur", "legs") - default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "mam_body_markings" = "Husky", "taur" = "None", "legs" = "Normal Legs") + mutant_bodyparts = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "mam_body_markings" = "Husky", "taur" = "None", "legs" = "Normal Legs") limbs_id = "pod" light_nutrition_gain_factor = 7.5 light_bruteheal = 0.2 light_burnheal = 0.2 light_toxheal = 0.7 - + /datum/species/pod/pseudo_weak/spec_death(gibbed, mob/living/carbon/human/H) if(H) stop_wagging_tail(H) @@ -94,19 +93,19 @@ . = ..() /datum/species/pod/pseudo_weak/can_wag_tail(mob/living/carbon/human/H) - return ("mam_tail" in mutant_bodyparts) || ("mam_waggingtail" in mutant_bodyparts) + return mutant_bodyparts["mam_tail"] || mutant_bodyparts["mam_waggingtail"] /datum/species/pod/pseudo_weak/is_wagging_tail(mob/living/carbon/human/H) - return ("mam_waggingtail" in mutant_bodyparts) + return mutant_bodyparts["mam_waggingtail"] /datum/species/pod/pseudo_weak/start_wagging_tail(mob/living/carbon/human/H) - if("mam_tail" in mutant_bodyparts) + if(mutant_bodyparts["mam_tail"]) + mutant_bodyparts["mam_waggingtail"] = mutant_bodyparts["mam_tail"] mutant_bodyparts -= "mam_tail" - mutant_bodyparts |= "mam_waggingtail" H.update_body() /datum/species/pod/pseudo_weak/stop_wagging_tail(mob/living/carbon/human/H) - if("mam_waggingtail" in mutant_bodyparts) + if(mutant_bodyparts["mam_waggingtail"]) + mutant_bodyparts["mam_tail"] = mutant_bodyparts["mam_waggingtail"] mutant_bodyparts -= "mam_waggingtail" - mutant_bodyparts |= "mam_tail" H.update_body() diff --git a/code/modules/mob/living/carbon/human/species_types/synthliz.dm b/code/modules/mob/living/carbon/human/species_types/synthliz.dm index 40441c45fd..408d264546 100644 --- a/code/modules/mob/living/carbon/human/species_types/synthliz.dm +++ b/code/modules/mob/living/carbon/human/species_types/synthliz.dm @@ -6,8 +6,7 @@ default_color = "00FF00" species_traits = list(MUTCOLORS,NOTRANSSTING,EYECOLOR,LIPS,HAIR) inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID - mutant_bodyparts = list("ipc_antenna","mam_tail", "mam_snouts","legs", "mam_body_markings", "taur") - default_features = list("ipc_antenna" = "Synthetic Lizard - Antennae","mam_tail" = "Synthetic Lizard", "mam_snouts" = "Synthetic Lizard - Snout", "legs" = "Digitigrade", "mam_body_markings" = "Synthetic Lizard - Plates", "taur" = "None") + mutant_bodyparts = list("ipc_antenna" = "Synthetic Lizard - Antennae","mam_tail" = "Synthetic Lizard", "mam_snouts" = "Synthetic Lizard - Snout", "legs" = "Digitigrade", "mam_body_markings" = "Synthetic Lizard - Plates", "taur" = "None") meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc gib_types = list(/obj/effect/gibspawner/ipc, /obj/effect/gibspawner/ipc/bodypartless) mutanttongue = /obj/item/organ/tongue/robot/ipc @@ -35,19 +34,19 @@ . = ..() /datum/species/synthliz/can_wag_tail(mob/living/carbon/human/H) - return ("mam_tail" in mutant_bodyparts) || ("mam_waggingtail" in mutant_bodyparts) + return mutant_bodyparts["mam_tail"] || mutant_bodyparts["mam_waggingtail"] /datum/species/synthliz/is_wagging_tail(mob/living/carbon/human/H) - return ("mam_waggingtail" in mutant_bodyparts) + return mutant_bodyparts["mam_waggingtail"] /datum/species/synthliz/start_wagging_tail(mob/living/carbon/human/H) - if("mam_tail" in mutant_bodyparts) + if(mutant_bodyparts["mam_tail"]) + mutant_bodyparts["mam_waggingtail"] = mutant_bodyparts["mam_tail"] mutant_bodyparts -= "mam_tail" - mutant_bodyparts |= "mam_waggingtail" H.update_body() /datum/species/synthliz/stop_wagging_tail(mob/living/carbon/human/H) - if("mam_waggingtail" in mutant_bodyparts) + if(mutant_bodyparts["mam_waggingtail"]) + mutant_bodyparts["mam_tail"] = mutant_bodyparts["mam_waggingtail"] mutant_bodyparts -= "mam_waggingtail" - mutant_bodyparts |= "mam_tail" - H.update_body() \ No newline at end of file + H.update_body() 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 cb7822ad7e..1700927a24 100644 --- a/code/modules/mob/living/carbon/human/species_types/synths.dm +++ b/code/modules/mob/living/carbon/human/species_types/synths.dm @@ -58,7 +58,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 @@ -75,7 +74,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 8bbd870149..803af56dec 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) 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("mcolor" = "FFF", "tail_human" = "None", "ears" = "None", "deco_wings" = "None") exotic_bloodtype = "U" use_skintones = TRUE mutant_heart = /obj/item/organ/heart/vampire diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index f1b1570e24..87741868cb 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -330,9 +330,9 @@ There are several things that need to be remembered: var/alt_icon = H.alternate_worn_icon || 'icons/mob/head.dmi' var/muzzled = FALSE var/variation_flag = NONE - if(("mam_snouts" in dna.species.default_features) && dna.features["mam_snouts"] != "None") + if(dna.species.mutant_bodyparts["mam_snouts"] && dna.features["mam_snouts"] != "None") muzzled = TRUE - if(!muzzled && ("snout" in dna.species.default_features) && dna.features["snout"] != "None") + else if(dna.species.mutant_bodyparts["snout"] && dna.features["snout"] != "None") muzzled = TRUE if(muzzled && H.mutantrace_variation & STYLE_MUZZLE) alt_icon = 'icons/mob/head_muzzled.dmi' @@ -394,7 +394,7 @@ There are several things that need to be remembered: var/dimension_y = 32 var/variation_flag = NONE var/datum/sprite_accessory/taur/T - if("taur" in dna.species.mutant_bodyparts) + if(dna.species.mutant_bodyparts["taur"]) T = GLOB.taur_list[dna.features["taur"]] if(S.mutantrace_variation) @@ -463,9 +463,9 @@ There are several things that need to be remembered: var/variation_flag = NONE if(head && (head.flags_inv & HIDEMASK)) return - if(("mam_snouts" in dna.species.default_features) && dna.features["mam_snouts"] != "None") + if(dna.species.mutant_bodyparts["mam_snouts"] && dna.features["mam_snouts"] != "None") muzzled = TRUE - if(!muzzled && ("snout" in dna.species.default_features) && dna.features["snout"] != "None") + else if(dna.species.mutant_bodyparts["snout"] && dna.features["snout"] != "None") muzzled = TRUE if(muzzled && M.mutantrace_variation & STYLE_MUZZLE) alt_icon = 'icons/mob/mask_muzzled.dmi' @@ -653,7 +653,7 @@ generate/load female uniform sprites matching all previously decided variables var/is_taur = FALSE var/mob/living/carbon/human/H = src - if(("taur" in H.dna.species.mutant_bodyparts) && (H.dna.features["taur"] != "None")) + if(H.dna.species.mutant_bodyparts["taur"] && H.dna.features["taur"] != "None") is_taur = TRUE diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 3aae3e36ed..111054c383 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/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 4b56ab6cb8..0572010654 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -358,18 +358,18 @@ base_bp_icon = (base_bp_icon == DEFAULT_BODYPART_ICON) ? DEFAULT_BODYPART_ICON_ORGANIC : base_bp_icon else species_color = "" - + if(base_bp_icon != DEFAULT_BODYPART_ICON) color_src = MUTCOLORS //TODO - Add color matrix support to base limbs - if("legs" in S.default_features) + if(S.mutant_bodyparts["legs"]) if(body_zone == BODY_ZONE_L_LEG || body_zone == BODY_ZONE_R_LEG) if(DIGITIGRADE in S.species_traits) digitigrade_type = lowertext(H.dna.features["legs"]) else digitigrade_type = null - if("mam_body_markings" in S.default_features) + if(S.mutant_bodyparts["mam_body_markings"]) var/datum/sprite_accessory/Smark Smark = GLOB.mam_body_markings_list[H.dna.features["mam_body_markings"]] if(Smark) diff --git a/code/modules/surgery/organs/ears.dm b/code/modules/surgery/organs/ears.dm index 65847042a1..846dd1ecbe 100644 --- a/code/modules/surgery/organs/ears.dm +++ b/code/modules/surgery/organs/ears.dm @@ -100,7 +100,7 @@ ..() if(istype(H)) color = H.hair_color - H.dna.species.mutant_bodyparts |= "ears" + H.dna.species.mutant_bodyparts["ears"] = "Cat" H.dna.features["ears"] = "Cat" H.update_body() diff --git a/code/modules/surgery/organs/tails.dm b/code/modules/surgery/organs/tails.dm index fe881df221..b1b33b314c 100644 --- a/code/modules/surgery/organs/tails.dm +++ b/code/modules/surgery/organs/tails.dm @@ -21,8 +21,8 @@ /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" + if(!H.dna.species.mutant_bodyparts["tail_human"]) + H.dna.species.mutant_bodyparts["tail_human"] = tail_type H.dna.features["tail_human"] = tail_type H.update_body() @@ -46,13 +46,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)) + if(!H.dna.species.mutant_bodyparts["tail_lizard"]) H.dna.features["tail_lizard"] = tail_type - H.dna.species.mutant_bodyparts |= "tail_lizard" + H.dna.species.mutant_bodyparts["tail_lizard"] = tail_type - if(!("spines" in H.dna.species.mutant_bodyparts)) + if(!H.dna.species.mutant_bodyparts["spines"]) H.dna.features["spines"] = spines - H.dna.species.mutant_bodyparts |= "spines" + H.dna.species.mutant_bodyparts["spines"] = spines H.update_body() /obj/item/organ/tail/lizard/Remove(special = FALSE) From 2103e9975b87c864847dd9a40d815fbc3b48262f Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sat, 21 Mar 2020 02:37:05 +0100 Subject: [PATCH 2/2] Oh yea, also a fix. --- code/modules/surgery/organs/ears.dm | 8 ++++---- code/modules/surgery/organs/tails.dm | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/code/modules/surgery/organs/ears.dm b/code/modules/surgery/organs/ears.dm index 846dd1ecbe..63febd1a9f 100644 --- a/code/modules/surgery/organs/ears.dm +++ b/code/modules/surgery/organs/ears.dm @@ -100,16 +100,16 @@ ..() if(istype(H)) color = H.hair_color - H.dna.species.mutant_bodyparts["ears"] = "Cat" - H.dna.features["ears"] = "Cat" + H.dna.species.mutant_bodyparts["mam_ears"] = "Cat" + H.dna.features["mam_ears"] = "Cat" H.update_body() /obj/item/organ/ears/cat/Remove(special = FALSE) if(!QDELETED(owner) && ishuman(owner)) var/mob/living/carbon/human/H = owner color = H.hair_color - H.dna.features["ears"] = "None" - H.dna.species.mutant_bodyparts -= "ears" + H.dna.features["mam_ears"] = "None" + H.dna.species.mutant_bodyparts -= "mam_ears" H.update_body() return ..() diff --git a/code/modules/surgery/organs/tails.dm b/code/modules/surgery/organs/tails.dm index b1b33b314c..55a656f42d 100644 --- a/code/modules/surgery/organs/tails.dm +++ b/code/modules/surgery/organs/tails.dm @@ -21,16 +21,16 @@ /obj/item/organ/tail/cat/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE) ..() if(istype(H)) - if(!H.dna.species.mutant_bodyparts["tail_human"]) - H.dna.species.mutant_bodyparts["tail_human"] = tail_type - H.dna.features["tail_human"] = tail_type + if(!H.dna.species.mutant_bodyparts["mam_tail"]) + H.dna.species.mutant_bodyparts["mam_tail"] = tail_type + H.dna.features["mam_tail"] = tail_type H.update_body() /obj/item/organ/tail/cat/Remove(special = FALSE) if(!QDELETED(owner) && ishuman(owner)) var/mob/living/carbon/human/H = owner - H.dna.features["tail_human"] = "None" - H.dna.species.mutant_bodyparts -= "tail_human" + H.dna.features["mam_tail"] = "None" + H.dna.species.mutant_bodyparts -= "mam_tail" color = H.hair_color H.update_body() return ..()