From ba7cb57072ed8e51b34e8027a8d3a62a6dafa3fc Mon Sep 17 00:00:00 2001 From: CHOMPStation2 <58959929+CHOMPStation2@users.noreply.github.com> Date: Mon, 2 Sep 2024 14:04:43 -0700 Subject: [PATCH] [MIRROR] Revert "Revert "Removed negative trait limit"" (#8866) Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Co-authored-by: Kashargul --- .../client/preference_setup/vore/07_traits.dm | 4 +- code/modules/mob/new_player/new_player_vr.dm | 55 +++++++++---------- 2 files changed, 29 insertions(+), 30 deletions(-) diff --git a/code/modules/client/preference_setup/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm index eabb0b52b1..f7ac96d096 100644 --- a/code/modules/client/preference_setup/vore/07_traits.dm +++ b/code/modules/client/preference_setup/vore/07_traits.dm @@ -300,8 +300,8 @@ var/global/list/valid_bloodreagents = list("default","iron","copper","phoron","s for(var/T in pref.pos_traits + pref.neg_traits) // CHOMPEdit: Only Positive traits cost slots now. points_left -= traits_costs[T] - for(var/T in pref.pos_traits) - traits_left-- + if(T in pref.pos_traits) + traits_left-- . += "Traits Left: [traits_left]
" . += "Points Left: [points_left]
" if(points_left < 0 || traits_left < 0 || (!pref.custom_species && pref.species == SPECIES_CUSTOM)) diff --git a/code/modules/mob/new_player/new_player_vr.dm b/code/modules/mob/new_player/new_player_vr.dm index 923fc7c7a2..987391cba9 100644 --- a/code/modules/mob/new_player/new_player_vr.dm +++ b/code/modules/mob/new_player/new_player_vr.dm @@ -45,36 +45,30 @@ pass = FALSE to_chat(src,"You have to name your custom species. Do this on the VORE tab in character setup.") - //Check traits/costs - var/list/megalist = client.prefs.pos_traits + client.prefs.neu_traits + client.prefs.neg_traits - var/points_left = client.prefs.starting_trait_points - var/traits_left = client.prefs.max_traits - var/pref_synth = client.prefs.dirty_synth - var/pref_meat = client.prefs.gross_meatbag - for(var/datum/trait/T as anything in megalist) - var/cost = traits_costs[T] + //Check traits/costs + var/list/megalist = client.prefs.pos_traits + client.prefs.neu_traits + client.prefs.neg_traits + var/points_left = client.prefs.starting_trait_points + var/traits_left = client.prefs.max_traits + var/pref_synth = client.prefs.dirty_synth + var/pref_meat = client.prefs.gross_meatbag + for(var/datum/trait/T as anything in megalist) + var/cost = traits_costs[T] + if(T.category == TRAIT_TYPE_POSITIVE) + traits_left-- - if(cost > 0) //CHOMPEdit - traits_left-- - - //A trait was removed from the game - if(isnull(cost)) - pass = FALSE - to_chat(src,"Your custom species is not playable. One or more traits appear to have been removed from the game or renamed. Enter character setup to correct this.") - break - else - points_left -= traits_costs[T] - - var/take_flags = initial(T.can_take) - if((pref_synth && !(take_flags & SYNTHETICS)) || (pref_meat && !(take_flags & ORGANICS))) - pass = FALSE - to_chat(src, "Some of your traits are not usable by your character type (synthetic traits on organic, or vice versa).") - - //Went into negatives - if(points_left < 0 || traits_left < 0) + //A trait was removed from the game + if(isnull(cost)) pass = FALSE - to_chat(src,"Your custom species is not playable. Reconfigure your traits on the VORE tab.") -//CHOMPadd start + to_chat(src,"Your species is not playable. One or more traits appear to have been removed from the game or renamed. Enter character setup to correct this.") + break + else + points_left -= traits_costs[T] + + var/take_flags = initial(T.can_take) + if((pref_synth && !(take_flags & SYNTHETICS)) || (pref_meat && !(take_flags & ORGANICS))) + pass = FALSE + to_chat(src, "Some of your traits are not usable by your character type (synthetic traits on organic, or vice versa).") + //CHOMPadd start if(J.camp_protection && round_duration_in_ds < CONFIG_GET(number/job_camp_time_limit)) if(SSjob.restricted_keys.len) var/list/check = SSjob.restricted_keys[J.title] @@ -95,6 +89,11 @@ to_chat(src,"One of your traits, [instance.name], is not available for your species! Please fix this conflict and then try again.") //CHOMP Addition End + //Went into negatives + if(points_left < 0 || traits_left < 0) + pass = FALSE + to_chat(src,"Your species is not playable. Reconfigure your traits on the VORE tab. Trait points: [points_left]. Traits left: [traits_left].") + //Final popup notice if (!pass) tgui_alert_async(src,"There were problems with spawning your character. Check your message log for details.","Error")