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")