From 74f1b21a18504a29e375103fbb446f0543286106 Mon Sep 17 00:00:00 2001 From: Ashe Higgs Date: Wed, 11 Apr 2018 08:04:49 -0400 Subject: [PATCH 1/2] Disables mood traits when mood is disabled (#37082) * disables mood traits if mood is off * my copypasta is showing * Update negative.dm --- code/datums/traits/_trait.dm | 1 + code/datums/traits/good.dm | 2 ++ code/datums/traits/negative.dm | 2 ++ code/modules/client/preferences.dm | 28 +++++++++++++++++++--------- 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/code/datums/traits/_trait.dm b/code/datums/traits/_trait.dm index a0090a94fa..96f6857970 100644 --- a/code/datums/traits/_trait.dm +++ b/code/datums/traits/_trait.dm @@ -8,6 +8,7 @@ var/gain_text var/lose_text var/medical_record_text //This text will appear on medical records for the trait. Not yet implemented + var/mood_trait = FALSE //if true, this trait affects mood and is unavailable if moodlets are disabled var/mob_trait //if applicable, apply and remove this mob trait var/mob/living/trait_holder diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index 26c689e092..d05541fafb 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -15,6 +15,7 @@ name = "Apathetic" desc = "You just don't care as much as other people. That's nice to have in a place like this, I guess." value = 1 + mood_trait = TRUE /datum/trait/apathetic/add() GET_COMPONENT_FROM(mood, /datum/component/mood, trait_holder) @@ -43,6 +44,7 @@ desc = "You sometimes just feel happy, for no reason at all." value = 1 mob_trait = TRAIT_JOLLY + mood_trait = TRUE diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index dcaa4f4545..237a72ffda 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -8,6 +8,7 @@ gain_text = "You start feeling depressed." lose_text = "You no longer feel depressed." //if only it were that easy! medical_record_text = "Patient has a severe mood disorder causing them to experience sudden moments of sadness." + mood_trait = TRUE @@ -15,6 +16,7 @@ name = "Family Heirloom" desc = "You are the current owner of an heirloom. passed down for generations. You have to keep it safe!" value = -1 + mood_trait = TRUE var/obj/item/heirloom var/where_text diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 631d689ab5..7558380a36 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -872,9 +872,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "
Done
" dat += "
" dat += "
Current traits: [all_traits.len ? all_traits.Join(", ") : "None"]
" - /*dat += "
[positive_traits.len] / [MAX_POSITIVE_TRAITS] \ - | [neutral_traits.len] / [MAX_NEUTRAL_TRAITS] \ - | [negative_traits.len] / [MAX_NEGATIVE_TRAITS]

"*/ dat += "
[all_traits.len] / [MAX_TRAITS] max traits
\ Trait balance remaining: [GetTraitBalance()]

" for(var/V in SStraits.traits) @@ -882,22 +879,35 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/trait_name = initial(T.name) var/has_trait var/trait_cost = initial(T.value) * -1 + var/lock_reason = "This trait is unavailable." + var/trait_conflict = FALSE for(var/_V in all_traits) if(_V == trait_name) has_trait = TRUE + if(initial(T.mood_trait) && CONFIG_GET(flag/disable_human_mood)) + lock_reason = "Mood is disabled." + trait_conflict = TRUE if(has_trait) - trait_cost *= -1 //invert it back, since we'd be regaining this amount + if(trait_conflict) + all_traits -= trait_name + has_trait = FALSE + else + trait_cost *= -1 //invert it back, since we'd be regaining this amount if(trait_cost > 0) trait_cost = "+[trait_cost]" var/font_color = "#AAAAFF" if(initial(T.value) != 0) font_color = initial(T.value) > 0 ? "#AAFFAA" : "#FFAAAA" - if(has_trait) - dat += "[trait_name] - [initial(T.desc)] \ - [has_trait ? "Lose" : "Take"] ([trait_cost] pts.)
" - else + if(trait_conflict) dat += "[trait_name] - [initial(T.desc)] \ - [has_trait ? "Lose" : "Take"] ([trait_cost] pts.)
" + LOCKED: [lock_reason]
" + else + if(has_trait) + dat += "[trait_name] - [initial(T.desc)] \ + [has_trait ? "Lose" : "Take"] ([trait_cost] pts.)
" + else + dat += "[trait_name] - [initial(T.desc)] \ + [has_trait ? "Lose" : "Take"] ([trait_cost] pts.)
" dat += "
Reset Traits
" user << browse(null, "window=preferences")