From 3b547864c0ef21c1a580e51803fe706486ed83ae Mon Sep 17 00:00:00 2001 From: curstwist <39442864+curstwist@users.noreply.github.com> Date: Mon, 30 Sep 2019 14:00:12 -0400 Subject: [PATCH] Add fire station basecamp (#34181) * add firestation basecamp * add basecamp functions I think I got them all (except beds) * add construction recipes * add NPC quarters and skylights * don't destroy the winch * Update data/json/recipes/basecamps/recipe_modular_firestation1.json Co-Authored-By: Anton Burmistrov * Update data/json/recipes/basecamps/recipe_modular_firestation1.json Co-Authored-By: Anton Burmistrov * Update data/json/recipes/basecamps/recipe_modular_firestation1.json Co-Authored-By: Anton Burmistrov * Apply suggestions from code review thanks, no more periods in names : ) Co-Authored-By: Anton Burmistrov * update blueprint names, add privacy fence --- data/json/construction.json | 57 +++ .../furniture-appliances.json | 2 + .../basecamps/modular_firestation1.json | 477 +++++++++++++++++ data/json/mapgen/fire_station.json | 14 +- .../json/recipes/basecamps/recipe_groups.json | 5 +- .../recipe_modular_firestation1.json | 481 ++++++++++++++++++ 6 files changed, 1028 insertions(+), 8 deletions(-) create mode 100644 data/json/mapgen/basecamps/modular_firestation1.json create mode 100644 data/json/recipes/basecamps/recipe_modular_firestation1.json diff --git a/data/json/construction.json b/data/json/construction.json index 92c6872925485..782c7853a6d93 100644 --- a/data/json/construction.json +++ b/data/json/construction.json @@ -3031,5 +3031,62 @@ "components": [ [ [ "metal_tank", 2 ] ], [ [ "water_faucet", 2 ] ], [ [ "anvil", 1 ] ], [ [ "chain", 4 ] ], [ [ "pipe", 3 ] ] ], "pre_flags": [ "FLAT" ], "post_terrain": "f_drophammer" + }, + { + "type": "construction", + "skill": "fabrication", + "description": "Build a radio tower.", + "//": "faction camp workshop recipe", + "category": "CONSTRUCT", + "difficulty": 3, + "time": "24h", + "on_display": false, + "qualities": [ + { "id": "HAMMER", "level": 2 }, + { "id": "SAW_M", "level": 1 }, + { "id": "WRENCH", "level": 1 }, + { "id": "SCREW", "level": 1 } + ], + "components": [ + [ + [ "wind_turbine", 4 ], + [ "xl_wind_turbine", 1 ], + [ "solar_panel", 4 ], + [ "reinforced_solar_panel", 4 ], + [ "solar_panel_v2", 2 ], + [ "reinforced_solar_panel_v2", 2 ], + [ "solar_panel_v3", 1 ] + ], + [ [ "storage_battery", 1 ], [ "medium_storage_battery", 4 ], [ "small_storage_battery", 32 ] ], + [ [ "sheet_metal", 2 ], [ "wire", 8 ] ], + [ [ "pipe", 24 ] ] + ], + "pre_flags": [ "FLAT" ], + "post_terrain": "t_radio_tower" + }, + { + "type": "construction", + "skill": "fabrication", + "description": "Build a radio tower console.", + "//": "faction camp workshop recipe", + "category": "CONSTRUCT", + "difficulty": 3, + "time": "24h", + "on_display": false, + "qualities": [ { "id": "SAW_M", "level": 1 }, { "id": "WRENCH", "level": 1 }, { "id": "SCREW", "level": 1 } ], + "components": [ + [ [ "processor", 2 ] ], + [ [ "RAM", 2 ] ], + [ [ "small_lcd_screen", 1 ] ], + [ [ "e_scrap", 8 ] ], + [ [ "frame", 1 ] ], + [ [ "circuit", 4 ] ], + [ [ "power_supply", 2 ] ], + [ [ "amplifier", 2 ] ], + [ [ "cable", 80 ] ], + [ [ "motor_small", 1 ], [ "motor_tiny", 2 ] ] + ], + "pre_flags": [ "FLAT" ], + "post_terrain": "t_radio_controls" } ] diff --git a/data/json/furniture_and_terrain/furniture-appliances.json b/data/json/furniture_and_terrain/furniture-appliances.json index e2545b24cc8e0..9ac35dfd66bbe 100644 --- a/data/json/furniture_and_terrain/furniture-appliances.json +++ b/data/json/furniture_and_terrain/furniture-appliances.json @@ -390,6 +390,7 @@ "symbol": "#", "description": "Used for delivering air to increase the combustion and heat output of a forge. Doesn't look like it's working, although it still has parts.", "color": "dark_gray", + "looks_like": "t_machinery_old", "move_cost_mod": 2, "coverage": 60, "required_str": 10, @@ -423,6 +424,7 @@ "symbol": "#", "description": "Used for fast production of metal items. Doesn't look like it's working, although it still has parts.", "color": "white", + "looks_like": "t_machinery_old", "move_cost_mod": 2, "coverage": 60, "required_str": 10, diff --git a/data/json/mapgen/basecamps/modular_firestation1.json b/data/json/mapgen/basecamps/modular_firestation1.json new file mode 100644 index 0000000000000..56a5ea0a1157a --- /dev/null +++ b/data/json/mapgen/basecamps/modular_firestation1.json @@ -0,0 +1,477 @@ +[ + { + "type": "palette", + "id": "fbmc_firestation1_palette", + "terrain": { + "u": "t_rootcellar", + ".": "t_dirt", + "^": "t_dirtmound", + "|": "t_wall_w", + "d": "t_door_c", + "G": "t_privacy_fencegate_c", + "#": "t_privacy_fence" + }, + "furniture": { + "h": "f_chair", + "t": "f_table", + "c": "f_counter", + "r": "f_rack", + "b": "f_bed", + "L": "f_locker", + "s": "f_sofa", + "C": "f_armchair", + "B": "f_bookcase" + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_0", + "method": "json", + "object": { + "set": [ + { "point": "terrain", "id": "t_floor", "x": 6, "y": 12 }, + { "point": "furniture", "id": "f_bulletin", "x": 6, "y": 12 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "fbmc_firestation1_kitchen1", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + " ", + " ", + " ", + " ", + "t ", + "t t" + ], + "palettes": [ "fbmc_firestation1_palette" ], + "place_furniture": [ + { "furn": "f_null", "x": 0, "y": 2, "chance": 100 }, + { "furn": "f_null", "x": 0, "y": 3, "chance": 100 }, + { "furn": "f_null", "x": 1, "y": 2, "chance": 100 }, + { "furn": "f_null", "x": 1, "y": 3, "chance": 100 }, + { "furn": "f_null", "x": 1, "y": 4, "chance": 100 }, + { "furn": "f_null", "x": 2, "y": 2, "chance": 100 }, + { "furn": "f_null", "x": 2, "y": 3, "chance": 100 }, + { "furn": "f_null", "x": 2, "y": 4, "chance": 100 } + ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_kitchen1_cleared", + "method": "json", + "object": { + "place_nested": [ { "chunks": [ "fbmc_firestation1_kitchen1" ], "x": 1, "y": 9 } ], + "place_loot": [ + { "item": "2x4", "repeat": 24, "x": 2, "y": 10, "chance": 100 }, + { "item": "nail", "charges": 36, "x": 2, "y": 10, "chance": 100 } + ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_fireplace", + "method": "json", + "object": { + "set": [ { "point": "furniture", "id": "f_fireplace", "x": 1, "y": 12 } ], + "place_loot": [ { "item": "pot", "x": 1, "y": 13, "chance": 100 } ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_brazier", + "method": "json", + "object": { "set": [ { "point": "furniture", "id": "f_brazier", "x": 1, "y": 12 } ] } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_stove", + "method": "json", + "object": { "set": [ { "point": "furniture", "id": "f_woodstove", "x": 1, "y": 12 } ] } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_well", + "method": "json", + "object": { "set": [ { "point": "terrain", "id": "t_water_pump", "x": 5, "y": 9 } ] } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_radio_console", + "method": "json", + "object": { + "set": [ + { "point": "terrain", "id": "t_radio_tower", "x": 5, "y": 1 }, + { "point": "terrain", "id": "t_radio_controls", "x": 3, "y": 2 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "fbmc_firestation1_kitchen2", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + " ", + "u ", + "c ", + " r ", + " r ", + " cc " + ], + "palettes": [ "fbmc_firestation1_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "fbmc_firestation1_kitchen3", + "object": { + "mapgensize": [ 6, 6 ], + "place_furniture": [ + { "furn": "f_null", "x": 0, "y": 3, "chance": 100 }, + { "furn": "f_null", "x": 0, "y": 4, "chance": 100 }, + { "furn": "f_null", "x": 2, "y": 1, "chance": 100 }, + { "furn": "f_null", "x": 2, "y": 2, "chance": 100 }, + { "furn": "f_null", "x": 1, "y": 0, "chance": 100 }, + { "furn": "f_null", "x": 0, "y": 0, "chance": 100 }, + { "furn": "f_null", "x": 1, "y": 1, "chance": 100 }, + { "furn": "f_null", "x": 1, "y": 2, "chance": 100 } + ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_kitchen2_storage", + "method": "json", + "object": { + "place_nested": [ + { "chunks": [ "fbmc_firestation1_kitchen3" ], "x": 1, "y": 2 }, + { "chunks": [ "fbmc_firestation1_kitchen2" ], "x": 1, "y": 9 } + ], + "set": [ { "point": "furniture", "id": "f_locker", "x": 17, "y": 21 } ], + "place_loot": [ { "item": "2x4", "repeat": 8, "x": 2, "y": 10, "chance": 100 } ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_smoking_kiln", + "method": "json", + "object": { + "set": [ + { "point": "furniture", "id": "f_smoking_rack", "x": 1, "y": 0 }, + { "point": "furniture", "id": "f_smoking_rack", "x": 3, "y": 0 }, + { "point": "furniture", "id": "f_kiln_empty", "x": 5, "y": 2 } + ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_butchery_rack", + "method": "json", + "object": { + "set": [ + { "point": "furniture", "id": "f_butcher_rack", "x": 1, "y": 5 }, + { "point": "furniture", "id": "f_table", "x": 1, "y": 4 } + ], + "place_loot": [ { "item": "knife_butcher", "x": 1, "y": 4, "chance": 100 } ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_fermenting_vat", + "method": "json", + "object": { + "set": [ + { "point": "furniture", "id": "f_fvat_empty", "x": 1, "y": 2 }, + { "point": "furniture", "id": "f_fvat_empty", "x": 1, "y": 3 } + ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_garage_area", + "method": "json", + "object": { + "place_loot": [ + { "item": "wrench", "x": 8, "y": 21, "chance": 100 }, + { "item": "hacksaw", "x": 8, "y": 21, "chance": 100 }, + { "item": "pliers", "x": 8, "y": 21, "chance": 100 }, + { "item": "screwdriver", "x": 8, "y": 21, "chance": 100 }, + { "item": "hammer", "x": 8, "y": 21, "chance": 100 }, + { "item": "manual_mechanics", "x": 8, "y": 21, "chance": 100 } + ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_forge", + "method": "json", + "object": { + "set": [ { "point": "furniture", "id": "f_forge_rock", "x": 6, "y": 17 } ], + "place_loot": [ { "item": "hammer", "x": 8, "y": 21, "chance": 100 } ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_forge2", + "method": "json", + "object": { + "set": [ { "point": "furniture", "id": "f_anvil", "x": 8, "y": 17 } ], + "place_loot": [ { "item": "crucible", "x": 7, "y": 17, "chance": 100 } ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_forge3", + "method": "json", + "object": { + "set": [ { "point": "furniture", "id": "f_clay_kiln", "x": 6, "y": 19 } ], + "place_loot": [ + { "item": "glassblowing_book", "x": 8, "y": 21, "chance": 100 }, + { "item": "glasses_safety", "x": 8, "y": 21, "chance": 100 }, + { "item": "chemistry_set", "x": 8, "y": 21, "chance": 100 }, + { "item": "pipe", "x": 8, "y": 21, "chance": 100 } + ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_forge4", + "method": "json", + "object": { + "place_loot": [ + { "item": "tongs", "x": 8, "y": 21, "chance": 100 }, + { "item": "chisel", "x": 8, "y": 21, "chance": 100 }, + { "item": "swage", "x": 8, "y": 21, "chance": 100 } + ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_workbench", + "method": "json", + "object": { + "set": [ + { "point": "furniture", "id": "f_workbench", "x": 8, "y": 18 }, + { "point": "furniture", "id": "f_workbench", "x": 8, "y": 19 } + ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_bellows", + "method": "json", + "object": { + "set": [ { "point": "furniture", "id": "f_bellows", "x": 6, "y": 18 } ], + "place_loot": [ + { "item": "30gal_drum", "x": 8, "y": 16, "chance": 100 }, + { "item": "hammer_sledge", "x": 8, "y": 21, "chance": 100 }, + { "item": "knife_combat", "x": 8, "y": 21, "chance": 100 } + ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_drophammer", + "method": "json", + "object": { + "set": [ { "point": "furniture", "id": "f_drophammer", "x": 7, "y": 21 } ], + "place_loot": [ { "item": "wrench", "x": 8, "y": 21, "chance": 100 }, { "item": "pliers", "x": 8, "y": 21, "chance": 100 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "fbmc_firestation1_farm_land", + "object": { + "mapgensize": [ 7, 7 ], + "rows": [ + " ", + " ", + "^^.^.^^", + "^^.^.^^", + "^^.^.^^", + "^^.^.^^", + "^^.^.^^" + ], + "palettes": [ "fbmc_firestation1_palette" ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_farm", + "method": "json", + "object": { + "place_nested": [ { "chunks": [ "fbmc_firestation1_farm_land" ], "x": 7, "y": 0 } ], + "place_loot": [ { "item": "pickaxe", "x": 8, "y": 21, "chance": 100 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "fbmc_firestation1_living_quarters", + "object": { + "mapgensize": [ 13, 13 ], + "rows": [ + " | ", + " | ", + " | ", + " d ", + " | ", + " ||||| ||||", + " | | | ", + " | d d ", + " | | | ", + " ||||| ||||", + " | | | ", + " | d d ", + " | | | " + ], + "palettes": [ "fbmc_firestation1_palette" ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_living_area", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "fbmc_firestation1_living_quarters" ], "x": 10, "y": 9 } ] } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "fbmc_firestation1_living_quarters_SW", + "object": { + "mapgensize": [ 3, 3 ], + "rows": [ + "bbL", + "t ", + "bb " + ], + "palettes": [ "fbmc_firestation1_palette" ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_bedroom_sw", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "fbmc_firestation1_living_quarters_SW" ], "x": 14, "y": 19 } ] } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "fbmc_firestation1_living_quarters_NW", + "object": { + "mapgensize": [ 3, 3 ], + "rows": [ + "bbL", + "t ", + "bbL" + ], + "palettes": [ "fbmc_firestation1_palette" ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_bedroom_nw", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "fbmc_firestation1_living_quarters_NW" ], "x": 14, "y": 15 } ] } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "fbmc_firestation1_living_quarters_NE", + "object": { + "mapgensize": [ 3, 3 ], + "rows": [ + "Lbb", + " t", + "Lbb" + ], + "palettes": [ "fbmc_firestation1_palette" ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_bedroom_ne", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "fbmc_firestation1_living_quarters_NE" ], "x": 20, "y": 15 } ] } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "fbmc_firestation1_living_quarters_SE", + "object": { + "mapgensize": [ 3, 3 ], + "rows": [ + "Lbb", + " t", + " bb" + ], + "palettes": [ "fbmc_firestation1_palette" ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_bedroom_se", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "fbmc_firestation1_living_quarters_SE" ], "x": 20, "y": 19 } ] } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "fbmc_firestation1_garden_fence", + "object": { + "mapgensize": [ 10, 10 ], + "rows": [ + "####G#####", + " #", + " #", + " #", + " #", + " G", + " #", + " ", + " ", + " " + ], + "palettes": [ "fbmc_firestation1_palette" ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_garden_fence1", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "fbmc_firestation1_garden_fence" ], "x": 5, "y": 1 } ] } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "fbmc_firestation1_quarters_common_room", + "object": { + "mapgensize": [ 7, 7 ], + "rows": [ + " ", + "hhh C s", + "ttt s", + "hhh C s", + " BBB", + " ", + " " + ], + "palettes": [ "fbmc_firestation1_palette" ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "fbmc_firestation1_quarters_common", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "fbmc_firestation1_quarters_common_room" ], "x": 16, "y": 9 } ] } + } +] diff --git a/data/json/mapgen/fire_station.json b/data/json/mapgen/fire_station.json index 8abf5750ac0e0..3c1cdeb06efd2 100644 --- a/data/json/mapgen/fire_station.json +++ b/data/json/mapgen/fire_station.json @@ -81,7 +81,7 @@ { "item": "fireman_gear", "x": [ 20, 20 ], "y": [ 21, 21 ], "chance": 70 } ], "place_monsters": [ { "monster": "GROUP_FIRE", "x": [ 2, 21 ], "y": [ 9, 21 ], "chance": 1 } ], - "place_vehicles": [ { "vehicle": "fire_engine", "x": 12, "y": 13, "chance": 30, "rotation": 270 } ] + "place_vehicles": [ { "vehicle": "fire_engine", "x": 11, "y": 13, "chance": 30, "rotation": 270 } ] } }, { @@ -102,15 +102,15 @@ "|...32222222222222222223", "|......................3", "|......................3", + "|.o....................3", + "|.o....................3", + "|.o....................3", "|......................3", "|......................3", "|......................3", - "|......................3", - "|......................3", - "|......................3", - "|......................3", - "|......................3", - "|......................3", + "|......o...o...........3", + "|......o...o...........3", + "|......o...o...........3", "|......................3", "|......................3", "|--------------------5-3", diff --git a/data/json/recipes/basecamps/recipe_groups.json b/data/json/recipes/basecamps/recipe_groups.json index c3d37e28346b2..47ac73871022b 100644 --- a/data/json/recipes/basecamps/recipe_groups.json +++ b/data/json/recipes/basecamps/recipe_groups.json @@ -3,7 +3,10 @@ "type": "recipe_group", "name": "all_faction_base_types", "building_type": "NONE", - "recipes": [ { "id": "faction_base_modular_hub_field_0", "description": "Field Camp", "om_terrains": [ "field" ] } ] + "recipes": [ + { "id": "faction_base_modular_hub_field_0", "description": "Field Camp", "om_terrains": [ "field" ] }, + { "id": "faction_base_firestation_0", "description": "Firestation Base", "om_terrains": [ "fire_station" ] } + ] }, { "type": "recipe_group", diff --git a/data/json/recipes/basecamps/recipe_modular_firestation1.json b/data/json/recipes/basecamps/recipe_modular_firestation1.json new file mode 100644 index 0000000000000..06ba4edd51074 --- /dev/null +++ b/data/json/recipes/basecamps/recipe_modular_firestation1.json @@ -0,0 +1,481 @@ +[ + { + "type": "recipe", + "result": "faction_base_firestation_0", + "description": "We should survey the base site and set up a bulletin board.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "never_learn": true, + "time": "1 h", + "construction_blueprint": "fbmc_firestation1_0", + "blueprint_provides": [ + { "id": "gathering" }, + { "id": "primitive_camp_recipes_1" }, + { "id": "fbmc_firestation1_0" }, + { "id": "firewood" }, + { "id": "foraging" }, + { "id": "sorting" }, + { "id": "logging" } + ], + "blueprint_requires": [ { "id": "not_an_upgrade" } ], + "blueprint_name": "basic survey" + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_kitchen1", + "description": "Now that we have some cover, we should reorganize that dining area into our kitchen.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "autolearn": false, + "never_learn": true, + "time": "1 h", + "construction_blueprint": "fbmc_firestation1_kitchen1_cleared", + "blueprint_name": "prepare the kitchen area", + "blueprint_requires": [ { "id": "fbmc_firestation1_0" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_kitchen" }, { "id": "tool_storage" }, { "id": "bed" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_kitchen" } ], + "blueprint_autocalc": false + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_well", + "description": "We should build a well, put it near that winch. This will make our future here more secure.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_well", + "blueprint_name": "build a well", + "blueprint_requires": [ { "id": "fbmc_firestation1_0" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_well" }, { "id": "relaying" }, { "id": "scouting" }, { "id": "patrolling" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_well" } ], + "blueprint_autocalc": true + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_radio", + "description": "Let's set up a radio tower to improve our recruitment efforts, we'll repurpose that terminal for it.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_radio_console", + "blueprint_name": "build a radio tower and console", + "blueprint_requires": [ { "id": "fbmc_firestation1_well" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_radio" }, { "id": "recruiting" }, { "id": "radio" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_radio" } ], + "blueprint_autocalc": true + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_kitchen2_pantry", + "description": "Now that we have some cover, we should add some storage and a root cellar in our kitchen area.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "autolearn": false, + "never_learn": true, + "time": "2 h", + "construction_blueprint": "fbmc_firestation1_kitchen2_storage", + "blueprint_name": "add storage and root cellar", + "blueprint_requires": [ { "id": "fbmc_firestation1_kitchen" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_kitchen" }, { "id": "pantry" }, { "id": "sorting" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_kitchen", "amount": 2 } ], + "blueprint_autocalc": false, + "components": [ [ [ "rock", 40 ], [ "brick", 40 ] ], [ [ "2x4", 6 ], [ "stick", 6 ] ], [ [ "withered", 12 ], [ "straw_pile", 12 ] ] ] + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_farm", + "description": "Let's break up some pavement so we can farm.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "autolearn": false, + "never_learn": true, + "time": "24 h", + "construction_blueprint": "fbmc_firestation1_farm", + "blueprint_name": "break up driveway", + "blueprint_requires": [ { "id": "fbmc_firestation1_kitchen", "amount": 2 } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_farm" }, { "id": "farming" }, { "id": "reseeding" }, { "id": "farm_recipes_1" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_farm" } ], + "qualities": [ [ { "id": "DIG", "level": 1 } ] ], + "blueprint_autocalc": false, + "blueprint_resources": [ "pickaxe" ], + "components": [ [ [ "pickaxe", 1 ] ] ] + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_fence", + "description": "Let's build a privacy fence around the garden.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_garden_fence1", + "blueprint_name": "build a privacy fence", + "blueprint_requires": [ { "id": "fbmc_firestation1_farm" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_fence" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_fence" } ], + "blueprint_autocalc": true + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation_fireplace", + "description": "Now that we have some cover, we should build a fireplace for cooking and grab a pot. Let's put it in that dining area.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_fireplace", + "blueprint_name": "build a fireplace", + "blueprint_requires": [ { "id": "fbmc_firestation1_kitchen", "amount": 1 } ], + "blueprint_provides": [ + { "id": "fbmc_firestation1_fire" }, + { "id": "trapping" }, + { "id": "hunting" }, + { "id": "kitchen" }, + { "id": "kitchen_recipes_1" } + ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_fire" } ], + "blueprint_resources": [ "fake_fireplace", "pot" ], + "blueprint_autocalc": true, + "components": [ [ [ "pot", 1 ], [ "rock_pot", 1 ], [ "pot_copper", 1 ], [ "clay_pot", 1 ] ] ] + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_brazier", + "description": "Now that we have some cover, we should set up a brazier for cooking, and grab a pot. Let's put it in that dining area.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "never_learn": true, + "time": "5 m", + "construction_blueprint": "fbmc_firestation1_brazier", + "blueprint_name": "build a brazier", + "blueprint_requires": [ { "id": "fbmc_firestation1_kitchen", "amount": 1 } ], + "blueprint_provides": [ + { "id": "fbmc_firestation1_fire" }, + { "id": "trapping" }, + { "id": "hunting" }, + { "id": "kitchen" }, + { "id": "kitchen_recipes_1" } + ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_fire" } ], + "blueprint_resources": [ "fake_fireplace", "pot" ], + "components": [ [ [ "brazier", 1 ] ], [ [ "pot", 1 ], [ "rock_pot", 1 ], [ "pot_copper", 1 ], [ "clay_pot", 1 ] ] ] + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_stove", + "description": "Now that we have some cover, we should build a stove for cooking and grab a pot. Let's put it in that dining area.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_stove", + "blueprint_name": "build a wood stove", + "blueprint_requires": [ { "id": "fbmc_firestation1_kitchen", "amount": 1 } ], + "blueprint_provides": [ + { "id": "fbmc_firestation1_fire" }, + { "id": "trapping" }, + { "id": "hunting" }, + { "id": "kitchen" }, + { "id": "kitchen_recipes_1" } + ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_fire" } ], + "blueprint_resources": [ "fake_fireplace", "pot" ], + "blueprint_autocalc": true, + "components": [ [ [ "pot", 1 ], [ "rock_pot", 1 ], [ "pot_copper", 1 ], [ "clay_pot", 1 ] ] ] + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_smoking", + "description": "Let's build some smokers and a charcoal kiln for food preservation.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_smoking_kiln", + "blueprint_name": "build smoking racks and charcoal kiln", + "blueprint_requires": [ { "id": "fbmc_firestation1_fire" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_smoking" }, { "id": "kitchen_recipes_2" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_smoking" } ], + "blueprint_resources": [ "fake_char_smoker", "fake_char_kiln" ], + "blueprint_autocalc": true + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_butchery", + "description": "Let's make a butchery area.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_butchery_rack", + "blueprint_name": "build butchery area", + "blueprint_requires": [ { "id": "fbmc_firestation1_smoking" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_butchery" }, { "id": "kitchen_recipes_3" }, { "id": "trapping" }, { "id": "hunting" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_butchery" } ], + "blueprint_autocalc": true, + "components": [ [ [ "knife_butcher", 1 ], [ "knife_steak", 1 ], [ "knife_chef", 1 ], [ "knife_carving", 1 ] ] ] + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_vat", + "description": "Let's add a vat for fermenting.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_fermenting_vat", + "blueprint_name": "build fermenting vats", + "blueprint_requires": [ { "id": "fbmc_firestation1_butchery" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_vat" }, { "id": "fermenting" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_vat" } ], + "blueprint_autocalc": true + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_garage1.", + "description": "Let's gather some tools so we can work on cars.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_garage_area", + "blueprint_name": "add tools for garage", + "blueprint_requires": [ { "id": "fbmc_firestation1_0" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_garage" }, { "id": "dismantling" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_garage" } ], + "blueprint_resources": [ "wrench", "hacksaw", "pliers", "hammer", "screwdriver" ], + "blueprint_autocalc": true, + "components": [ + [ [ "wrench", 1 ] ], + [ [ "hacksaw", 1 ] ], + [ [ "pliers", 1 ] ], + [ [ "hammer", 1 ] ], + [ [ "screwdriver", 1 ] ], + [ [ "manual_mechanics", 1 ] ] + ] + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_living_area", + "description": "Let's expand our living areas, we'll use that far vehicle bay.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_living_area", + "blueprint_name": "build the living quarters walls", + "blueprint_requires": [ { "id": "fbmc_firestation1_0" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_quarters" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_quarters" } ], + "blueprint_autocalc": true + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_living_area2", + "description": "Let's furnish the southwest bedroom.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_bedroom_sw", + "blueprint_name": "furnish the SW bedroom", + "blueprint_requires": [ { "id": "fbmc_firestation1_quarters" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_bedroom_sw" }, { "id": "bed" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_bedroom_sw" } ], + "blueprint_autocalc": true + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_living_area3", + "description": "Let's furnish the northwest bedroom.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_bedroom_nw", + "blueprint_name": "furnish the NW bedroom", + "blueprint_requires": [ { "id": "fbmc_firestation1_quarters" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_bedroom_nw" }, { "id": "bed" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_bedroom_nw" } ], + "blueprint_autocalc": true + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_living_area4", + "description": "Let's furnish the southeast bedroom.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_bedroom_se", + "blueprint_name": "furnish the SE bedroom", + "blueprint_requires": [ { "id": "fbmc_firestation1_quarters" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_bedroom_se" }, { "id": "bed" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_bedroom_se" } ], + "blueprint_autocalc": true + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_living_area5", + "description": "Let's furnish the northeast bedroom.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_bedroom_ne", + "blueprint_name": "furnish the NE bedroom", + "blueprint_requires": [ { "id": "fbmc_firestation1_quarters" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_bedroom_ne" }, { "id": "bed" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_bedroom_ne" } ], + "blueprint_autocalc": true + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_living_area6", + "description": "Let's furnish the common area.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_quarters_common", + "blueprint_name": "furnish the common area furniture", + "blueprint_requires": [ { "id": "fbmc_firestation1_quarters" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_quarters_common" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_quarters_common" } ], + "blueprint_autocalc": true + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_forge", + "description": "Let's build a fabrication workshop.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_forge", + "blueprint_name": "build a metalworking forge", + "blueprint_requires": [ { "id": "fbmc_firestation1_smoking" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_forge" }, { "id": "blacksmith_recipes_1" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_forge" } ], + "blueprint_resources": [ "fake_forge", "hammer" ], + "blueprint_autocalc": true, + "components": [ [ [ "hammer", 1 ] ] ] + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_anvil", + "description": "Let's an an anvil and crucible to increase our crafting options.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_forge2", + "blueprint_name": "add an anvil and crucible", + "blueprint_requires": [ { "id": "fbmc_firestation1_forge" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_anvil" }, { "id": "blacksmith_recipes_2" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_anvil" } ], + "blueprint_resources": [ "anvil", "crucible" ], + "blueprint_autocalc": false, + "components": [ [ [ "anvil", 1 ] ], [ [ "crucible", 1 ], [ "crucible_clay", 1 ] ] ] + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_pottery", + "description": "Let's build pottery kiln and get the tools we'll need for glassworking.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_forge3", + "blueprint_name": "build a pottery kiln", + "blueprint_requires": [ { "id": "fbmc_firestation1_anvil" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_pottery" }, { "id": "blacksmith_recipes_3" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_pottery" } ], + "blueprint_resources": [ "anvil", "crucible" ], + "blueprint_autocalc": true, + "components": [ [ [ "glassblowing_book", 1 ] ], [ [ "glasses_safety", 1 ] ], [ [ "chemistry_set", 1 ] ], [ [ "pipe", 1 ] ] ] + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_forgetools", + "description": "We need some tools for metal working.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "never_learn": true, + "time": "20 m", + "construction_blueprint": "fbmc_firestation1_forge4", + "blueprint_name": "place advanced tools", + "blueprint_requires": [ { "id": "fbmc_firestation1_pottery" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_tools" }, { "id": "blacksmith_recipes_4" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_tools" } ], + "blueprint_resources": [ "tongs", "chisel", "hammer", "swage" ], + "blueprint_autocalc": true, + "components": [ [ [ "tongs", 1 ] ], [ [ "chisel", 1 ] ], [ [ "swage", 1 ] ] ] + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_workbench", + "description": "Let's get a nice workbench built to improve our work. Place it next to the anvil.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_workbench", + "blueprint_name": "build a workbench", + "blueprint_requires": [ { "id": "fbmc_firestation1_tools" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_workbench" }, { "id": "blacksmith_recipes_5" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_workbench" } ], + "blueprint_autocalc": true + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_bellows", + "description": "Let's add a bellows and barrel for quenching the steel, we'll need more tools too.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_bellows", + "blueprint_name": "build a bellows and barrel", + "blueprint_requires": [ { "id": "fbmc_firestation1_workbench" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_bellows" }, { "id": "blacksmith_recipes_6" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_bellows" } ], + "blueprint_autocalc": true, + "components": [ [ [ "hammer_sledge", 1 ] ], [ [ "30gal_drum", 1 ] ], [ [ "knife_combat", 1 ], [ "copper_knife", 1 ] ] ] + }, + { + "type": "recipe", + "result": "faction_base_modular_firestation1_drophammer", + "description": "Let's build a drop hammer for some mass production.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "fbmc_firestation1_drophammer", + "blueprint_name": "build a drop hammer.", + "blueprint_requires": [ { "id": "fbmc_firestation1_bellows" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_drophammer" }, { "id": "blacksmith_recipes_7" } ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_drophammer" } ], + "blueprint_resources": [ "wrench", "pliers", "fake_drop_hammer" ], + "blueprint_autocalc": true, + "components": [ [ [ "wrench", 1 ] ], [ [ "pliers", 1 ] ] ] + } +]