diff --git a/data/json/flags.json b/data/json/flags.json
index ddeafa0b9726..c96eff446991 100644
--- a/data/json/flags.json
+++ b/data/json/flags.json
@@ -265,7 +265,7 @@
"id": "FANCY",
"type": "json_flag",
"context": [ "ARMOR", "TOOL_ARMOR" ],
- "//": "Wearing this clothing gives a morale bonus if the player has the Stylish trait.",
+ "//": "Wearing this clothing gives a morale bonus if the player doesn't have the Fashion Deficient trait.",
"info": "This clothing is fancy.",
"conflicts": [ "SUPER_FANCY" ]
},
@@ -798,7 +798,7 @@
"id": "SUPER_FANCY",
"type": "json_flag",
"context": [ "ARMOR", "TOOL_ARMOR" ],
- "//": "Gives an additional moral bonus over FANCY if the player has the Stylish trait.",
+ "//": "Gives an additional moral bonus over FANCY if the player doesn't have the Fashion Deficient trait.",
"info": "This clothing is very fancy.",
"conflicts": [ "FANCY" ]
},
diff --git a/data/json/mutations/mutations.json b/data/json/mutations/mutations.json
index ae854cde1d6e..7937a95b70a2 100644
--- a/data/json/mutations/mutations.json
+++ b/data/json/mutations/mutations.json
@@ -502,10 +502,10 @@
},
{
"type": "mutation",
- "id": "STYLISH",
- "name": { "str": "Stylish" },
- "points": 2,
- "description": "Practicality is far less important than style. Your morale is improved by wearing fashionable and attractive clothing.",
+ "id": "UNSTYLISH",
+ "name": { "str": "Fashion Deficient" },
+ "points": -1,
+ "description": "You have no sense of style, and don't care about wearing anything 'fancy'; you'd be perfectly happy to wear non-matching socks, or wear socks and sandals. You get no morale bonus from fancy equipment.",
"starting_trait": true,
"valid": false
},
diff --git a/data/json/npcs/starting_traits.json b/data/json/npcs/starting_traits.json
index 71f501e9428b..a8cf7fbd8862 100644
--- a/data/json/npcs/starting_traits.json
+++ b/data/json/npcs/starting_traits.json
@@ -44,7 +44,7 @@
{ "trait": "ROBUST", "prob": 10 },
{ "trait": "SELFAWARE", "prob": 10 },
{ "trait": "SPIRITUAL", "prob": 10 },
- { "trait": "STYLISH", "prob": 10 },
+ { "trait": "UNSTYLISH", "prob": 10 },
{ "trait": "TERRIFYING", "prob": 10 },
{ "trait": "ALBINO", "prob": 1 },
{ "trait": "ASTHMA", "prob": 10 },
diff --git a/data/json/obsoletion/mutations.json b/data/json/obsoletion/mutations.json
index 5f6c3eed64e8..d6ffb26a9bb8 100644
--- a/data/json/obsoletion/mutations.json
+++ b/data/json/obsoletion/mutations.json
@@ -238,5 +238,13 @@
"points": 1,
"description": "This mutation has been obsoleted due to the hidden movement speed penalty being removed. If you see this on a profession or mutate this trait, this is a bug.",
"valid": false
+ },
+ {
+ "type": "mutation",
+ "id": "STYLISH",
+ "name": { "str": "Stylish" },
+ "points": 2,
+ "description": "Obsoleted due to becoming default behavior.",
+ "valid": false
}
]
diff --git a/data/mods/Aftershock/npcs/Backgrounds/trait_groups.json b/data/mods/Aftershock/npcs/Backgrounds/trait_groups.json
index 21dd6d738fcb..570210c5269d 100644
--- a/data/mods/Aftershock/npcs/Backgrounds/trait_groups.json
+++ b/data/mods/Aftershock/npcs/Backgrounds/trait_groups.json
@@ -893,7 +893,7 @@
{ "trait": "ROBUST", "prob": 10 },
{ "trait": "SELFAWARE", "prob": 10 },
{ "trait": "SPIRITUAL", "prob": 10 },
- { "trait": "STYLISH", "prob": 10 },
+ { "trait": "UNSTYLISH", "prob": 10 },
{ "trait": "ALBINO", "prob": 5 },
{ "trait": "ASTHMA", "prob": 5 },
{ "trait": "CHEMIMBALANCE", "prob": 10 },
diff --git a/data/mods/Aftershock/npcs/mutant_npcs/trait_groups.json b/data/mods/Aftershock/npcs/mutant_npcs/trait_groups.json
index 4612bf796f45..c871bf95f916 100644
--- a/data/mods/Aftershock/npcs/mutant_npcs/trait_groups.json
+++ b/data/mods/Aftershock/npcs/mutant_npcs/trait_groups.json
@@ -899,7 +899,7 @@
{ "trait": "ROBUST", "prob": 10 },
{ "trait": "SELFAWARE", "prob": 10 },
{ "trait": "SPIRITUAL", "prob": 10 },
- { "trait": "STYLISH", "prob": 10 },
+ { "trait": "UNSTYLISH", "prob": 10 },
{ "trait": "ALBINO", "prob": 5 },
{ "trait": "ASTHMA", "prob": 5 },
{ "trait": "CHEMIMBALANCE", "prob": 10 },
diff --git a/doc/src/content/docs/en/mod/json/reference/json_flags.md b/doc/src/content/docs/en/mod/json/reference/json_flags.md
index 4780672c0e3d..c423df3c07da 100644
--- a/doc/src/content/docs/en/mod/json/reference/json_flags.md
+++ b/doc/src/content/docs/en/mod/json/reference/json_flags.md
@@ -200,7 +200,8 @@ to find which flags work elsewhere.
- `COLLAR` This piece of clothing has a wide collar that can keep your mouth warm.
- `DEAF` Makes the player deaf.
- `ELECTRIC_IMMUNE` This gear completely protects you from electric discharges.
-- `FANCY` Wearing this clothing gives a morale bonus if the player has the `Stylish` trait.
+- `FANCY` Wearing this clothing gives a morale bonus if the player doesn't have the
+ `Fashion Deficient` trait.
- `FIX_FARSIGHT` This gear corrects farsightedness.
- `FIX_NEARSIGHT` This gear corrects nearsightedness.
- `FLOTATION` Prevents the player from drowning in deep water. Also prevents diving underwater.
@@ -249,7 +250,8 @@ to find which flags work elsewhere.
0.70.
- `STURDY` This clothing is a lot more resistant to damage than normal.
- `SUN_GLASSES` Prevents glaring when in sunlight.
-- `SUPER_FANCY` Gives an additional moral bonus over `FANCY` if the player has the `Stylish` trait.
+- `SUPER_FANCY` Gives an additional moral bonus over `FANCY` if the player doesn't have the
+ `Fashion Deficient` trait.
- `SWIM_GOGGLES` Allows you to see much further under water.
- `THERMOMETER` This gear is equipped with an accurate thermometer (which is used to measure
temperature).
diff --git a/src/morale.cpp b/src/morale.cpp
index 8a366374bd14..910c73f301b7 100644
--- a/src/morale.cpp
+++ b/src/morale.cpp
@@ -48,7 +48,7 @@ static const trait_id trait_OPTIMISTIC( "OPTIMISTIC" );
static const trait_id trait_ROOTS1( "ROOTS1" );
static const trait_id trait_ROOTS2( "ROOTS2" );
static const trait_id trait_ROOTS3( "ROOTS3" );
-static const trait_id trait_STYLISH( "STYLISH" );
+static const trait_id trait_UNSTYLISH( "UNSTYLISH" );
namespace io
{
@@ -269,7 +269,7 @@ player_morale::player_morale() :
level_is_valid( false ),
took_prozac( false ),
took_prozac_bad( false ),
- stylish( false ),
+ stylish( true ),
perceived_pain( 0 )
{
using namespace std::placeholders;
@@ -288,9 +288,9 @@ player_morale::player_morale() :
mutations[trait_BADTEMPER] = mutation_data(
std::bind( set_badtemper, _1, -9 ),
std::bind( set_badtemper, _1, 0 ) );
- mutations[trait_STYLISH] = mutation_data(
- std::bind( set_stylish, _1, true ),
- std::bind( set_stylish, _1, false ) );
+ mutations[trait_UNSTYLISH] = mutation_data(
+ std::bind( set_stylish, _1, false ),
+ std::bind( set_stylish, _1, true ) );
mutations[trait_FLOWERS] = mutation_data( update_constrained );
mutations[trait_ROOTS1] = mutation_data( update_constrained );
mutations[trait_ROOTS2] = mutation_data( update_constrained );
@@ -892,7 +892,7 @@ void player_morale::clear()
}
took_prozac = false;
took_prozac_bad = false;
- stylish = false;
+ stylish = true;
super_fancy_items.clear();
invalidate();
diff --git a/tests/morale_test.cpp b/tests/morale_test.cpp
index bc30f1af23fd..f7daebc995b0 100644
--- a/tests/morale_test.cpp
+++ b/tests/morale_test.cpp
@@ -179,13 +179,18 @@ TEST_CASE( "player_morale", "[morale]" )
m.on_item_wear( heels );
WHEN( "not a stylish person" ) {
+ m.on_mutation_gain( trait_id( "UNSTYLISH" ) );
THEN( "just don't care (even if man)" ) {
CHECK( m.get_level() == 0 );
}
+
+ AND_WHEN( "not anymore" ) {
+ m.on_mutation_loss( trait_id( "UNSTYLISH" ) );
+ CHECK( m.get_level() == 19 );
+ }
}
WHEN( "a stylish person" ) {
- m.on_mutation_gain( trait_id( "STYLISH" ) );
CHECK( m.get_level() == 19 );
@@ -216,10 +221,6 @@ TEST_CASE( "player_morale", "[morale]" )
CHECK( m.get_level() == 20 );
}
}
- AND_WHEN( "not anymore" ) {
- m.on_mutation_loss( trait_id( "STYLISH" ) );
- CHECK( m.get_level() == 0 );
- }
}
}