From 14b7d4d82b5f1a636a1dcc7e5ce8cd943c7d3022 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] [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 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)