diff --git a/data/json/items/armor/boots.json b/data/json/items/armor/boots.json index e1025e0980d30..7c960910aada5 100644 --- a/data/json/items/armor/boots.json +++ b/data/json/items/armor/boots.json @@ -3395,6 +3395,7 @@ "price": "20 USD", "price_postapoc": "10 USD", "symbol": "[", + "material": "cotton", "volume": "600 ml", "weight": "500 g", "flags": [ "VARSIZE" ], diff --git a/data/json/items/armor/legs_clothes.json b/data/json/items/armor/legs_clothes.json index 80f2cf51980be..76b448cd13c6a 100644 --- a/data/json/items/armor/legs_clothes.json +++ b/data/json/items/armor/legs_clothes.json @@ -531,7 +531,7 @@ "id": "kilt", "type": "ARMOR", "name": { "str": "kilt" }, - "description": "No true Scotsman would leave home without his kilt.", + "description": "No true Scotsman would leave home without his kilt. Kilts lack pockets and thus a belt and sporran are necessary accessories.", "weight": "500 g", "volume": "1500 ml", "price": "65 USD", @@ -540,6 +540,27 @@ "symbol": "[", "looks_like": "skirt", "color": "dark_gray", + "warmth": 20, + "material_thickness": 0.3, + "flags": [ "VARSIZE" ], + "armor": [ + { "coverage": 100, "covers": [ "leg_l", "leg_r" ], "specifically_covers": [ "leg_hip_l", "leg_hip_r" ] }, + { "coverage": 95, "covers": [ "leg_l", "leg_r" ], "specifically_covers": [ "leg_upper_l", "leg_upper_r" ] } + ] + }, + { + "id": "kilt_utility", + "type": "ARMOR", + "name": { "str": "utility kilt" }, + "description": "Common in America, the utility kilt takes the traditional woolen kilt and constructs it out of cotton canvas and then adds a pocket that would never be on a traditional kilt.", + "weight": "500 g", + "volume": "1500 ml", + "price": "35 USD", + "price_postapoc": "50 cent", + "material": [ "cotton" ], + "symbol": "[", + "looks_like": "kilt", + "color": "brown_yellow", "pocket_data": [ { "pocket_type": "CONTAINER", diff --git a/data/json/professions.json b/data/json/professions.json index 8daee39b3b366..46aaae8fd9585 100644 --- a/data/json/professions.json +++ b/data/json/professions.json @@ -450,21 +450,67 @@ }, { "type": "profession_item_substitutions", - "trait": "WOOLALLERGY", + "item": "blazer", "sub": [ - { "item": "blazer", "new": [ "jacket_leather_red" ] }, - { "item": "hat_hunting", "new": [ "hat_cotton" ] }, - { "item": "hat_newsboy", "new": [ "hat_cotton" ] }, - { "item": "peacoat", "new": [ "jacket_flannel" ] }, - { "item": "sweater", "new": [ "sweatshirt" ] }, - { "item": "boots_winter", "new": [ "boots_fur" ] }, - { "item": "cloak_wool", "new": [ "cloak_leather" ] }, - { "item": "gloves_wool", "new": [ "gloves_leather" ] }, - { "item": "socks_wool", "new": [ "socks" ] }, - { "item": "kilt", "new": [ "kilt_leather" ] }, - { "item": "mask_ski", "new": [ "balclava" ] } + { "present": [ "WOOLALLERGY" ], "new": [ "jacket_leather_red" ] }, + { "present": [ "VEGAN" ], "new": [ "jacket_light" ] } ] }, + { + "type": "profession_item_substitutions", + "item": "hat_hunting", + "sub": [ { "present": [ "WOOLALLERGY", "VEGAN" ], "new": [ "hat_cotton" ] } ] + }, + { + "type": "profession_item_substitutions", + "item": "hat_newsboy", + "sub": [ { "present": [ "WOOLALLERGY", "VEGAN" ], "new": [ "hat_cotton" ] } ] + }, + { + "type": "profession_item_substitutions", + "item": "peacoat", + "sub": [ { "present": [ "WOOLALLERGY", "VEGAN" ], "new": [ "jacket_flannel" ] } ] + }, + { + "type": "profession_item_substitutions", + "item": "sweater", + "sub": [ { "present": [ "WOOLALLERGY", "VEGAN" ], "new": [ "sweatshirt" ] } ] + }, + { + "type": "profession_item_substitutions", + "item": "boots_winter", + "sub": [ { "present": [ "WOOLALLERGY" ], "new": [ "boots_fur" ] }, { "present": [ "VEGAN" ], "new": [ "boots_faux_fur" ] } ] + }, + { + "type": "profession_item_substitutions", + "item": "cloak_wool", + "sub": [ { "present": [ "WOOLALLERGY" ], "new": [ "cloak_leather" ] }, { "present": [ "VEGAN" ], "new": [ "cloak" ] } ] + }, + { + "type": "profession_item_substitutions", + "item": "gloves_wool", + "sub": [ { "present": [ "WOOLALLERGY" ], "new": [ "gloves_leather" ] }, { "present": [ "VEGAN" ], "new": [ "gloves_light" ] } ] + }, + { + "type": "profession_item_substitutions", + "item": "socks_wool", + "sub": [ { "present": [ "WOOLALLERGY", "VEGAN" ], "new": [ "socks" ] } ] + }, + { + "type": "profession_item_substitutions", + "item": "mask_ski", + "sub": [ { "present": [ "WOOLALLERGY", "VEGAN" ], "new": [ "balclava" ] } ] + }, + { + "type": "profession_item_substitutions", + "item": "kilt", + "sub": [ { "present": [ "WOOLALLERGY" ], "new": [ "kilt_leather" ] }, { "present": [ "VEGAN" ], "new": [ "kilt_utility" ] } ] + }, + { + "type": "profession_item_substitutions", + "trait": "VEGAN", + "sub": [ { "item": "dress_shoes", "new": [ "espadrilles" ] } ] + }, { "type": "profession_item_substitutions", "item": "sunglasses", @@ -529,6 +575,7 @@ { "present": [ "ANTIWHEAT", "ANTIJUNK", "MEATARIAN" ], "new": [ "fried_spam", "fork" ] }, { "present": [ "LACTOSE" ], "absent": [ "ANTIWHEAT", "VEGETARIAN" ], "new": [ "hamburger" ] }, { "present": [ "LACTOSE", "VEGETARIAN" ], "absent": [ "ANTIWHEAT" ], "new": [ "sandwich_veggy" ] }, + { "present": [ "VEGAN" ], "absent": [ "ANTIWHEAT" ], "new": [ "sandwich_veggy" ] }, { "present": [ "VEGETARIAN" ], "absent": [ "ANTIWHEAT", "LACTOSE" ], @@ -541,7 +588,9 @@ "item": "pizza_meat", "sub": [ { "present": [ "VEGETARIAN" ], "absent": [ "ANTIWHEAT" ], "new": [ "pizza_veggy" ] }, + { "present": [ "VEGAN" ], "absent": [ "ANTIWHEAT" ], "new": [ "pizza_veggy" ] }, { "present": [ "VEGETARIAN", "ANTIWHEAT" ], "new": [ "veggy_salad", "fork" ] }, + { "present": [ "VEGAN", "ANTIWHEAT" ], "new": [ "veggy_salad", "fork" ] }, { "present": [ "ANTIWHEAT" ], "absent": [ "VEGETARIAN", "ANTIJUNK" ], @@ -559,6 +608,7 @@ "item": "pizza_veggy", "sub": [ { "present": [ "ANTIWHEAT", "VEGETARIAN" ], "new": [ "veggy_salad", "fork" ] }, + { "present": [ "ANTIWHEAT", "VEGAN" ], "new": [ "veggy_salad", "fork" ] }, { "present": [ "ANTIWHEAT" ], "absent": [ "VEGETARIAN", "ANTIJUNK" ], diff --git a/src/profession.cpp b/src/profession.cpp index 48fdf2fecc586..887b3b3d02537 100644 --- a/src/profession.cpp +++ b/src/profession.cpp @@ -785,7 +785,7 @@ void json_item_substitution::load( const JsonObject &jo ) itype_id old_it; sub.read( "item", old_it, true ); if( check_duplicate_item( old_it ) ) { - sub.throw_error( "Duplicate definition of item" ); + sub.throw_error( "Item substitutions can only be defined once. Items with multiple substition traits should use arrays." ); } s.trait_reqs.present.emplace_back( jo.get_string( "trait" ) ); for( const JsonValue info : sub.get_array( "new" ) ) {