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 ); - } } }