From 8157b3a7ab1d0b57345861fad60185453b225d93 Mon Sep 17 00:00:00 2001 From: VirgoBot <39653486+VirgoBot@users.noreply.github.com> Date: Thu, 22 Sep 2022 21:03:37 -0400 Subject: [PATCH 1/2] [MIRROR] Skips traits that aren't implemented yet. (ABLE TO BE MERGED) (#13165) * Merge pull request #8655 from MistakeNot4892/traitfix Skips traits that aren't implemented yet. * Skips traits that aren't implemented yet. Co-authored-by: Atermonera --- .../client/preference_setup/traits/trait_defines.dm | 5 ++++- code/modules/client/preference_setup/traits/traits.dm | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/code/modules/client/preference_setup/traits/trait_defines.dm b/code/modules/client/preference_setup/traits/trait_defines.dm index 9eb4793b5e..aaca85b086 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 806086c9a7..b4e9b63734 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)