From 62258b7e11b4b4cc7856a7549f1fa2c6ad935685 Mon Sep 17 00:00:00 2001 From: Xpyder Date: Fri, 16 Jul 2021 14:37:45 -0700 Subject: [PATCH] Change Hobo Stove to deployable furniture (#49442) * Change Hobo Stove to deployable furnature Changing Hobo Stove to deployable furnature. Why change: currently hobo stove was either WAY too efficient, or completely useless. How is it useful but balanced: It deploys like brazier which means it scales to "nearby fire" efficiency now. Has a max capacity of 500ml to restrict possible burnable fuels (even plank / stout branch is way too large to fit). all burnable fuels that fit should burn quickly which will require pre-chopping the wood and setting up a "firewood source" tile most likely, meaning it's better for small / one off / emergencies rather than constant usage Why not just use brazier: Brazier is big and heavy. This is much smaller and lighter than a full brazier making it good for general use Alternatives: Just drop it entirely but I think there's a place for it when you don't want to carry around something as big as a brazier and you're willing to fiddle with fuel a lot in exchange. Based on this real world recipe: https://www.motherearthnews.com/diy/how-to-make-hobo-stove-zmaz84zloeck * json lint auto linted using http://dev.narc.ro/cataclysm/format.html to start * fix some bugs * Update furniture-fireplaces.json increase space to allow 2 splintered wood (1 burning 1 fresh) and 100 wood ash * more linting * allow to hold intent is for you to be able to nest stuff in it when carrying it around. It has too many holes to hold a liquid or anything smaller than tinder, and you lose 100ml due to added bulk from the way it's built, and it can't hold as much weight as a Medium Can * fixed recipe should need both can and scrap should need both saw and (awl 2 or drill 1) * fixed typo accidental removed charges from l-stick instead of hobo_stove * lint --- .../furniture-fireplaces.json | 26 +++++++++++++++++++ .../Locations_MapExtras/locations.json | 4 +-- data/json/items/tool/cooking.json | 20 -------------- data/json/items/tool/deployable.json | 21 +++++++++++++++ data/json/recipes/tools/tool.json | 13 +++++----- 5 files changed, 55 insertions(+), 29 deletions(-) diff --git a/data/json/furniture_and_terrain/furniture-fireplaces.json b/data/json/furniture_and_terrain/furniture-fireplaces.json index ca87ea60bff5f..a6498bb902c78 100644 --- a/data/json/furniture_and_terrain/furniture-fireplaces.json +++ b/data/json/furniture_and_terrain/furniture-fireplaces.json @@ -66,6 +66,32 @@ ] } }, + { + "type": "furniture", + "id": "f_hobo_stove", + "name": "hobo stove", + "description": "This is a small improvised wood stove, made from a metal can. It's too small to fit anything much larger than splintered wood.", + "symbol": "#", + "color": "red", + "move_cost_mod": 2, + "coverage": 35, + "required_str": 4, + "flags": [ "PLACE_ITEM", "TRANSPARENT", "FIRE_CONTAINER", "EASY_DECONSTRUCT" ], + "deployed_item": "hobo_stove", + "examine_action": "fireplace", + "max_volume": "680 ml", + "bash": { + "str_min": 8, + "str_max": 30, + "sound": "metal screeching!", + "sound_fail": "clang!", + "items": [ + { "item": "scrap", "count": [ 2, 4 ] }, + { "item": "steel_chunk", "count": [ 1, 2 ] }, + { "item": "sheet_metal_small", "count": [ 1, 2 ] } + ] + } + }, { "type": "furniture", "id": "f_55gal_firebarrel", diff --git a/data/json/itemgroups/Locations_MapExtras/locations.json b/data/json/itemgroups/Locations_MapExtras/locations.json index 23c25fbb3b480..9fea53bc64c65 100644 --- a/data/json/itemgroups/Locations_MapExtras/locations.json +++ b/data/json/itemgroups/Locations_MapExtras/locations.json @@ -880,7 +880,7 @@ [ "pocketwatch", 1 ], [ "survnote", 1 ], [ "tinder", 1 ], - { "item": "hobo_stove", "prob": 1, "charges": [ 0, 100 ] }, + { "item": "hobo_stove", "prob": 1 }, { "item": "l-stick", "prob": 1, "charges": [ 0, 500 ] }, [ "eclipse_glasses", 1 ], { "group": "writing_utensils", "prob": 5 } @@ -2300,7 +2300,7 @@ [ "bodypillow", 1 ], [ "flint_steel", 6 ], [ "bottle_metal", 2 ], - { "item": "hobo_stove", "prob": 3, "charges": [ 0, 100 ] }, + { "item": "hobo_stove", "prob": 3 }, [ "tinder", 3 ], { "item": "tinderbox", "prob": 2, "charges": [ 0, 100 ] }, [ "tarp", 15 ], diff --git a/data/json/items/tool/cooking.json b/data/json/items/tool/cooking.json index 2f4b3420d4869..34276b80b102c 100644 --- a/data/json/items/tool/cooking.json +++ b/data/json/items/tool/cooking.json @@ -446,26 +446,6 @@ "symbol": ";", "color": "light_gray" }, - { - "id": "hobo_stove", - "type": "TOOL", - "name": { "str": "hobo stove" }, - "description": "This is a small improvised wood stove, made from a metal can or similar container of the right size. Useful for defrosting and reheating food, uses simple tinder.", - "weight": "500 g", - "volume": "250 ml", - "price": 0, - "price_postapoc": 0, - "to_hit": -1, - "bashing": 2, - "material": [ "steel" ], - "symbol": ",", - "color": "light_gray", - "ammo": [ "tinder" ], - "pocket_data": [ { "pocket_type": "MAGAZINE", "ammo_restriction": { "tinder": 100 } } ], - "max_charges": 100, - "charges_per_use": 25, - "use_action": [ "HOTPLATE" ] - }, { "id": "hotplate", "type": "TOOL", diff --git a/data/json/items/tool/deployable.json b/data/json/items/tool/deployable.json index 328e2595e0631..ae47c9b659a50 100644 --- a/data/json/items/tool/deployable.json +++ b/data/json/items/tool/deployable.json @@ -17,6 +17,27 @@ "use_action": { "type": "deploy_furn", "furn_type": "f_brazier" }, "qualities": [ [ "COOK", 1 ], [ "BOIL", 2 ], [ "CONTAIN", 1 ] ] }, + { + "id": "hobo_stove", + "type": "TOOL", + "name": { "str": "hobo stove" }, + "description": "This is a small improvised wood stove, made from a metal can or similar container of the right size. It's too small to fit anything much larger than splintered wood. Activate it to Deploy.", + "copy-from": "can_medium", + "weight": "100 g", + "volume": "550 ml", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "rigid": true, + "watertight": false, + "open_container": false, + "min_contains_volume": "4 ml", + "max_contains_volume": "400 ml", + "max_contains_weight": "1 kg" + } + ], + "use_action": { "type": "deploy_furn", "furn_type": "f_hobo_stove" } + }, { "id": "55gal_firebarrel", "type": "TOOL", diff --git a/data/json/recipes/tools/tool.json b/data/json/recipes/tools/tool.json index 57d412708c67e..2b57d3324f8f2 100644 --- a/data/json/recipes/tools/tool.json +++ b/data/json/recipes/tools/tool.json @@ -580,14 +580,13 @@ "category": "CC_OTHER", "subcategory": "CSC_OTHER_TOOLS", "skill_used": "survival", - "skills_required": [ "fabrication", 1 ], - "difficulty": 2, - "time": "15 m", - "reversible": true, - "autolearn": true, + "skills_required": [ "fabrication", 2 ], + "difficulty": 3, + "time": "25 m", + "autolearn": false, "book_learn": [ [ "mag_survival", 2 ], [ "textbook_survival", 1 ], [ "cookbook", 2 ] ], - "qualities": [ { "id": "CUT", "level": 1 } ], - "components": [ [ [ "can_food", 2 ], [ "scrap", 4 ] ] ] + "qualities": [ [ { "id": "SAW_M", "level": 1 } ], [ { "id": "DRILL", "level": 1 }, { "id": "LEATHER_AWL", "level": 2 } ] ], + "components": [ [ [ "can_medium", 1 ] ], [ [ "scrap", 3 ] ] ] }, { "type": "recipe",