From fa7cdab34964e6600a86c625f5dc9360b0837562 Mon Sep 17 00:00:00 2001 From: Chorus System Date: Mon, 3 Jun 2024 16:32:26 -0400 Subject: [PATCH 1/9] feat(balance): Spear size/weight rebalance (#4728) * Spear size/weight rebalance Made spears have consistent size and weights, with variances based on material, to ensure that their DPS is more even. Made it so that only pikes have the "ALWAYS_TWOHAND" flag. Made the survivor naginata not have a to-hit penalty and instead gave it a +1 to hit like the pipe spear. * Pointy stick weight --- .../json/items/melee/spears_and_polearms.json | 75 +++++++++---------- 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/data/json/items/melee/spears_and_polearms.json b/data/json/items/melee/spears_and_polearms.json index c2eb4fedc861..f428bf16a89e 100644 --- a/data/json/items/melee/spears_and_polearms.json +++ b/data/json/items/melee/spears_and_polearms.json @@ -66,7 +66,7 @@ "symbol": "/", "material": [ "wood" ], "techniques": "WBLOCK_1", - "volume": "1250 ml", + "volume": "1750 ml", "bashing": 4, "cutting": 13, "flags": [ "SPEAR", "REACH_ATTACK", "NPC_THROWN", "SHEATH_SPEAR", "STAB" ], @@ -81,7 +81,7 @@ "name": { "str": "spike on a stick" }, "description": "A flimsy pole made of wood with a basic metal spike tied to it. It's barely sharp, and crudely constructed, but it will keep the zombies out of arm's reach until you can find something better.", "weight": "1487 g", - "volume": "1250 ml", + "volume": "1750 ml", "price": "4 USD", "price_postapoc": "50 cent", "bashing": 4, @@ -101,7 +101,7 @@ "name": { "str": "simple knife spear" }, "description": "A flimsy pole made of wood with a knife bound to the end. It's long enough to slice from a distance, but the knife isn't that well attached. You could take a bit more time to carefully split the shaft and attach the knife blade more permanently.", "weight": "1487 g", - "volume": "1250 ml", + "volume": "1750 ml", "price": "7 USD", "price_postapoc": "150 cent", "to_hit": 1, @@ -132,7 +132,7 @@ "name": { "str": "homemade halfpike" }, "description": "A short do-it-yourself spear made out of a smooth wooden shaft with a metal spike seated and bound into place at its tip. Its functional grip and decent construction makes it a usable, if not effective, weapon.", "weight": "1814 g", - "volume": "1500 ml", + "volume": "1750 ml", "price": "14 USD", "price_postapoc": "750 cent", "bashing": 6, @@ -156,7 +156,7 @@ "symbol": "/", "material": [ "wood", "steel" ], "techniques": [ "WBLOCK_2", "DEF_DISARM" ], - "volume": "1500 ml", + "volume": "1750 ml", "bashing": 6, "cutting": 18, "flags": [ "SPEAR", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR", "STAB" ], @@ -171,7 +171,7 @@ "name": { "str": "pipe spear" }, "description": "A stout metal pole with a sharp point.", "weight": "1398 g", - "volume": "1250 ml", + "volume": "1750 ml", "price": "80 USD", "price_postapoc": "50 cent", "symbol": "/", @@ -191,7 +191,7 @@ "name": { "str": "copper spear" }, "description": "A stout wooden pole with a spearhead worked from copper.", "weight": "1450 g", - "volume": "1500 ml", + "volume": "1750 ml", "price": "14 USD", "price_postapoc": "1250 cent", "color": "light_red", @@ -207,8 +207,8 @@ "copy-from": "spear_pipe", "name": { "str": "steel spear" }, "description": "A stout wooden pole with a hand-forged steel spearhead.", - "weight": "1498 g", - "volume": "3 L", + "weight": "1298 g", + "volume": "1750 ml", "price": "160 USD", "price_postapoc": "55 USD", "material": [ "steel", "wood" ], @@ -225,8 +225,7 @@ "price": "5 USD", "price_postapoc": "50 cent", "material": "iron", - "weight": "908 g", - "volume": "1500 ml", + "volume": "1750 ml", "bashing": 5, "cutting": 15, "techniques": [ "WBLOCK_1" ], @@ -239,8 +238,8 @@ "category": "weapons", "name": { "str": "stone spear" }, "description": "A stout wooden pole with a sharp stone spearhead.", - "weight": "1098 g", - "volume": "1250 ml", + "weight": "1398 g", + "volume": "1750 ml", "price": "13 USD", "price_postapoc": "50 cent", "to_hit": 1, @@ -260,13 +259,13 @@ "weapon_category": [ "SPEARS" ], "name": { "str": "qiang" }, "description": "An ancient Chinese spear, typically with a tassel just below the spearhead. One of the four major weapons in folklore, alongside the dao sabre, jian sword, and gun staff.", - "weight": "1398 g", + "weight": "1298 g", "price_postapoc": "35 USD", "color": "light_gray", "symbol": "/", "material": [ "steel", "wood" ], "techniques": [ "WBLOCK_1", "PRECISE", "IMPALE" ], - "volume": "2500 ml", + "volume": "1750 ml", "bashing": 5, "cutting": 31, "flags": [ "DURABLE_MELEE", "SPEAR", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR", "STAB" ], @@ -291,7 +290,7 @@ "color": "light_gray", "techniques": [ "WIDE", "BRUTAL" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", -22 ] ], - "flags": [ "FRAGILE_MELEE", "NONCONDUCTIVE", "POLEARM", "SHEATH_SPEAR", "REACH_ATTACK", "ALWAYS_TWOHAND" ] + "flags": [ "FRAGILE_MELEE", "NONCONDUCTIVE", "POLEARM", "SHEATH_SPEAR", "REACH_ATTACK" ] }, { "type": "GENERIC", @@ -300,8 +299,8 @@ "id": "scythe_war", "name": { "str": "war scythe" }, "description": "A pole weapon with a curving single-edged blade. Its blade bears some superficial resemblance to that of an agricultural scythe from which it likely evolved.", - "weight": "3013 g", - "volume": "3250 ml", + "weight": "1298 g", + "volume": "1750 ml", "price": "160 USD", "price_postapoc": "25 USD", "bashing": 6, @@ -311,7 +310,7 @@ "color": "light_gray", "techniques": [ "WIDE", "BRUTAL" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", -22 ] ], - "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "POLEARM", "SHEATH_SPEAR", "REACH_ATTACK", "ALWAYS_TWOHAND" ] + "flags": [ "DURABLE_MELEE", "NONCONDUCTIVE", "POLEARM", "SHEATH_SPEAR", "REACH_ATTACK" ] }, { "id": "makeshift_halberd", @@ -320,8 +319,8 @@ "name": { "str": "makeshift glaive" }, "//": "Name changed to glaive, but changing the id would break e.g. tilesets.", "description": "This is a large blade attached to a long stick. It could do a considerable amount of damage.", - "weight": "1800 g", - "volume": "3 L", + "weight": "1400 g", + "volume": "1750 ml", "price": "50 USD", "price_postapoc": "250 cent", "to_hit": 2, @@ -346,10 +345,10 @@ "price": "500 USD", "material": [ "steel", "wood" ], "qualities": [ [ "CUT", 1 ], [ "BUTCHER", -28 ] ], - "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "NONCONDUCTIVE", "POLEARM", "SHEATH_SPEAR", "ALWAYS_TWOHAND", "SPEAR" ], + "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "NONCONDUCTIVE", "POLEARM", "SHEATH_SPEAR", "SPEAR" ], "techniques": [ "WIDE", "WBLOCK_1" ], - "weight": "2100 g", - "volume": "2500 ml", + "weight": "1298 g", + "volume": "1750 ml", "bashing": 14, "cutting": 38, "price_postapoc": "80 USD" @@ -361,16 +360,16 @@ "weapon_category": [ "GLAIVES" ], "name": { "str_sp": "naginata" }, "description": "A sturdy polearm with a curved blade, made in the same manner as the katana and other Japanese blades. Occasionally used by samurai in early periods, or by their wives in defense of the household.", - "weight": "1700 g", + "weight": "1298 g", "color": "light_gray", "symbol": "/", "material": [ "steel", "wood" ], "techniques": [ "WIDE", "WBLOCK_1" ], - "volume": "2500 ml", + "volume": "1750 ml", "bashing": 7, "cutting": 45, "qualities": [ [ "CUT", 1 ], [ "BUTCHER", -24 ] ], - "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "NONCONDUCTIVE", "POLEARM", "SHEATH_SPEAR", "ALWAYS_TWOHAND", "SPEAR" ], + "flags": [ "DURABLE_MELEE", "REACH_ATTACK", "NONCONDUCTIVE", "POLEARM", "SHEATH_SPEAR", "SPEAR" ], "price": "800 USD", "price_postapoc": "95 USD" }, @@ -383,7 +382,7 @@ "material": [ "budget_steel", "wood" ], "bashing": 29, "cutting": 11, - "flags": [ "REACH_ATTACK", "NONCONDUCTIVE", "POLEARM", "SHEATH_SPEAR", "ALWAYS_TWOHAND", "SPEAR" ], + "flags": [ "REACH_ATTACK", "NONCONDUCTIVE", "POLEARM", "SHEATH_SPEAR", "SPEAR" ], "price_postapoc": "15 USD" }, { @@ -392,12 +391,12 @@ "copy-from": "naginata", "name": { "str": "naginata fake" }, "description": "This is a dull, slightly floppy replica of a Japanese polearm with a curved blade. With a little difficulty, you could use it administer a solid slap from a distance.", - "weight": "1400 g", + "weight": "1000 g", "material": [ "aluminum", "wood" ], "bashing": 12, "cutting": 2, "to_hit": 1, - "flags": [ "REACH_ATTACK", "NONCONDUCTIVE", "POLEARM", "SHEATH_SPEAR", "ALWAYS_TWOHAND", "FRAGILE_MELEE", "SPEAR" ], + "flags": [ "REACH_ATTACK", "NONCONDUCTIVE", "POLEARM", "SHEATH_SPEAR", "FRAGILE_MELEE", "SPEAR" ], "price": "80 USD", "price_postapoc": "5 USD", "qualities": [ ] @@ -409,13 +408,13 @@ "weapon_category": [ "GLAIVES" ], "name": { "str_sp": "survivor naginata" }, "description": "This sturdy steel shaft with a sword blade at the end is good for both slashing and stabbing.", - "weight": "1700 g", - "to_hit": -1, + "weight": "1250 g", + "to_hit": 1, "color": "light_gray", "symbol": "/", "material": [ "steel" ], "techniques": [ "IMPALE", "WIDE", "WBLOCK_1" ], - "volume": "2250 ml", + "volume": "1750 ml", "bashing": 6, "cutting": 40, "flags": [ "STAB", "POLEARM", "REACH_ATTACK", "SHEATH_SPEAR", "SPEAR" ], @@ -554,8 +553,8 @@ "weapon_category": [ "SPEARS" ], "name": { "str": "dory", "str_pl": "dories" }, "description": "A well-made spear with a bronze head, Greek in origin.", - "weight": "1598 g", - "volume": "3500 ml", + "weight": "1298 g", + "volume": "1750 ml", "price": "100 USD", "price_postapoc": "35 USD", "to_hit": 1, @@ -576,8 +575,8 @@ "name": { "str_sp": "ji" }, "//": "Couldn't find a good way to pluralize the transliteration.", "description": "This is a bronze polearm that originated in the Shang dynasty of China, if not earlier. It combines a spear head with the perpendicular blade of the earlier ge or dagger-axe.", - "weight": "3175 g", - "volume": "3750 ml", + "weight": "1175 g", + "volume": "1750 ml", "price": "500 USD", "price_postapoc": "35 USD", "to_hit": 2, @@ -587,6 +586,6 @@ "symbol": "/", "color": "yellow", "techniques": [ "WBLOCK_1", "DEF_DISARM" ], - "flags": [ "DURABLE_MELEE", "POLEARM", "REACH_ATTACK", "ALWAYS_TWOHAND", "NONCONDUCTIVE", "SHEATH_SPEAR", "SPEAR" ] + "flags": [ "DURABLE_MELEE", "POLEARM", "REACH_ATTACK", "NONCONDUCTIVE", "SHEATH_SPEAR", "SPEAR" ] } ] From f3517f09d8b191dca3353a7f37b643dc39eb71bb Mon Sep 17 00:00:00 2001 From: Viss Valdyr <33199510+Lamandus@users.noreply.github.com> Date: Mon, 3 Jun 2024 23:15:51 +0200 Subject: [PATCH 2/9] feat(content): make sheets of metal and wood stackable (#4723) * feat(content): make sticks, straw and pipes stackable * feat(content): make sheets of metal and wood stackable --- data/json/items/resources/metal.json | 3 ++- data/json/items/resources/wood.json | 3 ++- data/json/items/vehicle/plating.json | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/data/json/items/resources/metal.json b/data/json/items/resources/metal.json index a42800083b0b..d15ca316dfd9 100644 --- a/data/json/items/resources/metal.json +++ b/data/json/items/resources/metal.json @@ -240,7 +240,8 @@ "material": "steel", "symbol": "]", "color": "light_cyan", - "ammo_type": "components" + "ammo_type": "components", + "stackable": true }, { "id": "steel_chunk", diff --git a/data/json/items/resources/wood.json b/data/json/items/resources/wood.json index 1f9f391ea8a7..092d49d9ec97 100644 --- a/data/json/items/resources/wood.json +++ b/data/json/items/resources/wood.json @@ -164,7 +164,8 @@ "bashing": 8, "price": "200 USD", "price_postapoc": "10 cent", - "flags": [ "FIREWOOD" ] + "flags": [ "FIREWOOD" ], + "stackable": true }, { "type": "GENERIC", diff --git a/data/json/items/vehicle/plating.json b/data/json/items/vehicle/plating.json index 2748f6e654d0..d382bd8bc2f3 100644 --- a/data/json/items/vehicle/plating.json +++ b/data/json/items/vehicle/plating.json @@ -15,7 +15,8 @@ "category": "spare_parts", "price": "60 USD", "price_postapoc": "1 USD", - "qualities": [ [ "COOK", 1 ] ] + "qualities": [ [ "COOK", 1 ] ], + "stackable": true }, { "type": "GENERIC", From e03918cbb39a415e93182c4b317dbfb8d95dbb26 Mon Sep 17 00:00:00 2001 From: Chorus System Date: Mon, 3 Jun 2024 17:17:45 -0400 Subject: [PATCH 3/9] feat(content): extendable quarterstaff (#4729) * Added extendable quarterstaff * Update data/json/items/melee/bludgeons.json Co-authored-by: Chaosvolt * Update data/json/items/melee/bludgeons.json Co-authored-by: Chaosvolt * Update data/json/items/melee/bludgeons.json Co-authored-by: Chaosvolt --------- Co-authored-by: Chaosvolt --- data/json/items/melee/bludgeons.json | 35 ++++++++++++++++++++++++++- data/json/recipes/weapon/bashing.json | 14 +++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/data/json/items/melee/bludgeons.json b/data/json/items/melee/bludgeons.json index f7e3c2ed1fd0..34827ef21fc4 100644 --- a/data/json/items/melee/bludgeons.json +++ b/data/json/items/melee/bludgeons.json @@ -750,7 +750,6 @@ "volume": "3250 ml", "price": "80 USD", "price_postapoc": "45 USD", - "bashing": 29, "ammo": "battery", "use_action": { "type": "transform", @@ -935,5 +934,39 @@ "cutting": 23, "price": "160 USD", "qualities": [ [ "HAMMER", 2 ] ] + }, + { + "id": "qstaff_retracted", + "type": "GENERIC", + "category": "weapons", + "looks_like": "baton", + "weapon_category": [ "BATONS" ], + "name": { "str": "extendable quarterstaff (retracted)", "str_pl": "extendable quarterstaves (retracted)" }, + "description": "A custom-made telescoping steel quarterstaff, capable of shrinking down to the size of a baton for easy storage. Its hollow nature makes it more lightweight but less sturdy than a more traditional staff. It is currently retracted.", + "weight": "2000 g", + "volume": "750 ml", + "price_postapoc": "10 USD", + "color": "dark_gray", + "symbol": "/", + "material": [ "steel" ], + "techniques": [ "WBLOCK_1", "RAPID" ], + "flags": [ "BELT_CLIP" ], + "use_action": { "menu_text": "Expand", "type": "transform", "target": "qstaff_extended", "msg": "You snap open your staff." }, + "bashing": 14 + }, + { + "id": "qstaff_extended", + "type": "GENERIC", + "copy-from": "qstaff_retracted", + "looks_like": "i_staff", + "weapon_category": [ "QUARTERSTAVES" ], + "name": { "str": "extendable quarterstaff (extended)", "str_pl": "extendable quarterstaves (extended)" }, + "description": "A custom-made telescoping steel quarterstaff, capable of shrinking down to the size of a baton for easy storage. Its hollow nature makes it more lightweight but less sturdy than a more traditional staff. It is currently extended.", + "volume": "3 L", + "flags": [ "SHEATH_SPEAR", "ALWAYS_TWOHAND" ], + "techniques": [ "WBLOCK_2", "RAPID", "SWEEP" ], + "bashing": 30, + "to_hit": 3, + "use_action": { "menu_text": "Retract", "type": "transform", "target": "qstaff_retracted", "msg": "You retract your staff." } } ] diff --git a/data/json/recipes/weapon/bashing.json b/data/json/recipes/weapon/bashing.json index ce55b8b5f5a8..c3053f99c916 100644 --- a/data/json/recipes/weapon/bashing.json +++ b/data/json/recipes/weapon/bashing.json @@ -439,5 +439,19 @@ "book_learn": [ [ "recipe_melee", 4 ] ], "using": [ [ "blacksmithing_standard", 12 ], [ "steel_standard", 6 ] ], "components": [ [ [ "fabric_standard", 5, "LIST" ] ], [ [ "filament", 25, "LIST" ] ] ] + }, + { + "result": "qstaff_retracted", + "type": "recipe", + "category": "CC_WEAPON", + "subcategory": "CSC_WEAPON_BASHING", + "skill_used": "fabrication", + "difficulty": 4, + "skills_required": [ "melee", 1 ], + "time": "60 m", + "autolearn": true, + "using": [ [ "welding_standard", 2 ], [ "steel_tiny", 1 ] ], + "qualities": [ { "id": "HAMMER", "level": 3 }, { "id": "SAW_M", "level": 1 } ], + "components": [ [ [ "pipe", 3 ] ] ] } ] From 23a9830c760a41d2b7142cb73f4b6f219282e0fe Mon Sep 17 00:00:00 2001 From: Chaosvolt Date: Tue, 4 Jun 2024 18:17:05 -0500 Subject: [PATCH 4/9] fix: hydrogen sacs can stack, obsolete endochitin (#4732) * fix: hydrogen sacs can stack * per feedback --- data/json/harvest.json | 41 +++++++------------ .../monster_drops_lairs.json | 1 - data/json/items/generic.json | 18 +------- data/json/obsoletion/migration.json | 5 +++ data/json/snippets/mutant_anatomy.json | 14 ------- 5 files changed, 20 insertions(+), 59 deletions(-) diff --git a/data/json/harvest.json b/data/json/harvest.json index 69d5adb56f36..bf25178343fa 100644 --- a/data/json/harvest.json +++ b/data/json/harvest.json @@ -538,11 +538,10 @@ "type": "harvest", "message": "", "entries": [ - { "drop": "endochitin", "type": "bone", "mass_ratio": 0.1 }, { "drop": "meat_tainted", "type": "flesh", "mass_ratio": 0.33 }, { "drop": "mutant_bug_lungs", "type": "flesh", "mass_ratio": 0.0035 }, { "drop": "mutant_bug_organs", "type": "offal", "mass_ratio": 0.015 }, - { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.1 } + { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.15 } ] }, { @@ -552,11 +551,10 @@ "entries": [ { "drop": "mutant_meat", "type": "flesh", "mass_ratio": 0.1 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.01 }, - { "drop": "endochitin", "type": "bone", "mass_ratio": 0.01 }, { "drop": "mutant_bug_hydrogen_sacs", "type": "flesh", "mass_ratio": 0.2 }, { "drop": "mutant_bug_lungs", "type": "flesh", "mass_ratio": 0.0035 }, { "drop": "mutant_bug_organs", "type": "offal", "mass_ratio": 0.015 }, - { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.01 } + { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.015 } ] }, { @@ -564,9 +562,8 @@ "type": "harvest", "message": "", "entries": [ - { "drop": "endochitin", "type": "bone", "mass_ratio": 0.1 }, { "drop": "mutant_meat", "base_num": [ 40, 55 ], "scale_num": [ 0.5, 0.7 ], "max": 80, "type": "flesh" }, - { "drop": "acidchitin_piece", "base_num": [ 2, 6 ], "scale_num": [ 0.3, 0.6 ], "max": 10, "type": "skin" }, + { "drop": "acidchitin_piece", "base_num": [ 2, 6 ], "scale_num": [ 0.45, 0.9 ], "max": 15, "type": "skin" }, { "drop": "mutant_fat", "base_num": [ 5, 8 ], "scale_num": [ 0.6, 0.8 ], "max": 18, "type": "flesh" } ] }, @@ -575,13 +572,12 @@ "type": "harvest", "message": "", "entries": [ - { "drop": "endochitin", "type": "bone", "mass_ratio": 0.1 }, { "drop": "mutant_meat", "type": "flesh", "mass_ratio": 0.33 }, { "drop": "mutant_fat", "type": "flesh", "mass_ratio": 0.04 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.01 }, { "drop": "mutant_bug_lungs", "type": "flesh", "mass_ratio": 0.0035 }, { "drop": "mutant_bug_organs", "type": "offal", "mass_ratio": 0.015 }, - { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.1 } + { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.15 } ] }, { @@ -592,8 +588,7 @@ { "drop": "mutant_meat", "type": "flesh", "mass_ratio": 0.33 }, { "drop": "mutant_fat", "type": "flesh", "mass_ratio": 0.04 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.01 }, - { "drop": "endochitin", "type": "bone", "mass_ratio": 0.1 }, - { "drop": "acidchitin_piece", "type": "bone", "mass_ratio": 0.1 } + { "drop": "acidchitin_piece", "type": "bone", "mass_ratio": 0.15 } ] }, { @@ -603,12 +598,11 @@ "entries": [ { "drop": "mutant_meat", "type": "flesh", "mass_ratio": 0.23 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.01 }, - { "drop": "endochitin", "type": "bone", "mass_ratio": 0.1 }, { "drop": "mutant_bug_hydrogen_sacs", "type": "flesh", "mass_ratio": 0.1 }, { "drop": "mutant_bug_lungs", "type": "flesh", "mass_ratio": 0.0035 }, { "drop": "mutant_bug_organs", "type": "offal", "mass_ratio": 0.015 }, { "drop": "bee_sting", "base_num": [ 0, 1 ], "type": "bone" }, - { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.1 } + { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.15 } ] }, { @@ -618,12 +612,11 @@ "entries": [ { "drop": "mutant_meat", "type": "flesh", "mass_ratio": 0.3 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.003 }, - { "drop": "endochitin", "type": "bone", "mass_ratio": 0.01 }, { "drop": "mutant_bug_hydrogen_sacs", "type": "flesh", "mass_ratio": 0.1 }, { "drop": "mutant_bug_lungs", "type": "flesh", "mass_ratio": 0.01 }, { "drop": "mutant_bug_organs", "type": "offal", "mass_ratio": 0.03 }, { "drop": "wasp_sting", "base_num": [ 0, 1 ], "type": "bone" }, - { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.1 } + { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.15 } ] }, { @@ -633,12 +626,11 @@ "entries": [ { "drop": "mutant_meat", "type": "flesh", "mass_ratio": 0.2 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.003 }, - { "drop": "endochitin", "type": "bone", "mass_ratio": 0.01 }, { "drop": "mutant_bug_hydrogen_sacs", "type": "flesh", "mass_ratio": 0.1 }, { "drop": "mutant_bug_lungs", "type": "flesh", "mass_ratio": 0.01 }, { "drop": "mutant_bug_organs", "type": "offal", "mass_ratio": 0.03 }, { "drop": "wasp_sting", "base_num": [ 0, 1 ], "type": "bone" }, - { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.1 }, + { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.15 }, { "drop": "egg_wasp", "type": "offal", "base_num": [ 10, 30 ], "scale_num": [ 5, 5 ] } ] }, @@ -650,10 +642,9 @@ { "drop": "mutant_meat", "type": "flesh", "mass_ratio": 0.15 }, { "drop": "mutant_fat", "type": "flesh", "mass_ratio": 0.04 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.005 }, - { "drop": "endochitin", "type": "bone", "mass_ratio": 0.05 }, { "drop": "mutant_bug_lungs", "type": "flesh", "mass_ratio": 0.0045 }, { "drop": "mutant_bug_organs", "type": "offal", "mass_ratio": 0.025 }, - { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.01 }, + { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.015 }, { "drop": "egg_dragonfly", "type": "offal", "base_num": [ 5, 35 ], "scale_num": [ 0.3, 0.5 ] } ] }, @@ -665,11 +656,10 @@ "entries": [ { "drop": "mutant_meat", "type": "flesh", "mass_ratio": 0.1 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.01 }, - { "drop": "endochitin", "type": "bone", "mass_ratio": 0.01 }, { "drop": "mutant_bug_hydrogen_sacs", "type": "flesh", "mass_ratio": 0.2 }, { "drop": "mutant_bug_lungs", "type": "flesh", "mass_ratio": 0.0035 }, { "drop": "mutant_bug_organs", "type": "offal", "mass_ratio": 0.015 }, - { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.01 }, + { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.015 }, { "drop": "egg_firefly", "type": "offal", "base_num": [ 0, 3 ] } ] }, @@ -677,15 +667,14 @@ "id": "arachnid_centipede", "type": "harvest", "message": "", - "//": "More legs = more sinew, more endochitin, less rest", + "//": "More legs = more sinew, less rest", "entries": [ { "drop": "mutant_meat", "type": "flesh", "mass_ratio": 0.2 }, { "drop": "mutant_fat", "type": "flesh", "mass_ratio": 0.01 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.05 }, - { "drop": "endochitin", "type": "bone", "mass_ratio": 0.2 }, { "drop": "mutant_bug_lungs", "type": "flesh", "mass_ratio": 0.0035 }, { "drop": "mutant_bug_organs", "type": "offal", "mass_ratio": 0.01 }, - { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.08 } + { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.012 } ] }, { @@ -696,10 +685,9 @@ { "drop": "mutant_meat", "type": "flesh", "mass_ratio": 0.2 }, { "drop": "mutant_fat", "type": "flesh", "mass_ratio": 0.01 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.05 }, - { "drop": "endochitin", "type": "bone", "mass_ratio": 0.2 }, { "drop": "mutant_bug_lungs", "type": "flesh", "mass_ratio": 0.0035 }, { "drop": "mutant_bug_organs", "type": "offal", "mass_ratio": 0.01 }, - { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.08 }, + { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.012 }, { "drop": "egg_centipede", "type": "offal", "base_num": [ 3, 10 ], "scale_num": [ 0.5, 1 ], "max": 30 } ] }, @@ -712,10 +700,9 @@ { "drop": "mutant_meat", "type": "flesh", "mass_ratio": 0.4 }, { "drop": "mutant_fat", "type": "flesh", "mass_ratio": 0.015 }, { "drop": "sinew", "type": "bone", "mass_ratio": 0.05 }, - { "drop": "endochitin", "type": "bone", "mass_ratio": 0.2 }, { "drop": "mutant_bug_lungs", "type": "flesh", "mass_ratio": 0.0035 }, { "drop": "mutant_bug_organs", "type": "offal", "mass_ratio": 0.01 }, - { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.2 }, + { "drop": "chitin_piece", "type": "bone", "mass_ratio": 0.3 }, { "drop": "egg_centipede", "type": "offal", "base_num": [ 0, 3 ], "scale_num": [ 0.5, 1 ], "max": 10 } ] }, diff --git a/data/json/itemgroups/Monsters_Animals_Lairs/monster_drops_lairs.json b/data/json/itemgroups/Monsters_Animals_Lairs/monster_drops_lairs.json index 2c23d520185e..67da70c17aea 100644 --- a/data/json/itemgroups/Monsters_Animals_Lairs/monster_drops_lairs.json +++ b/data/json/itemgroups/Monsters_Animals_Lairs/monster_drops_lairs.json @@ -403,7 +403,6 @@ "entries": [ { "item": "chitin_piece", "prob": 70 }, { "item": "acidchitin_piece", "prob": 30 }, - { "item": "endochitin", "prob": 70 }, { "item": "mutant_bug_hydrogen_sacs", "prob": 30 }, { "item": "mutant_bug_lungs", "prob": 10 }, { "item": "mutant_bug_organs", "prob": 10 }, diff --git a/data/json/items/generic.json b/data/json/items/generic.json index 12ac68a68870..09e97d897957 100644 --- a/data/json/items/generic.json +++ b/data/json/items/generic.json @@ -340,23 +340,6 @@ "bashing": 1, "to_hit": -2 }, - { - "type": "GENERIC", - "id": "endochitin", - "category": "spare_parts", - "symbol": ",", - "color": "light_gray", - "name": { "str": "strand of endochitin", "str_pl": "strands of endochitin" }, - "snippet_category": "endochitin_desc", - "description": "A piece of an insect's endoskeleton.", - "price": 0, - "stackable": true, - "material": "chitin", - "flags": [ "NO_SALVAGE" ], - "weight": "89 g", - "volume": "300 ml", - "bashing": 1 - }, { "type": "GENERIC", "id": "mutant_bug_hydrogen_sacs", @@ -366,6 +349,7 @@ "name": { "str": "cluster of gas sacs", "str_pl": "clusters of gas sacs" }, "description": "This is a cluster of membranous bubbles, each about the size of a grape, retrieved from inside a mutant insect. They float like tiny helium balloons, and are likely full of a lighter-than-air gas helping the bug to fly.", "price": 0, + "stackable": true, "material": "flesh", "flags": [ "NO_SALVAGE" ], "weight": "50 g", diff --git a/data/json/obsoletion/migration.json b/data/json/obsoletion/migration.json index b660e8302e01..45c789630c26 100644 --- a/data/json/obsoletion/migration.json +++ b/data/json/obsoletion/migration.json @@ -1908,5 +1908,10 @@ "type": "MIGRATION", "replace": "welder", "flags": [ "resized_large" ] + }, + { + "id": "endochitin", + "type": "MIGRATION", + "replace": "chitin_piece" } ] diff --git a/data/json/snippets/mutant_anatomy.json b/data/json/snippets/mutant_anatomy.json index fe01047cc82a..04e88c9d8868 100644 --- a/data/json/snippets/mutant_anatomy.json +++ b/data/json/snippets/mutant_anatomy.json @@ -101,20 +101,6 @@ } ] }, - { - "type": "snippet", - "category": "endochitin_desc", - "text": [ - { - "id": "endochitin_1", - "text": "A piece of rigid, tube-shaped chitin from the inside of a giant bug. It seemed to be performing some kind of support role. You're quite sure normal insects don't have these." - }, - { - "id": "endochitin_2", - "text": "A long, flexible rod of chitin from inside a giant mutant bug. It is laced with blood vessels and chitinous nodules." - } - ] - }, { "type": "snippet", "category": "", From bfb0bfd9095dc17bf6a19aefb9b5de300edf7a28 Mon Sep 17 00:00:00 2001 From: Viss Valdyr <33199510+Lamandus@users.noreply.github.com> Date: Wed, 5 Jun 2024 01:17:28 +0200 Subject: [PATCH 5/9] feat(content): more conditional names for sandwiches and smaller porton sizes (#4736) * Update sandwich.json feat(content): more conditional names for sandwiches and smaller portion sizes. Update sandwich.json Update sandwich.json Update sandwich.json Update sandwich.json * Update sandwich.json * don't fail on me tests... * Update sandwich.json --- data/json/items/comestibles/sandwich.json | 166 ++++++++++++++++++---- tests/behavior_test.cpp | 2 +- 2 files changed, 139 insertions(+), 29 deletions(-) diff --git a/data/json/items/comestibles/sandwich.json b/data/json/items/comestibles/sandwich.json index 17a43853a77c..fa8be51856ea 100644 --- a/data/json/items/comestibles/sandwich.json +++ b/data/json/items/comestibles/sandwich.json @@ -8,11 +8,24 @@ "type": "COMPONENT_ID", "condition": "mutant", "name": { "str": "\"deluxe\" sandwich", "str_pl": "\"deluxe\" sandwiches" } - } + }, + { + "type": "FLAG", + "condition": "CANNIBALISM", + "name": { "str": "slob deluxe sandwich", "str_pl": "slob deluxe sandwiches" } + }, + { "type": "COMPONENT_ID", "condition": "ketchup", "name": "%s with ketchup" }, + { "type": "COMPONENT_ID", "condition": "mayonnaise", "name": "%s with mayonnaise" }, + { "type": "COMPONENT_ID", "condition": "mustard", "name": "%s with mustard" }, + { "type": "COMPONENT_ID", "condition": "horseradish", "name": "%s with horseradish" }, + { "type": "COMPONENT_ID", "condition": "butter", "name": "%s with butter" }, + { "type": "COMPONENT_ID", "condition": "sauerkraut", "name": "%s with sauerkraut" }, + { "type": "COMPONENT_ID", "condition": "soysauce", "name": "%s with soy sauce" }, + { "type": "COMPONENT_ID", "condition": "seasoning_salt", "name": "%s with seasoned salt" } ], "weight": "300 g", "healthy": 1, - "calories": 700, + "calories": 300, "color": "brown", "spoils_in": "1 day 12 hours", "container": "wrapper", @@ -25,14 +38,15 @@ "volume": "500 ml", "material": [ "flesh", "veggy", "wheat", "milk" ], "fun": 12, - "vitamins": [ [ "vitA", 8 ], [ "vitC", 26 ], [ "calcium", 8 ], [ "iron", 49 ], [ "vitB", 389 ] ] + "vitamins": [ [ "vitA", 8 ], [ "vitC", 26 ], [ "calcium", 8 ], [ "iron", 49 ], [ "vitB", 389 ] ], + "charges": 4 }, { "type": "COMESTIBLE", "id": "sandwich_cheese_grilled", "copy-from": "sandwich_deluxe", "name": { "str": "grilled cheese sandwich", "str_pl": "grilled cheese sandwiches" }, - "calories": 366, + "calories": 160, "description": "A delicious grilled cheese sandwich, because everything is better with melted cheese.", "price": "550 cent", "price_postapoc": "2 USD", @@ -46,7 +60,7 @@ "id": "sandwich_cheese", "copy-from": "sandwich_deluxe", "name": { "str": "cheese sandwich", "str_pl": "cheese sandwiches" }, - "calories": 366, + "calories": 160, "description": "A simple cheese sandwich.", "price": "5 USD", "price_postapoc": "2 USD", @@ -59,7 +73,35 @@ "id": "sandwich_jam", "copy-from": "sandwich_deluxe", "name": { "str": "jam sandwich", "str_pl": "jam sandwiches" }, - "calories": 262, + "conditional_names": [ + { "type": "COMPONENT_ID", "condition": "apple", "name": "apple %s" }, + { "type": "COMPONENT_ID", "condition": "apricot", "name": "apricot %s" }, + { "type": "COMPONENT_ID", "condition": "banana", "name": "banana %s" }, + { "type": "COMPONENT_ID", "condition": "blackberries", "name": "blackberry %s" }, + { "type": "COMPONENT_ID", "condition": "blueberries", "name": "blueberry %s" }, + { "type": "COMPONENT_ID", "condition": "cherries", "name": "cherry %s" }, + { "type": "COMPONENT_ID", "condition": "cranberries", "name": "cranberry %s" }, + { "type": "COMPONENT_ID", "condition": "grapefruit", "name": "grapefruit %s" }, + { "type": "COMPONENT_ID", "condition": "grapes", "name": "grape %s" }, + { "type": "COMPONENT_ID", "condition": "kiwi", "name": "kiwi %s" }, + { "type": "COMPONENT_ID", "condition": "mango", "name": "mango %s" }, + { "type": "COMPONENT_ID", "condition": "melon", "name": "melon %s" }, + { "type": "COMPONENT_ID", "condition": "orange", "name": "orange %s" }, + { "type": "COMPONENT_ID", "condition": "papaya", "name": "papaya %s" }, + { "type": "COMPONENT_ID", "condition": "peach", "name": "peach %s" }, + { "type": "COMPONENT_ID", "condition": "pear", "name": "pear %s" }, + { "type": "COMPONENT_ID", "condition": "pineapple", "name": "pineapple %s" }, + { "type": "COMPONENT_ID", "condition": "plums", "name": "plum %s" }, + { "type": "COMPONENT_ID", "condition": "pomegranate", "name": "pomegranate %s" }, + { "type": "COMPONENT_ID", "condition": "raspberries", "name": "raspberry %s" }, + { "type": "COMPONENT_ID", "condition": "rose_hips", "name": "rose_hip %s" }, + { "type": "COMPONENT_ID", "condition": "strawberries", "name": "strawberry %s" }, + { "type": "COMPONENT_ID", "condition": "huckleberries", "name": "huckleberry %s" }, + { "type": "COMPONENT_ID", "condition": "mulberries", "name": "mulberry %s" }, + { "type": "COMPONENT_ID", "condition": "elderberries", "name": "elderberry %s" }, + { "type": "COMPONENT_ID", "condition": "watermelon", "name": "watermelon %s" } + ], + "calories": 150, "description": "A delicious jam sandwich.", "price": "2 USD", "price_postapoc": "2 USD", @@ -72,7 +114,7 @@ "id": "sandwich_fairy", "copy-from": "sandwich_deluxe", "name": { "str_sp": "fairy bread" }, - "calories": 640, + "calories": 200, "description": "An 'open-faced sandwich' consisting of sliced white bread, a healthy crust-to-crust slathering of butter, and sprinkles. Supposedly a staple of birthday parties in Australia.", "price": "85 cent", "price_postapoc": "3 USD", @@ -84,7 +126,7 @@ "id": "sandwich_honey", "copy-from": "sandwich_deluxe", "name": { "str": "honey sandwich", "str_pl": "honey sandwiches" }, - "calories": 535, + "calories": 200, "description": "A delicious honey sandwich.", "price": "5 USD", "price_postapoc": "3 USD", @@ -97,7 +139,55 @@ "id": "sandwich_sauce", "copy-from": "sandwich_deluxe", "name": { "str": "sauce sandwich", "str_pl": "sauce sandwiches" }, + "conditional_names": [ + { + "type": "COMPONENT_ID", + "condition": "ketchup", + "name": { "str": "ketchup sandwich", "str_pl": "ketchup sandwiches" } + }, + { + "type": "COMPONENT_ID", + "condition": "mayonnaise", + "name": { "str": "mayonnaise sandwich", "str_pl": "mayonnaise sandwiches" } + }, + { + "type": "COMPONENT_ID", + "condition": "mustard", + "name": { "str": "mustard sandwich", "str_pl": "mustard sandwiches" } + }, + { + "type": "COMPONENT_ID", + "condition": "horseradish", + "name": { "str": "horseradish sandwich", "str_pl": "horseradish sandwiches" } + }, + { + "type": "COMPONENT_ID", + "condition": "butter", + "name": { "str": "butter sandwich", "str_pl": "butter sandwiches" } + }, + { + "type": "COMPONENT_ID", + "condition": "sauerkraut", + "name": { "str": "sauerkraut sandwich", "str_pl": "sauerkraut sandwiches" } + }, + { + "type": "COMPONENT_ID", + "condition": "soysauce", + "name": { "str": "soy sauce sandwich", "str_pl": "soy sauce sandwiches" } + }, + { + "type": "COMPONENT_ID", + "condition": "sauce_pesto", + "name": { "str": "pesto sandwich", "str_pl": "pesto sandwiches" } + }, + { + "type": "COMPONENT_ID", + "condition": "sauce_red", + "name": { "str": "red sauce sandwich", "str_pl": "red sauce sandwiches" } + } + ], "description": "A simple sauce sandwich. Not very filling but beats eating just the bread.", + "calories": 120, "material": [ "veggy", "wheat" ], "price": "2 USD", "price_postapoc": "2 USD", @@ -108,7 +198,7 @@ "id": "sandwich_veggy", "copy-from": "sandwich_deluxe", "name": { "str": "vegetable sandwich", "str_pl": "vegetable sandwiches" }, - "calories": 502, + "calories": 180, "description": "Bread and vegetables, that's it.", "price": "8 USD", "price_postapoc": "250 cent", @@ -126,7 +216,7 @@ { "type": "FLAG", "condition": "CANNIBALISM", "name": { "str": "slob sandwich", "str_pl": "slob sandwiches" } }, { "type": "COMPONENT_ID", "condition": "mutant", "name": { "str_sp": "mutant %s" } } ], - "calories": 433, + "calories": 200, "description": "Bread and meat, that's it.", "price": "9 USD", "price_postapoc": "250 cent", @@ -137,25 +227,29 @@ { "type": "COMESTIBLE", "id": "sandwich_pb", - "copy-from": "sandwich_deluxe", "name": { "str": "peanut butter sandwich", "str_pl": "peanut butter sandwiches" }, - "calories": 658, + "weight": "300 g", + "calories": 200, + "color": "brown", + "spoils_in": "1 day 12 hours", + "container": "wrapper", + "comestible_type": "FOOD", + "symbol": "%", "description": "Some peanut butter smothered between two pieces of bread. Not very filling and will stick to the roof of your mouth like glue.", - "price": "250 cent", - "price_postapoc": "3 USD", + "price": "175 cent", + "price_postapoc": "175 cent", "material": "wheat", + "volume": "500 ml", "fun": 3, - "vitamins": [ [ "calcium", 10 ], [ "iron", 28 ] ] + "vitamins": [ [ "calcium", 10 ], [ "iron", 28 ] ], + "charges": 4 }, { "type": "COMESTIBLE", "id": "sandwich_pbj", - "copy-from": "sandwich_deluxe", + "copy-from": "sandwich_pb", "name": { "str": "PB&J sandwich", "str_pl": "PB&J sandwiches" }, - "calories": 378, "description": "A delicious peanut butter and jelly sandwich. It reminds you of the times your mother would make you lunch.", - "price": "175 cent", - "price_postapoc": "175 cent", "material": [ "fruit", "wheat" ], "fun": 6, "vitamins": [ [ "vitC", 3 ], [ "calcium", 7 ], [ "iron", 14 ] ] @@ -163,12 +257,10 @@ { "type": "COMESTIBLE", "id": "sandwich_pbh", - "copy-from": "sandwich_deluxe", + "copy-from": "sandwich_pb", "name": { "str": "PB&H sandwich", "str_pl": "PB&H sandwiches" }, - "calories": 365, + "calories": 150, "description": "Some damned fool put honey on this peanut butter sandwich, who in their right mind- oh wait this is pretty good.", - "price": "175 cent", - "price_postapoc": "175 cent", "material": [ "wheat", "honey" ], "fun": 6, "vitamins": [ [ "calcium", 8 ], [ "iron", 16 ] ] @@ -176,12 +268,10 @@ { "type": "COMESTIBLE", "id": "sandwich_pbm", - "copy-from": "sandwich_deluxe", + "copy-from": "sandwich_pb", "name": { "str": "PB&M sandwich", "str_pl": "PB&M sandwiches" }, - "calories": 712, + "calories": 170, "description": "Who knew you could mix maple syrup and peanut butter to create yet another different sandwich?", - "price": "175 cent", - "price_postapoc": "175 cent", "material": "wheat", "fun": 6, "vitamins": [ [ "calcium", 12 ], [ "iron", 28 ] ] @@ -191,7 +281,7 @@ "id": "fish_sandwich", "copy-from": "sandwich_deluxe", "name": { "str": "fish sandwich", "str_pl": "fish sandwiches" }, - "calories": 481, + "calories": 200, "description": "A delicious fish sandwich.", "price": "8 USD", "price_postapoc": "250 cent", @@ -217,6 +307,26 @@ "name": { "str": "dairy-free deluxe sandwich", "str_pl": "dairy-free deluxe sandwiches" }, "copy-from": "sandwich_deluxe", "looks_like": "sandwich_deluxe", + "conditional_names": [ + { + "type": "COMPONENT_ID", + "condition": "mutant", + "name": { "str": "dairy-free \"deluxe\" sandwich", "str_pl": "dairy-free \"deluxe\" sandwiches" } + }, + { + "type": "FLAG", + "condition": "CANNIBALISM", + "name": { "str": "dairy-free slob deluxe sandwich", "str_pl": "dairy-free slob deluxe sandwiches" } + }, + { "type": "COMPONENT_ID", "condition": "ketchup", "name": "%s with ketchup" }, + { "type": "COMPONENT_ID", "condition": "mayonnaise", "name": "%s with mayonnaise" }, + { "type": "COMPONENT_ID", "condition": "mustard", "name": "%s with mustard" }, + { "type": "COMPONENT_ID", "condition": "horseradish", "name": "%s with horseradish" }, + { "type": "COMPONENT_ID", "condition": "butter", "name": "%s with butter" }, + { "type": "COMPONENT_ID", "condition": "sauerkraut", "name": "%s with sauerkraut" }, + { "type": "COMPONENT_ID", "condition": "soysauce", "name": "%s with soy sauce" }, + { "type": "COMPONENT_ID", "condition": "seasoning_salt", "name": "%s with seasoned salt" } + ], "description": "A deluxe sandwich with meat, veggies, and sauce, but no cheese.", "price": "2 USD", "price_postapoc": "2 USD", diff --git a/tests/behavior_test.cpp b/tests/behavior_test.cpp index 87b15a38cffe..63255412ff4d 100644 --- a/tests/behavior_test.cpp +++ b/tests/behavior_test.cpp @@ -173,7 +173,7 @@ TEST_CASE( "check_npc_behavior_tree", "[npc][behavior]" ) test_npc.set_thirst( 100 ); CHECK( oracle.needs_food_badly() == behavior::status_t::running ); REQUIRE( npc_needs.tick( &oracle ) == "idle" ); - detached_ptr det = item::spawn( itype_id( "sandwich_cheese_grilled" ) ); + detached_ptr det = item::spawn( itype_id( "pelmeni" ) ); item &food = *det; test_npc.i_add( std::move( det ) ); REQUIRE( oracle.has_food() == behavior::status_t::running ); From f4b8a400afb511f2a0fc3cce002ace945d53e4a6 Mon Sep 17 00:00:00 2001 From: Chaosvolt Date: Tue, 4 Jun 2024 18:17:54 -0500 Subject: [PATCH 6/9] feat(balance): add ranged bash info to more terrain and furniture (#4734) --- .../furniture_and_terrain/furniture-migo.json | 7 +- .../terrain-fences-gates.json | 59 ++++-- .../furniture_and_terrain/terrain-flora.json | 170 ++++++++++++------ .../furniture_and_terrain/terrain-fungal.json | 36 +++- .../furniture_and_terrain/terrain-migo.json | 11 +- .../terrain-triffid.json | 15 +- 6 files changed, 208 insertions(+), 90 deletions(-) diff --git a/data/json/furniture_and_terrain/furniture-migo.json b/data/json/furniture_and_terrain/furniture-migo.json index f526b55d666b..f000490a00af 100644 --- a/data/json/furniture_and_terrain/furniture-migo.json +++ b/data/json/furniture_and_terrain/furniture-migo.json @@ -219,8 +219,8 @@ "symbol": "i", "color": "magenta", "looks_like": "t_machinery_light", - "move_cost_mod": 4, - "coverage": 10, + "move_cost_mod": -1, + "coverage": 75, "light_emitted": 15, "required_str": -1, "emissions": [ "emit_shock_burst" ], @@ -233,7 +233,8 @@ "sound_fail": "whump!", "furn_set": "f_alien_scar", "items": [ { "item": "fetid_goop", "count": [ 3, 5 ], "prob": 100 } ], - "ranged": { "reduction": [ 4, 8 ], "destroy_threshold": 40, "block_unaimed_chance": "25%" } + "//": "destroy_threshold equal to str_min instead of str_max due to delicate wetware, and a pissed-off alien bug installed inside", + "ranged": { "reduction": [ 4, 8 ], "destroy_threshold": 8, "block_unaimed_chance": "75%" } } } ] diff --git a/data/json/furniture_and_terrain/terrain-fences-gates.json b/data/json/furniture_and_terrain/terrain-fences-gates.json index 0544a77856aa..44fb64681ad6 100644 --- a/data/json/furniture_and_terrain/terrain-fences-gates.json +++ b/data/json/furniture_and_terrain/terrain-fences-gates.json @@ -15,7 +15,8 @@ "sound": "crunch!", "sound_fail": "whump!", "ter_set": "t_null", - "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] + "items": [ { "item": "splinter", "count": [ 10, 20 ] } ], + "ranged": { "reduction": [ 12, 24 ], "destroy_threshold": 150 } } }, { @@ -166,7 +167,7 @@ "symbol": "+", "color": "brown", "move_cost": 3, - "coverage": 60, + "coverage": 35, "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "DOOR", "MOUNTABLE", "BURROWABLE" ], "connects_to": "WOODFENCE", "open": "t_fencegate_o", @@ -192,7 +193,8 @@ { "item": "nail", "charges": [ 2, 8 ] }, { "item": "splinter", "count": [ 1, 2 ] }, { "item": "hinge", "count": [ 1, 2 ] } - ] + ], + "ranged": { "reduction": [ 2, 4 ], "destroy_threshold": 20, "block_unaimed_chance": "25%" } } }, { @@ -370,6 +372,7 @@ "symbol": "LINE_OXOX", "color": "brown", "move_cost": 3, + "coverage": 25, "flags": [ "TRANSPARENT", "DIGGABLE", @@ -390,7 +393,8 @@ "sound": "crack.", "sound_fail": "wham.", "ter_set": "t_null", - "items": [ { "item": "2x4", "count": [ 1, 3 ] }, { "item": "nail", "charges": [ 2, 6 ] }, { "item": "splinter", "count": 1 } ] + "items": [ { "item": "2x4", "count": [ 1, 3 ] }, { "item": "nail", "charges": [ 2, 6 ] }, { "item": "splinter", "count": 1 } ], + "ranged": { "reduction": [ 2, 4 ], "destroy_threshold": 20, "block_unaimed_chance": "25%" } } }, { @@ -632,6 +636,7 @@ "color": "brown", "looks_like": "t_fence", "move_cost": 0, + "coverage": 60, "examine_action": "chainfence", "flags": [ "TRANSPARENT", @@ -651,7 +656,8 @@ "sound": "whump!", "sound_fail": "whack!", "ter_set": "t_fence_post", - "items": [ { "item": "2x4", "count": [ 1, 2 ] } ] + "items": [ { "item": "2x4", "count": [ 1, 2 ] } ], + "ranged": { "reduction": [ 3, 5 ], "destroy_threshold": 12, "block_unaimed_chance": "50%" } } }, { @@ -689,7 +695,8 @@ { "item": "nail", "charges": [ 2, 8 ] }, { "item": "splinter", "count": [ 1, 2 ] }, { "item": "hinge", "count": [ 1, 2 ] } - ] + ], + "ranged": { "reduction": [ 2, 4 ], "destroy_threshold": 20, "block_unaimed_chance": "50%" } } }, { @@ -746,7 +753,8 @@ { "item": "pipe", "count": [ 4, 8 ] }, { "item": "sheet_metal_small", "count": [ 8, 20 ] }, { "item": "sheet_metal", "count": [ 0, 2 ] } - ] + ], + "ranged": { "reduction": [ 5, 10 ], "destroy_threshold": 18, "block_unaimed_chance": "50%" } } }, { @@ -785,7 +793,8 @@ { "item": "sheet_metal_small", "count": [ 8, 20 ] }, { "item": "sheet_metal", "count": [ 0, 2 ] }, { "item": "hinge", "count": [ 1, 2 ] } - ] + ], + "ranged": { "reduction": [ 5, 10 ], "destroy_threshold": 20, "block_unaimed_chance": "50%" } } }, { @@ -847,7 +856,8 @@ "sound": "whump!", "sound_fail": "whack!", "ter_set": "t_fence_post", - "items": [ { "item": "2x4", "count": [ 4, 10 ] } ] + "items": [ { "item": "2x4", "count": [ 4, 10 ] } ], + "ranged": { "reduction": [ 3, 5 ], "destroy_threshold": 12 } } }, { @@ -885,7 +895,8 @@ { "item": "nail", "charges": [ 10, 20 ] }, { "item": "splinter", "count": [ 4, 6 ] }, { "item": "hinge", "count": [ 1, 2 ] } - ] + ], + "ranged": { "reduction": [ 2, 4 ], "destroy_threshold": 20 } } }, { @@ -919,6 +930,7 @@ "symbol": "LINE_OXOX", "color": "yellow", "move_cost": 3, + "coverage": 25, "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "SHORT", "AUTO_WALL_SYMBOL", "BURROWABLE" ], "connects_to": "RAILING", "bash": { @@ -932,7 +944,8 @@ { "item": "nail", "charges": [ 2, 6 ] }, { "item": "scrap", "count": [ 1, 3 ] }, { "item": "splinter", "count": [ 1, 3 ] } - ] + ], + "ranged": { "reduction": [ 10, 20 ], "destroy_threshold": 12, "block_unaimed_chance": "25%" } } }, { @@ -957,7 +970,9 @@ { "item": "glass_shard", "count": [ 5, 15 ] }, { "item": "pipe", "charges": [ 1, 2 ] }, { "item": "scrap", "count": [ 1, 3 ] } - ] + ], + "//": "reduction and destroy_threshold are lower for plain glass", + "ranged": { "reduction": [ 1, 10 ], "destroy_threshold": 10, "block_unaimed_chance": "25%" } } }, { @@ -969,6 +984,7 @@ "symbol": "LINE_OXOX", "color": "dark_gray", "move_cost": 3, + "coverage": 25, "flags": [ "TRANSPARENT", "NOITEM", "THIN_OBSTACLE", "MOUNTABLE", "SHORT", "AUTO_WALL_SYMBOL", "BURROWABLE" ], "connects_to": "RAILING", "deconstruct": { "ter_set": "t_rock_floor", "items": [ { "item": "sheet_metal", "count": 2 }, { "item": "pipe", "count": 4 } ] }, @@ -983,7 +999,8 @@ { "item": "sheet_metal", "charges": 1 }, { "item": "sheet_metal_small", "charges": [ 1, 4 ] }, { "item": "scrap", "count": [ 1, 3 ] } - ] + ], + "ranged": { "reduction": [ 10, 20 ], "destroy_threshold": 80, "block_unaimed_chance": "25%" } } }, { @@ -1008,7 +1025,9 @@ { "item": "rock", "count": [ 5, 10 ] }, { "item": "scrap", "count": [ 5, 8 ] }, { "item": "rebar", "count": [ 0, 2 ] } - ] + ], + "//": "Stone obstacles have double the expected reduction but lower destroy_threshold in return", + "ranged": { "reduction": [ 100, 200 ], "destroy_threshold": 200, "block_unaimed_chance": "25%" } } }, { @@ -1020,6 +1039,7 @@ "color": "light_gray", "looks_like": "t_guardrail_bg_dp", "move_cost": 3, + "coverage": 25, "flags": [ "TRANSPARENT", "NOITEM", "REDUCE_SCENT", "MOUNTABLE", "SHORT", "THIN_OBSTACLE", "ROAD", "BURROWABLE" ], "bash": { "str_min": 8, @@ -1027,7 +1047,8 @@ "sound": "crunch!", "sound_fail": "clang!", "ter_set": "t_pavement_hw_air", - "items": [ { "item": "pipe", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] + "items": [ { "item": "pipe", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 3, 6 ] } ], + "ranged": { "reduction": [ 4, 8 ], "destroy_threshold": 150, "block_unaimed_chance": "25%" } } }, { @@ -1038,6 +1059,7 @@ "symbol": "#", "color": "light_gray", "move_cost": 3, + "coverage": 25, "flags": [ "TRANSPARENT", "NOITEM", "REDUCE_SCENT", "MOUNTABLE", "SHORT", "THIN_OBSTACLE", "ROAD", "BURROWABLE" ], "bash": { "str_min": 8, @@ -1045,7 +1067,8 @@ "sound": "crunch!", "sound_fail": "clang!", "ter_set": "t_pavement_bg_dp", - "items": [ { "item": "pipe", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] + "items": [ { "item": "pipe", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 3, 6 ] } ], + "ranged": { "reduction": [ 4, 8 ], "destroy_threshold": 150, "block_unaimed_chance": "25%" } } }, { @@ -1056,6 +1079,7 @@ "symbol": "#", "color": "light_gray", "move_cost": 3, + "coverage": 25, "flags": [ "TRANSPARENT", "NOITEM", "REDUCE_SCENT", "MOUNTABLE", "SHORT", "THIN_OBSTACLE", "ROAD", "BURROWABLE" ], "looks_like": "t_guardrail_bg_dp", "bash": { @@ -1064,7 +1088,8 @@ "sound": "crunch!", "sound_fail": "clang!", "ter_set": "t_pavement", - "items": [ { "item": "pipe", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 3, 6 ] } ] + "items": [ { "item": "pipe", "count": [ 1, 2 ] }, { "item": "scrap", "count": [ 3, 6 ] } ], + "ranged": { "reduction": [ 4, 8 ], "destroy_threshold": 150, "block_unaimed_chance": "25%" } } } ] diff --git a/data/json/furniture_and_terrain/terrain-flora.json b/data/json/furniture_and_terrain/terrain-flora.json index 729d429a9af3..8e6fba378d98 100644 --- a/data/json/furniture_and_terrain/terrain-flora.json +++ b/data/json/furniture_and_terrain/terrain-flora.json @@ -19,7 +19,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -41,7 +42,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -66,7 +68,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -87,7 +90,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -110,7 +114,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -132,7 +137,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -155,7 +161,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -177,7 +184,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -200,7 +208,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -222,7 +231,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -245,7 +255,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -267,7 +278,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -288,7 +300,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -308,7 +321,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -328,7 +342,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 35, 70 ], "destroy_threshold": 140 } } }, { @@ -372,7 +387,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -395,7 +411,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -419,7 +436,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -442,7 +460,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -474,7 +493,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -497,7 +517,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -521,7 +542,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -544,7 +566,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -568,7 +591,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -591,7 +615,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -615,7 +640,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -638,7 +664,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -662,7 +689,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -685,7 +713,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -709,7 +738,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -732,7 +762,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -764,7 +795,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -787,7 +819,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -819,7 +852,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -842,7 +876,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -870,7 +905,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -903,7 +939,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 30, 60 ], "destroy_threshold": 120 } } }, { @@ -929,7 +966,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -949,7 +987,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -975,7 +1014,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -995,7 +1035,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -1016,7 +1057,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -1037,7 +1079,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -1063,7 +1106,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -1086,7 +1130,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -1110,7 +1155,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -1132,7 +1178,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -1156,7 +1203,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -1178,7 +1226,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -1202,7 +1251,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -1224,7 +1274,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -1245,7 +1296,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -1922,7 +1974,7 @@ "symbol": "1", "color": "brown", "move_cost": 4, - "coverage": 45, + "coverage": 50, "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "DIGGABLE", "REDUCE_SCENT", "MOUNTABLE", "SHORT" ], "bash": { "str_min": 80, @@ -1930,7 +1982,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "splinter", "count": [ 5, 15 ] } ] + "items": [ { "item": "splinter", "count": [ 5, 15 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180, "block_unaimed_chance": "50%" } } }, { @@ -1950,7 +2003,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "splinter", "count": [ 5, 15 ] } ] + "items": [ { "item": "splinter", "count": [ 5, 15 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180, "block_unaimed_chance": "25%" } } }, { @@ -2126,7 +2180,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { @@ -2148,7 +2203,8 @@ "sound": "crunch!", "sound_fail": "whack!", "ter_set": "t_dirt", - "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ] + "items": [ { "item": "stick_long", "count": [ 3, 10 ] }, { "item": "splinter", "count": [ 10, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 180 } } }, { diff --git a/data/json/furniture_and_terrain/terrain-fungal.json b/data/json/furniture_and_terrain/terrain-fungal.json index 091517cbbb23..96ee416eb3e8 100644 --- a/data/json/furniture_and_terrain/terrain-fungal.json +++ b/data/json/furniture_and_terrain/terrain-fungal.json @@ -77,7 +77,14 @@ "move_cost": 0, "coverage": 100, "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "FUNGUS", "WALL", "REDUCE_SCENT", "MINEABLE" ], - "bash": { "str_min": 30, "str_max": 180, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_fungus" } + "bash": { + "str_min": 30, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "poof!", + "ter_set": "t_fungus", + "ranged": { "reduction": [ 15, 30 ], "destroy_threshold": 180 } + } }, { "type": "terrain", @@ -89,7 +96,14 @@ "move_cost": 0, "coverage": 100, "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "FUNGUS", "WALL", "NO_SCENT", "AUTO_WALL_SYMBOL", "MINEABLE" ], - "bash": { "str_min": 30, "str_max": 180, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_fungus" } + "bash": { + "str_min": 30, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "poof!", + "ter_set": "t_fungus", + "ranged": { "reduction": [ 15, 30 ], "destroy_threshold": 180 } + } }, { "type": "terrain", @@ -124,7 +138,14 @@ "move_cost": 0, "coverage": 80, "flags": [ "FLAMMABLE_ASH", "NOITEM", "FUNGUS", "TREE", "REDUCE_SCENT" ], - "bash": { "str_min": 40, "str_max": 180, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_fungus" } + "bash": { + "str_min": 40, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "poof!", + "ter_set": "t_fungus", + "ranged": { "reduction": [ 20, 40 ], "destroy_threshold": 180 } + } }, { "type": "terrain", @@ -148,6 +169,13 @@ "coverage": 80, "flags": [ "FLAMMABLE_ASH", "NOITEM", "FUNGUS", "TREE", "REDUCE_SCENT" ], "examine_action": "tree_marloss", - "bash": { "str_min": 40, "str_max": 180, "sound": "crunch!", "sound_fail": "poof!", "ter_set": "t_fungus" } + "bash": { + "str_min": 40, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "poof!", + "ter_set": "t_fungus", + "ranged": { "reduction": [ 20, 40 ], "destroy_threshold": 180 } + } } ] diff --git a/data/json/furniture_and_terrain/terrain-migo.json b/data/json/furniture_and_terrain/terrain-migo.json index 8f75c2bef72d..65832e8d9570 100644 --- a/data/json/furniture_and_terrain/terrain-migo.json +++ b/data/json/furniture_and_terrain/terrain-migo.json @@ -16,7 +16,8 @@ "sound": "boom!", "sound_fail": "whack!", "ter_set": "t_resin_hole", - "items": [ { "item": "resin_chunk", "count": [ 10, 40 ] } ] + "items": [ { "item": "resin_chunk", "count": [ 10, 40 ] } ], + "ranged": { "reduction": [ 125, 250 ], "destroy_threshold": 700 } } }, { @@ -27,7 +28,7 @@ "symbol": "#", "color": "dark_gray", "move_cost": 0, - "coverage": 100, + "coverage": 60, "roof": "t_resin_roof", "flags": [ "NOITEM", "WALL", "PERMEABLE", "TRANSPARENT", "INDOORS", "NONFLAMMABLE", "MINEABLE" ], "bash": { @@ -36,7 +37,8 @@ "sound": "boom!", "sound_fail": "whack!", "ter_set": "t_floor_resin", - "items": [ { "item": "resin_chunk", "count": [ 2, 5 ] } ] + "items": [ { "item": "resin_chunk", "count": [ 2, 5 ] } ], + "ranged": { "reduction": [ 35, 70 ], "destroy_threshold": 300, "block_unaimed_chance": "50%" } } }, { @@ -108,7 +110,8 @@ "sound": "boom!", "sound_fail": "whack!", "ter_set": "t_resin_hole", - "items": [ { "item": "resin_chunk", "count": [ 2, 5 ] } ] + "items": [ { "item": "resin_chunk", "count": [ 2, 5 ] } ], + "ranged": { "reduction": [ 45, 90 ], "destroy_threshold": 120 } } }, { diff --git a/data/json/furniture_and_terrain/terrain-triffid.json b/data/json/furniture_and_terrain/terrain-triffid.json index e7085bd8e150..8e0df02e4df3 100644 --- a/data/json/furniture_and_terrain/terrain-triffid.json +++ b/data/json/furniture_and_terrain/terrain-triffid.json @@ -16,7 +16,8 @@ "sound": "crunch!", "sound_fail": "whump!", "ter_set": "t_bark_wall_chipped", - "items": [ { "item": "splinter", "count": [ 5, 10 ] } ] + "items": [ { "item": "splinter", "count": [ 5, 10 ] } ], + "ranged": { "reduction": [ 30, 60 ], "destroy_threshold": 180 } } }, { @@ -36,7 +37,8 @@ "sound": "crunch!", "sound_fail": "whump!", "ter_set": "t_bark_wall_broken", - "items": [ { "item": "splinter", "count": [ 5, 10 ] } ] + "items": [ { "item": "splinter", "count": [ 5, 10 ] } ], + "ranged": { "reduction": [ 20, 40 ], "destroy_threshold": 160 } } }, { @@ -54,7 +56,8 @@ "sound": "crash!", "sound_fail": "whump!", "ter_set": "t_barkfloor", - "items": [ { "item": "splinter", "count": [ 10, 20 ] } ] + "items": [ { "item": "splinter", "count": [ 10, 20 ] } ], + "ranged": { "reduction": [ 4, 8 ], "destroy_threshold": 150, "block_unaimed_chance": "50%" } } }, { @@ -74,7 +77,8 @@ "sound": "crunch!", "sound_fail": "whump!", "ter_set": "t_barkfloor", - "items": [ { "item": "splinter", "count": [ 20, 25 ] } ] + "items": [ { "item": "splinter", "count": [ 20, 25 ] } ], + "ranged": { "reduction": [ 40, 80 ], "destroy_threshold": 160 } } }, { @@ -165,7 +169,8 @@ "sound": "crunch!", "sound_fail": "whump!", "ter_set": "t_null", - "items": [ { "item": "splinter", "count": [ 2, 5 ] } ] + "items": [ { "item": "splinter", "count": [ 2, 5 ] } ], + "ranged": { "reduction": [ 6, 12 ], "destroy_threshold": 150 } } }, { From eccf5db7c19837094fa61b86666bc32208a6b295 Mon Sep 17 00:00:00 2001 From: Chaosvolt Date: Tue, 4 Jun 2024 18:18:09 -0500 Subject: [PATCH 7/9] feat(balance): don't give mi-gos spawned by nerve clusters free turns (#4735) --- src/map_functions.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/map_functions.cpp b/src/map_functions.cpp index b4334e216363..6d72d93db7b5 100644 --- a/src/map_functions.cpp +++ b/src/map_functions.cpp @@ -47,6 +47,8 @@ void migo_nerve_cage_removal( map &m, const tripoint &p, bool spawn_damaged ) if( spawn_damaged ) { spawn->set_hp( spawn->get_hp_max() / 2 ); } + // Don't give the mi-go free shots against the player + spawn->mod_moves( -300 ); if( get_player_character().sees( p ) ) { add_msg( m_bad, _( "Something stirs and clambers out of the ruined mass of flesh and nerves!" ) ); } From 1300f282c9d37d052b4775f48fbfc5510a6bd67c Mon Sep 17 00:00:00 2001 From: Dracque <167656683+Dracque@users.noreply.github.com> Date: Wed, 5 Jun 2024 01:19:05 +0200 Subject: [PATCH 8/9] feat(content): recycle ceramic shards by turning it into lumps of clay (#4715) * add clay_pallet_full to materials.json * Update clay_pallet_full in materials.json * add clay pallets to workshop.json * disassemble clay_pallet_done * style(autofix.ci): automated formatting * Update item description in workshop.json * Description adjustment --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Chaosvolt --- data/json/items/tool/workshop.json | 43 ++++++++++++++++++++++++++ data/json/recipes/other/materials.json | 14 +++++++++ data/json/uncraft/generic.json | 8 +++++ 3 files changed, 65 insertions(+) diff --git a/data/json/items/tool/workshop.json b/data/json/items/tool/workshop.json index fe9fa1dcf2bf..501e402bb5a3 100644 --- a/data/json/items/tool/workshop.json +++ b/data/json/items/tool/workshop.json @@ -42,6 +42,49 @@ "use_action": "DISASSEMBLE", "flags": [ "NONCONDUCTIVE", "NO_REPAIR", "NO_SALVAGE" ] }, + { + "id": "clay_pallet_full", + "type": "GENERIC", + "category": "tools", + "name": { "str": "pallet of wet ceramic", "str_pl": "pallets of wet ceramic" }, + "description": "A pallet full of crushed wet ceramic, which needs to dry slowly to be usable.", + "weight": "35000 g", + "volume": "12500 ml", + "price": "1 USD", + "price_postapoc": "0 cent", + "to_hit": -2, + "material": [ "ceramic", "wood" ], + "symbol": "#", + "color": "brown", + "looks_like": "frame_wood_light", + "flags": [ "NONCONDUCTIVE", "ALLOWS_REMOTE_USE" ], + "use_action": { + "target": "clay_pallet_done", + "msg": "You test the ceramic, and it's the right consistency to use.", + "moves": 50, + "type": "delayed_transform", + "transform_age": 43000, + "not_ready_msg": "The ceramic is still too damp to be used." + } + }, + { + "id": "clay_pallet_done", + "type": "GENERIC", + "category": "tools", + "name": { "str": "pallet of ceramic clay", "str_pl": "pallets of ceramic clay" }, + "description": "A pallet of ceramic clay which is now ready to be made into pottery. Disassemble it to retrieve your sheet, frame and crafting supplies.", + "weight": "30000 g", + "volume": "12500 ml", + "price": "400 USD", + "price_postapoc": "250 cent", + "to_hit": -3, + "material": [ "freshclay", "wood" ], + "symbol": "#", + "color": "brown_yellow", + "looks_like": "frame_wood_light", + "use_action": "DISASSEMBLE", + "flags": [ "NONCONDUCTIVE", "NO_REPAIR", "NO_SALVAGE" ] + }, { "id": "acetylene_machine", "type": "GENERIC", diff --git a/data/json/recipes/other/materials.json b/data/json/recipes/other/materials.json index 40f8e60c5814..3f894a77414a 100644 --- a/data/json/recipes/other/materials.json +++ b/data/json/recipes/other/materials.json @@ -892,6 +892,20 @@ "batch_time_factors": [ 50, 5 ], "components": [ [ [ "water", 1 ], [ "water_clean", 1 ] ], [ [ "material_soil", 1 ] ] ] }, + { + "type": "recipe", + "result": "clay_pallet_full", + "category": "CC_OTHER", + "subcategory": "CSC_OTHER_MATERIALS", + "skill_used": "fabrication", + "skills_required": [ "fabrication", 1 ], + "difficulty": 2, + "time": "20 m", + "autolearn": [ [ "fabrication", 3 ] ], + "book_learn": [ [ "manual_fabrication", 1 ], [ "textbook_fabrication", 1 ] ], + "qualities": [ { "id": "HAMMER", "level": 2 } ], + "components": [ [ [ "sheet", 1 ], [ "water", 10 ], [ "ceramic_shard", 10 ] ], [ [ "frame_wood_light", 1 ] ] ] + }, { "type": "recipe", "result": "plant_fibre", diff --git a/data/json/uncraft/generic.json b/data/json/uncraft/generic.json index a37c96188606..76bf10a5fe51 100644 --- a/data/json/uncraft/generic.json +++ b/data/json/uncraft/generic.json @@ -3730,6 +3730,14 @@ "qualities": [ { "id": "HAMMER", "level": 1 } ], "components": [ [ [ "adobe_brick", 20 ] ], [ [ "frame_wood_light", 1 ] ] ] }, + { + "result": "clay_pallet_done", + "type": "uncraft", + "skill_used": "fabrication", + "time": "30 m", + "difficulty": 1, + "components": [ [ [ "clay_lump", 10 ] ], [ [ "sheet", 1 ] ], [ [ "frame_wood_light", 1 ] ] ] + }, { "result": "guitar_electric", "type": "uncraft", From f4aaffd5d90f2d55ec907e5200d9449933d58d27 Mon Sep 17 00:00:00 2001 From: Viss Valdyr <33199510+Lamandus@users.noreply.github.com> Date: Wed, 5 Jun 2024 01:19:31 +0200 Subject: [PATCH 9/9] feat(content): fruit products (jam, juice, cooked) will inherit name from component used (#4737) * not irradiated sadly wine is also not working. Due vat transformation. Pulp is a byproduct, doesn't inherit anything. Comment fix Update drink.json extra names Update recipes.json Update recipes.json Update egg.json fixes and completion * added named pies, canned and waffles * and cookies! * style(autofix.ci): automated formatting * and kompot * and granola * and fruit slice * and milkshake --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- data/json/items/comestibles/drink.json | 62 +++++++- data/json/items/comestibles/egg.json | 10 +- data/json/items/comestibles/frozen.json | 56 +++++++ data/json/items/comestibles/fruit_dishes.json | 142 +++++++++++++++++- data/json/items/comestibles/junkfood.json | 28 ++++ data/json/items/comestibles/wheat.json | 112 ++++++++++++++ data/json/obsoletion/recipes.json | 46 ++++++ data/json/recipes/food/drinks.json | 28 ---- data/json/recipes/food/other.json | 24 +-- data/json/recipes/food/veggi.json | 124 --------------- 10 files changed, 452 insertions(+), 180 deletions(-) diff --git a/data/json/items/comestibles/drink.json b/data/json/items/comestibles/drink.json index 4da3f548ba4b..2c8e788ded7b 100644 --- a/data/json/items/comestibles/drink.json +++ b/data/json/items/comestibles/drink.json @@ -333,6 +333,7 @@ { "type": "COMESTIBLE", "id": "cranberry_juice", + "//": "should not be obsoleted together with its recipe, because generic juice spawns as juice.", "name": "cranberry juice", "weight": "250 g", "color": "magenta", @@ -532,7 +533,35 @@ { "type": "COMESTIBLE", "id": "juice", - "name": "fruit juice", + "name": "juice", + "conditional_names": [ + { "type": "COMPONENT_ID", "condition": "apple", "name": { "str_sp": "apple %s" } }, + { "type": "COMPONENT_ID", "condition": "apricot", "name": { "str_sp": "apricot %s" } }, + { "type": "COMPONENT_ID", "condition": "banana", "name": { "str_sp": "banana %s" } }, + { "type": "COMPONENT_ID", "condition": "blackberries", "name": { "str_sp": "blackberry %s" } }, + { "type": "COMPONENT_ID", "condition": "blueberries", "name": { "str_sp": "blueberry %s" } }, + { "type": "COMPONENT_ID", "condition": "cherries", "name": { "str_sp": "cherry %s" } }, + { "type": "COMPONENT_ID", "condition": "cranberries", "name": { "str_sp": "cranberry %s" } }, + { "type": "COMPONENT_ID", "condition": "grapefruit", "name": { "str_sp": "grapefruit %s" } }, + { "type": "COMPONENT_ID", "condition": "grapes", "name": { "str_sp": "grape %s" } }, + { "type": "COMPONENT_ID", "condition": "kiwi", "name": { "str_sp": "kiwi %s" } }, + { "type": "COMPONENT_ID", "condition": "mango", "name": { "str_sp": "mango %s" } }, + { "type": "COMPONENT_ID", "condition": "melon", "name": { "str_sp": "melon %s" } }, + { "type": "COMPONENT_ID", "condition": "orange", "name": { "str_sp": "orange %s" } }, + { "type": "COMPONENT_ID", "condition": "papaya", "name": { "str_sp": "papaya %s" } }, + { "type": "COMPONENT_ID", "condition": "peach", "name": { "str_sp": "peach %s" } }, + { "type": "COMPONENT_ID", "condition": "pear", "name": { "str_sp": "pear %s" } }, + { "type": "COMPONENT_ID", "condition": "pineapple", "name": { "str_sp": "pineapple %s" } }, + { "type": "COMPONENT_ID", "condition": "plums", "name": { "str_sp": "plum %s" } }, + { "type": "COMPONENT_ID", "condition": "pomegranate", "name": { "str_sp": "pomegranate %s" } }, + { "type": "COMPONENT_ID", "condition": "raspberries", "name": { "str_sp": "raspberry %s" } }, + { "type": "COMPONENT_ID", "condition": "rose_hips", "name": { "str_sp": "rose_hip %s" } }, + { "type": "COMPONENT_ID", "condition": "strawberries", "name": { "str_sp": "strawberry %s" } }, + { "type": "COMPONENT_ID", "condition": "huckleberries", "name": { "str_sp": "huckleberry %s" } }, + { "type": "COMPONENT_ID", "condition": "mulberries", "name": { "str_sp": "mulberry %s" } }, + { "type": "COMPONENT_ID", "condition": "elderberries", "name": { "str_sp": "elderberry %s" } }, + { "type": "COMPONENT_ID", "condition": "watermelon", "name": { "str_sp": "watermelon %s" } } + ], "weight": "125 g", "color": "light_red", "spoils_in": "5 days", @@ -558,6 +587,34 @@ "type": "COMESTIBLE", "id": "kompot", "name": "kompot", + "conditional_names": [ + { "type": "COMPONENT_ID", "condition": "apple", "name": { "str_sp": "apple %s" } }, + { "type": "COMPONENT_ID", "condition": "apricot", "name": { "str_sp": "apricot %s" } }, + { "type": "COMPONENT_ID", "condition": "banana", "name": { "str_sp": "banana %s" } }, + { "type": "COMPONENT_ID", "condition": "blackberries", "name": { "str_sp": "blackberry %s" } }, + { "type": "COMPONENT_ID", "condition": "blueberries", "name": { "str_sp": "blueberry %s" } }, + { "type": "COMPONENT_ID", "condition": "cherries", "name": { "str_sp": "cherry %s" } }, + { "type": "COMPONENT_ID", "condition": "cranberries", "name": { "str_sp": "cranberry %s" } }, + { "type": "COMPONENT_ID", "condition": "grapefruit", "name": { "str_sp": "grapefruit %s" } }, + { "type": "COMPONENT_ID", "condition": "grapes", "name": { "str_sp": "grape %s" } }, + { "type": "COMPONENT_ID", "condition": "kiwi", "name": { "str_sp": "kiwi %s" } }, + { "type": "COMPONENT_ID", "condition": "mango", "name": { "str_sp": "mango %s" } }, + { "type": "COMPONENT_ID", "condition": "melon", "name": { "str_sp": "melon %s" } }, + { "type": "COMPONENT_ID", "condition": "orange", "name": { "str_sp": "orange %s" } }, + { "type": "COMPONENT_ID", "condition": "papaya", "name": { "str_sp": "papaya %s" } }, + { "type": "COMPONENT_ID", "condition": "peach", "name": { "str_sp": "peach %s" } }, + { "type": "COMPONENT_ID", "condition": "pear", "name": { "str_sp": "pear %s" } }, + { "type": "COMPONENT_ID", "condition": "pineapple", "name": { "str_sp": "pineapple %s" } }, + { "type": "COMPONENT_ID", "condition": "plums", "name": { "str_sp": "plum %s" } }, + { "type": "COMPONENT_ID", "condition": "pomegranate", "name": { "str_sp": "pomegranate %s" } }, + { "type": "COMPONENT_ID", "condition": "raspberries", "name": { "str_sp": "raspberry %s" } }, + { "type": "COMPONENT_ID", "condition": "rose_hips", "name": { "str_sp": "rose_hip %s" } }, + { "type": "COMPONENT_ID", "condition": "strawberries", "name": { "str_sp": "strawberry %s" } }, + { "type": "COMPONENT_ID", "condition": "huckleberries", "name": { "str_sp": "huckleberry %s" } }, + { "type": "COMPONENT_ID", "condition": "mulberries", "name": { "str_sp": "mulberry %s" } }, + { "type": "COMPONENT_ID", "condition": "elderberries", "name": { "str_sp": "elderberry %s" } }, + { "type": "COMPONENT_ID", "condition": "watermelon", "name": { "str_sp": "watermelon %s" } } + ], "weight": "250 g", "color": "red", "spoils_in": "7 days 12 hours", @@ -761,6 +818,7 @@ { "type": "COMESTIBLE", "id": "oj", + "//": "should not be obsoleted together with its recipe, because generic juice spawns as juice.", "name": "orange juice", "weight": "263 g", "color": "yellow", @@ -779,7 +837,7 @@ "volume": "250 ml", "phase": "liquid", "flags": [ "EATEN_COLD" ], - "//": "most store-bought oj is fortified with calcium.", + "//2": "most store-bought oj is fortified with calcium.", "vitamins": [ [ "vitA", 2 ], [ "vitC", 146 ], [ "calcium", 28 ], [ "iron", 2 ] ], "fun": 3 }, diff --git a/data/json/items/comestibles/egg.json b/data/json/items/comestibles/egg.json index 86327a31a0c0..cbbb67094a11 100644 --- a/data/json/items/comestibles/egg.json +++ b/data/json/items/comestibles/egg.json @@ -352,11 +352,11 @@ "id": "boiled_egg_condiment", "name": { "str": "boiled egg with condiment" }, "conditional_names": [ - { "type": "COMPONENT_ID", "condition": "ketchup", "name": "boiled egg with ketchup" }, - { "type": "COMPONENT_ID", "condition": "mayonnaise", "name": "boiled egg with mayonnaise" }, - { "type": "COMPONENT_ID", "condition": "mustard", "name": "boiled egg with mustard" }, - { "type": "COMPONENT_ID", "condition": "horseradish", "name": "boiled egg with horseradish" }, - { "type": "COMPONENT_ID", "condition": "salt", "name": "salted boiled egg" } + { "type": "COMPONENT_ID", "condition": "ketchup", "name": { "str": "%s with ketchup" } }, + { "type": "COMPONENT_ID", "condition": "mayonnaise", "name": { "str": "%s with mayonnaise" } }, + { "type": "COMPONENT_ID", "condition": "mustard", "name": { "str": "%s with mustard" } }, + { "type": "COMPONENT_ID", "condition": "horseradish", "name": { "str": "%s with horseradish" } }, + { "type": "COMPONENT_ID", "condition": "salt", "name": { "str": "salted boiled egg" } } ], "copy-from": "boiled_egg", "quench": 0, diff --git a/data/json/items/comestibles/frozen.json b/data/json/items/comestibles/frozen.json index 8d2edfe9a939..dc66c1018a63 100644 --- a/data/json/items/comestibles/frozen.json +++ b/data/json/items/comestibles/frozen.json @@ -3,6 +3,34 @@ "type": "COMESTIBLE", "id": "milkshake", "name": { "str": "milkshake" }, + "conditional_names": [ + { "type": "COMPONENT_ID", "condition": "apple", "name": { "str_sp": "apple %s" } }, + { "type": "COMPONENT_ID", "condition": "apricot", "name": { "str_sp": "apricot %s" } }, + { "type": "COMPONENT_ID", "condition": "banana", "name": { "str_sp": "banana %s" } }, + { "type": "COMPONENT_ID", "condition": "blackberries", "name": { "str_sp": "blackberry %s" } }, + { "type": "COMPONENT_ID", "condition": "blueberries", "name": { "str_sp": "blueberry %s" } }, + { "type": "COMPONENT_ID", "condition": "cherries", "name": { "str_sp": "cherry %s" } }, + { "type": "COMPONENT_ID", "condition": "cranberries", "name": { "str_sp": "cranberry %s" } }, + { "type": "COMPONENT_ID", "condition": "grapefruit", "name": { "str_sp": "grapefruit %s" } }, + { "type": "COMPONENT_ID", "condition": "grapes", "name": { "str_sp": "grape %s" } }, + { "type": "COMPONENT_ID", "condition": "kiwi", "name": { "str_sp": "kiwi %s" } }, + { "type": "COMPONENT_ID", "condition": "mango", "name": { "str_sp": "mango %s" } }, + { "type": "COMPONENT_ID", "condition": "melon", "name": { "str_sp": "melon %s" } }, + { "type": "COMPONENT_ID", "condition": "orange", "name": { "str_sp": "orange %s" } }, + { "type": "COMPONENT_ID", "condition": "papaya", "name": { "str_sp": "papaya %s" } }, + { "type": "COMPONENT_ID", "condition": "peach", "name": { "str_sp": "peach %s" } }, + { "type": "COMPONENT_ID", "condition": "pear", "name": { "str_sp": "pear %s" } }, + { "type": "COMPONENT_ID", "condition": "pineapple", "name": { "str_sp": "pineapple %s" } }, + { "type": "COMPONENT_ID", "condition": "plums", "name": { "str_sp": "plum %s" } }, + { "type": "COMPONENT_ID", "condition": "pomegranate", "name": { "str_sp": "pomegranate %s" } }, + { "type": "COMPONENT_ID", "condition": "raspberries", "name": { "str_sp": "raspberry %s" } }, + { "type": "COMPONENT_ID", "condition": "rose_hips", "name": { "str_sp": "rose_hip %s" } }, + { "type": "COMPONENT_ID", "condition": "strawberries", "name": { "str_sp": "strawberry %s" } }, + { "type": "COMPONENT_ID", "condition": "huckleberries", "name": { "str_sp": "huckleberry %s" } }, + { "type": "COMPONENT_ID", "condition": "mulberries", "name": { "str_sp": "mulberry %s" } }, + { "type": "COMPONENT_ID", "condition": "elderberries", "name": { "str_sp": "elderberry %s" } }, + { "type": "COMPONENT_ID", "condition": "watermelon", "name": { "str_sp": "watermelon %s" } } + ], "//": "they bring the boys to the yard", "description": "An all-natural cold beverage made with milk and sweeteners. Tastes great when frozen.", "weight": "160 g", @@ -42,6 +70,34 @@ "type": "COMESTIBLE", "copy-from": "milkshake", "id": "milkshake_deluxe", + "conditional_names": [ + { "type": "COMPONENT_ID", "condition": "apple", "name": { "str_sp": "apple %s" } }, + { "type": "COMPONENT_ID", "condition": "apricot", "name": { "str_sp": "apricot %s" } }, + { "type": "COMPONENT_ID", "condition": "banana", "name": { "str_sp": "banana %s" } }, + { "type": "COMPONENT_ID", "condition": "blackberries", "name": { "str_sp": "blackberry %s" } }, + { "type": "COMPONENT_ID", "condition": "blueberries", "name": { "str_sp": "blueberry %s" } }, + { "type": "COMPONENT_ID", "condition": "cherries", "name": { "str_sp": "cherry %s" } }, + { "type": "COMPONENT_ID", "condition": "cranberries", "name": { "str_sp": "cranberry %s" } }, + { "type": "COMPONENT_ID", "condition": "grapefruit", "name": { "str_sp": "grapefruit %s" } }, + { "type": "COMPONENT_ID", "condition": "grapes", "name": { "str_sp": "grape %s" } }, + { "type": "COMPONENT_ID", "condition": "kiwi", "name": { "str_sp": "kiwi %s" } }, + { "type": "COMPONENT_ID", "condition": "mango", "name": { "str_sp": "mango %s" } }, + { "type": "COMPONENT_ID", "condition": "melon", "name": { "str_sp": "melon %s" } }, + { "type": "COMPONENT_ID", "condition": "orange", "name": { "str_sp": "orange %s" } }, + { "type": "COMPONENT_ID", "condition": "papaya", "name": { "str_sp": "papaya %s" } }, + { "type": "COMPONENT_ID", "condition": "peach", "name": { "str_sp": "peach %s" } }, + { "type": "COMPONENT_ID", "condition": "pear", "name": { "str_sp": "pear %s" } }, + { "type": "COMPONENT_ID", "condition": "pineapple", "name": { "str_sp": "pineapple %s" } }, + { "type": "COMPONENT_ID", "condition": "plums", "name": { "str_sp": "plum %s" } }, + { "type": "COMPONENT_ID", "condition": "pomegranate", "name": { "str_sp": "pomegranate %s" } }, + { "type": "COMPONENT_ID", "condition": "raspberries", "name": { "str_sp": "raspberry %s" } }, + { "type": "COMPONENT_ID", "condition": "rose_hips", "name": { "str_sp": "rose_hip %s" } }, + { "type": "COMPONENT_ID", "condition": "strawberries", "name": { "str_sp": "strawberry %s" } }, + { "type": "COMPONENT_ID", "condition": "huckleberries", "name": { "str_sp": "huckleberry %s" } }, + { "type": "COMPONENT_ID", "condition": "mulberries", "name": { "str_sp": "mulberry %s" } }, + { "type": "COMPONENT_ID", "condition": "elderberries", "name": { "str_sp": "elderberry %s" } }, + { "type": "COMPONENT_ID", "condition": "watermelon", "name": { "str_sp": "watermelon %s" } } + ], "name": { "str": "deluxe milkshake" }, "description": "This milkshake has been enhanced with added sweeteners, and even has a cherry on top. Tastes great, but is fairly awful for your health.", "calories": 265, diff --git a/data/json/items/comestibles/fruit_dishes.json b/data/json/items/comestibles/fruit_dishes.json index 8a95c02e390b..6b3da84bf9ca 100644 --- a/data/json/items/comestibles/fruit_dishes.json +++ b/data/json/items/comestibles/fruit_dishes.json @@ -22,6 +22,34 @@ "type": "COMESTIBLE", "id": "fruit_leather", "name": "fruit leather", + "conditional_names": [ + { "type": "COMPONENT_ID", "condition": "apple", "name": { "str_sp": "apple %s" } }, + { "type": "COMPONENT_ID", "condition": "apricot", "name": { "str_sp": "apricot %s" } }, + { "type": "COMPONENT_ID", "condition": "banana", "name": { "str_sp": "banana %s" } }, + { "type": "COMPONENT_ID", "condition": "blackberries", "name": { "str_sp": "blackberry %s" } }, + { "type": "COMPONENT_ID", "condition": "blueberries", "name": { "str_sp": "blueberry %s" } }, + { "type": "COMPONENT_ID", "condition": "cherries", "name": { "str_sp": "cherry %s" } }, + { "type": "COMPONENT_ID", "condition": "cranberries", "name": { "str_sp": "cranberry %s" } }, + { "type": "COMPONENT_ID", "condition": "grapefruit", "name": { "str_sp": "grapefruit %s" } }, + { "type": "COMPONENT_ID", "condition": "grapes", "name": { "str_sp": "grape %s" } }, + { "type": "COMPONENT_ID", "condition": "kiwi", "name": { "str_sp": "kiwi %s" } }, + { "type": "COMPONENT_ID", "condition": "mango", "name": { "str_sp": "mango %s" } }, + { "type": "COMPONENT_ID", "condition": "melon", "name": { "str_sp": "melon %s" } }, + { "type": "COMPONENT_ID", "condition": "orange", "name": { "str_sp": "orange %s" } }, + { "type": "COMPONENT_ID", "condition": "papaya", "name": { "str_sp": "papaya %s" } }, + { "type": "COMPONENT_ID", "condition": "peach", "name": { "str_sp": "peach %s" } }, + { "type": "COMPONENT_ID", "condition": "pear", "name": { "str_sp": "pear %s" } }, + { "type": "COMPONENT_ID", "condition": "pineapple", "name": { "str_sp": "pineapple %s" } }, + { "type": "COMPONENT_ID", "condition": "plums", "name": { "str_sp": "plum %s" } }, + { "type": "COMPONENT_ID", "condition": "pomegranate", "name": { "str_sp": "pomegranate %s" } }, + { "type": "COMPONENT_ID", "condition": "raspberries", "name": { "str_sp": "raspberry %s" } }, + { "type": "COMPONENT_ID", "condition": "rose_hips", "name": { "str_sp": "rose_hip %s" } }, + { "type": "COMPONENT_ID", "condition": "strawberries", "name": { "str_sp": "strawberry %s" } }, + { "type": "COMPONENT_ID", "condition": "huckleberries", "name": { "str_sp": "huckleberry %s" } }, + { "type": "COMPONENT_ID", "condition": "mulberries", "name": { "str_sp": "mulberry %s" } }, + { "type": "COMPONENT_ID", "condition": "elderberries", "name": { "str_sp": "elderberry %s" } }, + { "type": "COMPONENT_ID", "condition": "watermelon", "name": { "str_sp": "watermelon %s" } } + ], "weight": "34 g", "color": "pink", "container": "bag_plastic", @@ -123,6 +151,34 @@ "type": "COMESTIBLE", "id": "fruit_cooked", "name": "cooked fruit", + "conditional_names": [ + { "type": "COMPONENT_ID", "condition": "apple", "name": "cooked apple" }, + { "type": "COMPONENT_ID", "condition": "apricot", "name": "cooked apricot" }, + { "type": "COMPONENT_ID", "condition": "banana", "name": "cooked banana" }, + { "type": "COMPONENT_ID", "condition": "blackberries", "name": "cooked blackberry" }, + { "type": "COMPONENT_ID", "condition": "blueberries", "name": "cooked blueberry" }, + { "type": "COMPONENT_ID", "condition": "cherries", "name": "cooked cherry" }, + { "type": "COMPONENT_ID", "condition": "cranberries", "name": "cooked cranberry" }, + { "type": "COMPONENT_ID", "condition": "grapefruit", "name": "cooked grapefruit" }, + { "type": "COMPONENT_ID", "condition": "grapes", "name": "cooked grape" }, + { "type": "COMPONENT_ID", "condition": "kiwi", "name": "cooked kiwi" }, + { "type": "COMPONENT_ID", "condition": "mango", "name": "cooked mango" }, + { "type": "COMPONENT_ID", "condition": "melon", "name": "cooked melon" }, + { "type": "COMPONENT_ID", "condition": "orange", "name": "cooked orange" }, + { "type": "COMPONENT_ID", "condition": "papaya", "name": "cooked papaya" }, + { "type": "COMPONENT_ID", "condition": "peach", "name": "cooked peach" }, + { "type": "COMPONENT_ID", "condition": "pear", "name": "cooked pear" }, + { "type": "COMPONENT_ID", "condition": "pineapple", "name": "cooked pineapple" }, + { "type": "COMPONENT_ID", "condition": "plums", "name": "cooked plum" }, + { "type": "COMPONENT_ID", "condition": "pomegranate", "name": "cooked pomegranate" }, + { "type": "COMPONENT_ID", "condition": "raspberries", "name": "cooked raspberry" }, + { "type": "COMPONENT_ID", "condition": "rose_hips", "name": "cooked rose_hip" }, + { "type": "COMPONENT_ID", "condition": "strawberries", "name": "cooked strawberry" }, + { "type": "COMPONENT_ID", "condition": "huckleberries", "name": "cooked huckleberry" }, + { "type": "COMPONENT_ID", "condition": "mulberries", "name": "cooked mulberry" }, + { "type": "COMPONENT_ID", "condition": "elderberries", "name": "cooked elderberry" }, + { "type": "COMPONENT_ID", "condition": "watermelon", "name": "cooked watermelon" } + ], "weight": "150 g", "color": "red", "spoils_in": "3 days 18 hours", @@ -144,7 +200,35 @@ { "type": "COMESTIBLE", "id": "jam_fruit", - "name": "fruit jam", + "name": { "str_sp": "jam" }, + "conditional_names": [ + { "type": "COMPONENT_ID", "condition": "apple", "name": { "str_sp": "apple %s" } }, + { "type": "COMPONENT_ID", "condition": "apricot", "name": { "str_sp": "apricot %s" } }, + { "type": "COMPONENT_ID", "condition": "banana", "name": { "str_sp": "banana %s" } }, + { "type": "COMPONENT_ID", "condition": "blackberries", "name": { "str_sp": "blackberry %s" } }, + { "type": "COMPONENT_ID", "condition": "blueberries", "name": { "str_sp": "blueberry %s" } }, + { "type": "COMPONENT_ID", "condition": "cherries", "name": { "str_sp": "cherry %s" } }, + { "type": "COMPONENT_ID", "condition": "cranberries", "name": { "str_sp": "cranberry %s" } }, + { "type": "COMPONENT_ID", "condition": "grapefruit", "name": { "str_sp": "grapefruit %s" } }, + { "type": "COMPONENT_ID", "condition": "grapes", "name": { "str_sp": "grape %s" } }, + { "type": "COMPONENT_ID", "condition": "kiwi", "name": { "str_sp": "kiwi %s" } }, + { "type": "COMPONENT_ID", "condition": "mango", "name": { "str_sp": "mango %s" } }, + { "type": "COMPONENT_ID", "condition": "melon", "name": { "str_sp": "melon %s" } }, + { "type": "COMPONENT_ID", "condition": "orange", "name": { "str_sp": "orange %s" } }, + { "type": "COMPONENT_ID", "condition": "papaya", "name": { "str_sp": "papaya %s" } }, + { "type": "COMPONENT_ID", "condition": "peach", "name": { "str_sp": "peach %s" } }, + { "type": "COMPONENT_ID", "condition": "pear", "name": { "str_sp": "pear %s" } }, + { "type": "COMPONENT_ID", "condition": "pineapple", "name": { "str_sp": "pineapple %s" } }, + { "type": "COMPONENT_ID", "condition": "plums", "name": { "str_sp": "plum %s" } }, + { "type": "COMPONENT_ID", "condition": "pomegranate", "name": { "str_sp": "pomegranate %s" } }, + { "type": "COMPONENT_ID", "condition": "raspberries", "name": { "str_sp": "raspberry %s" } }, + { "type": "COMPONENT_ID", "condition": "rose_hips", "name": { "str_sp": "rose_hip %s" } }, + { "type": "COMPONENT_ID", "condition": "strawberries", "name": { "str_sp": "strawberry %s" } }, + { "type": "COMPONENT_ID", "condition": "huckleberries", "name": { "str_sp": "huckleberry %s" } }, + { "type": "COMPONENT_ID", "condition": "mulberries", "name": { "str_sp": "mulberry %s" } }, + { "type": "COMPONENT_ID", "condition": "elderberries", "name": { "str_sp": "elderberry %s" } }, + { "type": "COMPONENT_ID", "condition": "watermelon", "name": { "str_sp": "watermelon %s" } } + ], "weight": "15 g", "color": "red", "spoils_in": "10 days", @@ -205,6 +289,34 @@ "type": "COMESTIBLE", "id": "apple_sugar", "name": { "str": "fruit slice" }, + "conditional_names": [ + { "type": "COMPONENT_ID", "condition": "apple", "name": { "str_sp": "apple slice" } }, + { "type": "COMPONENT_ID", "condition": "apricot", "name": { "str_sp": "apricot slice" } }, + { "type": "COMPONENT_ID", "condition": "banana", "name": { "str_sp": "banana slice" } }, + { "type": "COMPONENT_ID", "condition": "blackberries", "name": { "str_sp": "blackberry slice" } }, + { "type": "COMPONENT_ID", "condition": "blueberries", "name": { "str_sp": "blueberry slice" } }, + { "type": "COMPONENT_ID", "condition": "cherries", "name": { "str_sp": "cherry slice" } }, + { "type": "COMPONENT_ID", "condition": "cranberries", "name": { "str_sp": "cranberry slice" } }, + { "type": "COMPONENT_ID", "condition": "grapefruit", "name": { "str_sp": "grapefruit slice" } }, + { "type": "COMPONENT_ID", "condition": "grapes", "name": { "str_sp": "grape slice" } }, + { "type": "COMPONENT_ID", "condition": "kiwi", "name": { "str_sp": "kiwi slice" } }, + { "type": "COMPONENT_ID", "condition": "mango", "name": { "str_sp": "mango slice" } }, + { "type": "COMPONENT_ID", "condition": "melon", "name": { "str_sp": "melon slice" } }, + { "type": "COMPONENT_ID", "condition": "orange", "name": { "str_sp": "orange slice" } }, + { "type": "COMPONENT_ID", "condition": "papaya", "name": { "str_sp": "papaya slice" } }, + { "type": "COMPONENT_ID", "condition": "peach", "name": { "str_sp": "peach slice" } }, + { "type": "COMPONENT_ID", "condition": "pear", "name": { "str_sp": "pear slice" } }, + { "type": "COMPONENT_ID", "condition": "pineapple", "name": { "str_sp": "pineapple slice" } }, + { "type": "COMPONENT_ID", "condition": "plums", "name": { "str_sp": "plum slice" } }, + { "type": "COMPONENT_ID", "condition": "pomegranate", "name": { "str_sp": "pomegranate slice" } }, + { "type": "COMPONENT_ID", "condition": "raspberries", "name": { "str_sp": "raspberry slice" } }, + { "type": "COMPONENT_ID", "condition": "rose_hips", "name": { "str_sp": "rose_hip slice" } }, + { "type": "COMPONENT_ID", "condition": "strawberries", "name": { "str_sp": "strawberry slice" } }, + { "type": "COMPONENT_ID", "condition": "huckleberries", "name": { "str_sp": "huckleberry slice" } }, + { "type": "COMPONENT_ID", "condition": "mulberries", "name": { "str_sp": "mulberry slice" } }, + { "type": "COMPONENT_ID", "condition": "elderberries", "name": { "str_sp": "elderberry slice" } }, + { "type": "COMPONENT_ID", "condition": "watermelon", "name": { "str_sp": "watermelon slice" } } + ], "weight": "42 g", "color": "red", "spoils_in": "7 days 12 hours", @@ -226,6 +338,34 @@ "type": "COMESTIBLE", "id": "apple_canned", "name": { "str_sp": "canned fruit" }, + "conditional_names": [ + { "type": "COMPONENT_ID", "condition": "apple", "name": "canned apple" }, + { "type": "COMPONENT_ID", "condition": "apricot", "name": "canned apricot" }, + { "type": "COMPONENT_ID", "condition": "banana", "name": "canned banana" }, + { "type": "COMPONENT_ID", "condition": "blackberries", "name": "canned blackberry" }, + { "type": "COMPONENT_ID", "condition": "blueberries", "name": "canned blueberry" }, + { "type": "COMPONENT_ID", "condition": "cherries", "name": "canned cherry" }, + { "type": "COMPONENT_ID", "condition": "cranberries", "name": "canned cranberry" }, + { "type": "COMPONENT_ID", "condition": "grapefruit", "name": "canned grapefruit" }, + { "type": "COMPONENT_ID", "condition": "grapes", "name": "canned grape" }, + { "type": "COMPONENT_ID", "condition": "kiwi", "name": "canned kiwi" }, + { "type": "COMPONENT_ID", "condition": "mango", "name": "canned mango" }, + { "type": "COMPONENT_ID", "condition": "melon", "name": "canned melon" }, + { "type": "COMPONENT_ID", "condition": "orange", "name": "canned orange" }, + { "type": "COMPONENT_ID", "condition": "papaya", "name": "canned papaya" }, + { "type": "COMPONENT_ID", "condition": "peach", "name": "canned peach" }, + { "type": "COMPONENT_ID", "condition": "pear", "name": "canned pear" }, + { "type": "COMPONENT_ID", "condition": "pineapple", "name": "canned pineapple" }, + { "type": "COMPONENT_ID", "condition": "plums", "name": "canned plum" }, + { "type": "COMPONENT_ID", "condition": "pomegranate", "name": "canned pomegranate" }, + { "type": "COMPONENT_ID", "condition": "raspberries", "name": "canned raspberry" }, + { "type": "COMPONENT_ID", "condition": "rose_hips", "name": "canned rose_hip" }, + { "type": "COMPONENT_ID", "condition": "strawberries", "name": "canned strawberry" }, + { "type": "COMPONENT_ID", "condition": "huckleberries", "name": "canned huckleberry" }, + { "type": "COMPONENT_ID", "condition": "mulberries", "name": "canned mulberry" }, + { "type": "COMPONENT_ID", "condition": "elderberries", "name": "canned elderberry" }, + { "type": "COMPONENT_ID", "condition": "watermelon", "name": "canned watermelon" } + ], "weight": "170 g", "color": "red", "spoils_in": "7 days 12 hours", diff --git a/data/json/items/comestibles/junkfood.json b/data/json/items/comestibles/junkfood.json index fa8ec4d3e407..c63a9f654770 100644 --- a/data/json/items/comestibles/junkfood.json +++ b/data/json/items/comestibles/junkfood.json @@ -360,6 +360,34 @@ "type": "COMESTIBLE", "id": "cookies", "name": "cookie", + "conditional_names": [ + { "type": "COMPONENT_ID", "condition": "apple", "name": "apple %s" }, + { "type": "COMPONENT_ID", "condition": "apricot", "name": "apricot %s" }, + { "type": "COMPONENT_ID", "condition": "banana", "name": "banana %s" }, + { "type": "COMPONENT_ID", "condition": "blackberries", "name": "blackberry %s" }, + { "type": "COMPONENT_ID", "condition": "blueberries", "name": "blueberry %s" }, + { "type": "COMPONENT_ID", "condition": "cherries", "name": "cherry %s" }, + { "type": "COMPONENT_ID", "condition": "cranberries", "name": "cranberry %s" }, + { "type": "COMPONENT_ID", "condition": "grapefruit", "name": "grapefruit %s" }, + { "type": "COMPONENT_ID", "condition": "grapes", "name": "grape %s" }, + { "type": "COMPONENT_ID", "condition": "kiwi", "name": "kiwi %s" }, + { "type": "COMPONENT_ID", "condition": "mango", "name": "mango %s" }, + { "type": "COMPONENT_ID", "condition": "melon", "name": "melon %s" }, + { "type": "COMPONENT_ID", "condition": "orange", "name": "orange %s" }, + { "type": "COMPONENT_ID", "condition": "papaya", "name": "papaya %s" }, + { "type": "COMPONENT_ID", "condition": "peach", "name": "peach %s" }, + { "type": "COMPONENT_ID", "condition": "pear", "name": "pear %s" }, + { "type": "COMPONENT_ID", "condition": "pineapple", "name": "pineapple %s" }, + { "type": "COMPONENT_ID", "condition": "plums", "name": "plum %s" }, + { "type": "COMPONENT_ID", "condition": "pomegranate", "name": "pomegranate %s" }, + { "type": "COMPONENT_ID", "condition": "raspberries", "name": "raspberry %s" }, + { "type": "COMPONENT_ID", "condition": "rose_hips", "name": "rose_hip %s" }, + { "type": "COMPONENT_ID", "condition": "strawberries", "name": "strawberry %s" }, + { "type": "COMPONENT_ID", "condition": "huckleberries", "name": "huckleberry %s" }, + { "type": "COMPONENT_ID", "condition": "mulberries", "name": "mulberry %s" }, + { "type": "COMPONENT_ID", "condition": "elderberries", "name": "elderberry %s" }, + { "type": "COMPONENT_ID", "condition": "watermelon", "name": "watermelon %s" } + ], "weight": "33 g", "color": "brown", "container": "box_small", diff --git a/data/json/items/comestibles/wheat.json b/data/json/items/comestibles/wheat.json index d9ea9f2d75c0..eeaf676c0f1c 100644 --- a/data/json/items/comestibles/wheat.json +++ b/data/json/items/comestibles/wheat.json @@ -291,6 +291,34 @@ "id": "fruit_pancakes", "copy-from": "pancakes", "name": { "str": "fruit pancake" }, + "conditional_names": [ + { "type": "COMPONENT_ID", "condition": "apple", "name": { "str_sp": "apple pancake" } }, + { "type": "COMPONENT_ID", "condition": "apricot", "name": { "str_sp": "apricot pancake" } }, + { "type": "COMPONENT_ID", "condition": "banana", "name": { "str_sp": "banana pancake" } }, + { "type": "COMPONENT_ID", "condition": "blackberries", "name": { "str_sp": "blackberry pancake" } }, + { "type": "COMPONENT_ID", "condition": "blueberries", "name": { "str_sp": "blueberry pancake" } }, + { "type": "COMPONENT_ID", "condition": "cherries", "name": { "str_sp": "cherry pancake" } }, + { "type": "COMPONENT_ID", "condition": "cranberries", "name": { "str_sp": "cranberry pancake" } }, + { "type": "COMPONENT_ID", "condition": "grapefruit", "name": { "str_sp": "grapefruit pancake" } }, + { "type": "COMPONENT_ID", "condition": "grapes", "name": { "str_sp": "grape pancake" } }, + { "type": "COMPONENT_ID", "condition": "kiwi", "name": { "str_sp": "kiwi pancake" } }, + { "type": "COMPONENT_ID", "condition": "mango", "name": { "str_sp": "mango pancake" } }, + { "type": "COMPONENT_ID", "condition": "melon", "name": { "str_sp": "melon pancake" } }, + { "type": "COMPONENT_ID", "condition": "orange", "name": { "str_sp": "orange pancake" } }, + { "type": "COMPONENT_ID", "condition": "papaya", "name": { "str_sp": "papaya pancake" } }, + { "type": "COMPONENT_ID", "condition": "peach", "name": { "str_sp": "peach pancake" } }, + { "type": "COMPONENT_ID", "condition": "pear", "name": { "str_sp": "pear pancake" } }, + { "type": "COMPONENT_ID", "condition": "pineapple", "name": { "str_sp": "pineapple pancake" } }, + { "type": "COMPONENT_ID", "condition": "plums", "name": { "str_sp": "plum pancake" } }, + { "type": "COMPONENT_ID", "condition": "pomegranate", "name": { "str_sp": "pomegranate pancake" } }, + { "type": "COMPONENT_ID", "condition": "raspberries", "name": { "str_sp": "raspberry pancake" } }, + { "type": "COMPONENT_ID", "condition": "rose_hips", "name": { "str_sp": "rose_hip pancake" } }, + { "type": "COMPONENT_ID", "condition": "strawberries", "name": { "str_sp": "strawberry pancake" } }, + { "type": "COMPONENT_ID", "condition": "huckleberries", "name": { "str_sp": "huckleberry pancake" } }, + { "type": "COMPONENT_ID", "condition": "mulberries", "name": { "str_sp": "mulberry pancake" } }, + { "type": "COMPONENT_ID", "condition": "elderberries", "name": { "str_sp": "elderberry pancake" } }, + { "type": "COMPONENT_ID", "condition": "watermelon", "name": { "str_sp": "watermelon pancake" } } + ], "weight": "80 g", "color": "brown", "calories": 113, @@ -346,6 +374,34 @@ "type": "COMESTIBLE", "id": "fruit_waffles", "name": "fruit waffle", + "conditional_names": [ + { "type": "COMPONENT_ID", "condition": "apple", "name": { "str_sp": "apple waffle" } }, + { "type": "COMPONENT_ID", "condition": "apricot", "name": { "str_sp": "apricot waffle" } }, + { "type": "COMPONENT_ID", "condition": "banana", "name": { "str_sp": "banana waffle" } }, + { "type": "COMPONENT_ID", "condition": "blackberries", "name": { "str_sp": "blackberry waffle" } }, + { "type": "COMPONENT_ID", "condition": "blueberries", "name": { "str_sp": "blueberry waffle" } }, + { "type": "COMPONENT_ID", "condition": "cherries", "name": { "str_sp": "cherry waffle" } }, + { "type": "COMPONENT_ID", "condition": "cranberries", "name": { "str_sp": "cranberry waffle" } }, + { "type": "COMPONENT_ID", "condition": "grapefruit", "name": { "str_sp": "grapefruit waffle" } }, + { "type": "COMPONENT_ID", "condition": "grapes", "name": { "str_sp": "grape waffle" } }, + { "type": "COMPONENT_ID", "condition": "kiwi", "name": { "str_sp": "kiwi waffle" } }, + { "type": "COMPONENT_ID", "condition": "mango", "name": { "str_sp": "mango waffle" } }, + { "type": "COMPONENT_ID", "condition": "melon", "name": { "str_sp": "melon waffle" } }, + { "type": "COMPONENT_ID", "condition": "orange", "name": { "str_sp": "orange waffle" } }, + { "type": "COMPONENT_ID", "condition": "papaya", "name": { "str_sp": "papaya waffle" } }, + { "type": "COMPONENT_ID", "condition": "peach", "name": { "str_sp": "peach waffle" } }, + { "type": "COMPONENT_ID", "condition": "pear", "name": { "str_sp": "pear waffle" } }, + { "type": "COMPONENT_ID", "condition": "pineapple", "name": { "str_sp": "pineapple waffle" } }, + { "type": "COMPONENT_ID", "condition": "plums", "name": { "str_sp": "plum waffle" } }, + { "type": "COMPONENT_ID", "condition": "pomegranate", "name": { "str_sp": "pomegranate waffle" } }, + { "type": "COMPONENT_ID", "condition": "raspberries", "name": { "str_sp": "raspberry waffle" } }, + { "type": "COMPONENT_ID", "condition": "rose_hips", "name": { "str_sp": "rose_hip waffle" } }, + { "type": "COMPONENT_ID", "condition": "strawberries", "name": { "str_sp": "strawberry waffle" } }, + { "type": "COMPONENT_ID", "condition": "huckleberries", "name": { "str_sp": "huckleberry waffle" } }, + { "type": "COMPONENT_ID", "condition": "mulberries", "name": { "str_sp": "mulberry waffle" } }, + { "type": "COMPONENT_ID", "condition": "elderberries", "name": { "str_sp": "elderberry waffle" } }, + { "type": "COMPONENT_ID", "condition": "watermelon", "name": { "str_sp": "watermelon waffle" } } + ], "weight": "156 g", "color": "yellow", "spoils_in": "10 days", @@ -387,6 +443,34 @@ "type": "COMESTIBLE", "id": "pie", "name": "fruit pie", + "conditional_names": [ + { "type": "COMPONENT_ID", "condition": "apple", "name": { "str_sp": "apple pie" } }, + { "type": "COMPONENT_ID", "condition": "apricot", "name": { "str_sp": "apricot pie" } }, + { "type": "COMPONENT_ID", "condition": "banana", "name": { "str_sp": "banana pie" } }, + { "type": "COMPONENT_ID", "condition": "blackberries", "name": { "str_sp": "blackberry pie" } }, + { "type": "COMPONENT_ID", "condition": "blueberries", "name": { "str_sp": "blueberry pie" } }, + { "type": "COMPONENT_ID", "condition": "cherries", "name": { "str_sp": "cherry pie" } }, + { "type": "COMPONENT_ID", "condition": "cranberries", "name": { "str_sp": "cranberry pie" } }, + { "type": "COMPONENT_ID", "condition": "grapefruit", "name": { "str_sp": "grapefruit pie" } }, + { "type": "COMPONENT_ID", "condition": "grapes", "name": { "str_sp": "grape pie" } }, + { "type": "COMPONENT_ID", "condition": "kiwi", "name": { "str_sp": "kiwi pie" } }, + { "type": "COMPONENT_ID", "condition": "mango", "name": { "str_sp": "mango pie" } }, + { "type": "COMPONENT_ID", "condition": "melon", "name": { "str_sp": "melon pie" } }, + { "type": "COMPONENT_ID", "condition": "orange", "name": { "str_sp": "orange pie" } }, + { "type": "COMPONENT_ID", "condition": "papaya", "name": { "str_sp": "papaya pie" } }, + { "type": "COMPONENT_ID", "condition": "peach", "name": { "str_sp": "peach pie" } }, + { "type": "COMPONENT_ID", "condition": "pear", "name": { "str_sp": "pear pie" } }, + { "type": "COMPONENT_ID", "condition": "pineapple", "name": { "str_sp": "pineapple pie" } }, + { "type": "COMPONENT_ID", "condition": "plums", "name": { "str_sp": "plum pie" } }, + { "type": "COMPONENT_ID", "condition": "pomegranate", "name": { "str_sp": "pomegranate pie" } }, + { "type": "COMPONENT_ID", "condition": "raspberries", "name": { "str_sp": "raspberry pie" } }, + { "type": "COMPONENT_ID", "condition": "rose_hips", "name": { "str_sp": "rose_hip pie" } }, + { "type": "COMPONENT_ID", "condition": "strawberries", "name": { "str_sp": "strawberry pie" } }, + { "type": "COMPONENT_ID", "condition": "huckleberries", "name": { "str_sp": "huckleberry pie" } }, + { "type": "COMPONENT_ID", "condition": "mulberries", "name": { "str_sp": "mulberry pie" } }, + { "type": "COMPONENT_ID", "condition": "elderberries", "name": { "str_sp": "elderberry pie" } }, + { "type": "COMPONENT_ID", "condition": "watermelon", "name": { "str_sp": "watermelon pie" } } + ], "weight": "125 g", "color": "brown", "spoils_in": "3 days", @@ -433,6 +517,34 @@ "type": "COMESTIBLE", "id": "granola", "name": { "str_sp": "granola" }, + "conditional_names": [ + { "type": "COMPONENT_ID", "condition": "apple", "name": { "str_sp": "apple %s" } }, + { "type": "COMPONENT_ID", "condition": "apricot", "name": { "str_sp": "apricot %s" } }, + { "type": "COMPONENT_ID", "condition": "banana", "name": { "str_sp": "banana %s" } }, + { "type": "COMPONENT_ID", "condition": "blackberries", "name": { "str_sp": "blackberry %s" } }, + { "type": "COMPONENT_ID", "condition": "blueberries", "name": { "str_sp": "blueberry %s" } }, + { "type": "COMPONENT_ID", "condition": "cherries", "name": { "str_sp": "cherry %s" } }, + { "type": "COMPONENT_ID", "condition": "cranberries", "name": { "str_sp": "cranberry %s" } }, + { "type": "COMPONENT_ID", "condition": "grapefruit", "name": { "str_sp": "grapefruit %s" } }, + { "type": "COMPONENT_ID", "condition": "grapes", "name": { "str_sp": "grape %s" } }, + { "type": "COMPONENT_ID", "condition": "kiwi", "name": { "str_sp": "kiwi %s" } }, + { "type": "COMPONENT_ID", "condition": "mango", "name": { "str_sp": "mango %s" } }, + { "type": "COMPONENT_ID", "condition": "melon", "name": { "str_sp": "melon %s" } }, + { "type": "COMPONENT_ID", "condition": "orange", "name": { "str_sp": "orange %s" } }, + { "type": "COMPONENT_ID", "condition": "papaya", "name": { "str_sp": "papaya %s" } }, + { "type": "COMPONENT_ID", "condition": "peach", "name": { "str_sp": "peach %s" } }, + { "type": "COMPONENT_ID", "condition": "pear", "name": { "str_sp": "pear %s" } }, + { "type": "COMPONENT_ID", "condition": "pineapple", "name": { "str_sp": "pineapple %s" } }, + { "type": "COMPONENT_ID", "condition": "plums", "name": { "str_sp": "plum %s" } }, + { "type": "COMPONENT_ID", "condition": "pomegranate", "name": { "str_sp": "pomegranate %s" } }, + { "type": "COMPONENT_ID", "condition": "raspberries", "name": { "str_sp": "raspberry %s" } }, + { "type": "COMPONENT_ID", "condition": "rose_hips", "name": { "str_sp": "rose_hip %s" } }, + { "type": "COMPONENT_ID", "condition": "strawberries", "name": { "str_sp": "strawberry %s" } }, + { "type": "COMPONENT_ID", "condition": "huckleberries", "name": { "str_sp": "huckleberry %s" } }, + { "type": "COMPONENT_ID", "condition": "mulberries", "name": { "str_sp": "mulberry %s" } }, + { "type": "COMPONENT_ID", "condition": "elderberries", "name": { "str_sp": "elderberry %s" } }, + { "type": "COMPONENT_ID", "condition": "watermelon", "name": { "str_sp": "watermelon %s" } } + ], "weight": "32 g", "color": "brown", "container": "bag_plastic", diff --git a/data/json/obsoletion/recipes.json b/data/json/obsoletion/recipes.json index 432c58d680e5..554dbf886ed9 100644 --- a/data/json/obsoletion/recipes.json +++ b/data/json/obsoletion/recipes.json @@ -3348,5 +3348,51 @@ "type": "recipe", "result": "barrel_big", "obsolete": true + }, + { + "type": "recipe", + "result": "oj", + "obsolete": true + }, + { + "type": "recipe", + "result": "oj", + "id_suffix": "jarred", + "obsolete": true + }, + { + "type": "recipe", + "result": "oj", + "id_suffix": "canned", + "obsolete": true + }, + { + "type": "recipe", + "result": "oj", + "id_suffix": "jarred_3l", + "obsolete": true + }, + { + "type": "recipe", + "result": "cranberry_juice", + "obsolete": true + }, + { + "type": "recipe", + "result": "cranberry_juice", + "id_suffix": "canned", + "obsolete": true + }, + { + "type": "recipe", + "result": "cranberry_juice", + "id_suffix": "jarred", + "obsolete": true + }, + { + "type": "recipe", + "result": "cranberry_juice", + "id_suffix": "jarred_3l", + "obsolete": true } ] diff --git a/data/json/recipes/food/drinks.json b/data/json/recipes/food/drinks.json index 170fd35d8ebd..a398dc376727 100644 --- a/data/json/recipes/food/drinks.json +++ b/data/json/recipes/food/drinks.json @@ -432,34 +432,6 @@ [ [ "water", 1 ], [ "water_clean", 1 ] ] ] }, - { - "type": "recipe", - "result": "oj", - "byproducts": [ [ "juice_pulp", 2 ] ], - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_DRINKS", - "skill_used": "cooking", - "difficulty": 1, - "time": "5 m", - "autolearn": true, - "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], - "tools": [ [ [ "rag", -1 ] ] ], - "components": [ [ [ "irradiated_orange", 2 ], [ "orange", 2 ] ] ] - }, - { - "type": "recipe", - "result": "cranberry_juice", - "byproducts": [ [ "juice_pulp", 2 ] ], - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_DRINKS", - "skill_used": "cooking", - "difficulty": 1, - "time": "5 m", - "autolearn": true, - "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], - "tools": [ [ [ "rag", -1 ] ] ], - "components": [ [ [ "cranberries", 3 ], [ "irradiated_cranberries", 3 ] ], [ [ "water_clean", 1 ] ] ] - }, { "type": "recipe", "result": "apple_cider", diff --git a/data/json/recipes/food/other.json b/data/json/recipes/food/other.json index e7d8dc386e9b..0fb65d690a9d 100644 --- a/data/json/recipes/food/other.json +++ b/data/json/recipes/food/other.json @@ -1494,16 +1494,8 @@ [ "candy3", 1 ], [ "maple_candy", 1 ], [ "syrup", 1 ], - [ "strawberries", 1 ], - [ "strawberries_cooked", 1 ], - [ "irradiated_strawberries", 1 ], - [ "blueberries", 1 ], - [ "blueberries_cooked", 1 ], - [ "irradiated_blueberries", 1 ], - [ "blackberries", 1 ], - [ "irradiated_blackberries", 1 ], - [ "cherries", 1 ], - [ "irradiated_cherries", 1 ] + [ "sweet_fruit_like", 1, "LIST" ], + [ "jam_fruit", 1 ] ], [ [ "sugar", 10 ] ], [ [ "water_clean", 1 ] ] @@ -1527,16 +1519,8 @@ [ "candy3", 2 ], [ "maple_candy", 2 ], [ "syrup", 2 ], - [ "strawberries", 2 ], - [ "strawberries_cooked", 2 ], - [ "irradiated_strawberries", 2 ], - [ "blueberries", 2 ], - [ "blueberries_cooked", 2 ], - [ "irradiated_blueberries", 2 ], - [ "blackberries", 2 ], - [ "irradiated_blackberries", 2 ], - [ "cherries", 2 ], - [ "irradiated_cherries", 2 ] + [ "sweet_fruit_like", 2, "LIST" ], + [ "jam_fruit", 2 ] ], [ [ "sugar", 20 ] ], [ [ "water_clean", 1 ] ] diff --git a/data/json/recipes/food/veggi.json b/data/json/recipes/food/veggi.json index 1e41b6de3275..1a133ebc44ff 100644 --- a/data/json/recipes/food/veggi.json +++ b/data/json/recipes/food/veggi.json @@ -2272,130 +2272,6 @@ [ [ "water", 10 ], [ "water_clean", 10 ] ] ] }, - { - "type": "recipe", - "result": "oj", - "id_suffix": "jarred", - "byproducts": [ [ "water", 10 ], [ "juice_pulp", 4 ] ], - "container": "jar_glass_sealed", - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_VEGGI", - "skill_used": "cooking", - "skills_required": [ "mechanics", 1 ], - "difficulty": 4, - "time": "30 m", - "charges": 2, - "book_learn": [ [ "preserving_juice", 2 ] ], - "batch_time_factors": [ 80, 5 ], - "qualities": [ { "id": "COOK", "level": 3 }, { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], - "tools": [ [ [ "surface_heat", 200, "LIST" ] ], [ [ "pot_canning", -1 ] ], [ [ "rag", -1 ] ] ], - "components": [ [ [ "jar_glass", 1 ] ], [ [ "irradiated_orange", 4 ], [ "orange", 4 ] ], [ [ "water", 10 ], [ "water_clean", 10 ] ] ] - }, - { - "type": "recipe", - "result": "oj", - "id_suffix": "canned", - "byproducts": [ [ "juice_pulp", 4 ] ], - "container": "can_medium", - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_VEGGI", - "skill_used": "cooking", - "difficulty": 4, - "time": "24 m", - "book_learn": [ [ "preserving_juice", 2 ] ], - "contained": true, - "batch_time_factors": [ 80, 5 ], - "qualities": [ { "id": "CONTAIN", "level": 1 }, { "id": "HAMMER", "level": 1 }, { "id": "COOK", "level": 3 } ], - "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "can_sealer", -1 ] ], [ [ "rag", -1 ] ] ], - "components": [ [ [ "can_medium_unsealed", 1 ] ], [ [ "scrap", 1 ] ], [ [ "irradiated_orange", 4 ], [ "orange", 4 ] ] ] - }, - { - "type": "recipe", - "result": "oj", - "id_suffix": "jarred_3l", - "byproducts": [ [ "water", 10 ], [ "juice_pulp", 24 ] ], - "container": "jar_3l_glass_sealed", - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_VEGGI", - "skill_used": "cooking", - "skills_required": [ "mechanics", 1 ], - "difficulty": 4, - "time": "40 m", - "charges": 12, - "book_learn": [ [ "preserving_juice", 2 ] ], - "batch_time_factors": [ 80, 5 ], - "qualities": [ { "id": "COOK", "level": 3 }, { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], - "tools": [ [ [ "surface_heat", 200, "LIST" ] ], [ [ "pot_canning", -1 ] ], [ [ "rag", -1 ] ] ], - "components": [ - [ [ "jar_3l_glass", 1 ] ], - [ [ "irradiated_orange", 24 ], [ "orange", 24 ] ], - [ [ "water", 10 ], [ "water_clean", 10 ] ] - ] - }, - { - "type": "recipe", - "result": "cranberry_juice", - "id_suffix": "jarred", - "byproducts": [ [ "water", 10 ], [ "juice_pulp", 4 ] ], - "container": "jar_glass_sealed", - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_VEGGI", - "skill_used": "cooking", - "skills_required": [ "mechanics", 1 ], - "difficulty": 4, - "time": "30 m", - "charges": 2, - "book_learn": [ [ "preserving_juice", 2 ] ], - "batch_time_factors": [ 80, 5 ], - "qualities": [ { "id": "COOK", "level": 3 }, { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], - "tools": [ [ [ "surface_heat", 200, "LIST" ] ], [ [ "pot_canning", -1 ] ], [ [ "rag", -1 ] ] ], - "components": [ - [ [ "jar_glass", 1 ] ], - [ [ "irradiated_cranberries", 6 ], [ "cranberries", 6 ] ], - [ [ "water", 10 ], [ "water_clean", 10 ] ] - ] - }, - { - "type": "recipe", - "result": "cranberry_juice", - "id_suffix": "canned", - "byproducts": [ [ "juice_pulp", 4 ] ], - "container": "can_medium", - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_VEGGI", - "skill_used": "cooking", - "difficulty": 4, - "time": "24 m", - "book_learn": [ [ "preserving_juice", 2 ] ], - "contained": true, - "batch_time_factors": [ 80, 5 ], - "qualities": [ { "id": "CONTAIN", "level": 1 }, { "id": "HAMMER", "level": 1 }, { "id": "COOK", "level": 3 } ], - "tools": [ [ [ "surface_heat", 10, "LIST" ] ], [ [ "can_sealer", -1 ] ], [ [ "rag", -1 ] ] ], - "components": [ [ [ "can_medium_unsealed", 1 ] ], [ [ "scrap", 1 ] ], [ [ "irradiated_cranberries", 6 ], [ "cranberries", 6 ] ] ] - }, - { - "type": "recipe", - "result": "cranberry_juice", - "id_suffix": "jarred_3l", - "byproducts": [ [ "water", 10 ], [ "juice_pulp", 24 ] ], - "container": "jar_3l_glass_sealed", - "category": "CC_FOOD", - "subcategory": "CSC_FOOD_VEGGI", - "skill_used": "cooking", - "skills_required": [ "mechanics", 1 ], - "difficulty": 4, - "time": "40 m", - "charges": 12, - "book_learn": [ [ "preserving_juice", 2 ] ], - "batch_time_factors": [ 80, 5 ], - "qualities": [ { "id": "COOK", "level": 3 }, { "id": "HAMMER", "level": 1 }, { "id": "CONTAIN", "level": 1 } ], - "tools": [ [ [ "surface_heat", 200, "LIST" ] ], [ [ "pot_canning", -1 ] ], [ [ "rag", -1 ] ] ], - "components": [ - [ [ "jar_3l_glass", 1 ] ], - [ [ "irradiated_cranberries", 36 ], [ "cranberries", 36 ] ], - [ [ "water", 10 ], [ "water_clean", 10 ] ] - ] - }, { "type": "recipe", "result": "juice",