diff --git a/code/modules/client/preference_setup/traits/trait_defines.dm b/code/modules/client/preference_setup/traits/trait_defines.dm index 9eb4793b5eb..aaca85b0867 100644 --- a/code/modules/client/preference_setup/traits/trait_defines.dm +++ b/code/modules/client/preference_setup/traits/trait_defines.dm @@ -7,9 +7,12 @@ /datum/trait/modifier/apply_trait_post_spawn(mob/living/L) L.add_modifier(modifier_type) +/datum/trait/modifier/is_available() + return !!modifier_type + /datum/trait/modifier/generate_desc() var/new_desc = desc - if(!modifier_type) + if(!is_available()) new_desc = "[new_desc] This trait is not implemented yet." return new_desc var/datum/modifier/M = new modifier_type() diff --git a/code/modules/client/preference_setup/traits/traits.dm b/code/modules/client/preference_setup/traits/traits.dm index 806086c9a72..b4e9b637341 100644 --- a/code/modules/client/preference_setup/traits/traits.dm +++ b/code/modules/client/preference_setup/traits/traits.dm @@ -7,6 +7,9 @@ var/list/trait_categories = list() // The categories available for the trait men //create a list of trait datums for(var/trait_type in typesof(/datum/trait) - list(/datum/trait, /datum/trait/modifier)) var/datum/trait/T = new trait_type + if(!T.is_available()) + qdel(T) + continue if(!T.name) error("Trait Menu - Missing name: [T.type]") @@ -173,6 +176,9 @@ var/list/trait_categories = list() // The categories available for the trait men return result +/datum/trait/proc/is_available() + return TRUE + // Similar to above, but uses the above two procs, in one place. // Returns TRUE is everything is well. /datum/trait/proc/validate(var/list/current_traits, var/datum/category_item/player_setup_item/traits/setup) @@ -193,4 +199,4 @@ var/list/trait_categories = list() // The categories available for the trait men for(var/trait in mind.traits) var/datum/trait/T = trait_datums[trait] if(istype(T)) - T.apply_trait_post_spawn(src) \ No newline at end of file + T.apply_trait_post_spawn(src)