Skip to content

Commit

Permalink
Add an oven to the power grid (#53648)
Browse files Browse the repository at this point in the history
* ovens can be disconnected and aren't fireplaces anymore
Parting out the specific components of an oven
Making a separate folder for appliance construction because I think these are going to add up to a lot.
Start adding some craft/uncraft recipes. Will need to add rock_wool_bat item.
will need an appliance repair proficiency

Co-authored-by: Fris0uman <[email protected]>
Co-authored-by: Kevin Granade <[email protected]>
Co-authored-by: Wishbringer <[email protected]>
  • Loading branch information
4 people authored Jan 6, 2022
1 parent be5c26b commit 4d22129
Show file tree
Hide file tree
Showing 10 changed files with 344 additions and 16 deletions.
11 changes: 11 additions & 0 deletions data/json/construction.json
Original file line number Diff line number Diff line change
Expand Up @@ -3001,6 +3001,17 @@
"pre_special": "check_empty",
"post_special": "done_appliance"
},
{
"type": "construction",
"id": "app_oven",
"group": "place_oven",
"category": "APPLIANCE",
"required_skills": [ [ "fabrication", 0 ] ],
"time": "5 m",
"components": [ [ [ "oven", 1 ] ] ],
"pre_special": "check_empty",
"post_special": "done_appliance"
},
{
"type": "construction",
"id": "app_standing_lamp",
Expand Down
5 changes: 5 additions & 0 deletions data/json/construction_group.json
Original file line number Diff line number Diff line change
Expand Up @@ -1094,6 +1094,11 @@
"id": "place_fridge",
"name": "Place Fridge"
},
{
"type": "construction_group",
"id": "place_oven",
"name": "Place Oven"
},
{
"type": "construction_group",
"id": "place_standing_lamp",
Expand Down
19 changes: 4 additions & 15 deletions data/json/furniture_and_terrain/furniture-appliances.json
Original file line number Diff line number Diff line change
Expand Up @@ -342,26 +342,15 @@
"id": "f_oven",
"name": "oven",
"symbol": "#",
"description": "A standard convection-based oven, commonly used for heating and cooking food. You could safely light a fire inside or power it with UPS.",
"description": "A standard convection-based oven, commonly used for heating and cooking food. It can safely contain a fire, although it's not adequately ventilated. You could disconnect it and plug it in to a working power grid, or power it with UPS.",
"color": "dark_gray",
"move_cost_mod": 2,
"coverage": 60,
"required_str": 10,
"flags": [ "PLACE_ITEM", "TRANSPARENT", "FIRE_CONTAINER", "CONTAINER", "BLOCKSDOOR", "MOUNTABLE" ],
"flags": [ "PLACE_ITEM", "TRANSPARENT", "EASY_DECONSTRUCT", "FIRE_CONTAINER", "CONTAINER", "BLOCKSDOOR", "MOUNTABLE" ],
"deconstruct": { "items": [ { "item": "oven", "count": 1 } ] },
"examine_action": "fireplace",
"deconstruct": {
"items": [
{ "item": "sheet_metal", "count": [ 2, 6 ] },
{ "item": "sheet_metal_small", "count": [ 0, 4 ] },
{ "item": "steel_chunk", "count": [ 2, 3 ] },
{ "item": "scrap", "count": [ 2, 6 ] },
{ "item": "element", "count": [ 1, 4 ] },
{ "item": "cable", "charges": [ 1, 3 ] },
{ "item": "pipe_fittings", "count": [ 1, 3 ] },
{ "item": "pilot_light", "count": 1 }
]
},
"max_volume": "40 L",
"max_volume": "120 L",
"bash": {
"str_min": 8,
"str_max": 30,
Expand Down
15 changes: 15 additions & 0 deletions data/json/items/appliances.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,21 @@
}
]
},
{
"type": "GENERIC",
"id": "oven",
"looks_like": "f_oven",
"symbol": "#",
"description": "A disconnected electric convection-based oven, commonly used for heating and cooking food.",
"color": "dark_gray_white",
"name": { "str": "disconnected oven" },
"material": [ "budget_steel" ],
"longest_side": "69 cm",
"insulation": 3,
"volume": "290 L",
"weight": "77 kg",
"pocket_data": [ { "pocket_type": "CONTAINER", "rigid": true, "max_contains_volume": "120 L", "max_contains_weight": "200 kg" } ]
},
{
"type": "TOOL",
"id": "power_cord",
Expand Down
77 changes: 77 additions & 0 deletions data/json/items/resources/appliance_parts.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
[
{
"type": "GENERIC",
"id": "oven_stovetop",
"symbol": "_",
"color": "dark_gray",
"name": { "str": "dismantled stovetop" },
"category": "spare_parts",
"description": "The dismantled stovetop of an electric oven. Some electric components are still attached but the heating elements have been pulled off.",
"price": 100,
"price_postapoc": 5,
"material": [ "budget_steel" ],
"weight": "5 kg",
"volume": "20 L",
"longest_side": "60 cm"
},
{
"type": "GENERIC",
"id": "oven_cabinet",
"symbol": "x",
"color": "dark_gray_white",
"name": { "str": "stripped oven cabinet" },
"category": "spare_parts",
"description": "A large hefty steel box that was once the main body of an electric oven. Most of the parts have been stripped. It could be further disassembled into base materials.",
"price": 200,
"price_postapoc": 10,
"material": [ "budget_steel" ],
"weight": "25 kg",
"volume": "250 L",
"longest_side": "69 cm"
},
{
"type": "GENERIC",
"id": "oven_controls",
"symbol": "#",
"color": "light_cyan",
"name": { "str": "oven control panel" },
"category": "spare_parts",
"description": "The control panel and LCD from a dismantled electric oven.",
"price": 100,
"price_postapoc": 5,
"material": [ "budget_steel", "glass" ],
"weight": "1 kg",
"volume": "2 L",
"longest_side": "65 cm"
},
{
"type": "GENERIC",
"id": "oven_door",
"symbol": "#",
"color": "light_cyan",
"name": { "str": "oven door" },
"category": "spare_parts",
"description": "The removed glass and steel door of an electric oven.",
"price": 100,
"price_postapoc": 5,
"material": [ "budget_steel", "glass" ],
"weight": "10 kg",
"volume": "20 L",
"longest_side": "69 cm"
},
{
"type": "GENERIC",
"id": "oven_broiler_pan",
"symbol": "_",
"color": "dark_gray_white",
"name": { "str": "broiler pan" },
"category": "spare_parts",
"description": "A simple sheet metal drawer that goes in the bottom of an electric oven.",
"price": 50,
"price_postapoc": 1,
"material": [ "budget_steel" ],
"weight": "5 kg",
"volume": "20 L",
"longest_side": "69 cm"
}
]
30 changes: 30 additions & 0 deletions data/json/items/resources/metal.json
Original file line number Diff line number Diff line change
Expand Up @@ -364,5 +364,35 @@
"longest_side": "1572 mm",
"ammo_type": "components",
"count": 1
},
{
"id": "fanblade_metal",
"type": "GENERIC",
"category": "spare_parts",
"name": { "str": "metal fan blade assembly", "str_pl": "metal fan blade assemblies" },
"description": "A multi-bladed metal fan, like you'd find on a larger desk fan or inside a convection oven.",
"weight": "150 g",
"volume": "2 L",
"longest_side": "30 cm",
"price": 50,
"price_postapoc": 10,
"material": [ "budget_steel" ],
"symbol": "*",
"color": "light_gray"
},
{
"id": "heavy_wire_rack",
"type": "GENERIC",
"category": "spare_parts",
"name": { "str": "heavy wire rack" },
"description": "A durable steel rack, the sort you might find in an oven or on a barbecue.",
"weight": "600 g",
"volume": "5 L",
"longest_side": "60 cm",
"price": 50,
"price_postapoc": 10,
"material": [ "steel" ],
"symbol": "#",
"color": "light_gray"
}
]
13 changes: 13 additions & 0 deletions data/json/items/resources/stone.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,18 @@
"bashing": 28,
"to_hit": -2,
"qualities": [ [ "ANVIL", 1 ] ]
},
{
"type": "GENERIC",
"id": "rock_wool_bat",
"symbol": "#",
"color": "brown",
"name": { "str": "fiber insulation bat" },
"//": "I am assuming this is made of rock wool, but it could also be fiberglass. There is almost no practical difference for our purposes.",
"description": "A foil-wrapped bat of fibrous insulation: fire and moisture resistant, used for hot appliances like dishwashers and ovens.",
"category": "spare_parts",
"material": "epoxy",
"weight": "150 g",
"volume": "3 L"
}
]
10 changes: 10 additions & 0 deletions data/json/proficiencies/misc.json
Original file line number Diff line number Diff line change
Expand Up @@ -153,5 +153,15 @@
"description": "You're skilled at clearing obstacles; terrain like railings or counters are as easy for you to move on as solid ground.",
"can_learn": true,
"time_to_learn": "8 h"
},
{
"type": "proficiency",
"id": "prof_appliance_repair",
"name": { "str": "General Appliance Repair" },
"description": "A base knowledge of how to put together and take apart common appliances, diagnose problems, and replace parts.",
"can_learn": true,
"default_time_multiplier": 2,
"default_fail_multiplier": 1.1,
"time_to_learn": "8 h"
}
]
150 changes: 150 additions & 0 deletions data/json/recipes/appliances/oven.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
[
{
"result": "oven",
"type": "recipe",
"category": "CC_OTHER",
"subcategory": "CSC_OTHER_OTHER",
"activity_level": "MODERATE_EXERCISE",
"time": "1 h",
"skill_used": "fabrication",
"difficulty": 1,
"autolearn": true,
"skills_required": [ "electronics", 1 ],
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
"proficiencies": [ { "proficiency": "prof_appliance_repair" } ],
"components": [
[ [ "oven_stovetop", 1 ] ],
[ [ "oven_cabinet", 1 ] ],
[ [ "oven_controls", 1 ] ],
[ [ "oven_door", 1 ] ],
[ [ "oven_broiler_pan", 1 ] ],
[ [ "heavy_wire_rack", 2 ] ],
[ [ "element", 4 ] ],
[ [ "cable", 1 ] ]
]
},
{
"result": "oven",
"type": "uncraft",
"activity_level": "MODERATE_EXERCISE",
"time": "45 m",
"skill_used": "fabrication",
"qualities": [ { "id": "SCREW", "level": 1 }, { "id": "WRENCH", "level": 1 } ],
"proficiencies": [ { "proficiency": "prof_appliance_repair", "fail_multiplier": 1 } ],
"components": [
[ [ "oven_stovetop", 1 ] ],
[ [ "oven_cabinet", 1 ] ],
[ [ "oven_controls", 1 ] ],
[ [ "oven_door", 1 ] ],
[ [ "oven_broiler_pan", 1 ] ],
[ [ "heavy_wire_rack", 2 ] ],
[ [ "element", 4 ] ],
[ [ "cable", 4 ] ]
]
},
{
"result": "oven_stovetop",
"type": "uncraft",
"activity_level": "MODERATE_EXERCISE",
"time": "30 m",
"skill_used": "fabrication",
"proficiencies": [ { "proficiency": "prof_appliance_repair", "fail_multiplier": 1 } ],
"qualities": [
{ "id": "SCREW", "level": 1 },
{ "id": "WRENCH", "level": 1 },
{ "id": "HAMMER", "level": 1 },
{ "id": "SAW_M", "level": 1 }
],
"components": [ [ [ "sheet_metal_small", 2 ] ], [ [ "spring", 1 ] ], [ [ "hinge", 1 ] ], [ [ "wire", 1 ] ], [ [ "e_scrap", 4 ] ] ]
},
{
"result": "oven_cabinet",
"type": "uncraft",
"activity_level": "MODERATE_EXERCISE",
"time": "1 h",
"skill_used": "fabrication",
"proficiencies": [ { "proficiency": "prof_appliance_repair", "fail_multiplier": 1 } ],
"qualities": [
{ "id": "SCREW", "level": 1 },
{ "id": "WRENCH", "level": 1 },
{ "id": "HAMMER", "level": 1 },
{ "id": "SAW_M", "level": 1 }
],
"//": "Pilot lights shouldn't be part of an electric oven but we don't have gas ones yet. Can be removed when that changes.",
"components": [
[ [ "sheet_metal", 2 ] ],
[ [ "sheet_metal_small", 2 ] ],
[ [ "rock_wool_bat", 3 ] ],
[ [ "element", 2 ] ],
[ [ "scrap", 4 ] ],
[ [ "e_scrap", 2 ] ],
[ [ "cable", 2 ] ],
[ [ "pilot_light", 1 ] ],
[ [ "motor_micro", 1 ] ],
[ [ "fanblade_metal", 1 ] ],
[ [ "thermometer", 1 ] ],
[ [ "pipe_fittings", 4 ] ]
]
},
{
"result": "oven_door",
"type": "uncraft",
"activity_level": "MODERATE_EXERCISE",
"time": "1 h",
"skill_used": "fabrication",
"proficiencies": [ { "proficiency": "prof_appliance_repair", "fail_multiplier": 1 } ],
"qualities": [
{ "id": "SCREW", "level": 1 },
{ "id": "WRENCH", "level": 1 },
{ "id": "HAMMER_FINE", "level": 1 },
{ "id": "SAW_M", "level": 1 }
],
"components": [
[ [ "reinforced_glass_sheet", 1 ] ],
[ [ "sheet_metal_small", 2 ] ],
[ [ "rock_wool_bat", 1 ] ],
[ [ "element", 2 ] ],
[ [ "scrap", 4 ] ],
[ [ "e_scrap", 2 ] ],
[ [ "cable", 2 ] ],
[ [ "hinge", 2 ] ]
]
},
{
"result": "oven_broiler_pan",
"type": "uncraft",
"activity_level": "MODERATE_EXERCISE",
"time": "30 m",
"skill_used": "fabrication",
"proficiencies": [ { "proficiency": "prof_appliance_repair", "fail_multiplier": 1 } ],
"qualities": [
{ "id": "SCREW", "level": 1 },
{ "id": "WRENCH", "level": 1 },
{ "id": "HAMMER", "level": 1 },
{ "id": "SAW_M", "level": 1 }
],
"components": [ [ [ "sheet_metal", 1 ] ], [ [ "sheet_metal_small", 2 ] ], [ [ "scrap", 2 ] ], [ [ "bearing", 12 ] ] ]
},
{
"result": "oven_controls",
"type": "uncraft",
"activity_level": "MODERATE_EXERCISE",
"time": "1 h",
"skill_used": "fabrication",
"proficiencies": [
{ "proficiency": "prof_elec_soldering", "fail_multiplier": 1 },
{ "proficiency": "prof_elec_circuits", "fail_multiplier": 1 }
],
"qualities": [ { "id": "SCREW", "level": 1 } ],
"tools": [ [ [ "soldering_iron", -1 ], [ "toolset", -1 ] ] ],
"components": [
[ [ "plastic_chunk", 4 ] ],
[ [ "sheet_metal_small", 1 ] ],
[ [ "scrap", 2 ] ],
[ [ "e_scrap", 6 ] ],
[ [ "cable", 2 ] ],
[ [ "solder_wire", 8 ] ],
[ [ "small_lcd_screen", 1 ] ]
]
}
]
Loading

0 comments on commit 4d22129

Please sign in to comment.