From 862ed808453e6f807da1d6af44fff3081a638686 Mon Sep 17 00:00:00 2001 From: I-am-Erk <45136638+I-am-Erk@users.noreply.github.com> Date: Thu, 23 Sep 2021 16:50:29 -0700 Subject: [PATCH] Revert "merge master into branch to enable mission completion (#22)" This reverts commit 7154c2d19aba88132c175d3a48149e8db2d1e68c. --- .lgtm.yml | 1 - Makefile | 14 +- data/json/itemgroups/tools.json | 2 +- data/json/items/fake.json | 4 +- data/json/items/generic.json | 32 -- data/json/items/gun/223.json | 22 +- data/json/items/tool/metalworking.json | 19 +- data/json/items/vehicle/wheel.json | 38 +- .../version_1/primitive_farm.json | 212 --------- .../version_1/primitive_garage.json | 263 ----------- .../version_1/modular_storehouse_common.json | 25 - .../fbmc_fire_lookout_tower_beds.json | 0 .../fbmc_fire_lookout_tower_common.json | 0 .../fbmc_fire_lookout_tower_log.json | 0 .../fbmc_fire_lookout_tower_metal.json | 0 .../fbmc_fire_lookout_tower_migo_resin.json | 0 .../fbmc_fire_lookout_tower_rammed_earth.json | 0 .../fbmc_fire_lookout_tower_rock.json | 0 .../fbmc_fire_lookout_tower_wad.json | 0 .../fbmc_fire_lookout_tower_wood.json | 0 .../fbmc_helipad/fbmc_helipad_common.json | 0 .../fbmc_helipad/fbmc_helipad_garage.json | 0 .../fbmc_lighthouse/fbmc_lighthouse.json | 0 .../fbmc_lightindustry_00.json | 0 .../fbmc_lightindustry_00_beds.json | 0 .../fbmc_lightindustry_10.json | 0 .../fbmc_lightindustry_10_beds.json | 0 .../fbmc_lightindustry_workshop.json | 0 .../fbmc_mansion/fbmc_mansion_+1.json | 0 .../fbmc_mansion/fbmc_mansion_+2.json | 0 .../fbmc_mansion/fbmc_mansion_+3.json | 0 .../fbmc_mansion/fbmc_mansion_+4.json | 0 .../fbmc_mansion/fbmc_mansion_common.json | 0 .../fbmc_mansion/fbmc_mansion_expansion.json | 0 .../fbmc_mansion/fbmc_mansion_overmap.json | 0 .../fbmc_outpost/fbmc_outpost_cross.json | 0 .../fbmc_outpost/fbmc_outpost_normal.json | 0 .../fbmc_pottery_cottage_blacksmith.json | 0 .../fbmc_pottery_cottage_common.json | 0 .../fbmc_radio_tower_beds.json | 0 .../fbmc_radio_tower_common.json | 0 .../fbmc_radio_tower_log.json | 0 .../fbmc_radio_tower_metal.json | 0 .../fbmc_radio_tower_migo_resin.json | 0 .../fbmc_radio_tower_rammed_earth.json | 0 .../fbmc_radio_tower_rock.json | 0 .../fbmc_radio_tower_wad.json | 0 .../fbmc_radio_tower_wood.json | 0 .../fbmc_sealab_small_common.json | 0 .../modular_canteen_common.json | 0 .../modular_canteen_log.json | 0 .../modular_canteen_metal.json | 0 .../modular_canteen_migo_resin.json | 0 .../modular_canteen_rammed_earth.json | 0 .../modular_canteen_rock.json | 0 .../modular_canteen_wad.json | 0 .../modular_canteen_wood.json | 0 .../version_1 => }/modular_field_common.json | 0 .../modular_field_defenses.json | 0 .../version_1 => }/modular_field_log.json | 0 .../version_1 => }/modular_field_metal.json | 0 .../modular_field_migo_resin.json | 0 .../modular_field_rammed_earth.json | 0 .../version_1 => }/modular_field_rock.json | 0 .../version_1 => }/modular_field_tent.json | 0 .../version_1 => }/modular_field_wad.json | 0 .../version_1 => }/modular_field_wood.json | 0 .../modular_firestation1.json | 0 .../modular_firestation_walls_all.json | 0 .../modular_livestock_common.json | 12 +- .../modular_livestock_log.json | 0 .../modular_livestock_metal.json | 0 .../modular_livestock_migo_resin.json | 0 .../modular_livestock_rammed_earth.json | 0 .../modular_livestock_rock.json | 0 .../modular_livestock_wad.json | 0 .../modular_livestock_wood.json | 0 .../modular_saltworks_common.json | 2 +- .../modular_saltworks_log.json | 0 .../modular_saltworks_metal.json | 0 .../modular_saltworks_migo_resin.json | 0 .../modular_saltworks_rammed_earth.json | 0 .../modular_saltworks_rock.json | 0 .../modular_saltworks_wad.json | 0 .../modular_saltworks_wood.json | 0 .../modular_shelter_common.json | 0 .../modular_shelter/modular_shelter_log.json | 0 .../modular_shelter/modular_shelter_rock.json | 0 .../modular_shelter_standard.json | 0 .../modular_shelter/modular_shelter_wad.json | 0 .../modular_shelter/modular_shelter_wood.json | 0 .../modular_shelter_1_common.json | 0 .../modular_shelter_1_log.json | 0 .../modular_shelter_1_rock.json | 0 .../modular_shelter_1_standard.json | 0 .../modular_shelter_1_wad.json | 0 .../modular_shelter_1_wood.json | 0 .../modular_shelter_2_common.json | 0 .../modular_shelter_2_log.json | 0 .../modular_shelter_2_rock.json | 0 .../modular_shelter_2_standard.json | 0 .../modular_shelter_2_wad.json | 0 .../modular_shelter_2_wood.json | 0 .../modular_storehouse_log.json | 0 .../modular_storehouse_metal.json | 0 .../modular_storehouse_migo_resin.json | 0 .../modular_storehouse_rammed_earth.json | 0 .../modular_storehouse_rock.json | 0 .../modular_storehouse_wad.json | 0 .../modular_storehouse_wood.json | 23 + .../modular_workshop_common.json | 6 - .../modular_workshop_log.json | 0 .../modular_workshop_metal.json | 0 .../modular_workshop_migo_resin.json | 0 .../modular_workshop_rammed_earth.json | 0 .../modular_workshop_rock.json | 0 .../modular_workshop_wad.json | 0 .../modular_workshop_wood.json | 0 .../version_1 => }/primitive_field.json | 427 ++++++++++++++++++ data/json/mapgen/bike_shop.json | 2 +- data/json/mapgen/map_extras/scientists.json | 51 --- data/json/monsters/zanimal_upgrade.json | 2 +- data/json/overmap/map_extras.json | 2 +- .../overmap/multitile_city_buildings.json | 2 +- .../modular_firestation_recipe_groups.json | 196 -------- .../modular_shelter_recipe_groups.json | 27 -- .../modular_shelter_1_recipe_groups.json | 27 -- .../modular_shelter_2_recipe_groups.json | 27 -- .../version_1/recipe_primitive_farm.json | 94 ---- .../version_1/recipe_primitive_garage.json | 158 ------- .../recipe_modular_storehouse_common.json | 18 - ...ecipe_modular_fire_lookout_tower_beds.json | 0 ...ipe_modular_fire_lookout_tower_common.json | 0 ...recipe_modular_fire_lookout_tower_log.json | 0 ...cipe_modular_fire_lookout_tower_metal.json | 0 ...modular_fire_lookout_tower_migo_resin.json | 0 ...dular_fire_lookout_tower_rammed_earth.json | 0 ...ecipe_modular_fire_lookout_tower_rock.json | 0 ...recipe_modular_fire_lookout_tower_wad.json | 0 ...ecipe_modular_fire_lookout_tower_wood.json | 0 .../recipe_modular_helipad_common.json | 0 .../recipe_modular_helipad_garage.json | 0 .../recipe_modular_lighthouse_common.json | 0 .../recipe_modular_lightindustry_00.json | 0 .../recipe_modular_lightindustry_00_beds.json | 0 .../recipe_modular_lightindustry_10.json | 0 .../recipe_modular_lightindustry_10_beds.json | 0 ...recipe_modular_lightindustry_workshop.json | 0 .../fbmc_mansion/fbmc_mansion_+1.json | 0 .../fbmc_mansion/fbmc_mansion_+2.json | 0 .../fbmc_mansion/fbmc_mansion_+3.json | 0 .../fbmc_mansion/fbmc_mansion_+4.json | 0 .../fbmc_mansion_expansion_surveys.json | 0 .../recipe_modular_outpost_cross.json | 0 .../recipe_modular_outpost_normal.json | 0 .../recipe_pottery_cottage_blacksmith.json | 0 .../recipe_pottery_cottage_common.json | 0 .../recipe_modular_radio_tower_beds.json | 0 .../recipe_modular_radio_tower_common.json | 0 .../recipe_modular_radio_tower_log.json | 0 .../recipe_modular_radio_tower_metal.json | 0 ...recipe_modular_radio_tower_migo_resin.json | 0 ...cipe_modular_radio_tower_rammed_earth.json | 0 .../recipe_modular_radio_tower_rock.json | 0 .../recipe_modular_radio_tower_wad.json | 0 .../recipe_modular_radio_tower_wood.json | 0 .../recipe_sealab_small_common.json | 0 .../basecamps/legacy_recipe_groups.json | 232 ---------- .../json/recipes/basecamps/recipe_groups.json | 18 +- .../recipe_modular_canteen_common.json | 8 +- .../recipe_modular_canteen_log.json | 0 .../recipe_modular_canteen_metal.json | 0 .../recipe_modular_canteen_migo_resin.json | 0 .../recipe_modular_canteen_rammed_earth.json | 0 .../recipe_modular_canteen_rock.json | 0 .../recipe_modular_canteen_wad.json | 0 .../recipe_modular_canteen_wood.json | 0 .../recipe_modular_field_common.json | 0 .../recipe_modular_field_defenses.json | 0 .../recipe_modular_field_log.json | 0 .../recipe_modular_field_metal.json | 0 .../recipe_modular_field_migo_resin.json | 0 .../recipe_modular_field_rammed_earth.json | 0 .../recipe_modular_field_rock.json | 0 .../recipe_modular_field_tent.json | 0 .../recipe_modular_field_wad.json | 0 .../recipe_modular_field_wood.json | 0 .../recipe_modular_firestation1.json | 38 +- .../recipe_modular_firestation_walls_all.json | 0 .../recipe_modular_livestock_common.json | 2 +- .../recipe_modular_livestock_log.json | 2 +- .../recipe_modular_livestock_metal.json | 2 +- .../recipe_modular_livestock_migo_resin.json | 2 +- ...recipe_modular_livestock_rammed_earth.json | 2 +- .../recipe_modular_livestock_rock.json | 2 +- .../recipe_modular_livestock_wad.json | 2 +- .../recipe_modular_livestock_wood.json | 2 +- .../recipe_modular_saltworks_common.json | 0 .../recipe_modular_saltworks_log.json | 0 .../recipe_modular_saltworks_metal.json | 0 .../recipe_modular_saltworks_migo_resin.json | 0 ...recipe_modular_saltworks_rammed_earth.json | 0 .../recipe_modular_saltworks_stone.json | 0 .../recipe_modular_saltworks_wad.json | 0 .../recipe_modular_saltworks_wood.json | 0 .../recipe_modular_shelter_common.json | 8 +- .../recipe_modular_shelter_log.json | 0 .../recipe_modular_shelter_rock.json | 0 .../recipe_modular_shelter_standard.json | 0 .../recipe_modular_shelter_wad.json | 0 .../recipe_modular_shelter_wood.json | 0 .../recipe_modular_shelter_1_common.json | 8 +- .../recipe_modular_shelter_1_log.json | 0 .../recipe_modular_shelter_1_rock.json | 0 .../recipe_modular_shelter_1_standard.json | 0 .../recipe_modular_shelter_1_wad.json | 0 .../recipe_modular_shelter_1_wood.json | 0 .../recipe_modular_shelter_2_common.json | 8 +- .../recipe_modular_shelter_2_log.json | 0 .../recipe_modular_shelter_2_rock.json | 0 .../recipe_modular_shelter_2_standard.json | 0 .../recipe_modular_shelter_2_wad.json | 0 .../recipe_modular_shelter_2_wood.json | 0 .../recipe_modular_storehouse_log.json | 2 +- .../recipe_modular_storehouse_metal.json | 2 +- .../recipe_modular_storehouse_migo_resin.json | 2 +- ...ecipe_modular_storehouse_rammed_earth.json | 2 +- .../recipe_modular_storehouse_rock.json | 2 +- .../recipe_modular_storehouse_wad.json | 2 +- .../recipe_modular_storehouse_wood.json | 18 +- .../recipe_modular_workshop.rock.json} | 4 +- .../recipe_modular_workshop_common.json | 16 - .../recipe_modular_workshop_log.json | 4 +- .../recipe_modular_workshop_metal.json | 4 +- .../recipe_modular_workshop_migo_resin.json | 4 +- .../recipe_modular_workshop_rammed_earth.json | 4 +- .../recipe_modular_workshop_wad.json | 4 +- .../recipe_modular_workshop_wood.json | 20 +- .../recipe_primitive_field.json | 264 +++++++++++ data/json/recipes/practice/melee.json | 222 --------- data/json/recipes/recipe_others.json | 34 -- data/json/recipes/recipe_vehicle.json | 2 +- data/json/recipes/recipes.json | 3 +- data/json/recipes/tools/tools_hand.json | 21 +- .../json/requirements/cooking_components.json | 1 - data/json/requirements/toolsets.json | 2 +- data/json/snippets/snippets.json | 21 - data/json/vehicleparts/turret.json | 18 - data/mods/Generic_Guns/vehicles/turrets.json | 15 - data/mods/Magiclysm/monsters/goblin.json | 4 +- .../mods/Magiclysm/recipes/blacksmithing.json | 1 - data/mods/Mythos/README.md | 18 - data/mods/Mythos/modinfo.json | 29 -- doc/BASECAMP.md | 14 +- doc/JSON_INFO.md | 1 - doc/MAPGEN.md | 23 - doc/MONSTERS.md | 4 +- doc/NPCs.md | 2 - doc/PLAYER_ACTIVITY.md | 2 - json_blacklist | 1 + src/activity_type.cpp | 1 - src/activity_type.h | 4 - src/character.cpp | 4 +- src/creature.cpp | 12 +- src/debug.cpp | 175 ++----- src/debug_menu.cpp | 12 +- src/dialogue.h | 2 - src/do_turn.cpp | 2 +- src/faction_camp.cpp | 46 +- src/iexamine_actors.cpp | 4 +- src/iexamine_actors.h | 2 +- src/iuse.cpp | 34 +- src/level_cache.h | 3 - src/lightmap.cpp | 1 - src/map_extras.cpp | 35 +- src/mapgen.cpp | 135 +++--- src/mapgen.h | 34 +- src/mapgen_functions.h | 6 +- src/melee.cpp | 1 - src/monexamine.cpp | 6 +- src/monster.cpp | 1 - src/monstergenerator.cpp | 17 +- src/npctalk.cpp | 48 +- src/player_activity.cpp | 5 - src/player_activity.h | 1 - src/recipe.cpp | 16 +- src/recipe.h | 5 +- src/recipe_dictionary.cpp | 5 +- src/sdlsound.cpp | 3 +- src/string_id_null_ids.cpp | 2 - src/trap.cpp | 4 +- src/trap.h | 5 +- src/trapfunc.cpp | 2 +- src/type_id.h | 6 - src/weakpoint.cpp | 58 --- src/weakpoint.h | 12 - 296 files changed, 1086 insertions(+), 2459 deletions(-) delete mode 100644 data/json/mapgen/basecamps/expansion/modular_farm/version_1/primitive_farm.json delete mode 100644 data/json/mapgen/basecamps/expansion/modular_garage/version_1/primitive_garage.json delete mode 100644 data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_common.json rename data/json/mapgen/basecamps/{base => }/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_beds.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_common.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_log.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_metal.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_migo_resin.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_rammed_earth.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_rock.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_wad.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_wood.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_helipad/fbmc_helipad_common.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_helipad/fbmc_helipad_garage.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_lighthouse/fbmc_lighthouse.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_lightindustry/fbmc_lightindustry_00.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_lightindustry/fbmc_lightindustry_00_beds.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_lightindustry/fbmc_lightindustry_10.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_lightindustry/fbmc_lightindustry_10_beds.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_lightindustry/fbmc_lightindustry_workshop.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_mansion/fbmc_mansion_+1.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_mansion/fbmc_mansion_+2.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_mansion/fbmc_mansion_+3.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_mansion/fbmc_mansion_+4.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_mansion/fbmc_mansion_common.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_mansion/fbmc_mansion_expansion.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_mansion/fbmc_mansion_overmap.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_outpost/fbmc_outpost_cross.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_outpost/fbmc_outpost_normal.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_pottery_cottage/fbmc_pottery_cottage_blacksmith.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_pottery_cottage/fbmc_pottery_cottage_common.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_radio_tower/fbmc_radio_tower_beds.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_radio_tower/fbmc_radio_tower_common.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_radio_tower/fbmc_radio_tower_log.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_radio_tower/fbmc_radio_tower_metal.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_radio_tower/fbmc_radio_tower_migo_resin.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_radio_tower/fbmc_radio_tower_rammed_earth.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_radio_tower/fbmc_radio_tower_rock.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_radio_tower/fbmc_radio_tower_wad.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_radio_tower/fbmc_radio_tower_wood.json (100%) rename data/json/mapgen/basecamps/{base => }/fbmc_sealab_small/fbmc_sealab_small_common.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_canteen/version_1 => modular_canteen}/modular_canteen_common.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_canteen/version_1 => modular_canteen}/modular_canteen_log.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_canteen/version_1 => modular_canteen}/modular_canteen_metal.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_canteen/version_1 => modular_canteen}/modular_canteen_migo_resin.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_canteen/version_1 => modular_canteen}/modular_canteen_rammed_earth.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_canteen/version_1 => modular_canteen}/modular_canteen_rock.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_canteen/version_1 => modular_canteen}/modular_canteen_wad.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_canteen/version_1 => modular_canteen}/modular_canteen_wood.json (100%) rename data/json/mapgen/basecamps/{base/modular_hub/version_1 => }/modular_field_common.json (100%) rename data/json/mapgen/basecamps/{base/modular_hub/version_1 => }/modular_field_defenses.json (100%) rename data/json/mapgen/basecamps/{base/modular_hub/version_1 => }/modular_field_log.json (100%) rename data/json/mapgen/basecamps/{base/modular_hub/version_1 => }/modular_field_metal.json (100%) rename data/json/mapgen/basecamps/{base/modular_hub/version_1 => }/modular_field_migo_resin.json (100%) rename data/json/mapgen/basecamps/{base/modular_hub/version_1 => }/modular_field_rammed_earth.json (100%) rename data/json/mapgen/basecamps/{base/modular_hub/version_1 => }/modular_field_rock.json (100%) rename data/json/mapgen/basecamps/{base/modular_hub/version_1 => }/modular_field_tent.json (100%) rename data/json/mapgen/basecamps/{base/modular_hub/version_1 => }/modular_field_wad.json (100%) rename data/json/mapgen/basecamps/{base/modular_hub/version_1 => }/modular_field_wood.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_firestation_1/modular_firestation1.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_firestation_1/modular_firestation_walls_all.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_livestock/version_1 => modular_livestock}/modular_livestock_common.json (99%) rename data/json/mapgen/basecamps/{expansion/modular_livestock/version_1 => modular_livestock}/modular_livestock_log.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_livestock/version_1 => modular_livestock}/modular_livestock_metal.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_livestock/version_1 => modular_livestock}/modular_livestock_migo_resin.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_livestock/version_1 => modular_livestock}/modular_livestock_rammed_earth.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_livestock/version_1 => modular_livestock}/modular_livestock_rock.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_livestock/version_1 => modular_livestock}/modular_livestock_wad.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_livestock/version_1 => modular_livestock}/modular_livestock_wood.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_saltworks/version_1 => modular_saltworks}/modular_saltworks_common.json (96%) rename data/json/mapgen/basecamps/{expansion/modular_saltworks/version_1 => modular_saltworks}/modular_saltworks_log.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_saltworks/version_1 => modular_saltworks}/modular_saltworks_metal.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_saltworks/version_1 => modular_saltworks}/modular_saltworks_migo_resin.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_saltworks/version_1 => modular_saltworks}/modular_saltworks_rammed_earth.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_saltworks/version_1 => modular_saltworks}/modular_saltworks_rock.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_saltworks/version_1 => modular_saltworks}/modular_saltworks_wad.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_saltworks/version_1 => modular_saltworks}/modular_saltworks_wood.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter/modular_shelter_common.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter/modular_shelter_log.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter/modular_shelter_rock.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter/modular_shelter_standard.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter/modular_shelter_wad.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter/modular_shelter_wood.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter_1/modular_shelter_1_common.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter_1/modular_shelter_1_log.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter_1/modular_shelter_1_rock.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter_1/modular_shelter_1_standard.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter_1/modular_shelter_1_wad.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter_1/modular_shelter_1_wood.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter_2/modular_shelter_2_common.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter_2/modular_shelter_2_log.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter_2/modular_shelter_2_rock.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter_2/modular_shelter_2_standard.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter_2/modular_shelter_2_wad.json (100%) rename data/json/mapgen/basecamps/{base => }/modular_shelter_2/modular_shelter_2_wood.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_storehouse/version_1 => modular_storehouse}/modular_storehouse_log.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_storehouse/version_1 => modular_storehouse}/modular_storehouse_metal.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_storehouse/version_1 => modular_storehouse}/modular_storehouse_migo_resin.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_storehouse/version_1 => modular_storehouse}/modular_storehouse_rammed_earth.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_storehouse/version_1 => modular_storehouse}/modular_storehouse_rock.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_storehouse/version_1 => modular_storehouse}/modular_storehouse_wad.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_storehouse/version_1 => modular_storehouse}/modular_storehouse_wood.json (94%) rename data/json/mapgen/basecamps/{expansion/modular_workshop/version_1 => modular_workshop}/modular_workshop_common.json (93%) rename data/json/mapgen/basecamps/{expansion/modular_workshop/version_1 => modular_workshop}/modular_workshop_log.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_workshop/version_1 => modular_workshop}/modular_workshop_metal.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_workshop/version_1 => modular_workshop}/modular_workshop_migo_resin.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_workshop/version_1 => modular_workshop}/modular_workshop_rammed_earth.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_workshop/version_1 => modular_workshop}/modular_workshop_rock.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_workshop/version_1 => modular_workshop}/modular_workshop_wad.json (100%) rename data/json/mapgen/basecamps/{expansion/modular_workshop/version_1 => modular_workshop}/modular_workshop_wood.json (100%) rename data/json/mapgen/basecamps/{base/modular_hub/version_1 => }/primitive_field.json (73%) delete mode 100644 data/json/mapgen/map_extras/scientists.json delete mode 100644 data/json/recipes/basecamps/base/recipe_modular_firestation_1/modular_firestation_recipe_groups.json delete mode 100644 data/json/recipes/basecamps/base/recipe_modular_shelter/modular_shelter_recipe_groups.json delete mode 100644 data/json/recipes/basecamps/base/recipe_modular_shelter_1/modular_shelter_1_recipe_groups.json delete mode 100644 data/json/recipes/basecamps/base/recipe_modular_shelter_2/modular_shelter_2_recipe_groups.json delete mode 100644 data/json/recipes/basecamps/expansion/recipe_modular_farm/version_1/recipe_primitive_farm.json delete mode 100644 data/json/recipes/basecamps/expansion/recipe_modular_garage/version_1/recipe_primitive_garage.json delete mode 100644 data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_common.json rename data/json/recipes/basecamps/{base => }/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_beds.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_common.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_log.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_metal.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_migo_resin.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_rammed_earth.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_rock.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_wad.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_wood.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_helipad/recipe_modular_helipad_common.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_helipad/recipe_modular_helipad_garage.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_lighthouse/recipe_modular_lighthouse_common.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_lightindustry/recipe_modular_lightindustry_00.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_lightindustry/recipe_modular_lightindustry_00_beds.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_lightindustry/recipe_modular_lightindustry_10.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_lightindustry/recipe_modular_lightindustry_10_beds.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_lightindustry/recipe_modular_lightindustry_workshop.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_mansion/fbmc_mansion_+1.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_mansion/fbmc_mansion_+2.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_mansion/fbmc_mansion_+3.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_mansion/fbmc_mansion_+4.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_mansion/fbmc_mansion_expansion_surveys.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_outpost/recipe_modular_outpost_cross.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_outpost/recipe_modular_outpost_normal.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_pottery_cottage/recipe_pottery_cottage_blacksmith.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_pottery_cottage/recipe_pottery_cottage_common.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_radio_tower/recipe_modular_radio_tower_beds.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_radio_tower/recipe_modular_radio_tower_common.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_radio_tower/recipe_modular_radio_tower_log.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_radio_tower/recipe_modular_radio_tower_metal.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_radio_tower/recipe_modular_radio_tower_migo_resin.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_radio_tower/recipe_modular_radio_tower_rammed_earth.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_radio_tower/recipe_modular_radio_tower_rock.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_radio_tower/recipe_modular_radio_tower_wad.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_radio_tower/recipe_modular_radio_tower_wood.json (100%) rename data/json/recipes/basecamps/{base => }/fbmc_sealab_small/recipe_sealab_small_common.json (100%) delete mode 100644 data/json/recipes/basecamps/legacy_recipe_groups.json rename data/json/recipes/basecamps/{expansion/recipe_modular_canteen/version_1 => recipe_modular_canteen}/recipe_modular_canteen_common.json (98%) rename data/json/recipes/basecamps/{expansion/recipe_modular_canteen/version_1 => recipe_modular_canteen}/recipe_modular_canteen_log.json (100%) rename data/json/recipes/basecamps/{expansion/recipe_modular_canteen/version_1 => recipe_modular_canteen}/recipe_modular_canteen_metal.json (100%) rename data/json/recipes/basecamps/{expansion/recipe_modular_canteen/version_1 => recipe_modular_canteen}/recipe_modular_canteen_migo_resin.json (100%) rename data/json/recipes/basecamps/{expansion/recipe_modular_canteen/version_1 => recipe_modular_canteen}/recipe_modular_canteen_rammed_earth.json (100%) rename data/json/recipes/basecamps/{expansion/recipe_modular_canteen/version_1 => recipe_modular_canteen}/recipe_modular_canteen_rock.json (100%) rename data/json/recipes/basecamps/{expansion/recipe_modular_canteen/version_1 => recipe_modular_canteen}/recipe_modular_canteen_wad.json (100%) rename data/json/recipes/basecamps/{expansion/recipe_modular_canteen/version_1 => recipe_modular_canteen}/recipe_modular_canteen_wood.json (100%) rename data/json/recipes/basecamps/{base/recipe_modular_hub/version_1 => }/recipe_modular_field_common.json (100%) rename data/json/recipes/basecamps/{base/recipe_modular_hub/version_1 => }/recipe_modular_field_defenses.json (100%) rename data/json/recipes/basecamps/{base/recipe_modular_hub/version_1 => }/recipe_modular_field_log.json (100%) rename data/json/recipes/basecamps/{base/recipe_modular_hub/version_1 => }/recipe_modular_field_metal.json (100%) rename data/json/recipes/basecamps/{base/recipe_modular_hub/version_1 => }/recipe_modular_field_migo_resin.json (100%) rename data/json/recipes/basecamps/{base/recipe_modular_hub/version_1 => }/recipe_modular_field_rammed_earth.json (100%) rename data/json/recipes/basecamps/{base/recipe_modular_hub/version_1 => }/recipe_modular_field_rock.json (100%) rename data/json/recipes/basecamps/{base/recipe_modular_hub/version_1 => }/recipe_modular_field_tent.json (100%) rename data/json/recipes/basecamps/{base/recipe_modular_hub/version_1 => }/recipe_modular_field_wad.json (100%) rename data/json/recipes/basecamps/{base/recipe_modular_hub/version_1 => }/recipe_modular_field_wood.json (100%) rename data/json/recipes/basecamps/{base => }/recipe_modular_firestation_1/recipe_modular_firestation1.json (95%) rename data/json/recipes/basecamps/{base => }/recipe_modular_firestation_1/recipe_modular_firestation_walls_all.json (100%) rename data/json/recipes/basecamps/{expansion/recipe_modular_livestock/version_1 => recipe_modular_livestock}/recipe_modular_livestock_common.json (99%) rename data/json/recipes/basecamps/{expansion/recipe_modular_livestock/version_1 => recipe_modular_livestock}/recipe_modular_livestock_log.json (98%) rename data/json/recipes/basecamps/{expansion/recipe_modular_livestock/version_1 => recipe_modular_livestock}/recipe_modular_livestock_metal.json (98%) rename data/json/recipes/basecamps/{expansion/recipe_modular_livestock/version_1 => recipe_modular_livestock}/recipe_modular_livestock_migo_resin.json (98%) rename data/json/recipes/basecamps/{expansion/recipe_modular_livestock/version_1 => recipe_modular_livestock}/recipe_modular_livestock_rammed_earth.json (98%) rename data/json/recipes/basecamps/{expansion/recipe_modular_livestock/version_1 => recipe_modular_livestock}/recipe_modular_livestock_rock.json (98%) rename data/json/recipes/basecamps/{expansion/recipe_modular_livestock/version_1 => recipe_modular_livestock}/recipe_modular_livestock_wad.json (98%) rename data/json/recipes/basecamps/{expansion/recipe_modular_livestock/version_1 => recipe_modular_livestock}/recipe_modular_livestock_wood.json (98%) rename data/json/recipes/basecamps/{expansion/recipe_modular_saltworks/version_1 => recipe_modular_saltworks}/recipe_modular_saltworks_common.json (100%) rename data/json/recipes/basecamps/{expansion/recipe_modular_saltworks/version_1 => recipe_modular_saltworks}/recipe_modular_saltworks_log.json (100%) rename data/json/recipes/basecamps/{expansion/recipe_modular_saltworks/version_1 => recipe_modular_saltworks}/recipe_modular_saltworks_metal.json (100%) rename data/json/recipes/basecamps/{expansion/recipe_modular_saltworks/version_1 => recipe_modular_saltworks}/recipe_modular_saltworks_migo_resin.json (100%) rename data/json/recipes/basecamps/{expansion/recipe_modular_saltworks/version_1 => recipe_modular_saltworks}/recipe_modular_saltworks_rammed_earth.json (100%) rename data/json/recipes/basecamps/{expansion/recipe_modular_saltworks/version_1 => recipe_modular_saltworks}/recipe_modular_saltworks_stone.json (100%) rename data/json/recipes/basecamps/{expansion/recipe_modular_saltworks/version_1 => recipe_modular_saltworks}/recipe_modular_saltworks_wad.json (100%) rename data/json/recipes/basecamps/{expansion/recipe_modular_saltworks/version_1 => recipe_modular_saltworks}/recipe_modular_saltworks_wood.json (100%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter/recipe_modular_shelter_common.json (99%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter/recipe_modular_shelter_log.json (100%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter/recipe_modular_shelter_rock.json (100%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter/recipe_modular_shelter_standard.json (100%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter/recipe_modular_shelter_wad.json (100%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter/recipe_modular_shelter_wood.json (100%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter_1/recipe_modular_shelter_1_common.json (99%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter_1/recipe_modular_shelter_1_log.json (100%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter_1/recipe_modular_shelter_1_rock.json (100%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter_1/recipe_modular_shelter_1_standard.json (100%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter_1/recipe_modular_shelter_1_wad.json (100%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter_1/recipe_modular_shelter_1_wood.json (100%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter_2/recipe_modular_shelter_2_common.json (99%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter_2/recipe_modular_shelter_2_log.json (100%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter_2/recipe_modular_shelter_2_rock.json (100%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter_2/recipe_modular_shelter_2_standard.json (100%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter_2/recipe_modular_shelter_2_wad.json (100%) rename data/json/recipes/basecamps/{base => }/recipe_modular_shelter_2/recipe_modular_shelter_2_wood.json (100%) rename data/json/recipes/basecamps/{expansion/recipe_modular_storehouse/version_1 => recipe_modular_storehouse}/recipe_modular_storehouse_log.json (99%) rename data/json/recipes/basecamps/{expansion/recipe_modular_storehouse/version_1 => recipe_modular_storehouse}/recipe_modular_storehouse_metal.json (99%) rename data/json/recipes/basecamps/{expansion/recipe_modular_storehouse/version_1 => recipe_modular_storehouse}/recipe_modular_storehouse_migo_resin.json (99%) rename data/json/recipes/basecamps/{expansion/recipe_modular_storehouse/version_1 => recipe_modular_storehouse}/recipe_modular_storehouse_rammed_earth.json (99%) rename data/json/recipes/basecamps/{expansion/recipe_modular_storehouse/version_1 => recipe_modular_storehouse}/recipe_modular_storehouse_rock.json (99%) rename data/json/recipes/basecamps/{expansion/recipe_modular_storehouse/version_1 => recipe_modular_storehouse}/recipe_modular_storehouse_wad.json (99%) rename data/json/recipes/basecamps/{expansion/recipe_modular_storehouse/version_1 => recipe_modular_storehouse}/recipe_modular_storehouse_wood.json (96%) rename data/json/recipes/basecamps/{expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_rock.json => recipe_modular_workshop/recipe_modular_workshop.rock.json} (99%) rename data/json/recipes/basecamps/{expansion/recipe_modular_workshop/version_1 => recipe_modular_workshop}/recipe_modular_workshop_common.json (88%) rename data/json/recipes/basecamps/{expansion/recipe_modular_workshop/version_1 => recipe_modular_workshop}/recipe_modular_workshop_log.json (99%) rename data/json/recipes/basecamps/{expansion/recipe_modular_workshop/version_1 => recipe_modular_workshop}/recipe_modular_workshop_metal.json (99%) rename data/json/recipes/basecamps/{expansion/recipe_modular_workshop/version_1 => recipe_modular_workshop}/recipe_modular_workshop_migo_resin.json (99%) rename data/json/recipes/basecamps/{expansion/recipe_modular_workshop/version_1 => recipe_modular_workshop}/recipe_modular_workshop_rammed_earth.json (98%) rename data/json/recipes/basecamps/{expansion/recipe_modular_workshop/version_1 => recipe_modular_workshop}/recipe_modular_workshop_wad.json (99%) rename data/json/recipes/basecamps/{expansion/recipe_modular_workshop/version_1 => recipe_modular_workshop}/recipe_modular_workshop_wood.json (93%) rename data/json/recipes/basecamps/{base/recipe_modular_hub/version_1 => }/recipe_primitive_field.json (80%) delete mode 100644 data/json/recipes/practice/melee.json delete mode 100644 data/mods/Mythos/README.md delete mode 100644 data/mods/Mythos/modinfo.json create mode 100644 json_blacklist diff --git a/.lgtm.yml b/.lgtm.yml index 4cf81f4110bad..2a1a34e7805e4 100644 --- a/.lgtm.yml +++ b/.lgtm.yml @@ -1,4 +1,3 @@ # Disable FIXME query, in DDA it is as likely to be a future feature as a bug. queries: - exclude: cpp/fixme-comment - - exclude: cpp/non-constant-format diff --git a/Makefile b/Makefile index 68dcd22d41394..2bec7e60fec88 100644 --- a/Makefile +++ b/Makefile @@ -1149,10 +1149,8 @@ etags: $(ASTYLE_SOURCES) etags $^ ./tools/json_tools/cddatags.py -ASTYLE_CHECK_STAMPS = $(sort $(patsubst %,$(ODIR)/%.astyle-check-stamp,$(ASTYLE_SOURCES))) -astyle: $(ASTYLE_CHECK_STAMPS) -$(ASTYLE_CHECK_STAMPS): $(ODIR)/%.astyle-check-stamp : % - $(ASTYLE_BINARY) --options=.astylerc -n $< && mkdir -p $(@D) && touch $@ +astyle: $(ASTYLE_SOURCES) + $(ASTYLE_BINARY) --options=.astylerc -n $(ASTYLE_SOURCES) # Test whether the system has a version of astyle that supports --dry-run ifeq ($(shell if $(ASTYLE_BINARY) -Q -X --dry-run src/game.h > /dev/null; then echo foo; fi),foo) @@ -1168,12 +1166,10 @@ else @echo Cannot run an astyle check, your system either does not have astyle, or it is too old. endif -JSON_SOURCES := $(shell find data -name "*.json") -JSON_CHECK_STAMPS = $(sort $(patsubst %,$(ODIR)/%,$(JSON_SOURCES:.json=.jstyle-check-stamp))) -style-json : $(JSON_CHECK_STAMPS) $(JSON_FORMATTER_BIN) -$(JSON_CHECK_STAMPS) : $(ODIR)/%.jstyle-check-stamp : %.json $(JSON_FORMATTER_BIN) +style-json: json_blacklist $(JSON_FORMATTER_BIN) ifndef CROSS - $(JSON_FORMATTER_BIN) $< && mkdir -p $(@D) && touch $@ + find data gfx -name "*.json" -print0 | grep -v -z -F -f json_blacklist | \ + xargs -0 -L 1 $(JSON_FORMATTER_BIN) else @echo Cannot run json formatter in cross compiles. endif diff --git a/data/json/itemgroups/tools.json b/data/json/itemgroups/tools.json index dfdf124d38cc7..02b6f38a0bee3 100644 --- a/data/json/itemgroups/tools.json +++ b/data/json/itemgroups/tools.json @@ -10,7 +10,7 @@ [ "swage", 60 ], [ "drift", 70 ], [ "hotcut", 90 ], - [ "metalworking_tongs", 90 ], + [ "tongs", 90 ], [ "hammer", 90 ], [ "sandpaper", 90 ] ] diff --git a/data/json/items/fake.json b/data/json/items/fake.json index 7a94fb32b7a6f..fb8a09f7a2af5 100644 --- a/data/json/items/fake.json +++ b/data/json/items/fake.json @@ -60,12 +60,12 @@ "copy-from": "fake_item", "type": "TOOL", "name": { "str_sp": "autonomous surgical scalpels" }, - "description": "A system of surgical grade scalpels. They allow you to make precise cuts on corpses.", + "description": "A system of surgical grade scalpels. They allow you to make precise cuts and can also be used as a high-quality butchering tool.", "to_hit": 2, "cutting": 8, "techniques": [ "PRECISE" ], "flags": [ "TRADER_AVOID", "NO_UNWIELD", "UNBREAKABLE_MELEE", "SPEAR" ], - "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 5 ], [ "BUTCHER", 14 ] ] + "qualities": [ [ "CUT", 1 ], [ "CUT_FINE", 5 ], [ "BUTCHER", 50 ] ] }, { "id": "fake_razor", diff --git a/data/json/items/generic.json b/data/json/items/generic.json index 0c8d22f55590f..3045c26f52db0 100644 --- a/data/json/items/generic.json +++ b/data/json/items/generic.json @@ -3703,37 +3703,5 @@ "cutting": 4, "to_hit": -3, "flags": [ "TRADER_AVOID", "NO_REPAIR" ] - }, - { - "type": "TOOL", - "id": "training_dummy_light", - "symbol": "@", - "color": "brown", - "name": { "str": "training dummy" }, - "category": "other", - "description": "A hand-made humanoid figure, useful for training in close quarters combat. This one is made from wood and it has some duct tape to mark the striking points.", - "price": 15000, - "price_postapoc": 600, - "material": [ "wood" ], - "weight": "50 kg", - "volume": "80 L", - "bashing": 12, - "to_hit": -2 - }, - { - "type": "TOOL", - "id": "training_dummy_heavy", - "symbol": "@", - "color": "light_gray", - "name": { "str": "armored training dummy" }, - "category": "other", - "description": "A hand-made humanoid figure, useful for training in close quarters combat. This one is covered in scrap armor and looks on guard.", - "price": 15000, - "price_postapoc": 1000, - "material": [ "steel", "wood" ], - "weight": "55 kg", - "volume": "80 L", - "bashing": 14, - "to_hit": -2 } ] diff --git a/data/json/items/gun/223.json b/data/json/items/gun/223.json index c0d9866a2981f..6c0db4a7b3208 100644 --- a/data/json/items/gun/223.json +++ b/data/json/items/gun/223.json @@ -527,36 +527,22 @@ "id": "m231pfw", "copy-from": "m16a4", "type": "GUN", - "name": { "str": "M16 firing port gun" }, - "description": "The M16 firing port gun is an M16 rifle modified to fire with an open-bolt design at ludicrous speeds, without sights. It has a threaded handguard to screw into an armored vehicle's firing ports. It is chambered in 5.56x45mm and accepts STANAG magazines.", + "name": { "str": "M16 open-bolt rifle" }, + "description": "The M16 open-bolt rifle is an M16 rifle modified to fire with an open-bolt design. This makes the rifle fire at much higher speeds than most other assault rifles, but at the cost of accuracy. It is chambered in 5.56x45mm and accepts STANAG magazines.", "weight": "3330 g", "volume": "2400 ml", "longest_side": "727 mm", - "price": 3450000, + "price": 90000, "price_postapoc": 3500, "variant_type": "gun", "variants": [ { "id": "m231pfw", "name": { "str": "M231 port firing weapon" }, - "description": "The M231 PFW is an adaptation of the M16 assault rifle, designed to be used in the firing ports of the M2 Bradley Infantry Fighting Vehicle. It does not have a buttstock or front sight post, and the smooth front hand guard does nothing to protect you from the potentially scorching hot barrel collar, making it slighly less than ergonomic. You could screw it into a firing port if you were so inclined. The fire selector says only 'SAFE' and 'AUTO'. You can't help but wonder which one is preferable." + "description": "The M231 PFW is an adaptation of the M16 assault rifle, designed to be used in the firing ports of the M2 Bradley Infantry Fighting Vehicle. It does not have a buttstock or front sight post, and the smooth front hand guard makes it slighly less ergonomic. It fires from an open bolt. The fire selector says only 'SAFE' and 'AUTO'. You can't help but wonder which one is preferable." } ], "dispersion": 350, - "sight_dispersion": 500, - "valid_mod_locations": [ - [ "accessories", 4 ], - [ "barrel", 1 ], - [ "bore", 1 ], - [ "brass catcher", 1 ], - [ "mechanism", 4 ], - [ "magazine", 1 ], - [ "muzzle", 1 ], - [ "rail mount", 2 ], - [ "sights mount", 1 ], - [ "stock mount", 1 ], - [ "underbarrel mount", 1 ] - ], "//": "This weapon has an extremely high rate of fire, due to the open bolt design. This is based on a cyclic rate of fire of 1150 RPM, which is close to 19 rounds per second. 6 rounds is comparable to to other weapons with similar rates, such as the MAC-11.", "modes": [ [ "DEFAULT", "auto", 6 ] ] }, diff --git a/data/json/items/tool/metalworking.json b/data/json/items/tool/metalworking.json index 84433943bd485..91f3f8cd7d463 100644 --- a/data/json/items/tool/metalworking.json +++ b/data/json/items/tool/metalworking.json @@ -293,7 +293,7 @@ "id": "tongs", "type": "TOOL", "name": { "str": "pair of metal tongs", "str_pl": "pairs of metal tongs" }, - "description": "These are long, metal tongs. They are commonly used for cooking.", + "description": "These are long, metal tongs. They are commonly used for cooking or in metalworking fabrication recipes.", "weight": "540 g", "volume": "500 ml", "price": 1600, @@ -306,23 +306,6 @@ "use_action": [ "HEAT_FOOD" ], "flags": [ "BELT_CLIP", "ALLOWS_REMOTE_USE" ] }, - { - "id": "metalworking_tongs", - "type": "TOOL", - "name": { "str": "pair of flatjaw tongs", "str_pl": "pairs of flatjaw tongs" }, - "description": "These are a pair of flatjaw tongs. They are commonly used for metalworking, fabrication or forging recipes.", - "weight": "750 g", - "volume": "500 ml", - "price": 1600, - "price_postapoc": 10, - "bashing": 6, - "material": [ "steel" ], - "symbol": ";", - "color": "light_gray", - "qualities": [ [ "COOK", 1 ] ], - "use_action": [ "HEAT_FOOD" ], - "flags": [ "BELT_CLIP", "ALLOWS_REMOTE_USE" ] - }, { "id": "sandpaper", "type": "TOOL", diff --git a/data/json/items/vehicle/wheel.json b/data/json/items/vehicle/wheel.json index a1fbb59cadfda..47550bf6e0d87 100644 --- a/data/json/items/vehicle/wheel.json +++ b/data/json/items/vehicle/wheel.json @@ -70,10 +70,10 @@ "name": { "str": "medium steel rim" }, "description": "A medium size steel rim for a car tire.", "weight": "5245 g", - "volume": "28 L", + "volume": "4 L", "bashing": 8, "to_hit": -4, - "longest_side": "432 mm", + "longest_side": "254 mm", "price": 5000, "price_postapoc": 500, "material": [ "steel" ], @@ -87,10 +87,10 @@ "name": { "str": "steel motorbike rim" }, "description": "A steel rim for a motorbike tire.", "weight": "3000 g", - "volume": "12 L", + "volume": "4 L", "bashing": 8, "to_hit": -4, - "longest_side": "508 mm", + "longest_side": "254 mm", "price": 5000, "price_postapoc": 500, "material": [ "steel" ], @@ -104,10 +104,10 @@ "name": { "str": "wide steel rim" }, "description": "A wide steel rim for a larger tire.", "weight": "7600 g", - "volume": "70 L", + "volume": "7500 ml", "bashing": 10, "to_hit": -4, - "longest_side": "610 mm", + "longest_side": "254 mm", "price": 5000, "price_postapoc": 500, "material": [ "steel" ], @@ -119,12 +119,12 @@ "type": "GENERIC", "category": "veh_parts", "name": { "str": "bicycle rim" }, - "description": "A large spoked rim for a bicycle tire.", + "description": "A spoked rim for a bicycle tire.", "weight": "750 g", - "volume": "11 L", + "volume": "5 L", "bashing": 6, "to_hit": -2, - "longest_side": "686 mm", + "longest_side": "254 mm", "price": 5000, "price_postapoc": 500, "material": [ "steel" ], @@ -256,7 +256,7 @@ "name": { "str": "deflated 17\" wheel" }, "description": "A car wheel. It is currently deflated and will need to be inflated to be used on a vehicle.", "weight": "8845 g", - "volume": "28 L", + "volume": "10 L", "longest_side": "432 mm", "price": 10000, "price_postapoc": 750, @@ -274,7 +274,7 @@ "name": { "str": "deflated 16\" racing wheel" }, "description": "A wide, smooth wheel intended for racing. It is currently deflated and will need to be inflated to be used on a vehicle.", "weight": "12600 g", - "volume": "28 L", + "volume": "13750 ml", "longest_side": "407 mm", "price": 24000, "price_postapoc": 500, @@ -291,7 +291,7 @@ "name": { "str": "deflated 16\" motorbike wheel" }, "description": "A motorbike wheel. It is currently deflated and will need to be inflated to be used on a vehicle.", "weight": "5443 g", - "volume": "12 L", + "volume": "8250 ml", "longest_side": "407 mm", "price": 14000, "price_postapoc": 500, @@ -316,7 +316,7 @@ "name": { "str": "deflated 24\" wide wheel" }, "description": "A wide wheel. \\o/ This wide. It is currently deflated and will need to be inflated to be used on a vehicle.", "weight": "22600 g", - "volume": "70 L", + "volume": "17500 ml", "longest_side": "610 mm", "price": 34000, "price_postapoc": 750, @@ -340,7 +340,7 @@ "name": { "str": "deflated 27\" bicycle wheel" }, "description": "A bicycle wheel. It is currently deflated and will need to be inflated to be used on a vehicle.", "weight": "1500 g", - "volume": "11 L", + "volume": "7 L", "longest_side": "686 mm", "price": 4000, "price_postapoc": 250, @@ -364,7 +364,7 @@ "name": { "str": "wheel" }, "description": "A car wheel.", "weight": "8845 g", - "volume": "28 L", + "volume": "10 L", "longest_side": "432 mm", "price": 10000, "price_postapoc": 750, @@ -383,7 +383,7 @@ "name": { "str": "racing wheel" }, "description": "A wide, smooth wheel intended for racing. The slick surface provides better speed on pavement but penalizes off-road speed.", "weight": "12600 g", - "volume": "28 L", + "volume": "13750 ml", "longest_side": "407 mm", "price": 24000, "price_postapoc": 500, @@ -440,7 +440,7 @@ "name": { "str": "bicycle wheel" }, "description": "A bicycle wheel.", "weight": "1500 g", - "volume": "11 L", + "volume": "7 L", "longest_side": "686 mm", "price": 4000, "price_postapoc": 250, @@ -556,7 +556,7 @@ "name": { "str": "motorbike wheel" }, "description": "A motorbike wheel.", "weight": "5443 g", - "volume": "12 L", + "volume": "8250 ml", "longest_side": "407 mm", "price": 14000, "price_postapoc": 500, @@ -679,7 +679,7 @@ "name": { "str": "wide wheel" }, "description": "A wide wheel. \\o/ This wide.", "weight": "22600 g", - "volume": "70 L", + "volume": "17500 ml", "longest_side": "610 mm", "price": 34000, "price_postapoc": 750, diff --git a/data/json/mapgen/basecamps/expansion/modular_farm/version_1/primitive_farm.json b/data/json/mapgen/basecamps/expansion/modular_farm/version_1/primitive_farm.json deleted file mode 100644 index 6fb4ef99f17f0..0000000000000 --- a/data/json/mapgen/basecamps/expansion/modular_farm/version_1/primitive_farm.json +++ /dev/null @@ -1,212 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "fbmf_0", - "object": { - "mapgensize": [ 6, 6 ], - "rows": [ - " ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "acidia_camp_palette" ] - } - }, - { - "type": "mapgen", - "update_mapgen_id": "faction_base_farm_0", - "method": "json", - "object": { "place_nested": [ { "chunks": [ "fbmf_0" ], "x": 10, "y": 10 } ] } - }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "bc_prim_farm_long_fields", - "object": { - "mapgensize": [ 6, 6 ], - "rows": [ - " ", - "mmmmmm", - "mmmmmm", - " ", - " ", - " " - ], - "palettes": [ "acidia_camp_palette" ] - } - }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "bc_prim_farm_short_fields", - "object": { "mapgensize": [ 2, 2 ], "rows": [ - "mm", - "mm" - ], "palettes": [ "acidia_camp_palette" ] } - }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "bc_prim_farm_0", - "object": { - "mapgensize": [ 13, 13 ], - "rows": [ - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " U___U ", - " _____ ", - " _____ ", - " _____ ", - " _____ ", - " " - ], - "palettes": [ "acidia_camp_palette" ] - } - }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "bc_prim_farm_2", - "object": { - "mapgensize": [ 13, 13 ], - "rows": [ - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " *,,,* ", - " ,''', ", - " ,''H, ", - " *'HH* ", - " ***** ", - " " - ], - "palettes": [ "acidia_camp_palette" ] - } - }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "bc_prim_farm_3", - "object": { - "mapgensize": [ 13, 13 ], - "rows": [ - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " *+* ", - " * * ", - " * * ", - " ", - " ", - " " - ], - "palettes": [ "acidia_camp_palette" ] - } - }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "bc_prim_farm_4", - "object": { - "mapgensize": [ 13, 13 ], - "rows": [ - " ", - " ", - " ", - " ", - " ", - " ", - " ***+** ", - " *c''u ", - " wc''' ", - " *c'cc ", - " wc''' ", - " *c'cc ", - " ****** " - ], - "palettes": [ "acidia_camp_palette" ] - } - }, - { - "type": "mapgen", - "update_mapgen_id": "fbmf_1", - "method": "json", - "object": { "place_nested": [ { "chunks": [ "bc_prim_farm_0" ], "x": 1, "y": 10 } ] } - }, - { - "type": "mapgen", - "update_mapgen_id": "faction_base_field_camp_farm_1", - "method": "json", - "object": { - "place_nested": [ - { "chunks": [ "bc_prim_farm_long_fields" ], "x": 1, "y": 0 }, - { "chunks": [ "bc_prim_farm_long_fields" ], "x": 9, "y": 0 }, - { "chunks": [ "bc_prim_farm_long_fields" ], "x": 17, "y": 0 }, - { "chunks": [ "bc_prim_farm_long_fields" ], "x": 1, "y": 3 }, - { "chunks": [ "bc_prim_farm_long_fields" ], "x": 9, "y": 3 }, - { "chunks": [ "bc_prim_farm_long_fields" ], "x": 17, "y": 3 }, - { "chunks": [ "bc_prim_farm_long_fields" ], "x": 1, "y": 6 }, - { "chunks": [ "bc_prim_farm_long_fields" ], "x": 9, "y": 6 }, - { "chunks": [ "bc_prim_farm_long_fields" ], "x": 17, "y": 6 } - ] - } - }, - { - "type": "mapgen", - "update_mapgen_id": "faction_base_field_camp_farm_2", - "method": "json", - "object": { - "place_nested": [ - { "chunks": [ "bc_prim_farm_2" ], "x": 1, "y": 10 }, - { "chunks": [ "bc_prim_farm_long_fields" ], "x": 1, "y": 6 }, - { "chunks": [ "bc_prim_farm_long_fields" ], "x": 9, "y": 6 }, - { "chunks": [ "bc_prim_farm_long_fields" ], "x": 17, "y": 6 } - ] - } - }, - { - "type": "mapgen", - "update_mapgen_id": "faction_base_field_camp_farm_3", - "method": "json", - "object": { - "place_nested": [ - { "chunks": [ "bc_prim_farm_3" ], "x": 1, "y": 10 }, - { "chunks": [ "bc_prim_farm_short_fields" ], "x": 15, "y": 14 }, - { "chunks": [ "bc_prim_farm_short_fields" ], "x": 18, "y": 14 }, - { "chunks": [ "bc_prim_farm_short_fields" ], "x": 21, "y": 14 }, - { "chunks": [ "bc_prim_farm_short_fields" ], "x": 15, "y": 16 }, - { "chunks": [ "bc_prim_farm_short_fields" ], "x": 18, "y": 16 }, - { "chunks": [ "bc_prim_farm_short_fields" ], "x": 21, "y": 16 }, - { "chunks": [ "bc_prim_farm_short_fields" ], "x": 15, "y": 18 }, - { "chunks": [ "bc_prim_farm_short_fields" ], "x": 18, "y": 18 }, - { "chunks": [ "bc_prim_farm_short_fields" ], "x": 21, "y": 18 }, - { "chunks": [ "bc_prim_farm_short_fields" ], "x": 15, "y": 20 }, - { "chunks": [ "bc_prim_farm_short_fields" ], "x": 18, "y": 20 }, - { "chunks": [ "bc_prim_farm_short_fields" ], "x": 21, "y": 20 } - ] - } - }, - { - "type": "mapgen", - "update_mapgen_id": "faction_base_field_camp_farm_4", - "method": "json", - "object": { "place_nested": [ { "chunks": [ "bc_prim_farm_4" ], "x": 1, "y": 10 } ] } - } -] diff --git a/data/json/mapgen/basecamps/expansion/modular_garage/version_1/primitive_garage.json b/data/json/mapgen/basecamps/expansion/modular_garage/version_1/primitive_garage.json deleted file mode 100644 index 6ff4e8c8712f5..0000000000000 --- a/data/json/mapgen/basecamps/expansion/modular_garage/version_1/primitive_garage.json +++ /dev/null @@ -1,263 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "fbmg_0", - "object": { - "mapgensize": [ 6, 6 ], - "rows": [ - " ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "acidia_camp_palette" ] - } - }, - { - "type": "mapgen", - "update_mapgen_id": "faction_base_garage_0", - "method": "json", - "object": { "place_nested": [ { "chunks": [ "fbmg_0" ], "x": 10, "y": 10 } ] } - }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "bc_prim_garage_0", - "object": { - "mapgensize": [ 17, 17 ], - "rows": [ - "_____ ", - "_________________", - "_________________", - "_________________", - "____UU___________", - "____U____________", - "_________________", - " _____________", - " _____________", - " _____________", - " U____________", - " UU___________", - " _____________", - " _____________", - " _____________", - " ", - " " - ], - "palettes": [ "acidia_camp_palette" ] - } - }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "bc_prim_garage_1", - "object": { - "mapgensize": [ 17, 17 ], - "rows": [ - " ", - " ", - " ", - " ", - " *** ", - " *r' ", - " *r' ", - " *c' ", - " *c' ", - " *'' ", - " *'' ", - " *** ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "acidia_camp_palette" ] - } - }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "bc_prim_garage_2", - "object": { - "mapgensize": [ 17, 17 ], - "rows": [ - " ", - " ", - " ", - " ", - " ***", - " ''*", - " '''", - " ''*", - " ''*", - " '''", - " ''*", - " ***", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "acidia_camp_palette" ] - } - }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "bc_prim_garage_3", - "object": { - "mapgensize": [ 17, 17 ], - "rows": [ - " ", - " ", - " ", - " ", - " ''''''' ", - " ''''''' ", - " ''''''' ", - " ''''''' ", - " ''''''' ", - " ''''''' ", - " ''''''' ", - " ''''''' ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "acidia_camp_palette" ] - } - }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "bc_prim_garage_4", - "object": { - "mapgensize": [ 17, 17 ], - "rows": [ - " ", - " *** ***", - " * *", - " ", - " ", - " ", - " ", - " '", - " '", - " ", - " ", - " ", - " ", - " * *", - " *** ***", - " ", - " " - ], - "palettes": [ "acidia_camp_palette" ] - } - }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "bc_prim_garage_5", - "object": { - "mapgensize": [ 17, 17 ], - "rows": [ - " ", - " ''''''' ", - " ''''''''''3 ", - " '''''''''''''", - " '' '''", - " ", - " ", - " ", - " ", - " r ", - " r ", - " '' '''", - " '''''''''''''", - " ''''''''''' ", - " ''''''' ", - " ", - " " - ], - "palettes": [ "acidia_camp_palette" ] - } - }, - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "bc_prim_garage_6", - "object": { - "mapgensize": [ 17, 17 ], - "rows": [ - "***** ", - "*'bb ", - "*''' ", - "*'''+ ", - "*((' ", - "*ttr ", - "**** ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "acidia_camp_palette" ] - } - }, - { - "type": "mapgen", - "update_mapgen_id": "fbmg_1", - "method": "json", - "object": { "place_nested": [ { "chunks": [ "bc_prim_garage_0" ], "x": 2, "y": 6 } ] } - }, - { - "type": "mapgen", - "update_mapgen_id": "faction_base_field_camp_garage_1", - "method": "json", - "object": { "place_nested": [ { "chunks": [ "bc_prim_garage_1" ], "x": 2, "y": 6 } ] } - }, - { - "type": "mapgen", - "update_mapgen_id": "faction_base_field_camp_garage_2", - "method": "json", - "object": { "place_nested": [ { "chunks": [ "bc_prim_garage_2" ], "x": 2, "y": 6 } ] } - }, - { - "type": "mapgen", - "update_mapgen_id": "faction_base_field_camp_garage_3", - "method": "json", - "object": { "place_nested": [ { "chunks": [ "bc_prim_garage_3" ], "x": 2, "y": 6 } ] } - }, - { - "type": "mapgen", - "update_mapgen_id": "faction_base_field_camp_garage_4", - "method": "json", - "object": { "place_nested": [ { "chunks": [ "bc_prim_garage_4" ], "x": 2, "y": 6 } ] } - }, - { - "type": "mapgen", - "update_mapgen_id": "faction_base_field_camp_garage_5", - "method": "json", - "object": { "place_nested": [ { "chunks": [ "bc_prim_garage_5" ], "x": 2, "y": 6 } ] } - }, - { - "type": "mapgen", - "update_mapgen_id": "faction_base_field_camp_garage_6", - "method": "json", - "object": { "place_nested": [ { "chunks": [ "bc_prim_garage_6" ], "x": 2, "y": 6 } ] } - } -] diff --git a/data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_common.json b/data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_common.json deleted file mode 100644 index 9cc50cba1e3c6..0000000000000 --- a/data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_common.json +++ /dev/null @@ -1,25 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "fbms_0", - "object": { - "mapgensize": [ 6, 6 ], - "rows": [ - " ", - " ", - " ", - " ", - " ", - " " - ], - "palettes": [ "fbms_wood_palette" ] - } - }, - { - "type": "mapgen", - "update_mapgen_id": "faction_base_storehouse_0", - "method": "json", - "object": { "place_nested": [ { "chunks": [ "fbms_0" ], "x": 10, "y": 10 } ] } - } -] diff --git a/data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_beds.json b/data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_beds.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_beds.json rename to data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_beds.json diff --git a/data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_common.json b/data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_common.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_common.json rename to data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_common.json diff --git a/data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_log.json b/data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_log.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_log.json rename to data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_log.json diff --git a/data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_metal.json b/data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_metal.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_metal.json rename to data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_metal.json diff --git a/data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_migo_resin.json b/data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_migo_resin.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_migo_resin.json rename to data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_migo_resin.json diff --git a/data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_rammed_earth.json b/data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_rammed_earth.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_rammed_earth.json rename to data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_rammed_earth.json diff --git a/data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_rock.json b/data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_rock.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_rock.json rename to data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_rock.json diff --git a/data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_wad.json b/data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_wad.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_wad.json rename to data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_wad.json diff --git a/data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_wood.json b/data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_wood.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_wood.json rename to data/json/mapgen/basecamps/fbmc_fire_lookout_tower/fbmc_fire_lookout_tower_wood.json diff --git a/data/json/mapgen/basecamps/base/fbmc_helipad/fbmc_helipad_common.json b/data/json/mapgen/basecamps/fbmc_helipad/fbmc_helipad_common.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_helipad/fbmc_helipad_common.json rename to data/json/mapgen/basecamps/fbmc_helipad/fbmc_helipad_common.json diff --git a/data/json/mapgen/basecamps/base/fbmc_helipad/fbmc_helipad_garage.json b/data/json/mapgen/basecamps/fbmc_helipad/fbmc_helipad_garage.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_helipad/fbmc_helipad_garage.json rename to data/json/mapgen/basecamps/fbmc_helipad/fbmc_helipad_garage.json diff --git a/data/json/mapgen/basecamps/base/fbmc_lighthouse/fbmc_lighthouse.json b/data/json/mapgen/basecamps/fbmc_lighthouse/fbmc_lighthouse.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_lighthouse/fbmc_lighthouse.json rename to data/json/mapgen/basecamps/fbmc_lighthouse/fbmc_lighthouse.json diff --git a/data/json/mapgen/basecamps/base/fbmc_lightindustry/fbmc_lightindustry_00.json b/data/json/mapgen/basecamps/fbmc_lightindustry/fbmc_lightindustry_00.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_lightindustry/fbmc_lightindustry_00.json rename to data/json/mapgen/basecamps/fbmc_lightindustry/fbmc_lightindustry_00.json diff --git a/data/json/mapgen/basecamps/base/fbmc_lightindustry/fbmc_lightindustry_00_beds.json b/data/json/mapgen/basecamps/fbmc_lightindustry/fbmc_lightindustry_00_beds.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_lightindustry/fbmc_lightindustry_00_beds.json rename to data/json/mapgen/basecamps/fbmc_lightindustry/fbmc_lightindustry_00_beds.json diff --git a/data/json/mapgen/basecamps/base/fbmc_lightindustry/fbmc_lightindustry_10.json b/data/json/mapgen/basecamps/fbmc_lightindustry/fbmc_lightindustry_10.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_lightindustry/fbmc_lightindustry_10.json rename to data/json/mapgen/basecamps/fbmc_lightindustry/fbmc_lightindustry_10.json diff --git a/data/json/mapgen/basecamps/base/fbmc_lightindustry/fbmc_lightindustry_10_beds.json b/data/json/mapgen/basecamps/fbmc_lightindustry/fbmc_lightindustry_10_beds.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_lightindustry/fbmc_lightindustry_10_beds.json rename to data/json/mapgen/basecamps/fbmc_lightindustry/fbmc_lightindustry_10_beds.json diff --git a/data/json/mapgen/basecamps/base/fbmc_lightindustry/fbmc_lightindustry_workshop.json b/data/json/mapgen/basecamps/fbmc_lightindustry/fbmc_lightindustry_workshop.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_lightindustry/fbmc_lightindustry_workshop.json rename to data/json/mapgen/basecamps/fbmc_lightindustry/fbmc_lightindustry_workshop.json diff --git a/data/json/mapgen/basecamps/base/fbmc_mansion/fbmc_mansion_+1.json b/data/json/mapgen/basecamps/fbmc_mansion/fbmc_mansion_+1.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_mansion/fbmc_mansion_+1.json rename to data/json/mapgen/basecamps/fbmc_mansion/fbmc_mansion_+1.json diff --git a/data/json/mapgen/basecamps/base/fbmc_mansion/fbmc_mansion_+2.json b/data/json/mapgen/basecamps/fbmc_mansion/fbmc_mansion_+2.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_mansion/fbmc_mansion_+2.json rename to data/json/mapgen/basecamps/fbmc_mansion/fbmc_mansion_+2.json diff --git a/data/json/mapgen/basecamps/base/fbmc_mansion/fbmc_mansion_+3.json b/data/json/mapgen/basecamps/fbmc_mansion/fbmc_mansion_+3.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_mansion/fbmc_mansion_+3.json rename to data/json/mapgen/basecamps/fbmc_mansion/fbmc_mansion_+3.json diff --git a/data/json/mapgen/basecamps/base/fbmc_mansion/fbmc_mansion_+4.json b/data/json/mapgen/basecamps/fbmc_mansion/fbmc_mansion_+4.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_mansion/fbmc_mansion_+4.json rename to data/json/mapgen/basecamps/fbmc_mansion/fbmc_mansion_+4.json diff --git a/data/json/mapgen/basecamps/base/fbmc_mansion/fbmc_mansion_common.json b/data/json/mapgen/basecamps/fbmc_mansion/fbmc_mansion_common.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_mansion/fbmc_mansion_common.json rename to data/json/mapgen/basecamps/fbmc_mansion/fbmc_mansion_common.json diff --git a/data/json/mapgen/basecamps/base/fbmc_mansion/fbmc_mansion_expansion.json b/data/json/mapgen/basecamps/fbmc_mansion/fbmc_mansion_expansion.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_mansion/fbmc_mansion_expansion.json rename to data/json/mapgen/basecamps/fbmc_mansion/fbmc_mansion_expansion.json diff --git a/data/json/mapgen/basecamps/base/fbmc_mansion/fbmc_mansion_overmap.json b/data/json/mapgen/basecamps/fbmc_mansion/fbmc_mansion_overmap.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_mansion/fbmc_mansion_overmap.json rename to data/json/mapgen/basecamps/fbmc_mansion/fbmc_mansion_overmap.json diff --git a/data/json/mapgen/basecamps/base/fbmc_outpost/fbmc_outpost_cross.json b/data/json/mapgen/basecamps/fbmc_outpost/fbmc_outpost_cross.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_outpost/fbmc_outpost_cross.json rename to data/json/mapgen/basecamps/fbmc_outpost/fbmc_outpost_cross.json diff --git a/data/json/mapgen/basecamps/base/fbmc_outpost/fbmc_outpost_normal.json b/data/json/mapgen/basecamps/fbmc_outpost/fbmc_outpost_normal.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_outpost/fbmc_outpost_normal.json rename to data/json/mapgen/basecamps/fbmc_outpost/fbmc_outpost_normal.json diff --git a/data/json/mapgen/basecamps/base/fbmc_pottery_cottage/fbmc_pottery_cottage_blacksmith.json b/data/json/mapgen/basecamps/fbmc_pottery_cottage/fbmc_pottery_cottage_blacksmith.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_pottery_cottage/fbmc_pottery_cottage_blacksmith.json rename to data/json/mapgen/basecamps/fbmc_pottery_cottage/fbmc_pottery_cottage_blacksmith.json diff --git a/data/json/mapgen/basecamps/base/fbmc_pottery_cottage/fbmc_pottery_cottage_common.json b/data/json/mapgen/basecamps/fbmc_pottery_cottage/fbmc_pottery_cottage_common.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_pottery_cottage/fbmc_pottery_cottage_common.json rename to data/json/mapgen/basecamps/fbmc_pottery_cottage/fbmc_pottery_cottage_common.json diff --git a/data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_beds.json b/data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_beds.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_beds.json rename to data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_beds.json diff --git a/data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_common.json b/data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_common.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_common.json rename to data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_common.json diff --git a/data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_log.json b/data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_log.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_log.json rename to data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_log.json diff --git a/data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_metal.json b/data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_metal.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_metal.json rename to data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_metal.json diff --git a/data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_migo_resin.json b/data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_migo_resin.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_migo_resin.json rename to data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_migo_resin.json diff --git a/data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_rammed_earth.json b/data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_rammed_earth.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_rammed_earth.json rename to data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_rammed_earth.json diff --git a/data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_rock.json b/data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_rock.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_rock.json rename to data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_rock.json diff --git a/data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_wad.json b/data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_wad.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_wad.json rename to data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_wad.json diff --git a/data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_wood.json b/data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_wood.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_radio_tower/fbmc_radio_tower_wood.json rename to data/json/mapgen/basecamps/fbmc_radio_tower/fbmc_radio_tower_wood.json diff --git a/data/json/mapgen/basecamps/base/fbmc_sealab_small/fbmc_sealab_small_common.json b/data/json/mapgen/basecamps/fbmc_sealab_small/fbmc_sealab_small_common.json similarity index 100% rename from data/json/mapgen/basecamps/base/fbmc_sealab_small/fbmc_sealab_small_common.json rename to data/json/mapgen/basecamps/fbmc_sealab_small/fbmc_sealab_small_common.json diff --git a/data/json/mapgen/basecamps/expansion/modular_canteen/version_1/modular_canteen_common.json b/data/json/mapgen/basecamps/modular_canteen/modular_canteen_common.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_canteen/version_1/modular_canteen_common.json rename to data/json/mapgen/basecamps/modular_canteen/modular_canteen_common.json diff --git a/data/json/mapgen/basecamps/expansion/modular_canteen/version_1/modular_canteen_log.json b/data/json/mapgen/basecamps/modular_canteen/modular_canteen_log.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_canteen/version_1/modular_canteen_log.json rename to data/json/mapgen/basecamps/modular_canteen/modular_canteen_log.json diff --git a/data/json/mapgen/basecamps/expansion/modular_canteen/version_1/modular_canteen_metal.json b/data/json/mapgen/basecamps/modular_canteen/modular_canteen_metal.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_canteen/version_1/modular_canteen_metal.json rename to data/json/mapgen/basecamps/modular_canteen/modular_canteen_metal.json diff --git a/data/json/mapgen/basecamps/expansion/modular_canteen/version_1/modular_canteen_migo_resin.json b/data/json/mapgen/basecamps/modular_canteen/modular_canteen_migo_resin.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_canteen/version_1/modular_canteen_migo_resin.json rename to data/json/mapgen/basecamps/modular_canteen/modular_canteen_migo_resin.json diff --git a/data/json/mapgen/basecamps/expansion/modular_canteen/version_1/modular_canteen_rammed_earth.json b/data/json/mapgen/basecamps/modular_canteen/modular_canteen_rammed_earth.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_canteen/version_1/modular_canteen_rammed_earth.json rename to data/json/mapgen/basecamps/modular_canteen/modular_canteen_rammed_earth.json diff --git a/data/json/mapgen/basecamps/expansion/modular_canteen/version_1/modular_canteen_rock.json b/data/json/mapgen/basecamps/modular_canteen/modular_canteen_rock.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_canteen/version_1/modular_canteen_rock.json rename to data/json/mapgen/basecamps/modular_canteen/modular_canteen_rock.json diff --git a/data/json/mapgen/basecamps/expansion/modular_canteen/version_1/modular_canteen_wad.json b/data/json/mapgen/basecamps/modular_canteen/modular_canteen_wad.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_canteen/version_1/modular_canteen_wad.json rename to data/json/mapgen/basecamps/modular_canteen/modular_canteen_wad.json diff --git a/data/json/mapgen/basecamps/expansion/modular_canteen/version_1/modular_canteen_wood.json b/data/json/mapgen/basecamps/modular_canteen/modular_canteen_wood.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_canteen/version_1/modular_canteen_wood.json rename to data/json/mapgen/basecamps/modular_canteen/modular_canteen_wood.json diff --git a/data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_common.json b/data/json/mapgen/basecamps/modular_field_common.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_common.json rename to data/json/mapgen/basecamps/modular_field_common.json diff --git a/data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_defenses.json b/data/json/mapgen/basecamps/modular_field_defenses.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_defenses.json rename to data/json/mapgen/basecamps/modular_field_defenses.json diff --git a/data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_log.json b/data/json/mapgen/basecamps/modular_field_log.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_log.json rename to data/json/mapgen/basecamps/modular_field_log.json diff --git a/data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_metal.json b/data/json/mapgen/basecamps/modular_field_metal.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_metal.json rename to data/json/mapgen/basecamps/modular_field_metal.json diff --git a/data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_migo_resin.json b/data/json/mapgen/basecamps/modular_field_migo_resin.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_migo_resin.json rename to data/json/mapgen/basecamps/modular_field_migo_resin.json diff --git a/data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_rammed_earth.json b/data/json/mapgen/basecamps/modular_field_rammed_earth.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_rammed_earth.json rename to data/json/mapgen/basecamps/modular_field_rammed_earth.json diff --git a/data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_rock.json b/data/json/mapgen/basecamps/modular_field_rock.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_rock.json rename to data/json/mapgen/basecamps/modular_field_rock.json diff --git a/data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_tent.json b/data/json/mapgen/basecamps/modular_field_tent.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_tent.json rename to data/json/mapgen/basecamps/modular_field_tent.json diff --git a/data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_wad.json b/data/json/mapgen/basecamps/modular_field_wad.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_wad.json rename to data/json/mapgen/basecamps/modular_field_wad.json diff --git a/data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_wood.json b/data/json/mapgen/basecamps/modular_field_wood.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_hub/version_1/modular_field_wood.json rename to data/json/mapgen/basecamps/modular_field_wood.json diff --git a/data/json/mapgen/basecamps/base/modular_firestation_1/modular_firestation1.json b/data/json/mapgen/basecamps/modular_firestation_1/modular_firestation1.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_firestation_1/modular_firestation1.json rename to data/json/mapgen/basecamps/modular_firestation_1/modular_firestation1.json diff --git a/data/json/mapgen/basecamps/base/modular_firestation_1/modular_firestation_walls_all.json b/data/json/mapgen/basecamps/modular_firestation_1/modular_firestation_walls_all.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_firestation_1/modular_firestation_walls_all.json rename to data/json/mapgen/basecamps/modular_firestation_1/modular_firestation_walls_all.json diff --git a/data/json/mapgen/basecamps/expansion/modular_livestock/version_1/modular_livestock_common.json b/data/json/mapgen/basecamps/modular_livestock/modular_livestock_common.json similarity index 99% rename from data/json/mapgen/basecamps/expansion/modular_livestock/version_1/modular_livestock_common.json rename to data/json/mapgen/basecamps/modular_livestock/modular_livestock_common.json index dacfbeb5f893d..1e0120cd0ddaf 100644 --- a/data/json/mapgen/basecamps/expansion/modular_livestock/version_1/modular_livestock_common.json +++ b/data/json/mapgen/basecamps/modular_livestock/modular_livestock_common.json @@ -1,4 +1,10 @@ [ + { + "type": "mapgen", + "update_mapgen_id": "faction_base_livestock_0", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "fbml_0" ], "x": 15, "y": 3 } ] } + }, { "type": "mapgen", "method": "json", @@ -16,12 +22,6 @@ "palettes": [ "fbml_wood_palette" ] } }, - { - "type": "mapgen", - "update_mapgen_id": "faction_base_livestock_0", - "method": "json", - "object": { "place_nested": [ { "chunks": [ "fbml_0" ], "x": 10, "y": 10 } ] } - }, { "type": "mapgen", "method": "json", diff --git a/data/json/mapgen/basecamps/expansion/modular_livestock/version_1/modular_livestock_log.json b/data/json/mapgen/basecamps/modular_livestock/modular_livestock_log.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_livestock/version_1/modular_livestock_log.json rename to data/json/mapgen/basecamps/modular_livestock/modular_livestock_log.json diff --git a/data/json/mapgen/basecamps/expansion/modular_livestock/version_1/modular_livestock_metal.json b/data/json/mapgen/basecamps/modular_livestock/modular_livestock_metal.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_livestock/version_1/modular_livestock_metal.json rename to data/json/mapgen/basecamps/modular_livestock/modular_livestock_metal.json diff --git a/data/json/mapgen/basecamps/expansion/modular_livestock/version_1/modular_livestock_migo_resin.json b/data/json/mapgen/basecamps/modular_livestock/modular_livestock_migo_resin.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_livestock/version_1/modular_livestock_migo_resin.json rename to data/json/mapgen/basecamps/modular_livestock/modular_livestock_migo_resin.json diff --git a/data/json/mapgen/basecamps/expansion/modular_livestock/version_1/modular_livestock_rammed_earth.json b/data/json/mapgen/basecamps/modular_livestock/modular_livestock_rammed_earth.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_livestock/version_1/modular_livestock_rammed_earth.json rename to data/json/mapgen/basecamps/modular_livestock/modular_livestock_rammed_earth.json diff --git a/data/json/mapgen/basecamps/expansion/modular_livestock/version_1/modular_livestock_rock.json b/data/json/mapgen/basecamps/modular_livestock/modular_livestock_rock.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_livestock/version_1/modular_livestock_rock.json rename to data/json/mapgen/basecamps/modular_livestock/modular_livestock_rock.json diff --git a/data/json/mapgen/basecamps/expansion/modular_livestock/version_1/modular_livestock_wad.json b/data/json/mapgen/basecamps/modular_livestock/modular_livestock_wad.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_livestock/version_1/modular_livestock_wad.json rename to data/json/mapgen/basecamps/modular_livestock/modular_livestock_wad.json diff --git a/data/json/mapgen/basecamps/expansion/modular_livestock/version_1/modular_livestock_wood.json b/data/json/mapgen/basecamps/modular_livestock/modular_livestock_wood.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_livestock/version_1/modular_livestock_wood.json rename to data/json/mapgen/basecamps/modular_livestock/modular_livestock_wood.json diff --git a/data/json/mapgen/basecamps/expansion/modular_saltworks/version_1/modular_saltworks_common.json b/data/json/mapgen/basecamps/modular_saltworks/modular_saltworks_common.json similarity index 96% rename from data/json/mapgen/basecamps/expansion/modular_saltworks/version_1/modular_saltworks_common.json rename to data/json/mapgen/basecamps/modular_saltworks/modular_saltworks_common.json index 0ac96f18aacd9..4f1c2300cf5c4 100644 --- a/data/json/mapgen/basecamps/expansion/modular_saltworks/version_1/modular_saltworks_common.json +++ b/data/json/mapgen/basecamps/modular_saltworks/modular_saltworks_common.json @@ -18,7 +18,7 @@ }, { "type": "mapgen", - "update_mapgen_id": "fbmsw_0", + "update_mapgen_id": "faction_base_saltworks_0", "method": "json", "object": { "place_nested": [ { "chunks": [ "fbmsw_0" ], "x": 15, "y": 3 } ] } }, diff --git a/data/json/mapgen/basecamps/expansion/modular_saltworks/version_1/modular_saltworks_log.json b/data/json/mapgen/basecamps/modular_saltworks/modular_saltworks_log.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_saltworks/version_1/modular_saltworks_log.json rename to data/json/mapgen/basecamps/modular_saltworks/modular_saltworks_log.json diff --git a/data/json/mapgen/basecamps/expansion/modular_saltworks/version_1/modular_saltworks_metal.json b/data/json/mapgen/basecamps/modular_saltworks/modular_saltworks_metal.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_saltworks/version_1/modular_saltworks_metal.json rename to data/json/mapgen/basecamps/modular_saltworks/modular_saltworks_metal.json diff --git a/data/json/mapgen/basecamps/expansion/modular_saltworks/version_1/modular_saltworks_migo_resin.json b/data/json/mapgen/basecamps/modular_saltworks/modular_saltworks_migo_resin.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_saltworks/version_1/modular_saltworks_migo_resin.json rename to data/json/mapgen/basecamps/modular_saltworks/modular_saltworks_migo_resin.json diff --git a/data/json/mapgen/basecamps/expansion/modular_saltworks/version_1/modular_saltworks_rammed_earth.json b/data/json/mapgen/basecamps/modular_saltworks/modular_saltworks_rammed_earth.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_saltworks/version_1/modular_saltworks_rammed_earth.json rename to data/json/mapgen/basecamps/modular_saltworks/modular_saltworks_rammed_earth.json diff --git a/data/json/mapgen/basecamps/expansion/modular_saltworks/version_1/modular_saltworks_rock.json b/data/json/mapgen/basecamps/modular_saltworks/modular_saltworks_rock.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_saltworks/version_1/modular_saltworks_rock.json rename to data/json/mapgen/basecamps/modular_saltworks/modular_saltworks_rock.json diff --git a/data/json/mapgen/basecamps/expansion/modular_saltworks/version_1/modular_saltworks_wad.json b/data/json/mapgen/basecamps/modular_saltworks/modular_saltworks_wad.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_saltworks/version_1/modular_saltworks_wad.json rename to data/json/mapgen/basecamps/modular_saltworks/modular_saltworks_wad.json diff --git a/data/json/mapgen/basecamps/expansion/modular_saltworks/version_1/modular_saltworks_wood.json b/data/json/mapgen/basecamps/modular_saltworks/modular_saltworks_wood.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_saltworks/version_1/modular_saltworks_wood.json rename to data/json/mapgen/basecamps/modular_saltworks/modular_saltworks_wood.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter/modular_shelter_common.json b/data/json/mapgen/basecamps/modular_shelter/modular_shelter_common.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter/modular_shelter_common.json rename to data/json/mapgen/basecamps/modular_shelter/modular_shelter_common.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter/modular_shelter_log.json b/data/json/mapgen/basecamps/modular_shelter/modular_shelter_log.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter/modular_shelter_log.json rename to data/json/mapgen/basecamps/modular_shelter/modular_shelter_log.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter/modular_shelter_rock.json b/data/json/mapgen/basecamps/modular_shelter/modular_shelter_rock.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter/modular_shelter_rock.json rename to data/json/mapgen/basecamps/modular_shelter/modular_shelter_rock.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter/modular_shelter_standard.json b/data/json/mapgen/basecamps/modular_shelter/modular_shelter_standard.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter/modular_shelter_standard.json rename to data/json/mapgen/basecamps/modular_shelter/modular_shelter_standard.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter/modular_shelter_wad.json b/data/json/mapgen/basecamps/modular_shelter/modular_shelter_wad.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter/modular_shelter_wad.json rename to data/json/mapgen/basecamps/modular_shelter/modular_shelter_wad.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter/modular_shelter_wood.json b/data/json/mapgen/basecamps/modular_shelter/modular_shelter_wood.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter/modular_shelter_wood.json rename to data/json/mapgen/basecamps/modular_shelter/modular_shelter_wood.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter_1/modular_shelter_1_common.json b/data/json/mapgen/basecamps/modular_shelter_1/modular_shelter_1_common.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter_1/modular_shelter_1_common.json rename to data/json/mapgen/basecamps/modular_shelter_1/modular_shelter_1_common.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter_1/modular_shelter_1_log.json b/data/json/mapgen/basecamps/modular_shelter_1/modular_shelter_1_log.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter_1/modular_shelter_1_log.json rename to data/json/mapgen/basecamps/modular_shelter_1/modular_shelter_1_log.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter_1/modular_shelter_1_rock.json b/data/json/mapgen/basecamps/modular_shelter_1/modular_shelter_1_rock.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter_1/modular_shelter_1_rock.json rename to data/json/mapgen/basecamps/modular_shelter_1/modular_shelter_1_rock.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter_1/modular_shelter_1_standard.json b/data/json/mapgen/basecamps/modular_shelter_1/modular_shelter_1_standard.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter_1/modular_shelter_1_standard.json rename to data/json/mapgen/basecamps/modular_shelter_1/modular_shelter_1_standard.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter_1/modular_shelter_1_wad.json b/data/json/mapgen/basecamps/modular_shelter_1/modular_shelter_1_wad.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter_1/modular_shelter_1_wad.json rename to data/json/mapgen/basecamps/modular_shelter_1/modular_shelter_1_wad.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter_1/modular_shelter_1_wood.json b/data/json/mapgen/basecamps/modular_shelter_1/modular_shelter_1_wood.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter_1/modular_shelter_1_wood.json rename to data/json/mapgen/basecamps/modular_shelter_1/modular_shelter_1_wood.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter_2/modular_shelter_2_common.json b/data/json/mapgen/basecamps/modular_shelter_2/modular_shelter_2_common.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter_2/modular_shelter_2_common.json rename to data/json/mapgen/basecamps/modular_shelter_2/modular_shelter_2_common.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter_2/modular_shelter_2_log.json b/data/json/mapgen/basecamps/modular_shelter_2/modular_shelter_2_log.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter_2/modular_shelter_2_log.json rename to data/json/mapgen/basecamps/modular_shelter_2/modular_shelter_2_log.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter_2/modular_shelter_2_rock.json b/data/json/mapgen/basecamps/modular_shelter_2/modular_shelter_2_rock.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter_2/modular_shelter_2_rock.json rename to data/json/mapgen/basecamps/modular_shelter_2/modular_shelter_2_rock.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter_2/modular_shelter_2_standard.json b/data/json/mapgen/basecamps/modular_shelter_2/modular_shelter_2_standard.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter_2/modular_shelter_2_standard.json rename to data/json/mapgen/basecamps/modular_shelter_2/modular_shelter_2_standard.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter_2/modular_shelter_2_wad.json b/data/json/mapgen/basecamps/modular_shelter_2/modular_shelter_2_wad.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter_2/modular_shelter_2_wad.json rename to data/json/mapgen/basecamps/modular_shelter_2/modular_shelter_2_wad.json diff --git a/data/json/mapgen/basecamps/base/modular_shelter_2/modular_shelter_2_wood.json b/data/json/mapgen/basecamps/modular_shelter_2/modular_shelter_2_wood.json similarity index 100% rename from data/json/mapgen/basecamps/base/modular_shelter_2/modular_shelter_2_wood.json rename to data/json/mapgen/basecamps/modular_shelter_2/modular_shelter_2_wood.json diff --git a/data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_log.json b/data/json/mapgen/basecamps/modular_storehouse/modular_storehouse_log.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_log.json rename to data/json/mapgen/basecamps/modular_storehouse/modular_storehouse_log.json diff --git a/data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_metal.json b/data/json/mapgen/basecamps/modular_storehouse/modular_storehouse_metal.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_metal.json rename to data/json/mapgen/basecamps/modular_storehouse/modular_storehouse_metal.json diff --git a/data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_migo_resin.json b/data/json/mapgen/basecamps/modular_storehouse/modular_storehouse_migo_resin.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_migo_resin.json rename to data/json/mapgen/basecamps/modular_storehouse/modular_storehouse_migo_resin.json diff --git a/data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_rammed_earth.json b/data/json/mapgen/basecamps/modular_storehouse/modular_storehouse_rammed_earth.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_rammed_earth.json rename to data/json/mapgen/basecamps/modular_storehouse/modular_storehouse_rammed_earth.json diff --git a/data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_rock.json b/data/json/mapgen/basecamps/modular_storehouse/modular_storehouse_rock.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_rock.json rename to data/json/mapgen/basecamps/modular_storehouse/modular_storehouse_rock.json diff --git a/data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_wad.json b/data/json/mapgen/basecamps/modular_storehouse/modular_storehouse_wad.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_wad.json rename to data/json/mapgen/basecamps/modular_storehouse/modular_storehouse_wad.json diff --git a/data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_wood.json b/data/json/mapgen/basecamps/modular_storehouse/modular_storehouse_wood.json similarity index 94% rename from data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_wood.json rename to data/json/mapgen/basecamps/modular_storehouse/modular_storehouse_wood.json index 5e43c8e7d230a..7143aae742cd7 100644 --- a/data/json/mapgen/basecamps/expansion/modular_storehouse/version_1/modular_storehouse_wood.json +++ b/data/json/mapgen/basecamps/modular_storehouse/modular_storehouse_wood.json @@ -13,6 +13,29 @@ }, "furniture": { "b": "f_bench", "t": "f_table", "x": "f_brazier", "U": "f_birdbath", "l": "f_locker", "B": "f_bookcase" } }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "fbms_0", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "fbms_wood_palette" ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "faction_base_storehouse_0", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "fbml_0" ], "x": 15, "y": 3 } ] } + }, { "type": "mapgen", "method": "json", diff --git a/data/json/mapgen/basecamps/expansion/modular_workshop/version_1/modular_workshop_common.json b/data/json/mapgen/basecamps/modular_workshop/modular_workshop_common.json similarity index 93% rename from data/json/mapgen/basecamps/expansion/modular_workshop/version_1/modular_workshop_common.json rename to data/json/mapgen/basecamps/modular_workshop/modular_workshop_common.json index 2eea0d1100ce3..28b79f6f7f526 100644 --- a/data/json/mapgen/basecamps/expansion/modular_workshop/version_1/modular_workshop_common.json +++ b/data/json/mapgen/basecamps/modular_workshop/modular_workshop_common.json @@ -32,12 +32,6 @@ "palettes": [ "fbmw_common_palette" ] } }, - { - "type": "mapgen", - "update_mapgen_id": "faction_base_modular_workshop_0", - "method": "json", - "object": { "place_nested": [ { "chunks": [ "fbmw_0" ], "x": 10, "y": 10 } ] } - }, { "type": "mapgen", "method": "json", diff --git a/data/json/mapgen/basecamps/expansion/modular_workshop/version_1/modular_workshop_log.json b/data/json/mapgen/basecamps/modular_workshop/modular_workshop_log.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_workshop/version_1/modular_workshop_log.json rename to data/json/mapgen/basecamps/modular_workshop/modular_workshop_log.json diff --git a/data/json/mapgen/basecamps/expansion/modular_workshop/version_1/modular_workshop_metal.json b/data/json/mapgen/basecamps/modular_workshop/modular_workshop_metal.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_workshop/version_1/modular_workshop_metal.json rename to data/json/mapgen/basecamps/modular_workshop/modular_workshop_metal.json diff --git a/data/json/mapgen/basecamps/expansion/modular_workshop/version_1/modular_workshop_migo_resin.json b/data/json/mapgen/basecamps/modular_workshop/modular_workshop_migo_resin.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_workshop/version_1/modular_workshop_migo_resin.json rename to data/json/mapgen/basecamps/modular_workshop/modular_workshop_migo_resin.json diff --git a/data/json/mapgen/basecamps/expansion/modular_workshop/version_1/modular_workshop_rammed_earth.json b/data/json/mapgen/basecamps/modular_workshop/modular_workshop_rammed_earth.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_workshop/version_1/modular_workshop_rammed_earth.json rename to data/json/mapgen/basecamps/modular_workshop/modular_workshop_rammed_earth.json diff --git a/data/json/mapgen/basecamps/expansion/modular_workshop/version_1/modular_workshop_rock.json b/data/json/mapgen/basecamps/modular_workshop/modular_workshop_rock.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_workshop/version_1/modular_workshop_rock.json rename to data/json/mapgen/basecamps/modular_workshop/modular_workshop_rock.json diff --git a/data/json/mapgen/basecamps/expansion/modular_workshop/version_1/modular_workshop_wad.json b/data/json/mapgen/basecamps/modular_workshop/modular_workshop_wad.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_workshop/version_1/modular_workshop_wad.json rename to data/json/mapgen/basecamps/modular_workshop/modular_workshop_wad.json diff --git a/data/json/mapgen/basecamps/expansion/modular_workshop/version_1/modular_workshop_wood.json b/data/json/mapgen/basecamps/modular_workshop/modular_workshop_wood.json similarity index 100% rename from data/json/mapgen/basecamps/expansion/modular_workshop/version_1/modular_workshop_wood.json rename to data/json/mapgen/basecamps/modular_workshop/modular_workshop_wood.json diff --git a/data/json/mapgen/basecamps/base/modular_hub/version_1/primitive_field.json b/data/json/mapgen/basecamps/primitive_field.json similarity index 73% rename from data/json/mapgen/basecamps/base/modular_hub/version_1/primitive_field.json rename to data/json/mapgen/basecamps/primitive_field.json index 64722dc503890..925e521dfd561 100644 --- a/data/json/mapgen/basecamps/base/modular_hub/version_1/primitive_field.json +++ b/data/json/mapgen/basecamps/primitive_field.json @@ -225,6 +225,324 @@ "palettes": [ "acidia_camp_palette" ] } }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "bc_prim_farm_long_fields", + "object": { + "mapgensize": [ 6, 6 ], + "rows": [ + " ", + "mmmmmm", + "mmmmmm", + " ", + " ", + " " + ], + "palettes": [ "acidia_camp_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "bc_prim_farm_short_fields", + "object": { "mapgensize": [ 2, 2 ], "rows": [ + "mm", + "mm" + ], "palettes": [ "acidia_camp_palette" ] } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "bc_prim_farm_0", + "object": { + "mapgensize": [ 13, 13 ], + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " U___U ", + " _____ ", + " _____ ", + " _____ ", + " _____ ", + " " + ], + "palettes": [ "acidia_camp_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "bc_prim_farm_2", + "object": { + "mapgensize": [ 13, 13 ], + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " *,,,* ", + " ,''', ", + " ,''H, ", + " *'HH* ", + " ***** ", + " " + ], + "palettes": [ "acidia_camp_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "bc_prim_farm_3", + "object": { + "mapgensize": [ 13, 13 ], + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " *+* ", + " * * ", + " * * ", + " ", + " ", + " " + ], + "palettes": [ "acidia_camp_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "bc_prim_farm_4", + "object": { + "mapgensize": [ 13, 13 ], + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ***+** ", + " *c''u ", + " wc''' ", + " *c'cc ", + " wc''' ", + " *c'cc ", + " ****** " + ], + "palettes": [ "acidia_camp_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "bc_prim_garage_0", + "object": { + "mapgensize": [ 17, 17 ], + "rows": [ + "_____ ", + "_________________", + "_________________", + "_________________", + "____UU___________", + "____U____________", + "_________________", + " _____________", + " _____________", + " _____________", + " U____________", + " UU___________", + " _____________", + " _____________", + " _____________", + " ", + " " + ], + "palettes": [ "acidia_camp_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "bc_prim_garage_1", + "object": { + "mapgensize": [ 17, 17 ], + "rows": [ + " ", + " ", + " ", + " ", + " *** ", + " *r' ", + " *r' ", + " *c' ", + " *c' ", + " *'' ", + " *'' ", + " *** ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "acidia_camp_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "bc_prim_garage_2", + "object": { + "mapgensize": [ 17, 17 ], + "rows": [ + " ", + " ", + " ", + " ", + " ***", + " ''*", + " '''", + " ''*", + " ''*", + " '''", + " ''*", + " ***", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "acidia_camp_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "bc_prim_garage_3", + "object": { + "mapgensize": [ 17, 17 ], + "rows": [ + " ", + " ", + " ", + " ", + " ''''''' ", + " ''''''' ", + " ''''''' ", + " ''''''' ", + " ''''''' ", + " ''''''' ", + " ''''''' ", + " ''''''' ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "acidia_camp_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "bc_prim_garage_4", + "object": { + "mapgensize": [ 17, 17 ], + "rows": [ + " ", + " *** ***", + " * *", + " ", + " ", + " ", + " ", + " '", + " '", + " ", + " ", + " ", + " ", + " * *", + " *** ***", + " ", + " " + ], + "palettes": [ "acidia_camp_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "bc_prim_garage_5", + "object": { + "mapgensize": [ 17, 17 ], + "rows": [ + " ", + " ''''''' ", + " ''''''''''3 ", + " '''''''''''''", + " '' '''", + " ", + " ", + " ", + " ", + " r ", + " r ", + " '' '''", + " '''''''''''''", + " ''''''''''' ", + " ''''''' ", + " ", + " " + ], + "palettes": [ "acidia_camp_palette" ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "bc_prim_garage_6", + "object": { + "mapgensize": [ 17, 17 ], + "rows": [ + "***** ", + "*'bb ", + "*''' ", + "*'''+ ", + "*((' ", + "*ttr ", + "**** ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "palettes": [ "acidia_camp_palette" ] + } + }, { "type": "mapgen", "method": "json", @@ -845,6 +1163,115 @@ "method": "json", "object": { "set": [ { "point": "terrain", "id": "t_radio_controls", "x": 13, "y": 21 } ] } }, + { + "type": "mapgen", + "//": "legacy name for now", + "update_mapgen_id": "faction_base_farm_0", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "bc_prim_farm_0" ], "x": 1, "y": 10 } ] } + }, + { + "type": "mapgen", + "update_mapgen_id": "faction_base_field_camp_farm_1", + "method": "json", + "object": { + "place_nested": [ + { "chunks": [ "bc_prim_farm_long_fields" ], "x": 1, "y": 0 }, + { "chunks": [ "bc_prim_farm_long_fields" ], "x": 9, "y": 0 }, + { "chunks": [ "bc_prim_farm_long_fields" ], "x": 17, "y": 0 }, + { "chunks": [ "bc_prim_farm_long_fields" ], "x": 1, "y": 3 }, + { "chunks": [ "bc_prim_farm_long_fields" ], "x": 9, "y": 3 }, + { "chunks": [ "bc_prim_farm_long_fields" ], "x": 17, "y": 3 }, + { "chunks": [ "bc_prim_farm_long_fields" ], "x": 1, "y": 6 }, + { "chunks": [ "bc_prim_farm_long_fields" ], "x": 9, "y": 6 }, + { "chunks": [ "bc_prim_farm_long_fields" ], "x": 17, "y": 6 } + ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "faction_base_field_camp_farm_2", + "method": "json", + "object": { + "place_nested": [ + { "chunks": [ "bc_prim_farm_2" ], "x": 1, "y": 10 }, + { "chunks": [ "bc_prim_farm_long_fields" ], "x": 1, "y": 6 }, + { "chunks": [ "bc_prim_farm_long_fields" ], "x": 9, "y": 6 }, + { "chunks": [ "bc_prim_farm_long_fields" ], "x": 17, "y": 6 } + ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "faction_base_field_camp_farm_3", + "method": "json", + "object": { + "place_nested": [ + { "chunks": [ "bc_prim_farm_3" ], "x": 1, "y": 10 }, + { "chunks": [ "bc_prim_farm_short_fields" ], "x": 15, "y": 14 }, + { "chunks": [ "bc_prim_farm_short_fields" ], "x": 18, "y": 14 }, + { "chunks": [ "bc_prim_farm_short_fields" ], "x": 21, "y": 14 }, + { "chunks": [ "bc_prim_farm_short_fields" ], "x": 15, "y": 16 }, + { "chunks": [ "bc_prim_farm_short_fields" ], "x": 18, "y": 16 }, + { "chunks": [ "bc_prim_farm_short_fields" ], "x": 21, "y": 16 }, + { "chunks": [ "bc_prim_farm_short_fields" ], "x": 15, "y": 18 }, + { "chunks": [ "bc_prim_farm_short_fields" ], "x": 18, "y": 18 }, + { "chunks": [ "bc_prim_farm_short_fields" ], "x": 21, "y": 18 }, + { "chunks": [ "bc_prim_farm_short_fields" ], "x": 15, "y": 20 }, + { "chunks": [ "bc_prim_farm_short_fields" ], "x": 18, "y": 20 }, + { "chunks": [ "bc_prim_farm_short_fields" ], "x": 21, "y": 20 } + ] + } + }, + { + "type": "mapgen", + "update_mapgen_id": "faction_base_field_camp_farm_4", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "bc_prim_farm_4" ], "x": 1, "y": 10 } ] } + }, + { + "type": "mapgen", + "//": "legacy name for now", + "update_mapgen_id": "faction_base_garage_0", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "bc_prim_garage_0" ], "x": 2, "y": 6 } ] } + }, + { + "type": "mapgen", + "update_mapgen_id": "faction_base_field_camp_garage_1", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "bc_prim_garage_1" ], "x": 2, "y": 6 } ] } + }, + { + "type": "mapgen", + "update_mapgen_id": "faction_base_field_camp_garage_2", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "bc_prim_garage_2" ], "x": 2, "y": 6 } ] } + }, + { + "type": "mapgen", + "update_mapgen_id": "faction_base_field_camp_garage_3", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "bc_prim_garage_3" ], "x": 2, "y": 6 } ] } + }, + { + "type": "mapgen", + "update_mapgen_id": "faction_base_field_camp_garage_4", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "bc_prim_garage_4" ], "x": 2, "y": 6 } ] } + }, + { + "type": "mapgen", + "update_mapgen_id": "faction_base_field_camp_garage_5", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "bc_prim_garage_5" ], "x": 2, "y": 6 } ] } + }, + { + "type": "mapgen", + "update_mapgen_id": "faction_base_field_camp_garage_6", + "method": "json", + "object": { "place_nested": [ { "chunks": [ "bc_prim_garage_6" ], "x": 2, "y": 6 } ] } + }, { "type": "mapgen", "//": "legacy name for now", diff --git a/data/json/mapgen/bike_shop.json b/data/json/mapgen/bike_shop.json index 5b1e99feab83b..f2e3b125c45c0 100644 --- a/data/json/mapgen/bike_shop.json +++ b/data/json/mapgen/bike_shop.json @@ -207,7 +207,7 @@ "-": "t_gutter_south", "3": "t_gutter_east", "|": "t_gutter_west", - ">": "t_ladder_down", + ">": "t_stairs_down", "5": "t_gutter_drop", "#": "t_wall_b", "_": "t_floor", diff --git a/data/json/mapgen/map_extras/scientists.json b/data/json/mapgen/map_extras/scientists.json deleted file mode 100644 index 7522b9ce4b23a..0000000000000 --- a/data/json/mapgen/map_extras/scientists.json +++ /dev/null @@ -1,51 +0,0 @@ -[ - { - "type": "mapgen", - "method": "json", - "nested_mapgen_id": "corpse_blood_gibs_science_3x3", - "object": { - "mapgensize": [ 3, 3 ], - "place_items": [ { "item": "map_extra_science", "x": [ 0, 2 ], "y": [ 0, 2 ], "chance": 100 } ], - "place_fields": [ { "field": "fd_blood", "x": [ 0, 2 ], "y": [ 0, 2 ] }, { "field": "fd_gibs_flesh", "x": [ 0, 2 ], "y": [ 0, 2 ] } ] - } - }, - { - "type": "mapgen", - "method": "json", - "update_mapgen_id": "mx_science", - "object": { - "rows": [ - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " 1 ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " " - ], - "terrain": { "1": "t_null" }, - "monsters": { " ": { "monster": "GROUP_NETHER_CAPTURED", "chance": 1, "density": 0.0001 } }, - "nested": { - " ": { "chunks": [ [ "corpse_blood_gibs_science_3x3", 1 ], [ "null", 150 ] ] }, - "1": { "chunks": [ "corpse_blood_gibs_science_3x3" ] } - } - } - } -] diff --git a/data/json/monsters/zanimal_upgrade.json b/data/json/monsters/zanimal_upgrade.json index f67e5434a50a9..314b3e6a6690e 100644 --- a/data/json/monsters/zanimal_upgrade.json +++ b/data/json/monsters/zanimal_upgrade.json @@ -3,7 +3,7 @@ "id": "mon_dog_skeleton", "type": "MONSTER", "name": { "str": "skeletal dog" }, - "description": "This once-canine has shed all of its skin, revealing a carapace of fused bones and ribs. This walking suit of bone seems to be controlled by a net of veins and sinews which pulse with glistening black goo.", + "description": "This once-canine has shed all of its skin, revealing a carapace of fused bones and ribs. Devoid entirely of flesh, this walking suit of bone seems to be controlled by a net of veins and sinews which pulse with glistening black goo.", "default_faction": "zombie", "bodytype": "dog", "species": [ "ZOMBIE" ], diff --git a/data/json/overmap/map_extras.json b/data/json/overmap/map_extras.json index 507a14351b699..a326300de9d8e 100644 --- a/data/json/overmap/map_extras.json +++ b/data/json/overmap/map_extras.json @@ -114,7 +114,7 @@ "type": "map_extra", "name": { "str": "Scientists" }, "description": "Several corpses of scientists are here.", - "generator": { "generator_method": "update_mapgen", "generator_id": "mx_science" }, + "generator": { "generator_method": "map_extra_function", "generator_id": "mx_science" }, "sym": "s", "color": "light_red", "autonote": true diff --git a/data/json/overmap/multitile_city_buildings.json b/data/json/overmap/multitile_city_buildings.json index c128a3d0f2849..1cd34ec73777f 100644 --- a/data/json/overmap/multitile_city_buildings.json +++ b/data/json/overmap/multitile_city_buildings.json @@ -3210,7 +3210,7 @@ }, { "type": "city_building", - "id": "s_bike_shop_1", + "id": "bike_shop_1", "locations": [ "land" ], "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "s_bike_shop_1_north" }, diff --git a/data/json/recipes/basecamps/base/recipe_modular_firestation_1/modular_firestation_recipe_groups.json b/data/json/recipes/basecamps/base/recipe_modular_firestation_1/modular_firestation_recipe_groups.json deleted file mode 100644 index 792835e903692..0000000000000 --- a/data/json/recipes/basecamps/base/recipe_modular_firestation_1/modular_firestation_recipe_groups.json +++ /dev/null @@ -1,196 +0,0 @@ -[ - { - "type": "recipe_group", - "id": "fbmc_firestation_recipes_1", - "building_type": "BASE", - "recipes": [ - { "id": "tinder", "description": " Craft: Tinder" }, - { "id": "pointy_stick", "description": " Craft: Pointy Sticks" } - ] - }, - { - "type": "recipe_group", - "id": "fbmc_firestation_farm_recipes_1", - "building_type": "FARM", - "recipes": [ - { "id": "seed_veggy_wild", "description": " Craft: Wild Veggy Stems" }, - { "id": "seed_raw_dandelion", "description": " Craft: Dandelion Seeds" }, - { "id": "seed_potato_raw", "description": " Craft: Potato, Starter" }, - { "id": "seed_buckwheat", "description": " Craft: Buckwheat Seeds" } - ] - }, - { - "type": "recipe_group", - "id": "fbmc_firestation_cooking_recipes_1", - "building_type": "COOK", - "recipes": [ - { "id": "tinder", "description": " Craft: Tinder" }, - { "id": "meat_cooked", "description": " Cook: Meat, Cooked" }, - { "id": "fish_cooked", "description": " Cook: Fish, Cooked" }, - { "id": "veggy_cooked", "description": " Cook: Veggy, Cooked" }, - { "id": "boiled_egg", "description": " Cook: Egg, Boiled" }, - { "id": "starch", "description": " Cook: Starch" }, - { "id": "starch_from_fibrous_stuff", "description": " Cook: Cattail Starch" }, - { "id": "flatbread", "description": " Cook: Flatbread" }, - { "id": "veggy_wild_cooked", "description": " Cook: Veggy, Cooked Wild" } - ] - }, - { - "type": "recipe_group", - "id": "fbmc_firestation_cooking_recipes_2", - "building_type": "COOK", - "recipes": [ - { "id": "flour", "description": " Cook: Flour" }, - { "id": "salt", "description": " Cook: Salt" }, - { "id": "bread", "description": " Cook: Bread" }, - { "id": "fruit_leather", "description": " Cook: Fruit Leather" }, - { "id": "jerky", "description": " Cook: Meat Jerky" }, - { "id": "mushroom_cooked", "description": " Cook: Mushroom, Cooked" }, - { "id": "lard", "description": " Cook: Lard" }, - { "id": "cornmeal", "description": " Cook: Cornmeal" }, - { "id": "meat_smoked", "description": " Cook: Meat, Smoked" }, - { "id": "fish_smoked", "description": " Cook: Fish, Smoked" }, - { "id": "dry_mushroom", "description": " Cook: Mushroom, Dried" }, - { "id": "dry_fruit", "description": " Cook: Fruit, Dehydrated" }, - { "id": "sausage", "description": " Cook: Sausage" }, - { "id": "sausage_wasteland", "description": " Cook: Sausage, Wasteland" } - ] - }, - { - "type": "recipe_group", - "id": "fbmc_firestation_cooking_recipes_3", - "building_type": "COOK", - "recipes": [ - { "id": "pie_meat", "description": " Cook: Meat Pie" }, - { "id": "pie_veggy", "description": " Cook: Veggy Pie" }, - { "id": "sugar", "description": " Cook: Sugar" }, - { "id": "hardtack", "description": " Cook: Hardtack" }, - { "id": "veggy_pickled_jarred", "description": " Cook: Veggy, Pickled" }, - { "id": "cheese_hard", "description": " Cook: Cheese, Hard" }, - { "id": "pemmican", "description": " Cook: Pemmican" }, - { "id": "veggy_aspic", "description": " Cook: Veggy Aspic" }, - { "id": "meat_canned_jarred", "description": " Cook: Meat, Canned" }, - { "id": "meat_aspic", "description": " Cook: Meat Aspic" }, - { "id": "kompot", "description": " Cook: Kompot" } - ] - }, - { - "type": "recipe_group", - "id": "fbmc_firestation_blacksmith_recipes_1", - "building_type": "SMITH", - "recipes": [ - { "id": "scrap_copper", "description": " Craft: Copper, Scrap" }, - { "id": "charcoal_npc", "description": " Craft: Charcoal" }, - { "id": "spike", "description": " Craft: Spike" }, - { "id": "caltrops_glass", "description": " Craft: Glass Caltrops" }, - { "id": "steel_chunk", "description": " Craft: Steel, Chunk" }, - { "id": "anvil", "description": " Craft: Anvil" }, - { "id": "steel_lump", "description": " Craft: Steel, Lump" } - ] - }, - { - "type": "recipe_group", - "id": "blacksmith_recipes_2", - "building_type": "SMITH", - "recipes": [ - { "id": "copper_knife", "description": " Craft: Knife, Copper" }, - { "id": "sword_crude", "description": " Craft: Sword, Crude" }, - { "id": "pot_copper", "description": " Craft: Pot, Copper" }, - { "id": "bolt_metal", "description": " Craft: Crossbow Bolt, Steel" }, - { "id": "armor_scrapsuit", "description": " Craft: Armor, Scrap Suit" }, - { "id": "helmet_scrap", "description": " Craft: Armor, Scrap Helmet" }, - { "id": "cuirass_scrap", "description": " Craft: Armor, Scrap Cuirass" }, - { "id": "armguard_scrap", "description": " Craft: Armor, Scrap Arm Guards" }, - { "id": "legguard_scrap", "description": " Craft: Armor, Scrap Leg Guards" }, - { "id": "boots_scrap", "description": " Craft: Armor, Scrap Boots" }, - { "id": "copper_ax", "description": " Craft: Axe, Copper" }, - { "id": "spear_copper", "description": " Craft: Spear, Copper" } - ] - }, - { - "type": "recipe_group", - "id": "fbmc_firestation_blacksmith_recipes_3", - "building_type": "SMITH", - "recipes": [ - { "id": "chisel", "description": " Craft: Metalworking Chisel" }, - { "id": "hammer", "description": " Craft: Hammer" }, - { "id": "tongs", "description": " Craft: Metal Tongs" }, - { "id": "nail", "description": " Craft: Nail" }, - { "id": "wire", "description": " Craft: Wire" }, - { "id": "swage", "description": " Craft: Swage and Die Set" } - ] - }, - { - "type": "recipe_group", - "id": "fbmc_firestation_blacksmith_recipes_4", - "building_type": "SMITH", - "recipes": [ - { "id": "blade", "description": " Craft: Blade" }, - { "id": "bearing", "description": " Craft: Bearings" }, - { "id": "caltrops", "description": " Craft: Caltrops" }, - { "id": "hand_drill", "description": " Craft: Hand Drill" }, - { "id": "sheet_metal", "description": " Craft: Sheet Metal" }, - { "id": "chain", "description": " Craft: Chain" }, - { "id": "shovel", "description": " Craft: Shovel" }, - { "id": "rebar", "description": " Craft: Rebar" }, - { "id": "gold_ring", "description": " Craft: Gold Ring" }, - { "id": "hammer_sledge", "description": " Craft: Hammer, Sledge" } - ] - }, - { - "type": "recipe_group", - "id": "fbmc_firestation_blacksmith_recipes_5", - "building_type": "SMITH", - "recipes": [ - { "id": "knife_combat", "description": " Craft: Knife, Combat" }, - { "id": "spear_steel", "description": " Craft: Spear, Steel" }, - { "id": "machete", "description": " Craft: Machete" }, - { "id": "pipe", "description": " Craft: Pipe" }, - { "id": "screwdriver", "description": " Craft: Screwdriver" }, - { "id": "throwing_axe", "description": " Craft: Axe, Throwing" }, - { "id": "wrench", "description": " Craft: Wrench" }, - { "id": "hatchet", "description": " Craft: Hatchet" }, - { "id": "throwing_knife", "description": " Craft: Knife, Throwing" }, - { "id": "crowbar", "description": " Craft: Crowbar" }, - { "id": "pot", "description": " Craft: Pot" }, - { "id": "hoe", "description": " Craft: Hoe" } - ] - }, - { - "type": "recipe_group", - "id": "fbmc_firestation_blacksmith_recipes_6", - "building_type": "SMITH", - "recipes": [ - { "id": "pliers", "description": " Craft: Pliers" }, - { "id": "halberd", "description": " Craft: Halberd" }, - { "id": "cuirass_lightplate", "description": " Craft: Armor, Cuirass" }, - { "id": "pockknife", "description": " Craft: Knife, Pocket" }, - { "id": "warhammer", "description": " Craft: Hammer, War" }, - { "id": "helmet_plate", "description": " Craft: Helm, Great" }, - { "id": "armor_lightplate", "description": " Craft: Armor, Plate" }, - { "id": "broadsword", "description": " Craft: Sword, Broadsword" }, - { "id": "scimitar", "description": " Craft: Sword, Scimitar" }, - { "id": "fire_ax", "description": " Craft: Axe, Fire" }, - { "id": "hacksaw", "description": " Craft: Hacksaw" }, - { "id": "saw", "description": " Craft: Woodsaw" }, - { "id": "pike", "description": " Craft: Spear, Awl Pike" }, - { "id": "rapier", "description": " Craft: Sword, Rapier" }, - { "id": "halligan", "description": " Craft: Halligan Bar" }, - { "id": "zweihander", "description": " Craft: Sword, Zweihander" }, - { "id": "pickaxe", "description": " Craft: Pickaxe" } - ] - }, - { - "type": "recipe_group", - "id": "fbmc_firestation_blacksmith_recipes_7", - "building_type": "SMITH", - "recipes": [ - { "id": "sheet_metal_npc_drop", "description": " Craft: Sheet Metal, Drop Hammer" }, - { "id": "chain_npc_drop", "description": " Craft: Chain, Drop Hammer" }, - { "id": "nail_npc_drop", "description": " Craft: Nail, Drop Hammer" }, - { "id": "wire_npc_drop", "description": " Craft: Wire, Drop Hammer" }, - { "id": "pipe_npc_drop", "description": " Craft: Pipe, Drop Hammer" }, - { "id": "rebar_npc_drop", "description": " Craft: Rebar, Drop Hammer" } - ] - } -] diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter/modular_shelter_recipe_groups.json b/data/json/recipes/basecamps/base/recipe_modular_shelter/modular_shelter_recipe_groups.json deleted file mode 100644 index 92528ec4668ae..0000000000000 --- a/data/json/recipes/basecamps/base/recipe_modular_shelter/modular_shelter_recipe_groups.json +++ /dev/null @@ -1,27 +0,0 @@ -[ - { - "type": "recipe_group", - "id": "fbmc_shelter_recipes_1", - "building_type": "BASE", - "recipes": [ - { "id": "tinder", "description": " Craft: Tinder" }, - { "id": "pointy_stick", "description": " Craft: Pointy Sticks" } - ] - }, - { - "type": "recipe_group", - "id": "fbmc_shelter_cooking_recipes_1", - "building_type": "COOK", - "recipes": [ - { "id": "tinder", "description": " Craft: Tinder" }, - { "id": "meat_cooked", "description": " Cook: Meat, Cooked" }, - { "id": "fish_cooked", "description": " Cook: Fish, Cooked" }, - { "id": "veggy_cooked", "description": " Cook: Veggy, Cooked" }, - { "id": "boiled_egg", "description": " Cook: Egg, Boiled" }, - { "id": "starch", "description": " Cook: Starch" }, - { "id": "starch_from_fibrous_stuff", "description": " Cook: Cattail Starch" }, - { "id": "flatbread", "description": " Cook: Flatbread" }, - { "id": "veggy_wild_cooked", "description": " Cook: Veggy, Cooked Wild" } - ] - } -] diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter_1/modular_shelter_1_recipe_groups.json b/data/json/recipes/basecamps/base/recipe_modular_shelter_1/modular_shelter_1_recipe_groups.json deleted file mode 100644 index ffdbb706def7d..0000000000000 --- a/data/json/recipes/basecamps/base/recipe_modular_shelter_1/modular_shelter_1_recipe_groups.json +++ /dev/null @@ -1,27 +0,0 @@ -[ - { - "type": "recipe_group", - "id": "fbmc_shelter_1_recipes_1", - "building_type": "BASE", - "recipes": [ - { "id": "tinder", "description": " Craft: Tinder" }, - { "id": "pointy_stick", "description": " Craft: Pointy Sticks" } - ] - }, - { - "type": "recipe_group", - "id": "fbmc_shelter_1_cooking_recipes_1", - "building_type": "COOK", - "recipes": [ - { "id": "tinder", "description": " Craft: Tinder" }, - { "id": "meat_cooked", "description": " Cook: Meat, Cooked" }, - { "id": "fish_cooked", "description": " Cook: Fish, Cooked" }, - { "id": "veggy_cooked", "description": " Cook: Veggy, Cooked" }, - { "id": "boiled_egg", "description": " Cook: Egg, Boiled" }, - { "id": "starch", "description": " Cook: Starch" }, - { "id": "starch_from_fibrous_stuff", "description": " Cook: Cattail Starch" }, - { "id": "flatbread", "description": " Cook: Flatbread" }, - { "id": "veggy_wild_cooked", "description": " Cook: Veggy, Cooked Wild" } - ] - } -] diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter_2/modular_shelter_2_recipe_groups.json b/data/json/recipes/basecamps/base/recipe_modular_shelter_2/modular_shelter_2_recipe_groups.json deleted file mode 100644 index b9b62eb6ae183..0000000000000 --- a/data/json/recipes/basecamps/base/recipe_modular_shelter_2/modular_shelter_2_recipe_groups.json +++ /dev/null @@ -1,27 +0,0 @@ -[ - { - "type": "recipe_group", - "id": "fbmc_shelter_2_recipes_1", - "building_type": "BASE", - "recipes": [ - { "id": "tinder", "description": " Craft: Tinder" }, - { "id": "pointy_stick", "description": " Craft: Pointy Sticks" } - ] - }, - { - "type": "recipe_group", - "id": "fbmc_shelter_2_cooking_recipes_1", - "building_type": "COOK", - "recipes": [ - { "id": "tinder", "description": " Craft: Tinder" }, - { "id": "meat_cooked", "description": " Cook: Meat, Cooked" }, - { "id": "fish_cooked", "description": " Cook: Fish, Cooked" }, - { "id": "veggy_cooked", "description": " Cook: Veggy, Cooked" }, - { "id": "boiled_egg", "description": " Cook: Egg, Boiled" }, - { "id": "starch", "description": " Cook: Starch" }, - { "id": "starch_from_fibrous_stuff", "description": " Cook: Cattail Starch" }, - { "id": "flatbread", "description": " Cook: Flatbread" }, - { "id": "veggy_wild_cooked", "description": " Cook: Veggy, Cooked Wild" } - ] - } -] diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_farm/version_1/recipe_primitive_farm.json b/data/json/recipes/basecamps/expansion/recipe_modular_farm/version_1/recipe_primitive_farm.json deleted file mode 100644 index eb8b0ab1491bb..0000000000000 --- a/data/json/recipes/basecamps/expansion/recipe_modular_farm/version_1/recipe_primitive_farm.json +++ /dev/null @@ -1,94 +0,0 @@ -[ - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_farm_0", - "description": "Survey land for a farming area.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "skill_used": "fabrication", - "autolearn": false, - "never_learn": true, - "construction_blueprint": "faction_base_farm_0", - "blueprint_name": "farm area survey", - "time": "3 h", - "blueprint_requires": [ { "id": "not_an_upgrade" } ], - "blueprint_provides": [ { "id": "fbmf_0" } ] - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_farm_1", - "description": "Plowing a few plots should get us started.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "skill_used": "fabrication", - "autolearn": false, - "never_learn": true, - "time": "540 m", - "construction_blueprint": "faction_base_field_camp_farm_1", - "blueprint_name": "Farm basic plots", - "blueprint_provides": [ { "id": "farming" } ], - "blueprint_requires": [ { "id": "fbmf_0" } ], - "qualities": [ [ { "id": "DIG", "level": 1 } ] ] - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_farm_2", - "description": "We could use a farming shed to store resources where we'll be working.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "skill_used": "fabrication", - "difficulty": 4, - "autolearn": false, - "never_learn": true, - "time": "3600 m", - "construction_blueprint": "faction_base_field_camp_farm_2", - "blueprint_name": "Farm basic shed", - "blueprint_requires": [ { "id": "fbmf_0" } ], - "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ], - "components": [ [ [ "log", 54 ] ], [ [ "stick", 90 ] ] ], - "check_blueprint_needs": false - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_farm_3", - "description": "Our farm could be expanded by finishing the shed and adding additional plots.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "skill_used": "fabrication", - "difficulty": 4, - "autolearn": false, - "never_learn": true, - "time": "2160 m", - "construction_blueprint": "faction_base_field_camp_farm_3", - "blueprint_name": "Farm upgraded shed", - "blueprint_requires": [ { "id": "fbmf_0" }, { "id": "faction_base_farm_1" } ], - "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ], - "components": [ [ [ "log", 24 ] ], [ [ "stick", 36 ] ], [ [ "2x4", 16 ] ], [ [ "nail", 36 ] ] ], - "check_blueprint_needs": false - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_farm_4", - "description": "Building a processing shack should allow us to reclaim additional seeds from our byproducts.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "skill_used": "fabrication", - "difficulty": 4, - "autolearn": false, - "never_learn": true, - "//": "1hrs*26wall + 1.5 hr*1door + 0.5hrs*14pits + 2hrs*2window + 2hrs*20log roof + 0.5hrs*9counter + 0.5hrs*1table = 83.5 hrs (12hrs on/off) 7 days total; requires 26wall*(2log+3stick+6 2x4 ) + 1door*(16 2x4+36nail) + 2windows*(15 2x4+30nail+2log+glass) + 20roof*(2log+4stick+8 2x4) + 1table*(8nail+6 2x4) + 9counter*(8nail+6 2x4)", - "time": "84 h", - "construction_blueprint": "faction_base_field_camp_farm_4", - "blueprint_name": "Farm processing shack", - "blueprint_provides": [ { "id": "reseeding" }, { "id": "farm_recipes_1" } ], - "blueprint_requires": [ { "id": "faction_base_farm_3" } ], - "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ], - "components": [ [ [ "log", 96 ] ], [ [ "stick", 158 ] ], [ [ "2x4", 336 ] ], [ [ "nail", 176 ] ], [ [ "glass_sheet", 2 ] ] ], - "check_blueprint_needs": false - } -] diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_garage/version_1/recipe_primitive_garage.json b/data/json/recipes/basecamps/expansion/recipe_modular_garage/version_1/recipe_primitive_garage.json deleted file mode 100644 index 9cc284f5eeb88..0000000000000 --- a/data/json/recipes/basecamps/expansion/recipe_modular_garage/version_1/recipe_primitive_garage.json +++ /dev/null @@ -1,158 +0,0 @@ -[ - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_garage_0", - "description": "Survey land for a garage.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "skill_used": "fabrication", - "autolearn": false, - "never_learn": true, - "construction_blueprint": "faction_base_garage_0", - "blueprint_name": "garage survey", - "time": "3 h", - "blueprint_requires": [ { "id": "not_an_upgrade" } ], - "blueprint_provides": [ { "id": "fbmg_0" } ] - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_garage_1", - "description": "Building a tool rack should be the first priority.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "skill_used": "fabrication", - "difficulty": 4, - "autolearn": false, - "never_learn": true, - "construction_blueprint": "faction_base_field_camp_garage_1", - "blueprint_name": "Garage tool rack", - "blueprint_provides": [ { "id": "dismantling" } ], - "blueprint_requires": [ { "id": "fbmg_0" } ], - "blueprint_resources": [ "wrench", "hacksaw" ], - "time": "5040 m", - "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ], [ { "id": "WRENCH", "level": 1 } ] ], - "components": [ - [ [ "log", 72 ] ], - [ [ "stick", 72 ] ], - [ [ "2x4", 110 ] ], - [ [ "nail", 16 ] ], - [ [ "pipe", 24 ] ], - [ [ "wrench", 1 ] ], - [ [ "hacksaw", 1 ] ], - [ [ "sheet_metal", 4 ] ] - ], - "check_blueprint_needs": false - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_garage_2", - "description": "We should start construction of a roof for the garage.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "skill_used": "fabrication", - "difficulty": 4, - "autolearn": false, - "never_learn": true, - "construction_blueprint": "faction_base_field_camp_garage_2", - "blueprint_name": "Garage partial roof", - "blueprint_requires": [ { "id": "faction_base_garage_1" } ], - "time": "4320 m", - "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ], - "components": [ [ [ "log", 68 ] ], [ [ "stick", 60 ] ], [ [ "2x4", 112 ] ] ], - "check_blueprint_needs": false - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_garage_3", - "description": "Finishing out the roof will let our mechanics work rain or shine.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "skill_used": "fabrication", - "difficulty": 4, - "autolearn": false, - "never_learn": true, - "time": "10080 m", - "construction_blueprint": "faction_base_field_camp_garage_3", - "blueprint_name": "Garage completed roof", - "blueprint_requires": [ { "id": "faction_base_garage_2" } ], - "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ], - "components": [ [ [ "log", 112 ] ], [ [ "2x4", 448 ] ] ], - "check_blueprint_needs": false - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_garage_4", - "description": "Our garage isn't big enough to work on larger vehicles. Let's start expanding it.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "skill_used": "fabrication", - "difficulty": 4, - "autolearn": false, - "never_learn": true, - "time": "4320 m", - "construction_blueprint": "faction_base_field_camp_garage_4", - "blueprint_name": "Garage partial expansion", - "blueprint_requires": [ { "id": "faction_base_garage_3" } ], - "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ], - "components": [ [ [ "log", 65 ] ], [ [ "stick", 96 ] ] ], - "check_blueprint_needs": false - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_garage_5", - "description": "Finishing the roof will let us park RVs and buses in the garage.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "skill_used": "fabrication", - "difficulty": 5, - "autolearn": false, - "never_learn": true, - "time": "11520 m", - "construction_blueprint": "faction_base_field_camp_garage_5", - "blueprint_name": "Garage expanded roof", - "blueprint_requires": [ { "id": "faction_base_garage_4" } ], - "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ], [ { "id": "WRENCH", "level": 1 } ] ], - "components": [ - [ [ "log", 124 ] ], - [ [ "stick", 96 ] ], - [ [ "2x4", 752 ] ], - [ [ "nail", 24 ] ], - [ [ "pipe", 24 ] ], - [ [ "sheet_metal", 4 ] ] - ], - "check_blueprint_needs": false - }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_garage_6", - "description": "Attaching quarters will let our mechanics work longer hours when needed.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "skill_used": "fabrication", - "difficulty": 4, - "autolearn": false, - "never_learn": true, - "time": "2880 m", - "construction_blueprint": "faction_base_field_camp_garage_6", - "blueprint_name": "Garage mechanics quarters", - "blueprint_requires": [ { "id": "faction_base_garage_5" } ], - "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ], [ { "id": "WRENCH", "level": 1 } ] ], - "components": [ - [ [ "log", 95 ] ], - [ [ "stick", 90 ] ], - [ [ "2x4", 154 ] ], - [ [ "nail", 72 ] ], - [ [ "pipe", 12 ] ], - [ [ "sheet_metal", 2 ] ], - [ [ "straw_pile", 16 ], [ "pine_bough", 20 ] ] - ], - "check_blueprint_needs": false - } -] diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_common.json b/data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_common.json deleted file mode 100644 index 2df868a55c250..0000000000000 --- a/data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_common.json +++ /dev/null @@ -1,18 +0,0 @@ -[ - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_storehouse_0", - "description": "Survey land for a storehouse area.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "skill_used": "fabrication", - "autolearn": false, - "never_learn": true, - "construction_blueprint": "faction_base_storehouse_0", - "blueprint_name": "Storehouse survey", - "time": "3 h", - "blueprint_requires": [ { "id": "not_an_upgrade" } ], - "blueprint_provides": [ { "id": "fbms_0" } ] - } -] diff --git a/data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_beds.json b/data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_beds.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_beds.json rename to data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_beds.json diff --git a/data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_common.json b/data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_common.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_common.json rename to data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_common.json diff --git a/data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_log.json b/data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_log.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_log.json rename to data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_log.json diff --git a/data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_metal.json b/data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_metal.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_metal.json rename to data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_metal.json diff --git a/data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_migo_resin.json b/data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_migo_resin.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_migo_resin.json rename to data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_migo_resin.json diff --git a/data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_rammed_earth.json b/data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_rammed_earth.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_rammed_earth.json rename to data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_rammed_earth.json diff --git a/data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_rock.json b/data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_rock.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_rock.json rename to data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_rock.json diff --git a/data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_wad.json b/data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_wad.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_wad.json rename to data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_wad.json diff --git a/data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_wood.json b/data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_wood.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_wood.json rename to data/json/recipes/basecamps/fbmc_fire_lookout_tower/recipe_modular_fire_lookout_tower_wood.json diff --git a/data/json/recipes/basecamps/base/fbmc_helipad/recipe_modular_helipad_common.json b/data/json/recipes/basecamps/fbmc_helipad/recipe_modular_helipad_common.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_helipad/recipe_modular_helipad_common.json rename to data/json/recipes/basecamps/fbmc_helipad/recipe_modular_helipad_common.json diff --git a/data/json/recipes/basecamps/base/fbmc_helipad/recipe_modular_helipad_garage.json b/data/json/recipes/basecamps/fbmc_helipad/recipe_modular_helipad_garage.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_helipad/recipe_modular_helipad_garage.json rename to data/json/recipes/basecamps/fbmc_helipad/recipe_modular_helipad_garage.json diff --git a/data/json/recipes/basecamps/base/fbmc_lighthouse/recipe_modular_lighthouse_common.json b/data/json/recipes/basecamps/fbmc_lighthouse/recipe_modular_lighthouse_common.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_lighthouse/recipe_modular_lighthouse_common.json rename to data/json/recipes/basecamps/fbmc_lighthouse/recipe_modular_lighthouse_common.json diff --git a/data/json/recipes/basecamps/base/fbmc_lightindustry/recipe_modular_lightindustry_00.json b/data/json/recipes/basecamps/fbmc_lightindustry/recipe_modular_lightindustry_00.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_lightindustry/recipe_modular_lightindustry_00.json rename to data/json/recipes/basecamps/fbmc_lightindustry/recipe_modular_lightindustry_00.json diff --git a/data/json/recipes/basecamps/base/fbmc_lightindustry/recipe_modular_lightindustry_00_beds.json b/data/json/recipes/basecamps/fbmc_lightindustry/recipe_modular_lightindustry_00_beds.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_lightindustry/recipe_modular_lightindustry_00_beds.json rename to data/json/recipes/basecamps/fbmc_lightindustry/recipe_modular_lightindustry_00_beds.json diff --git a/data/json/recipes/basecamps/base/fbmc_lightindustry/recipe_modular_lightindustry_10.json b/data/json/recipes/basecamps/fbmc_lightindustry/recipe_modular_lightindustry_10.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_lightindustry/recipe_modular_lightindustry_10.json rename to data/json/recipes/basecamps/fbmc_lightindustry/recipe_modular_lightindustry_10.json diff --git a/data/json/recipes/basecamps/base/fbmc_lightindustry/recipe_modular_lightindustry_10_beds.json b/data/json/recipes/basecamps/fbmc_lightindustry/recipe_modular_lightindustry_10_beds.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_lightindustry/recipe_modular_lightindustry_10_beds.json rename to data/json/recipes/basecamps/fbmc_lightindustry/recipe_modular_lightindustry_10_beds.json diff --git a/data/json/recipes/basecamps/base/fbmc_lightindustry/recipe_modular_lightindustry_workshop.json b/data/json/recipes/basecamps/fbmc_lightindustry/recipe_modular_lightindustry_workshop.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_lightindustry/recipe_modular_lightindustry_workshop.json rename to data/json/recipes/basecamps/fbmc_lightindustry/recipe_modular_lightindustry_workshop.json diff --git a/data/json/recipes/basecamps/base/fbmc_mansion/fbmc_mansion_+1.json b/data/json/recipes/basecamps/fbmc_mansion/fbmc_mansion_+1.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_mansion/fbmc_mansion_+1.json rename to data/json/recipes/basecamps/fbmc_mansion/fbmc_mansion_+1.json diff --git a/data/json/recipes/basecamps/base/fbmc_mansion/fbmc_mansion_+2.json b/data/json/recipes/basecamps/fbmc_mansion/fbmc_mansion_+2.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_mansion/fbmc_mansion_+2.json rename to data/json/recipes/basecamps/fbmc_mansion/fbmc_mansion_+2.json diff --git a/data/json/recipes/basecamps/base/fbmc_mansion/fbmc_mansion_+3.json b/data/json/recipes/basecamps/fbmc_mansion/fbmc_mansion_+3.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_mansion/fbmc_mansion_+3.json rename to data/json/recipes/basecamps/fbmc_mansion/fbmc_mansion_+3.json diff --git a/data/json/recipes/basecamps/base/fbmc_mansion/fbmc_mansion_+4.json b/data/json/recipes/basecamps/fbmc_mansion/fbmc_mansion_+4.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_mansion/fbmc_mansion_+4.json rename to data/json/recipes/basecamps/fbmc_mansion/fbmc_mansion_+4.json diff --git a/data/json/recipes/basecamps/base/fbmc_mansion/fbmc_mansion_expansion_surveys.json b/data/json/recipes/basecamps/fbmc_mansion/fbmc_mansion_expansion_surveys.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_mansion/fbmc_mansion_expansion_surveys.json rename to data/json/recipes/basecamps/fbmc_mansion/fbmc_mansion_expansion_surveys.json diff --git a/data/json/recipes/basecamps/base/fbmc_outpost/recipe_modular_outpost_cross.json b/data/json/recipes/basecamps/fbmc_outpost/recipe_modular_outpost_cross.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_outpost/recipe_modular_outpost_cross.json rename to data/json/recipes/basecamps/fbmc_outpost/recipe_modular_outpost_cross.json diff --git a/data/json/recipes/basecamps/base/fbmc_outpost/recipe_modular_outpost_normal.json b/data/json/recipes/basecamps/fbmc_outpost/recipe_modular_outpost_normal.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_outpost/recipe_modular_outpost_normal.json rename to data/json/recipes/basecamps/fbmc_outpost/recipe_modular_outpost_normal.json diff --git a/data/json/recipes/basecamps/base/fbmc_pottery_cottage/recipe_pottery_cottage_blacksmith.json b/data/json/recipes/basecamps/fbmc_pottery_cottage/recipe_pottery_cottage_blacksmith.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_pottery_cottage/recipe_pottery_cottage_blacksmith.json rename to data/json/recipes/basecamps/fbmc_pottery_cottage/recipe_pottery_cottage_blacksmith.json diff --git a/data/json/recipes/basecamps/base/fbmc_pottery_cottage/recipe_pottery_cottage_common.json b/data/json/recipes/basecamps/fbmc_pottery_cottage/recipe_pottery_cottage_common.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_pottery_cottage/recipe_pottery_cottage_common.json rename to data/json/recipes/basecamps/fbmc_pottery_cottage/recipe_pottery_cottage_common.json diff --git a/data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_beds.json b/data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_beds.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_beds.json rename to data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_beds.json diff --git a/data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_common.json b/data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_common.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_common.json rename to data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_common.json diff --git a/data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_log.json b/data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_log.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_log.json rename to data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_log.json diff --git a/data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_metal.json b/data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_metal.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_metal.json rename to data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_metal.json diff --git a/data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_migo_resin.json b/data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_migo_resin.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_migo_resin.json rename to data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_migo_resin.json diff --git a/data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_rammed_earth.json b/data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_rammed_earth.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_rammed_earth.json rename to data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_rammed_earth.json diff --git a/data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_rock.json b/data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_rock.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_rock.json rename to data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_rock.json diff --git a/data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_wad.json b/data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_wad.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_wad.json rename to data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_wad.json diff --git a/data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_wood.json b/data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_wood.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_radio_tower/recipe_modular_radio_tower_wood.json rename to data/json/recipes/basecamps/fbmc_radio_tower/recipe_modular_radio_tower_wood.json diff --git a/data/json/recipes/basecamps/base/fbmc_sealab_small/recipe_sealab_small_common.json b/data/json/recipes/basecamps/fbmc_sealab_small/recipe_sealab_small_common.json similarity index 100% rename from data/json/recipes/basecamps/base/fbmc_sealab_small/recipe_sealab_small_common.json rename to data/json/recipes/basecamps/fbmc_sealab_small/recipe_sealab_small_common.json diff --git a/data/json/recipes/basecamps/legacy_recipe_groups.json b/data/json/recipes/basecamps/legacy_recipe_groups.json deleted file mode 100644 index edd0d2f371471..0000000000000 --- a/data/json/recipes/basecamps/legacy_recipe_groups.json +++ /dev/null @@ -1,232 +0,0 @@ -[ - { - "type": "recipe_group", - "id": "kitchen_recipes_1", - "building_type": "COOK", - "recipes": [ - { "id": "tinder", "description": " Craft: Tinder" }, - { "id": "meat_cooked", "description": " Cook: Meat, Cooked" }, - { "id": "fish_cooked", "description": " Cook: Fish, Cooked" }, - { "id": "veggy_cooked", "description": " Cook: Veggy, Cooked" }, - { "id": "boiled_egg", "description": " Cook: Egg, Boiled" }, - { "id": "starch", "description": " Cook: Starch" }, - { "id": "starch_from_fibrous_stuff", "description": " Cook: Cattail Starch" }, - { "id": "flatbread", "description": " Cook: Flatbread" }, - { "id": "veggy_wild_cooked", "description": " Cook: Veggy, Cooked Wild" } - ] - }, - { - "type": "recipe_group", - "id": "kitchen_recipes_2", - "building_type": "COOK", - "recipes": [ - { "id": "flour", "description": " Cook: Flour" }, - { "id": "salt", "description": " Cook: Salt" }, - { "id": "bread", "description": " Cook: Bread" }, - { "id": "fruit_leather", "description": " Cook: Fruit Leather" }, - { "id": "jerky", "description": " Cook: Meat Jerky" }, - { "id": "mushroom_cooked", "description": " Cook: Mushroom, Cooked" }, - { "id": "lard", "description": " Cook: Lard" }, - { "id": "cornmeal", "description": " Cook: Cornmeal" }, - { "id": "meat_smoked", "description": " Cook: Meat, Smoked" }, - { "id": "fish_smoked", "description": " Cook: Fish, Smoked" }, - { "id": "dry_mushroom", "description": " Cook: Mushroom, Dried" }, - { "id": "dry_fruit", "description": " Cook: Fruit, Dehydrated" }, - { "id": "sausage", "description": " Cook: Sausage" }, - { "id": "sausage_wasteland", "description": " Cook: Sausage, Wasteland" } - ] - }, - { - "type": "recipe_group", - "id": "kitchen_recipes_3", - "building_type": "COOK", - "recipes": [ - { "id": "pie_meat", "description": " Cook: Meat Pie" }, - { "id": "pie_veggy", "description": " Cook: Veggy Pie" }, - { "id": "sugar", "description": " Cook: Sugar" }, - { "id": "hardtack", "description": " Cook: Hardtack" }, - { "id": "veggy_pickled_jarred", "description": " Cook: Veggy, Pickled" }, - { "id": "cheese_hard", "description": " Cook: Cheese, Hard" }, - { "id": "pemmican", "description": " Cook: Pemmican" }, - { "id": "veggy_aspic", "description": " Cook: Veggy Aspic" }, - { "id": "meat_canned_jarred", "description": " Cook: Meat, Canned" }, - { "id": "meat_aspic", "description": " Cook: Meat Aspic" }, - { "id": "kompot", "description": " Cook: Kompot" } - ] - }, - { - "type": "recipe_group", - "id": "saltworks_recipes_1", - "building_type": "COOK", - "recipes": [ - { "id": "salt_from_salt_water", "description": " Craft: Salt from salt water" }, - { "id": "salted_fish", "description": " Cook: Fish, Salted" } - ] - }, - { - "type": "recipe_group", - "id": "saltworks_recipes_2", - "building_type": "COOK", - "recipes": [ - { "id": "brew_fruit_wine", "description": " Brew: Fruit Wine Must" }, - { "id": "brew_mead", "description": " Brew: Spiced Wine Must" }, - { "id": "brew_dandelion_wine", "description": " Brew: Dandelion Wine Must" }, - { "id": "brew_burdock_wine", "description": " Brew: Burdock Wine Must" }, - { "id": "brew_pine_wine", "description": " Brew: Pine Wine Must" }, - { "id": "brew_hb_beer", "description": " Brew: Beer" } - ] - }, - { - "type": "recipe_group", - "id": "saltworks_recipes_3", - "building_type": "COOK", - "recipes": [ - { "id": "brandy", "description": " Distill: Brandy" }, - { "id": "gin_from_mash", "description": " Distill: Gin" }, - { "id": "vodka_from_wash", "description": " Distill: Vodka" }, - { "id": "rum", "description": " Distill: Rum" } - ] - }, - { - "type": "recipe_group", - "id": "primitive_camp_recipes_1", - "building_type": "BASE", - "recipes": [ - { "id": "tinder", "description": " Craft: Tinder" }, - { "id": "pointy_stick", "description": " Craft: Pointy Sticks" }, - { "id": "wood_panel_from nailed planks", "description": " Craft: Wooden Panel, Nailed Planks" }, - { "id": "wood_panel_from wooden beams", "description": " Craft: Wooden Panel, Wooden Beams" }, - { "id": "wood_beam_from logs", "description": " Craft: Wooden Beam" } - ] - }, - { - "type": "recipe_group", - "id": "farm_recipes_1", - "building_type": "FARM", - "recipes": [ - { "id": "seed_veggy_wild", "description": " Craft: Wild Veggy Stems" }, - { "id": "seed_raw_dandelion", "description": " Craft: Dandelion Seeds" }, - { "id": "seed_potato_raw", "description": " Craft: Potato, Starter" }, - { "id": "seed_buckwheat", "description": " Craft: Buckwheat Seeds" } - ] - }, - { - "type": "recipe_group", - "id": "blacksmith_recipes_1", - "building_type": "SMITH", - "recipes": [ - { "id": "scrap_copper", "description": " Craft: Copper, Scrap" }, - { "id": "charcoal_npc", "description": " Craft: Charcoal" }, - { "id": "spike", "description": " Craft: Spike" }, - { "id": "caltrops_glass", "description": " Craft: Glass Caltrops" }, - { "id": "steel_chunk", "description": " Craft: Steel, Chunk" }, - { "id": "anvil", "description": " Craft: Anvil" }, - { "id": "steel_lump", "description": " Craft: Steel, Lump" } - ] - }, - { - "type": "recipe_group", - "id": "blacksmith_recipes_2", - "building_type": "SMITH", - "recipes": [ - { "id": "copper_knife", "description": " Craft: Knife, Copper" }, - { "id": "sword_crude", "description": " Craft: Sword, Crude" }, - { "id": "pot_copper", "description": " Craft: Pot, Copper" }, - { "id": "bolt_metal", "description": " Craft: Crossbow Bolt, Steel" }, - { "id": "armor_scrapsuit", "description": " Craft: Armor, Scrap Suit" }, - { "id": "helmet_scrap", "description": " Craft: Armor, Scrap Helmet" }, - { "id": "cuirass_scrap", "description": " Craft: Armor, Scrap Cuirass" }, - { "id": "armguard_scrap", "description": " Craft: Armor, Scrap Arm Guards" }, - { "id": "legguard_scrap", "description": " Craft: Armor, Scrap Leg Guards" }, - { "id": "boots_scrap", "description": " Craft: Armor, Scrap Boots" }, - { "id": "copper_ax", "description": " Craft: Axe, Copper" }, - { "id": "spear_copper", "description": " Craft: Spear, Copper" } - ] - }, - { - "type": "recipe_group", - "id": "blacksmith_recipes_3", - "building_type": "SMITH", - "recipes": [ - { "id": "chisel", "description": " Craft: Metalworking Chisel" }, - { "id": "hammer", "description": " Craft: Hammer" }, - { "id": "tongs", "description": " Craft: Metal Tongs" }, - { "id": "nail", "description": " Craft: Nail" }, - { "id": "wire", "description": " Craft: Wire" }, - { "id": "swage", "description": " Craft: Swage and Die Set" } - ] - }, - { - "type": "recipe_group", - "id": "blacksmith_recipes_4", - "building_type": "SMITH", - "recipes": [ - { "id": "blade", "description": " Craft: Blade" }, - { "id": "bearing", "description": " Craft: Bearings" }, - { "id": "caltrops", "description": " Craft: Caltrops" }, - { "id": "hand_drill", "description": " Craft: Hand Drill" }, - { "id": "sheet_metal", "description": " Craft: Sheet Metal" }, - { "id": "chain", "description": " Craft: Chain" }, - { "id": "shovel", "description": " Craft: Shovel" }, - { "id": "rebar", "description": " Craft: Rebar" }, - { "id": "gold_ring", "description": " Craft: Gold Ring" }, - { "id": "hammer_sledge", "description": " Craft: Hammer, Sledge" } - ] - }, - { - "type": "recipe_group", - "id": "blacksmith_recipes_5", - "building_type": "SMITH", - "recipes": [ - { "id": "knife_combat", "description": " Craft: Knife, Combat" }, - { "id": "spear_steel", "description": " Craft: Spear, Steel" }, - { "id": "machete", "description": " Craft: Machete" }, - { "id": "pipe", "description": " Craft: Pipe" }, - { "id": "screwdriver", "description": " Craft: Screwdriver" }, - { "id": "throwing_axe", "description": " Craft: Axe, Throwing" }, - { "id": "wrench", "description": " Craft: Wrench" }, - { "id": "hatchet", "description": " Craft: Hatchet" }, - { "id": "throwing_knife", "description": " Craft: Knife, Throwing" }, - { "id": "crowbar", "description": " Craft: Crowbar" }, - { "id": "pot", "description": " Craft: Pot" }, - { "id": "hoe", "description": " Craft: Hoe" } - ] - }, - { - "type": "recipe_group", - "id": "blacksmith_recipes_6", - "building_type": "SMITH", - "recipes": [ - { "id": "pliers", "description": " Craft: Pliers" }, - { "id": "halberd", "description": " Craft: Halberd" }, - { "id": "cuirass_lightplate", "description": " Craft: Armor, Cuirass" }, - { "id": "pockknife", "description": " Craft: Knife, Pocket" }, - { "id": "warhammer", "description": " Craft: Hammer, War" }, - { "id": "helmet_plate", "description": " Craft: Helm, Great" }, - { "id": "armor_lightplate", "description": " Craft: Armor, Plate" }, - { "id": "broadsword", "description": " Craft: Sword, Broadsword" }, - { "id": "scimitar", "description": " Craft: Sword, Scimitar" }, - { "id": "fire_ax", "description": " Craft: Axe, Fire" }, - { "id": "hacksaw", "description": " Craft: Hacksaw" }, - { "id": "saw", "description": " Craft: Woodsaw" }, - { "id": "pike", "description": " Craft: Spear, Awl Pike" }, - { "id": "rapier", "description": " Craft: Sword, Rapier" }, - { "id": "halligan", "description": " Craft: Halligan Bar" }, - { "id": "zweihander", "description": " Craft: Sword, Zweihander" }, - { "id": "pickaxe", "description": " Craft: Pickaxe" } - ] - }, - { - "type": "recipe_group", - "id": "blacksmith_recipes_7", - "building_type": "SMITH", - "recipes": [ - { "id": "sheet_metal_npc_drop", "description": " Craft: Sheet Metal, Drop Hammer" }, - { "id": "chain_npc_drop", "description": " Craft: Chain, Drop Hammer" }, - { "id": "nail_npc_drop", "description": " Craft: Nail, Drop Hammer" }, - { "id": "wire_npc_drop", "description": " Craft: Wire, Drop Hammer" }, - { "id": "pipe_npc_drop", "description": " Craft: Pipe, Drop Hammer" }, - { "id": "rebar_npc_drop", "description": " Craft: Rebar, Drop Hammer" } - ] - } -] diff --git a/data/json/recipes/basecamps/recipe_groups.json b/data/json/recipes/basecamps/recipe_groups.json index e7e5872803582..4c68c73162f1c 100644 --- a/data/json/recipes/basecamps/recipe_groups.json +++ b/data/json/recipes/basecamps/recipe_groups.json @@ -4,21 +4,25 @@ "id": "all_faction_base_types", "building_type": "NONE", "recipes": [ - { "id": "faction_base_modular_hub_field_0", "description": "Modular Field Camp version 1", "om_terrains": [ "field" ] }, - { "id": "faction_base_firestation_0", "description": "Firestation Base", "om_terrains": [ "fire_station" ] }, + { "id": "faction_base_modular_hub_field_0", "description": "Field Camp", "om_terrains": [ "field" ] }, + { + "id": "faction_base_firestation_0", + "description": "Side Bunkroom Firestation Base", + "om_terrains": [ "fire_station" ] + }, { "id": "faction_base_shelter_0", - "description": "Evac Shelter Base", + "description": "Open Center Evac Shelter Base", "om_terrains": [ "shelter", "shelter_vandal" ] }, { "id": "faction_base_shelter_1_0", - "description": "Evac Shelter Base", + "description": "Corner Stairs Evac Shelter Base", "om_terrains": [ "shelter_1", "shelter_1_vandal" ] }, { "id": "faction_base_shelter_2_0", - "description": "Evac Shelter Base", + "description": "Central Stairs Evac Shelter Base", "om_terrains": [ "shelter_2", "shelter_2_vandal" ] }, { @@ -95,7 +99,6 @@ "id": "all_faction_base_expansions", "building_type": "NONE", "recipes": [ - { "id": "faction_base_canteen_0", "description": "Canteen", "om_terrains": [ "field" ] }, { "id": "faction_base_farm_0", "description": "Farm version 1. Shed, plots, some farming recipes", @@ -107,9 +110,10 @@ "om_terrains": [ "field" ] }, { "id": "faction_base_garage_0", "description": "Garage", "om_terrains": [ "field" ] }, + { "id": "faction_base_canteen_0", "description": "Canteen", "om_terrains": [ "field" ] }, { "id": "faction_base_livestock_0", "description": "Livestock Area", "om_terrains": [ "field" ] }, - { "id": "faction_base_saltworks_0", "description": "Saltworks Area", "om_terrains": [ "field" ] }, { "id": "faction_base_storehouse_0", "description": "Central Storage Building", "om_terrains": [ "field" ] }, + { "id": "faction_base_saltworks_0", "description": "Saltworks Area", "om_terrains": [ "field" ] }, { "id": "faction_base_workshop_0", "description": "Fabrication Workshop", "om_terrains": [ "field" ] }, { "id": "faction_base_lightindustry_workshop_0", diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_canteen/version_1/recipe_modular_canteen_common.json b/data/json/recipes/basecamps/recipe_modular_canteen/recipe_modular_canteen_common.json similarity index 98% rename from data/json/recipes/basecamps/expansion/recipe_modular_canteen/version_1/recipe_modular_canteen_common.json rename to data/json/recipes/basecamps/recipe_modular_canteen/recipe_modular_canteen_common.json index 5aa1b11f269cc..295a53a00ce0f 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_canteen/version_1/recipe_modular_canteen_common.json +++ b/data/json/recipes/basecamps/recipe_modular_canteen/recipe_modular_canteen_common.json @@ -11,7 +11,7 @@ "never_learn": true, "construction_blueprint": "faction_base_canteen_0", "blueprint_name": "kitchen survey", - "time": "3 h", + "time": "180 m", "blueprint_requires": [ { "id": "not_an_upgrade" } ], "blueprint_provides": [ { "id": "fbmk_0" } ] }, @@ -35,7 +35,7 @@ { "id": "hunting" } ], "blueprint_excludes": [ { "id": "fbmk_canteen_fire" } ], - "blueprint_resources": [ "fake_fireplace", "fake_fireplace", "pot" ], + "blueprint_resources": [ "fake_fireplace", "pot" ], "blueprint_needs": { "time": "4 h 30 m", "skills": [ [ "fabrication", 2 ], [ "survival", 1 ] ], @@ -68,7 +68,7 @@ { "id": "hunting" } ], "blueprint_excludes": [ { "id": "fbmk_canteen_fire" } ], - "blueprint_resources": [ "fake_fireplace", "fake_fireplace", "pot" ], + "blueprint_resources": [ "fake_fireplace", "pot" ], "blueprint_needs": { "time": "2 h 30 m", "skills": [ [ "fabrication", 5 ], [ "mechanics", 3 ] ], @@ -98,7 +98,7 @@ "construction_blueprint": "fbmk_canteen_well", "blueprint_name": "build a well", "blueprint_requires": [ { "id": "fbmk_canteen_fire" } ], - "blueprint_provides": [ { "id": "fbmk_canteen_well" }, { "id": "water_well" } ], + "blueprint_provides": [ { "id": "fbmk_canteen_well" } ], "blueprint_excludes": [ { "id": "fbmk_canteen_well" } ], "blueprint_needs": { "time": "11 h", diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_canteen/version_1/recipe_modular_canteen_log.json b/data/json/recipes/basecamps/recipe_modular_canteen/recipe_modular_canteen_log.json similarity index 100% rename from data/json/recipes/basecamps/expansion/recipe_modular_canteen/version_1/recipe_modular_canteen_log.json rename to data/json/recipes/basecamps/recipe_modular_canteen/recipe_modular_canteen_log.json diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_canteen/version_1/recipe_modular_canteen_metal.json b/data/json/recipes/basecamps/recipe_modular_canteen/recipe_modular_canteen_metal.json similarity index 100% rename from data/json/recipes/basecamps/expansion/recipe_modular_canteen/version_1/recipe_modular_canteen_metal.json rename to data/json/recipes/basecamps/recipe_modular_canteen/recipe_modular_canteen_metal.json diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_canteen/version_1/recipe_modular_canteen_migo_resin.json b/data/json/recipes/basecamps/recipe_modular_canteen/recipe_modular_canteen_migo_resin.json similarity index 100% rename from data/json/recipes/basecamps/expansion/recipe_modular_canteen/version_1/recipe_modular_canteen_migo_resin.json rename to data/json/recipes/basecamps/recipe_modular_canteen/recipe_modular_canteen_migo_resin.json diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_canteen/version_1/recipe_modular_canteen_rammed_earth.json b/data/json/recipes/basecamps/recipe_modular_canteen/recipe_modular_canteen_rammed_earth.json similarity index 100% rename from data/json/recipes/basecamps/expansion/recipe_modular_canteen/version_1/recipe_modular_canteen_rammed_earth.json rename to data/json/recipes/basecamps/recipe_modular_canteen/recipe_modular_canteen_rammed_earth.json diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_canteen/version_1/recipe_modular_canteen_rock.json b/data/json/recipes/basecamps/recipe_modular_canteen/recipe_modular_canteen_rock.json similarity index 100% rename from data/json/recipes/basecamps/expansion/recipe_modular_canteen/version_1/recipe_modular_canteen_rock.json rename to data/json/recipes/basecamps/recipe_modular_canteen/recipe_modular_canteen_rock.json diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_canteen/version_1/recipe_modular_canteen_wad.json b/data/json/recipes/basecamps/recipe_modular_canteen/recipe_modular_canteen_wad.json similarity index 100% rename from data/json/recipes/basecamps/expansion/recipe_modular_canteen/version_1/recipe_modular_canteen_wad.json rename to data/json/recipes/basecamps/recipe_modular_canteen/recipe_modular_canteen_wad.json diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_canteen/version_1/recipe_modular_canteen_wood.json b/data/json/recipes/basecamps/recipe_modular_canteen/recipe_modular_canteen_wood.json similarity index 100% rename from data/json/recipes/basecamps/expansion/recipe_modular_canteen/version_1/recipe_modular_canteen_wood.json rename to data/json/recipes/basecamps/recipe_modular_canteen/recipe_modular_canteen_wood.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_common.json b/data/json/recipes/basecamps/recipe_modular_field_common.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_common.json rename to data/json/recipes/basecamps/recipe_modular_field_common.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_defenses.json b/data/json/recipes/basecamps/recipe_modular_field_defenses.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_defenses.json rename to data/json/recipes/basecamps/recipe_modular_field_defenses.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_log.json b/data/json/recipes/basecamps/recipe_modular_field_log.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_log.json rename to data/json/recipes/basecamps/recipe_modular_field_log.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_metal.json b/data/json/recipes/basecamps/recipe_modular_field_metal.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_metal.json rename to data/json/recipes/basecamps/recipe_modular_field_metal.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_migo_resin.json b/data/json/recipes/basecamps/recipe_modular_field_migo_resin.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_migo_resin.json rename to data/json/recipes/basecamps/recipe_modular_field_migo_resin.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_rammed_earth.json b/data/json/recipes/basecamps/recipe_modular_field_rammed_earth.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_rammed_earth.json rename to data/json/recipes/basecamps/recipe_modular_field_rammed_earth.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_rock.json b/data/json/recipes/basecamps/recipe_modular_field_rock.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_rock.json rename to data/json/recipes/basecamps/recipe_modular_field_rock.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_tent.json b/data/json/recipes/basecamps/recipe_modular_field_tent.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_tent.json rename to data/json/recipes/basecamps/recipe_modular_field_tent.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_wad.json b/data/json/recipes/basecamps/recipe_modular_field_wad.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_wad.json rename to data/json/recipes/basecamps/recipe_modular_field_wad.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_wood.json b/data/json/recipes/basecamps/recipe_modular_field_wood.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_modular_field_wood.json rename to data/json/recipes/basecamps/recipe_modular_field_wood.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_firestation_1/recipe_modular_firestation1.json b/data/json/recipes/basecamps/recipe_modular_firestation_1/recipe_modular_firestation1.json similarity index 95% rename from data/json/recipes/basecamps/base/recipe_modular_firestation_1/recipe_modular_firestation1.json rename to data/json/recipes/basecamps/recipe_modular_firestation_1/recipe_modular_firestation1.json index dbdebdb880f80..268d361b9de91 100644 --- a/data/json/recipes/basecamps/base/recipe_modular_firestation_1/recipe_modular_firestation1.json +++ b/data/json/recipes/basecamps/recipe_modular_firestation_1/recipe_modular_firestation1.json @@ -13,7 +13,7 @@ "construction_blueprint": "fbmc_firestation1_0", "blueprint_provides": [ { "id": "gathering" }, - { "id": "fbmc_firestation_recipes_1" }, + { "id": "primitive_camp_recipes_1" }, { "id": "fbmc_firestation1_0" }, { "id": "firewood" }, { "id": "foraging" }, @@ -102,12 +102,7 @@ "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": "fbmc_firestation_farm_recipes_1" } - ], + "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 } ] ], "check_blueprint_needs": false, @@ -146,7 +141,7 @@ { "id": "trapping" }, { "id": "hunting" }, { "id": "kitchen" }, - { "id": "fbmc_firestation_cooking_recipes_1" } + { "id": "kitchen_recipes_1" } ], "blueprint_excludes": [ { "id": "fbmc_firestation1_fire" } ], "blueprint_resources": [ "fake_fireplace", "pot" ], @@ -171,7 +166,7 @@ { "id": "trapping" }, { "id": "hunting" }, { "id": "kitchen" }, - { "id": "fbmc_firestation_cooking_recipes_1" } + { "id": "kitchen_recipes_1" } ], "blueprint_excludes": [ { "id": "fbmc_firestation1_fire" } ], "blueprint_resources": [ "fake_fireplace", "pot" ], @@ -195,7 +190,7 @@ { "id": "trapping" }, { "id": "hunting" }, { "id": "kitchen" }, - { "id": "fbmc_firestation_cooking_recipes_1" } + { "id": "kitchen_recipes_1" } ], "blueprint_excludes": [ { "id": "fbmc_firestation1_fire" } ], "blueprint_resources": [ "fake_fireplace", "pot" ], @@ -214,7 +209,7 @@ "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": "fbmc_firestation_cooking_recipes_2" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_smoking" }, { "id": "kitchen_recipes_2" } ], "blueprint_excludes": [ { "id": "fbmc_firestation1_smoking" } ], "blueprint_resources": [ "fake_char_smoker", "fake_char_kiln" ] }, @@ -231,12 +226,7 @@ "construction_blueprint": "fbmc_firestation1_butchery_rack", "blueprint_name": "build butchery area", "blueprint_requires": [ { "id": "fbmc_firestation1_smoking" } ], - "blueprint_provides": [ - { "id": "fbmc_firestation1_butchery" }, - { "id": "fbmc_firestation_cooking_recipes_3" }, - { "id": "trapping" }, - { "id": "hunting" } - ], + "blueprint_provides": [ { "id": "fbmc_firestation1_butchery" }, { "id": "kitchen_recipes_3" }, { "id": "trapping" }, { "id": "hunting" } ], "blueprint_excludes": [ { "id": "fbmc_firestation1_butchery" } ], "components": [ [ [ "knife_butcher", 1 ], [ "knife_steak", 1 ], [ "knife_chef", 1 ], [ "knife_carving", 1 ] ] ] }, @@ -369,7 +359,7 @@ "construction_blueprint": "fbmc_firestation1_forge", "blueprint_name": "build a metalworking forge", "blueprint_requires": [ { "id": "fbmc_firestation1_smoking" } ], - "blueprint_provides": [ { "id": "fbmc_firestation1_forge" }, { "id": "fbmc_firestation_blacksmith_recipes_1" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_forge" }, { "id": "blacksmith_recipes_1" } ], "blueprint_excludes": [ { "id": "fbmc_firestation1_forge" } ], "blueprint_resources": [ "fake_forge", "hammer" ], "components": [ [ [ "hammer", 1 ] ] ] @@ -387,7 +377,7 @@ "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": "fbmc_firestation_blacksmith_recipes_2" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_anvil" }, { "id": "blacksmith_recipes_2" } ], "blueprint_excludes": [ { "id": "fbmc_firestation1_anvil" } ], "blueprint_resources": [ "anvil", "crucible" ], "check_blueprint_needs": false, @@ -406,7 +396,7 @@ "construction_blueprint": "fbmc_firestation1_forge3", "blueprint_name": "build a pottery kiln", "blueprint_requires": [ { "id": "fbmc_firestation1_anvil" } ], - "blueprint_provides": [ { "id": "fbmc_firestation1_pottery" }, { "id": "fbmc_firestation_blacksmith_recipes_3" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_pottery" }, { "id": "blacksmith_recipes_3" } ], "blueprint_excludes": [ { "id": "fbmc_firestation1_pottery" } ], "blueprint_resources": [ "anvil", "crucible" ], "components": [ [ [ "glassblowing_book", 1 ] ], [ [ "glasses_safety", 1 ] ], [ [ "chemistry_set", 1 ] ], [ [ "pipe", 1 ] ] ] @@ -425,7 +415,7 @@ "construction_blueprint": "fbmc_firestation1_forge4", "blueprint_name": "place advanced tools", "blueprint_requires": [ { "id": "fbmc_firestation1_pottery" } ], - "blueprint_provides": [ { "id": "fbmc_firestation1_tools" }, { "id": "fbmc_firestation_blacksmith_recipes_4" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_tools" }, { "id": "blacksmith_recipes_4" } ], "blueprint_excludes": [ { "id": "fbmc_firestation1_tools" } ], "blueprint_resources": [ "tongs", "chisel", "hammer", "swage" ], "blueprint_needs": { }, @@ -444,7 +434,7 @@ "construction_blueprint": "fbmc_firestation1_workbench", "blueprint_name": "build a workbench", "blueprint_requires": [ { "id": "fbmc_firestation1_tools" } ], - "blueprint_provides": [ { "id": "fbmc_firestation1_workbench" }, { "id": "fbmc_firestation_blacksmith_recipes_5" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_workbench" }, { "id": "blacksmith_recipes_5" } ], "blueprint_excludes": [ { "id": "fbmc_firestation1_workbench" } ], "blueprint_needs": { "time": "2 h", @@ -469,7 +459,7 @@ "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": "fbmc_firestation_blacksmith_recipes_6" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_bellows" }, { "id": "blacksmith_recipes_6" } ], "blueprint_excludes": [ { "id": "fbmc_firestation1_bellows" } ], "components": [ [ [ "hammer_sledge", 1 ] ], [ [ "30gal_drum", 1 ] ], [ [ "knife_combat", 1 ], [ "copper_knife", 1 ] ] ] }, @@ -486,7 +476,7 @@ "construction_blueprint": "fbmc_firestation1_drophammer", "blueprint_name": "build a drop hammer.", "blueprint_requires": [ { "id": "fbmc_firestation1_bellows" } ], - "blueprint_provides": [ { "id": "fbmc_firestation1_drophammer" }, { "id": "fbmc_firestation_blacksmith_recipes_7" } ], + "blueprint_provides": [ { "id": "fbmc_firestation1_drophammer" }, { "id": "blacksmith_recipes_7" } ], "blueprint_excludes": [ { "id": "fbmc_firestation1_drophammer" } ], "blueprint_resources": [ "wrench", "pliers", "fake_drop_hammer" ], "components": [ [ [ "wrench", 1 ] ], [ [ "pliers", 1 ] ] ] diff --git a/data/json/recipes/basecamps/base/recipe_modular_firestation_1/recipe_modular_firestation_walls_all.json b/data/json/recipes/basecamps/recipe_modular_firestation_1/recipe_modular_firestation_walls_all.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_firestation_1/recipe_modular_firestation_walls_all.json rename to data/json/recipes/basecamps/recipe_modular_firestation_1/recipe_modular_firestation_walls_all.json diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_common.json b/data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_common.json similarity index 99% rename from data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_common.json rename to data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_common.json index 5b35c725f1663..bd4af3b89927a 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_common.json +++ b/data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_common.json @@ -11,7 +11,7 @@ "never_learn": true, "construction_blueprint": "faction_base_livestock_0", "blueprint_name": "Livestock survey", - "time": "3 h", + "time": "180 m", "blueprint_requires": [ { "id": "not_an_upgrade" } ], "blueprint_provides": [ { "id": "fbml_0" } ] }, diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_log.json b/data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_log.json similarity index 98% rename from data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_log.json rename to data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_log.json index 84152fb9cd9df..40331cbecb018 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_log.json +++ b/data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_log.json @@ -40,7 +40,7 @@ "never_learn": true, "construction_blueprint": "fbml_stable0_log_southwest", "blueprint_name": "southwest stable", - "blueprint_requires": [ { "id": "fbml_0" } ], + "blueprint_requires": [ { "id": "faction_base_livestock_0" } ], "blueprint_provides": [ { "id": "fbml_southwest" }, { "id": "stables" } ], "blueprint_excludes": [ { "id": "fbml_southwest" } ] }, diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_metal.json b/data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_metal.json similarity index 98% rename from data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_metal.json rename to data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_metal.json index c3ea38293cc02..4b03531bea970 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_metal.json +++ b/data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_metal.json @@ -40,7 +40,7 @@ "never_learn": true, "construction_blueprint": "fbml_stable0_metal_southwest", "blueprint_name": "southwest stable", - "blueprint_requires": [ { "id": "fbml_0" } ], + "blueprint_requires": [ { "id": "faction_base_livestock_0" } ], "blueprint_provides": [ { "id": "fbml_southwest" }, { "id": "stables" } ], "blueprint_excludes": [ { "id": "fbml_southwest" } ] }, diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_migo_resin.json b/data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_migo_resin.json similarity index 98% rename from data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_migo_resin.json rename to data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_migo_resin.json index acd200f4f2d1a..f8701cf1015e4 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_migo_resin.json +++ b/data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_migo_resin.json @@ -40,7 +40,7 @@ "never_learn": true, "construction_blueprint": "fbml_stable0_migo_resin_southwest", "blueprint_name": "southwest stable", - "blueprint_requires": [ { "id": "fbml_0" } ], + "blueprint_requires": [ { "id": "faction_base_livestock_0" } ], "blueprint_provides": [ { "id": "fbml_southwest" }, { "id": "stables" } ], "blueprint_excludes": [ { "id": "fbml_southwest" } ] }, diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_rammed_earth.json b/data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_rammed_earth.json similarity index 98% rename from data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_rammed_earth.json rename to data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_rammed_earth.json index bba2e4a40c7c0..3948a6607197b 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_rammed_earth.json +++ b/data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_rammed_earth.json @@ -40,7 +40,7 @@ "never_learn": true, "construction_blueprint": "fbml_stable0_rammed_earth_southwest", "blueprint_name": "southwest stable", - "blueprint_requires": [ { "id": "fbml_0" } ], + "blueprint_requires": [ { "id": "faction_base_livestock_0" } ], "blueprint_provides": [ { "id": "fbml_southwest" }, { "id": "stables" } ], "blueprint_excludes": [ { "id": "fbml_southwest" } ] }, diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_rock.json b/data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_rock.json similarity index 98% rename from data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_rock.json rename to data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_rock.json index c17fb26e516c2..c88636e7bbaa9 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_rock.json +++ b/data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_rock.json @@ -40,7 +40,7 @@ "never_learn": true, "construction_blueprint": "fbml_stable0_rock_southwest", "blueprint_name": "southwest stable", - "blueprint_requires": [ { "id": "fbml_0" } ], + "blueprint_requires": [ { "id": "faction_base_livestock_0" } ], "blueprint_provides": [ { "id": "fbml_southwest" }, { "id": "stables" } ], "blueprint_excludes": [ { "id": "fbml_southwest" } ] }, diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_wad.json b/data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_wad.json similarity index 98% rename from data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_wad.json rename to data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_wad.json index 8c91868766c84..a11990b364329 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_wad.json +++ b/data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_wad.json @@ -40,7 +40,7 @@ "never_learn": true, "construction_blueprint": "fbml_stable0_wad_southwest", "blueprint_name": "southwest stable", - "blueprint_requires": [ { "id": "fbml_0" } ], + "blueprint_requires": [ { "id": "faction_base_livestock_0" } ], "blueprint_provides": [ { "id": "fbml_southwest" }, { "id": "stables" } ], "blueprint_excludes": [ { "id": "fbml_southwest" } ] }, diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_wood.json b/data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_wood.json similarity index 98% rename from data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_wood.json rename to data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_wood.json index 687ac89b6bebd..a314d080c5767 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_livestock/version_1/recipe_modular_livestock_wood.json +++ b/data/json/recipes/basecamps/recipe_modular_livestock/recipe_modular_livestock_wood.json @@ -40,7 +40,7 @@ "never_learn": true, "construction_blueprint": "fbml_stable0_wood_southwest", "blueprint_name": "southwest stable", - "blueprint_requires": [ { "id": "fbml_0" } ], + "blueprint_requires": [ { "id": "faction_base_livestock_0" } ], "blueprint_provides": [ { "id": "fbml_southwest" }, { "id": "stables" } ], "blueprint_excludes": [ { "id": "fbml_southwest" } ] }, diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_saltworks/version_1/recipe_modular_saltworks_common.json b/data/json/recipes/basecamps/recipe_modular_saltworks/recipe_modular_saltworks_common.json similarity index 100% rename from data/json/recipes/basecamps/expansion/recipe_modular_saltworks/version_1/recipe_modular_saltworks_common.json rename to data/json/recipes/basecamps/recipe_modular_saltworks/recipe_modular_saltworks_common.json diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_saltworks/version_1/recipe_modular_saltworks_log.json b/data/json/recipes/basecamps/recipe_modular_saltworks/recipe_modular_saltworks_log.json similarity index 100% rename from data/json/recipes/basecamps/expansion/recipe_modular_saltworks/version_1/recipe_modular_saltworks_log.json rename to data/json/recipes/basecamps/recipe_modular_saltworks/recipe_modular_saltworks_log.json diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_saltworks/version_1/recipe_modular_saltworks_metal.json b/data/json/recipes/basecamps/recipe_modular_saltworks/recipe_modular_saltworks_metal.json similarity index 100% rename from data/json/recipes/basecamps/expansion/recipe_modular_saltworks/version_1/recipe_modular_saltworks_metal.json rename to data/json/recipes/basecamps/recipe_modular_saltworks/recipe_modular_saltworks_metal.json diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_saltworks/version_1/recipe_modular_saltworks_migo_resin.json b/data/json/recipes/basecamps/recipe_modular_saltworks/recipe_modular_saltworks_migo_resin.json similarity index 100% rename from data/json/recipes/basecamps/expansion/recipe_modular_saltworks/version_1/recipe_modular_saltworks_migo_resin.json rename to data/json/recipes/basecamps/recipe_modular_saltworks/recipe_modular_saltworks_migo_resin.json diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_saltworks/version_1/recipe_modular_saltworks_rammed_earth.json b/data/json/recipes/basecamps/recipe_modular_saltworks/recipe_modular_saltworks_rammed_earth.json similarity index 100% rename from data/json/recipes/basecamps/expansion/recipe_modular_saltworks/version_1/recipe_modular_saltworks_rammed_earth.json rename to data/json/recipes/basecamps/recipe_modular_saltworks/recipe_modular_saltworks_rammed_earth.json diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_saltworks/version_1/recipe_modular_saltworks_stone.json b/data/json/recipes/basecamps/recipe_modular_saltworks/recipe_modular_saltworks_stone.json similarity index 100% rename from data/json/recipes/basecamps/expansion/recipe_modular_saltworks/version_1/recipe_modular_saltworks_stone.json rename to data/json/recipes/basecamps/recipe_modular_saltworks/recipe_modular_saltworks_stone.json diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_saltworks/version_1/recipe_modular_saltworks_wad.json b/data/json/recipes/basecamps/recipe_modular_saltworks/recipe_modular_saltworks_wad.json similarity index 100% rename from data/json/recipes/basecamps/expansion/recipe_modular_saltworks/version_1/recipe_modular_saltworks_wad.json rename to data/json/recipes/basecamps/recipe_modular_saltworks/recipe_modular_saltworks_wad.json diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_saltworks/version_1/recipe_modular_saltworks_wood.json b/data/json/recipes/basecamps/recipe_modular_saltworks/recipe_modular_saltworks_wood.json similarity index 100% rename from data/json/recipes/basecamps/expansion/recipe_modular_saltworks/version_1/recipe_modular_saltworks_wood.json rename to data/json/recipes/basecamps/recipe_modular_saltworks/recipe_modular_saltworks_wood.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter/recipe_modular_shelter_common.json b/data/json/recipes/basecamps/recipe_modular_shelter/recipe_modular_shelter_common.json similarity index 99% rename from data/json/recipes/basecamps/base/recipe_modular_shelter/recipe_modular_shelter_common.json rename to data/json/recipes/basecamps/recipe_modular_shelter/recipe_modular_shelter_common.json index 274c3a65b432a..e7a868dceede2 100644 --- a/data/json/recipes/basecamps/base/recipe_modular_shelter/recipe_modular_shelter_common.json +++ b/data/json/recipes/basecamps/recipe_modular_shelter/recipe_modular_shelter_common.json @@ -13,7 +13,7 @@ "construction_blueprint": "fbmc_shelter_0", "blueprint_provides": [ { "id": "gathering" }, - { "id": "fbmc_shelter_recipes_1" }, + { "id": "primitive_camp_recipes_1" }, { "id": "fbmc_shelter_0" }, { "id": "firewood" }, { "id": "foraging" }, @@ -41,7 +41,7 @@ { "id": "trapping" }, { "id": "hunting" }, { "id": "kitchen" }, - { "id": "fbmc_shelter_cooking_recipes_1" } + { "id": "kitchen_recipes_1" } ], "blueprint_excludes": [ { "id": "fbmc_shelter_fire" } ], "blueprint_resources": [ "fake_fireplace", "pot" ], @@ -75,7 +75,7 @@ { "id": "trapping" }, { "id": "hunting" }, { "id": "kitchen" }, - { "id": "fbmc_shelter_cooking_recipes_1" } + { "id": "kitchen_recipes_1" } ], "blueprint_excludes": [ { "id": "fbmc_shelter_fire" } ], "blueprint_resources": [ "fake_fireplace", "pot" ], @@ -108,7 +108,7 @@ { "id": "trapping" }, { "id": "hunting" }, { "id": "kitchen" }, - { "id": "fbmc_shelter_cooking_recipes_1" } + { "id": "kitchen_recipes_1" } ], "blueprint_excludes": [ { "id": "fbmc_shelter_fire" } ], "blueprint_resources": [ "fake_fireplace", "pot" ], diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter/recipe_modular_shelter_log.json b/data/json/recipes/basecamps/recipe_modular_shelter/recipe_modular_shelter_log.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_shelter/recipe_modular_shelter_log.json rename to data/json/recipes/basecamps/recipe_modular_shelter/recipe_modular_shelter_log.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter/recipe_modular_shelter_rock.json b/data/json/recipes/basecamps/recipe_modular_shelter/recipe_modular_shelter_rock.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_shelter/recipe_modular_shelter_rock.json rename to data/json/recipes/basecamps/recipe_modular_shelter/recipe_modular_shelter_rock.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter/recipe_modular_shelter_standard.json b/data/json/recipes/basecamps/recipe_modular_shelter/recipe_modular_shelter_standard.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_shelter/recipe_modular_shelter_standard.json rename to data/json/recipes/basecamps/recipe_modular_shelter/recipe_modular_shelter_standard.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter/recipe_modular_shelter_wad.json b/data/json/recipes/basecamps/recipe_modular_shelter/recipe_modular_shelter_wad.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_shelter/recipe_modular_shelter_wad.json rename to data/json/recipes/basecamps/recipe_modular_shelter/recipe_modular_shelter_wad.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter/recipe_modular_shelter_wood.json b/data/json/recipes/basecamps/recipe_modular_shelter/recipe_modular_shelter_wood.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_shelter/recipe_modular_shelter_wood.json rename to data/json/recipes/basecamps/recipe_modular_shelter/recipe_modular_shelter_wood.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter_1/recipe_modular_shelter_1_common.json b/data/json/recipes/basecamps/recipe_modular_shelter_1/recipe_modular_shelter_1_common.json similarity index 99% rename from data/json/recipes/basecamps/base/recipe_modular_shelter_1/recipe_modular_shelter_1_common.json rename to data/json/recipes/basecamps/recipe_modular_shelter_1/recipe_modular_shelter_1_common.json index 1ab6f034ab99f..cca4bb35b94a3 100644 --- a/data/json/recipes/basecamps/base/recipe_modular_shelter_1/recipe_modular_shelter_1_common.json +++ b/data/json/recipes/basecamps/recipe_modular_shelter_1/recipe_modular_shelter_1_common.json @@ -13,7 +13,7 @@ "construction_blueprint": "fbmc_shelter_1_0", "blueprint_provides": [ { "id": "gathering" }, - { "id": "fbmc_shelter_1_recipes_1" }, + { "id": "primitive_camp_recipes_1" }, { "id": "fbmc_shelter_1_0" }, { "id": "firewood" }, { "id": "foraging" }, @@ -41,7 +41,7 @@ { "id": "trapping" }, { "id": "hunting" }, { "id": "kitchen" }, - { "id": "fbmc_shelter_1_cooking_recipes_1" } + { "id": "kitchen_recipes_1" } ], "blueprint_excludes": [ { "id": "fbmc_shelter_1_fire" } ], "blueprint_resources": [ "fake_fireplace", "pot" ], @@ -75,7 +75,7 @@ { "id": "trapping" }, { "id": "hunting" }, { "id": "kitchen" }, - { "id": "fbmc_shelter_1_cooking_recipes_1" } + { "id": "kitchen_recipes_1" } ], "blueprint_excludes": [ { "id": "fbmc_shelter_1_fire" } ], "blueprint_resources": [ "fake_fireplace", "pot" ], @@ -108,7 +108,7 @@ { "id": "trapping" }, { "id": "hunting" }, { "id": "kitchen" }, - { "id": "fbmc_shelter_1_cooking_recipes_1" } + { "id": "kitchen_recipes_1" } ], "blueprint_excludes": [ { "id": "fbmc_shelter_1_fire" } ], "blueprint_resources": [ "fake_fireplace", "pot" ], diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter_1/recipe_modular_shelter_1_log.json b/data/json/recipes/basecamps/recipe_modular_shelter_1/recipe_modular_shelter_1_log.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_shelter_1/recipe_modular_shelter_1_log.json rename to data/json/recipes/basecamps/recipe_modular_shelter_1/recipe_modular_shelter_1_log.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter_1/recipe_modular_shelter_1_rock.json b/data/json/recipes/basecamps/recipe_modular_shelter_1/recipe_modular_shelter_1_rock.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_shelter_1/recipe_modular_shelter_1_rock.json rename to data/json/recipes/basecamps/recipe_modular_shelter_1/recipe_modular_shelter_1_rock.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter_1/recipe_modular_shelter_1_standard.json b/data/json/recipes/basecamps/recipe_modular_shelter_1/recipe_modular_shelter_1_standard.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_shelter_1/recipe_modular_shelter_1_standard.json rename to data/json/recipes/basecamps/recipe_modular_shelter_1/recipe_modular_shelter_1_standard.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter_1/recipe_modular_shelter_1_wad.json b/data/json/recipes/basecamps/recipe_modular_shelter_1/recipe_modular_shelter_1_wad.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_shelter_1/recipe_modular_shelter_1_wad.json rename to data/json/recipes/basecamps/recipe_modular_shelter_1/recipe_modular_shelter_1_wad.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter_1/recipe_modular_shelter_1_wood.json b/data/json/recipes/basecamps/recipe_modular_shelter_1/recipe_modular_shelter_1_wood.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_shelter_1/recipe_modular_shelter_1_wood.json rename to data/json/recipes/basecamps/recipe_modular_shelter_1/recipe_modular_shelter_1_wood.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter_2/recipe_modular_shelter_2_common.json b/data/json/recipes/basecamps/recipe_modular_shelter_2/recipe_modular_shelter_2_common.json similarity index 99% rename from data/json/recipes/basecamps/base/recipe_modular_shelter_2/recipe_modular_shelter_2_common.json rename to data/json/recipes/basecamps/recipe_modular_shelter_2/recipe_modular_shelter_2_common.json index ca7ec851222b1..26f4db5df5093 100644 --- a/data/json/recipes/basecamps/base/recipe_modular_shelter_2/recipe_modular_shelter_2_common.json +++ b/data/json/recipes/basecamps/recipe_modular_shelter_2/recipe_modular_shelter_2_common.json @@ -12,7 +12,7 @@ "construction_blueprint": "fbmc_shelter_2_0", "blueprint_provides": [ { "id": "gathering" }, - { "id": "fbmc_shelter_2_recipes_1" }, + { "id": "primitive_camp_recipes_1" }, { "id": "fbmc_shelter_2_0" }, { "id": "firewood" }, { "id": "foraging" }, @@ -39,7 +39,7 @@ { "id": "trapping" }, { "id": "hunting" }, { "id": "kitchen" }, - { "id": "fbmc_shelter_2_cooking_recipes_1" } + { "id": "kitchen_recipes_1" } ], "blueprint_excludes": [ { "id": "fbmc_shelter_2_fire" } ], "blueprint_resources": [ "fake_fireplace", "pot" ], @@ -72,7 +72,7 @@ { "id": "trapping" }, { "id": "hunting" }, { "id": "kitchen" }, - { "id": "fbmc_shelter_2_cooking_recipes_1" } + { "id": "kitchen_recipes_1" } ], "blueprint_excludes": [ { "id": "fbmc_shelter_2_fire" } ], "blueprint_resources": [ "fake_fireplace", "pot" ], @@ -104,7 +104,7 @@ { "id": "trapping" }, { "id": "hunting" }, { "id": "kitchen" }, - { "id": "fbmc_shelter_2_cooking_recipes_1" } + { "id": "kitchen_recipes_1" } ], "blueprint_excludes": [ { "id": "fbmc_shelter_2_fire" } ], "blueprint_resources": [ "fake_fireplace", "pot" ], diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter_2/recipe_modular_shelter_2_log.json b/data/json/recipes/basecamps/recipe_modular_shelter_2/recipe_modular_shelter_2_log.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_shelter_2/recipe_modular_shelter_2_log.json rename to data/json/recipes/basecamps/recipe_modular_shelter_2/recipe_modular_shelter_2_log.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter_2/recipe_modular_shelter_2_rock.json b/data/json/recipes/basecamps/recipe_modular_shelter_2/recipe_modular_shelter_2_rock.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_shelter_2/recipe_modular_shelter_2_rock.json rename to data/json/recipes/basecamps/recipe_modular_shelter_2/recipe_modular_shelter_2_rock.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter_2/recipe_modular_shelter_2_standard.json b/data/json/recipes/basecamps/recipe_modular_shelter_2/recipe_modular_shelter_2_standard.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_shelter_2/recipe_modular_shelter_2_standard.json rename to data/json/recipes/basecamps/recipe_modular_shelter_2/recipe_modular_shelter_2_standard.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter_2/recipe_modular_shelter_2_wad.json b/data/json/recipes/basecamps/recipe_modular_shelter_2/recipe_modular_shelter_2_wad.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_shelter_2/recipe_modular_shelter_2_wad.json rename to data/json/recipes/basecamps/recipe_modular_shelter_2/recipe_modular_shelter_2_wad.json diff --git a/data/json/recipes/basecamps/base/recipe_modular_shelter_2/recipe_modular_shelter_2_wood.json b/data/json/recipes/basecamps/recipe_modular_shelter_2/recipe_modular_shelter_2_wood.json similarity index 100% rename from data/json/recipes/basecamps/base/recipe_modular_shelter_2/recipe_modular_shelter_2_wood.json rename to data/json/recipes/basecamps/recipe_modular_shelter_2/recipe_modular_shelter_2_wood.json diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_log.json b/data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_log.json similarity index 99% rename from data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_log.json rename to data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_log.json index 4232a167fb968..190c99a792165 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_log.json +++ b/data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_log.json @@ -33,7 +33,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbms_room1_log_west", - "blueprint_name": "west storage wing", + "blueprint_name": "east storage wing", "blueprint_requires": [ { "id": "fbms_0" } ], "blueprint_provides": [ { "id": "fbms_west" } ], "blueprint_excludes": [ { "id": "fbms_west" } ], diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_metal.json b/data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_metal.json similarity index 99% rename from data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_metal.json rename to data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_metal.json index 2f84a04742e09..2ed3c3b2c8fc9 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_metal.json +++ b/data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_metal.json @@ -33,7 +33,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbms_room1_metal_west", - "blueprint_name": "west storage wing", + "blueprint_name": "east storage wing", "blueprint_requires": [ { "id": "fbms_0" } ], "blueprint_provides": [ { "id": "fbms_west" } ], "blueprint_excludes": [ { "id": "fbms_west" } ], diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_migo_resin.json b/data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_migo_resin.json similarity index 99% rename from data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_migo_resin.json rename to data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_migo_resin.json index 12cb039f2ab4e..be05b14306e55 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_migo_resin.json +++ b/data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_migo_resin.json @@ -29,7 +29,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbms_room1_migo_resin_west", - "blueprint_name": "west storage wing", + "blueprint_name": "east storage wing", "blueprint_requires": [ { "id": "fbms_0" } ], "blueprint_provides": [ { "id": "fbms_west" } ], "blueprint_excludes": [ { "id": "fbms_west" } ], diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_rammed_earth.json b/data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_rammed_earth.json similarity index 99% rename from data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_rammed_earth.json rename to data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_rammed_earth.json index 26109171b0709..50aa63ba59053 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_rammed_earth.json +++ b/data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_rammed_earth.json @@ -24,7 +24,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbms_room1_rammed_earth_west", - "blueprint_name": "west storage wing", + "blueprint_name": "east storage wing", "blueprint_requires": [ { "id": "fbms_0" } ], "blueprint_provides": [ { "id": "fbms_west" } ], "blueprint_excludes": [ { "id": "fbms_west" } ] diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_rock.json b/data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_rock.json similarity index 99% rename from data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_rock.json rename to data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_rock.json index 902427ba05a45..2aa9fb3609fec 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_rock.json +++ b/data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_rock.json @@ -40,7 +40,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbms_room1_rock_west", - "blueprint_name": "west storage wing", + "blueprint_name": "east storage wing", "blueprint_requires": [ { "id": "fbms_0" } ], "blueprint_provides": [ { "id": "fbms_west" } ], "blueprint_excludes": [ { "id": "fbms_west" } ], diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_wad.json b/data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_wad.json similarity index 99% rename from data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_wad.json rename to data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_wad.json index 16cc560fe5dba..520521acdd04c 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_wad.json +++ b/data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_wad.json @@ -42,7 +42,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbms_room1_wad_west", - "blueprint_name": "west storage wing", + "blueprint_name": "east storage wing", "blueprint_requires": [ { "id": "fbms_0" } ], "blueprint_provides": [ { "id": "fbms_west" } ], "blueprint_excludes": [ { "id": "fbms_west" } ], diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_wood.json b/data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_wood.json similarity index 96% rename from data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_wood.json rename to data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_wood.json index 106ee794ae9ef..712f57b4695fe 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_storehouse/version_1/recipe_modular_storehouse_wood.json +++ b/data/json/recipes/basecamps/recipe_modular_storehouse/recipe_modular_storehouse_wood.json @@ -1,4 +1,20 @@ [ + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "faction_base_storehouse_0", + "description": "Survey land for a storage building.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "faction_base_storehouse_0", + "blueprint_name": "Storage Building survey", + "time": "180 m", + "blueprint_requires": [ { "id": "not_an_upgrade" } ], + "blueprint_provides": [ { "id": "fbms_0" } ] + }, { "type": "recipe", "activity_level": "MODERATE_EXERCISE", @@ -33,7 +49,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbms_room1_wood_west", - "blueprint_name": "west storage wing", + "blueprint_name": "east storage wing", "blueprint_requires": [ { "id": "fbms_0" } ], "blueprint_provides": [ { "id": "fbms_west" } ], "blueprint_excludes": [ { "id": "fbms_west" } ], diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_rock.json b/data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop.rock.json similarity index 99% rename from data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_rock.json rename to data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop.rock.json index 8530479ff6416..89b531d157434 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_rock.json +++ b/data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop.rock.json @@ -74,7 +74,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbmw_room4_rock_east", - "blueprint_name": "east forge wall", + "blueprint_name": "east forage wall", "blueprint_requires": [ { "id": "fbmw_north" } ], "blueprint_provides": [ { "id": "fbmw_east" }, { "id": "blacksmith_recipes_3" } ], "blueprint_excludes": [ { "id": "fbmw_east" } ], @@ -107,7 +107,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbmw_room5_rock_center", - "blueprint_name": "west forge wall", + "blueprint_name": "west forage wall", "blueprint_requires": [ { "id": "fbmw_east" } ], "blueprint_provides": [ { "id": "fbmw_center" } ], "blueprint_excludes": [ { "id": "fbmw_center" } ], diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_common.json b/data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_common.json similarity index 88% rename from data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_common.json rename to data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_common.json index 8028c43e9e317..b2a000b529dd6 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_common.json +++ b/data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_common.json @@ -1,20 +1,4 @@ [ - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "faction_base_workshop_0", - "description": "Survey land for a workshop.", - "category": "CC_BUILDING", - "subcategory": "CSC_BUILDING_BASES", - "skill_used": "fabrication", - "autolearn": false, - "never_learn": true, - "construction_blueprint": "faction_base_workshop_0", - "blueprint_name": "workshop survey", - "time": "3 h", - "blueprint_requires": [ { "id": "not_an_upgrade" } ], - "blueprint_provides": [ { "id": "fbmw_0" } ] - }, { "type": "recipe", "activity_level": "MODERATE_EXERCISE", diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_log.json b/data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_log.json similarity index 99% rename from data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_log.json rename to data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_log.json index fc76b2ccdf27b..f7c80bfd67ccf 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_log.json +++ b/data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_log.json @@ -64,7 +64,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbmw_room4_log_east", - "blueprint_name": "east forge wall", + "blueprint_name": "east forage wall", "blueprint_requires": [ { "id": "fbmw_north" } ], "blueprint_provides": [ { "id": "fbmw_east" }, { "id": "blacksmith_recipes_3" } ], "blueprint_excludes": [ { "id": "fbmw_east" } ], @@ -96,7 +96,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbmw_room5_log_center", - "blueprint_name": "west forge wall", + "blueprint_name": "west forage wall", "blueprint_requires": [ { "id": "fbmw_east" } ], "blueprint_provides": [ { "id": "fbmw_center" } ], "blueprint_excludes": [ { "id": "fbmw_center" } ], diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_metal.json b/data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_metal.json similarity index 99% rename from data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_metal.json rename to data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_metal.json index 42091d8554a04..af6361baf7e1a 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_metal.json +++ b/data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_metal.json @@ -77,7 +77,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbmw_room4_metal_east", - "blueprint_name": "east forge wall", + "blueprint_name": "east forage wall", "blueprint_requires": [ { "id": "fbmw_north" } ], "blueprint_provides": [ { "id": "fbmw_east" }, { "id": "blacksmith_recipes_3" } ], "blueprint_excludes": [ { "id": "fbmw_east" } ], @@ -117,7 +117,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbmw_room5_metal_center", - "blueprint_name": "west forge wall", + "blueprint_name": "west forage wall", "blueprint_requires": [ { "id": "fbmw_east" } ], "blueprint_provides": [ { "id": "fbmw_center" } ], "blueprint_excludes": [ { "id": "fbmw_center" } ], diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_migo_resin.json b/data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_migo_resin.json similarity index 99% rename from data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_migo_resin.json rename to data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_migo_resin.json index a687b6ee2960c..c519432d39f32 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_migo_resin.json +++ b/data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_migo_resin.json @@ -53,7 +53,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbmw_room4_migo_resin_east", - "blueprint_name": "east forge wall", + "blueprint_name": "east forage wall", "blueprint_requires": [ { "id": "fbmw_north" } ], "blueprint_provides": [ { "id": "fbmw_east" }, { "id": "blacksmith_recipes_3" } ], "blueprint_excludes": [ { "id": "fbmw_east" } ], @@ -83,7 +83,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbmw_room5_migo_resin_center", - "blueprint_name": "west forge wall", + "blueprint_name": "west forage wall", "blueprint_requires": [ { "id": "fbmw_east" } ], "blueprint_provides": [ { "id": "fbmw_center" } ], "blueprint_excludes": [ { "id": "fbmw_center" } ], diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_rammed_earth.json b/data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_rammed_earth.json similarity index 98% rename from data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_rammed_earth.json rename to data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_rammed_earth.json index 54d7f2ae6b528..192a22ca4770e 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_rammed_earth.json +++ b/data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_rammed_earth.json @@ -39,7 +39,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbmw_room4_rammed_earth_east", - "blueprint_name": "east forge wall", + "blueprint_name": "east forage wall", "blueprint_requires": [ { "id": "fbmw_north" } ], "blueprint_provides": [ { "id": "fbmw_east" }, { "id": "blacksmith_recipes_3" } ], "blueprint_excludes": [ { "id": "fbmw_east" } ] @@ -54,7 +54,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbmw_room5_rammed_earth_center", - "blueprint_name": "west forge wall", + "blueprint_name": "west forage wall", "blueprint_requires": [ { "id": "fbmw_east" } ], "blueprint_provides": [ { "id": "fbmw_center" } ], "blueprint_excludes": [ { "id": "fbmw_center" } ] diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_wad.json b/data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_wad.json similarity index 99% rename from data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_wad.json rename to data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_wad.json index d5128d63908f9..2d67c10e80d7d 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_wad.json +++ b/data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_wad.json @@ -74,7 +74,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbmw_room4_wad_east", - "blueprint_name": "east forge wall", + "blueprint_name": "east forage wall", "blueprint_requires": [ { "id": "fbmw_north" } ], "blueprint_provides": [ { "id": "fbmw_east" }, { "id": "blacksmith_recipes_3" } ], "blueprint_excludes": [ { "id": "fbmw_east" } ], @@ -108,7 +108,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbmw_room5_wad_center", - "blueprint_name": "west forge wall", + "blueprint_name": "west forage wall", "blueprint_requires": [ { "id": "fbmw_east" } ], "blueprint_provides": [ { "id": "fbmw_center" } ], "blueprint_excludes": [ { "id": "fbmw_center" } ], diff --git a/data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_wood.json b/data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_wood.json similarity index 93% rename from data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_wood.json rename to data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_wood.json index 4a0c418564767..103f8314ba6d0 100644 --- a/data/json/recipes/basecamps/expansion/recipe_modular_workshop/version_1/recipe_modular_workshop_wood.json +++ b/data/json/recipes/basecamps/recipe_modular_workshop/recipe_modular_workshop_wood.json @@ -1,4 +1,20 @@ [ + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "faction_base_workshop_0", + "description": "Survey land for a workshop area.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "faction_base_workshop_0", + "blueprint_name": "workshop survey", + "time": "180 m", + "blueprint_requires": [ { "id": "not_an_upgrade" } ], + "blueprint_provides": [ { "id": "fbmw_0" } ] + }, { "type": "recipe", "activity_level": "MODERATE_EXERCISE", @@ -57,7 +73,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbmw_room4_wood_east", - "blueprint_name": "east forge wall", + "blueprint_name": "east forage wall", "blueprint_requires": [ { "id": "fbmw_north" } ], "blueprint_provides": [ { "id": "fbmw_east" }, { "id": "blacksmith_recipes_3" } ], "blueprint_excludes": [ { "id": "fbmw_east" } ], @@ -88,7 +104,7 @@ "autolearn": false, "never_learn": true, "construction_blueprint": "fbmw_room5_wood_center", - "blueprint_name": "west forge wall", + "blueprint_name": "west forage wall", "blueprint_requires": [ { "id": "fbmw_east" } ], "blueprint_provides": [ { "id": "fbmw_center" } ], "blueprint_excludes": [ { "id": "fbmw_center" } ], diff --git a/data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_primitive_field.json b/data/json/recipes/basecamps/recipe_primitive_field.json similarity index 80% rename from data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_primitive_field.json rename to data/json/recipes/basecamps/recipe_primitive_field.json index e48dd97f7a352..c5e9b8ec7986a 100644 --- a/data/json/recipes/basecamps/base/recipe_modular_hub/version_1/recipe_primitive_field.json +++ b/data/json/recipes/basecamps/recipe_primitive_field.json @@ -493,6 +493,270 @@ ], "check_blueprint_needs": false }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "faction_base_farm_0", + "description": "Survey land for a farm shop.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "never_learn": true, + "construction_blueprint": "faction_base_farm_0", + "blueprint_name": "Farm survey", + "time": "180 m", + "blueprint_requires": [ { "id": "not_an_upgrade" } ], + "blueprint_needs": { + "time": "10 h", + "skills": [ [ "survival", 3 ] ], + "inline": { + "tools": [ [ [ "elec_jackhammer", 14000 ], [ "jackhammer", 280 ], [ "pickaxe", -1 ] ] ], + "qualities": [ [ { "id": "DIG", "level": 2 } ] ], + "components": [ ] + } + } + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "faction_base_farm_1", + "description": "Plowing a few plots should get us started.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "never_learn": true, + "time": "540 m", + "construction_blueprint": "faction_base_field_camp_farm_1", + "blueprint_name": "Farm basic plots", + "blueprint_provides": [ { "id": "farming" } ], + "blueprint_requires": [ { "id": "faction_base_farm_0" } ], + "qualities": [ [ { "id": "DIG", "level": 1 } ] ] + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "faction_base_farm_2", + "description": "We could use a farming shed to store resources where we'll be working.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "difficulty": 4, + "autolearn": false, + "never_learn": true, + "time": "3600 m", + "construction_blueprint": "faction_base_field_camp_farm_2", + "blueprint_name": "Farm basic shed", + "blueprint_requires": [ { "id": "faction_base_farm_0" } ], + "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "log", 54 ] ], [ [ "stick", 90 ] ] ], + "check_blueprint_needs": false + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "faction_base_farm_3", + "description": "Our farm could be expanded by finishing the shed and adding additional plots.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "difficulty": 4, + "autolearn": false, + "never_learn": true, + "time": "2160 m", + "construction_blueprint": "faction_base_field_camp_farm_3", + "blueprint_name": "Farm upgraded shed", + "blueprint_requires": [ { "id": "faction_base_farm_0" }, { "id": "faction_base_farm_1" } ], + "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "log", 24 ] ], [ [ "stick", 36 ] ], [ [ "2x4", 16 ] ], [ [ "nail", 36 ] ] ], + "check_blueprint_needs": false + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "faction_base_farm_4", + "description": "Building a processing shack should allow us to reclaim additional seeds from our byproducts.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "difficulty": 4, + "autolearn": false, + "never_learn": true, + "//": "1hrs*26wall + 1.5 hr*1door + 0.5hrs*14pits + 2hrs*2window + 2hrs*20log roof + 0.5hrs*9counter + 0.5hrs*1table = 83.5 hrs (12hrs on/off) 7 days total; requires 26wall*(2log+3stick+6 2x4 ) + 1door*(16 2x4+36nail) + 2windows*(15 2x4+30nail+2log+glass) + 20roof*(2log+4stick+8 2x4) + 1table*(8nail+6 2x4) + 9counter*(8nail+6 2x4)", + "time": "84 h", + "construction_blueprint": "faction_base_field_camp_farm_4", + "blueprint_name": "Farm processing shack", + "blueprint_provides": [ { "id": "reseeding" }, { "id": "farm_recipes_1" } ], + "blueprint_requires": [ { "id": "faction_base_farm_3" } ], + "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "log", 96 ] ], [ [ "stick", 158 ] ], [ [ "2x4", 336 ] ], [ [ "nail", 176 ] ], [ [ "glass_sheet", 2 ] ] ], + "check_blueprint_needs": false + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "faction_base_garage_0", + "description": "Survey land for a garage.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "autolearn": false, + "construction_blueprint": "faction_base_garage_0", + "blueprint_name": "Garage survey", + "never_learn": true, + "time": "180 m", + "blueprint_requires": [ { "id": "not_an_upgrade" } ], + "blueprint_needs": { + "time": "1 d 6 h", + "skills": [ [ "survival", 3 ] ], + "inline": { + "tools": [ [ [ "elec_jackhammer", 42000 ], [ "jackhammer", 840 ], [ "pickaxe", -1 ] ] ], + "qualities": [ [ { "id": "DIG", "level": 2 } ] ], + "components": [ ] + } + } + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "faction_base_garage_1", + "description": "Building a tool rack should be the first priority.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "difficulty": 4, + "autolearn": false, + "never_learn": true, + "construction_blueprint": "faction_base_field_camp_garage_1", + "blueprint_name": "Garage tool rack", + "blueprint_provides": [ { "id": "dismantling" } ], + "blueprint_requires": [ { "id": "faction_base_garage_0" } ], + "blueprint_resources": [ "wrench", "hacksaw" ], + "time": "5040 m", + "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ], [ { "id": "WRENCH", "level": 1 } ] ], + "components": [ + [ [ "log", 72 ] ], + [ [ "stick", 72 ] ], + [ [ "2x4", 110 ] ], + [ [ "nail", 16 ] ], + [ [ "pipe", 24 ] ], + [ [ "wrench", 1 ] ], + [ [ "hacksaw", 1 ] ], + [ [ "sheet_metal", 4 ] ] + ], + "check_blueprint_needs": false + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "faction_base_garage_2", + "description": "We should start construction of a roof for the garage.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "difficulty": 4, + "autolearn": false, + "never_learn": true, + "construction_blueprint": "faction_base_field_camp_garage_2", + "blueprint_name": "Garage partial roof", + "blueprint_requires": [ { "id": "faction_base_garage_1" } ], + "time": "4320 m", + "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "log", 68 ] ], [ [ "stick", 60 ] ], [ [ "2x4", 112 ] ] ], + "check_blueprint_needs": false + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "faction_base_garage_3", + "description": "Finishing out the roof will let our mechanics work rain or shine.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "difficulty": 4, + "autolearn": false, + "never_learn": true, + "time": "10080 m", + "construction_blueprint": "faction_base_field_camp_garage_3", + "blueprint_name": "Garage completed roof", + "blueprint_requires": [ { "id": "faction_base_garage_2" } ], + "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "log", 112 ] ], [ [ "2x4", 448 ] ] ], + "check_blueprint_needs": false + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "faction_base_garage_4", + "description": "Our garage isn't big enough to work on larger vehicles. Let's start expanding it.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "difficulty": 4, + "autolearn": false, + "never_learn": true, + "time": "4320 m", + "construction_blueprint": "faction_base_field_camp_garage_4", + "blueprint_name": "Garage partial expansion", + "blueprint_requires": [ { "id": "faction_base_garage_3" } ], + "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ] ], + "components": [ [ [ "log", 65 ] ], [ [ "stick", 96 ] ] ], + "check_blueprint_needs": false + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "faction_base_garage_5", + "description": "Finishing the roof will let us park RVs and buses in the garage.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "difficulty": 5, + "autolearn": false, + "never_learn": true, + "time": "11520 m", + "construction_blueprint": "faction_base_field_camp_garage_5", + "blueprint_name": "Garage expanded roof", + "blueprint_requires": [ { "id": "faction_base_garage_4" } ], + "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ], [ { "id": "WRENCH", "level": 1 } ] ], + "components": [ + [ [ "log", 124 ] ], + [ [ "stick", 96 ] ], + [ [ "2x4", 752 ] ], + [ [ "nail", 24 ] ], + [ [ "pipe", 24 ] ], + [ [ "sheet_metal", 4 ] ] + ], + "check_blueprint_needs": false + }, + { + "type": "recipe", + "activity_level": "MODERATE_EXERCISE", + "result": "faction_base_garage_6", + "description": "Attaching quarters will let our mechanics work longer hours when needed.", + "category": "CC_BUILDING", + "subcategory": "CSC_BUILDING_BASES", + "skill_used": "fabrication", + "difficulty": 4, + "autolearn": false, + "never_learn": true, + "time": "2880 m", + "construction_blueprint": "faction_base_field_camp_garage_6", + "blueprint_name": "Garage mechanics quarters", + "blueprint_requires": [ { "id": "faction_base_garage_5" } ], + "qualities": [ [ { "id": "DIG", "level": 2 } ], [ { "id": "HAMMER", "level": 2 } ], [ { "id": "WRENCH", "level": 1 } ] ], + "components": [ + [ [ "log", 95 ] ], + [ [ "stick", 90 ] ], + [ [ "2x4", 154 ] ], + [ [ "nail", 72 ] ], + [ [ "pipe", 12 ] ], + [ [ "sheet_metal", 2 ] ], + [ [ "straw_pile", 16 ], [ "pine_bough", 20 ] ] + ], + "check_blueprint_needs": false + }, { "type": "recipe", "activity_level": "MODERATE_EXERCISE", diff --git a/data/json/recipes/practice/melee.json b/data/json/recipes/practice/melee.json deleted file mode 100644 index 2135e6ec86839..0000000000000 --- a/data/json/recipes/practice/melee.json +++ /dev/null @@ -1,222 +0,0 @@ -[ - { - "id": "prac_melee_beg", - "type": "practice", - "activity_level": "MODERATE_EXERCISE", - "category": "CC_PRACTICE", - "subcategory": "CSC_PRACTICE_COMBAT", - "name": "melee (beginner)", - "description": "Practice close quarters combat with and without weapons against an imaginary opponent.", - "skill_used": "melee", - "time": "1 h", - "practice_data": { "min_difficulty": 0, "max_difficulty": 2, "skill_limit": 3 }, - "autolearn": [ [ "melee", 1 ] ], - "book_learn": [ [ "mag_melee", 0 ], [ "manual_melee", 0 ] ], - "//": "Only training weapons, all of these have the WBLOCK_2 techniques and are relatively easy to handle, in other words they have a possitive to_hit bonus.", - "tools": [ [ "cudgel", "bokken", "bokken_fake", "bokken_inferior", "q_staff" ] ] - }, - { - "id": "prac_cutting_beg", - "type": "practice", - "activity_level": "MODERATE_EXERCISE", - "category": "CC_PRACTICE", - "subcategory": "CSC_PRACTICE_COMBAT", - "name": "cutting (beginner)", - "description": "Practice the use of the sword and similar weapons against a training dummy. You will need to make repairs to the dummy while you train.", - "skill_used": "cutting", - "skills_required": [ [ "melee", 1 ] ], - "time": "1 h", - "practice_data": { "min_difficulty": 0, "max_difficulty": 2, "skill_limit": 3 }, - "autolearn": [ [ "cutting", 1 ] ], - "book_learn": [ [ "mag_cutting", 0 ], [ "manual_cutting", 0 ] ], - "//": "Only training weapons or wooden versions of swords, a real katana would be too much to handle correctly at these levels.", - "tools": [ [ "bokken", "bokken_fake", "bokken_inferior", "sword_wood" ], [ "training_dummy_light" ] ], - "//1": "A bunch of duct tape to repair the dummy with each training session.", - "components": [ [ [ "duct_tape", 25 ] ] ] - }, - { - "id": "prac_cutting_int", - "type": "practice", - "activity_level": "BRISK_EXERCISE", - "category": "CC_PRACTICE", - "subcategory": "CSC_PRACTICE_COMBAT", - "name": "cutting (intermediate)", - "description": "Practice advanced handling of the sword and similar weapons against an armored training dummy. You will need to make repairs to the dummy while you train.", - "skill_used": "cutting", - "skills_required": [ [ "melee", 3 ] ], - "time": "1 h", - "practice_data": { "min_difficulty": 3, "max_difficulty": 4 }, - "autolearn": [ [ "cutting", 3 ] ], - "qualities": [ { "id": "HAMMER", "level": 2 } ], - "//": "Only historial, real and powerful cutting weapons.", - "tools": [ - [ - "katana", - "scimitar", - "arming_sword", - "broadsword", - "cavalry_sabre", - "cutlass", - "dao", - "jian", - "longsword", - "nodachi", - "wakizashi", - "zweihander", - "butterfly_swords", - "sword_xiphos", - "khopesh", - "glaive", - "halberd", - "poleaxe", - "battleaxe", - "ji", - "naginata", - "scythe_war" - ], - [ "training_dummy_heavy" ] - ], - "//1": "A bunch of duct tape and scrap to repair the dummy with each training session.", - "components": [ [ [ "duct_tape", 50 ] ], [ [ "scrap", 20 ] ] ] - }, - { - "id": "prac_bashing_beg", - "type": "practice", - "activity_level": "MODERATE_EXERCISE", - "category": "CC_PRACTICE", - "subcategory": "CSC_PRACTICE_COMBAT", - "name": "bashing (beginner)", - "description": "Practice the use of batons and similar weapons against a training dummy. You will need to make repairs to the dummy while you train.", - "skill_used": "bashing", - "skills_required": [ [ "melee", 1 ] ], - "time": "1 h", - "practice_data": { "min_difficulty": 0, "max_difficulty": 2, "skill_limit": 3 }, - "autolearn": [ [ "bashing", 1 ] ], - "book_learn": [ [ "mag_bashing", 0 ], [ "manual_bashing", 0 ] ], - "//": "Only training weapons or light and easy to use weapons, a war hammer is a good weapon but you should not start your training with one.", - "tools": [ [ "cudgel", "q_staff", "bat", "baton-extended", "PR24-extended" ], [ "training_dummy_light" ] ], - "//1": "A bunch of duct tape to repair the dummy with each training session.", - "components": [ [ [ "duct_tape", 25 ] ] ] - }, - { - "id": "prac_bashing_int", - "type": "practice", - "activity_level": "BRISK_EXERCISE", - "category": "CC_PRACTICE", - "subcategory": "CSC_PRACTICE_COMBAT", - "name": "bashing (intermediate)", - "description": "Practice advanced handling of bashing weapons against an armored training dummy. You will need to make repairs to the dummy while you train.", - "skill_used": "bashing", - "skills_required": [ [ "melee", 3 ] ], - "time": "1 h", - "practice_data": { "min_difficulty": 3, "max_difficulty": 4 }, - "autolearn": [ [ "bashing", 3 ] ], - "qualities": [ { "id": "HAMMER", "level": 2 } ], - "//": "Only historial, powerful bashing weapons.", - "tools": [ - [ - "warhammer", - "mace", - "i_staff", - "morningstar", - "2h_flail_steel", - "glaive", - "halberd", - "lucern_hammer", - "poleaxe", - "battleaxe" - ], - [ "training_dummy_heavy" ] - ], - "//1": "A bunch of duct tape and scrap to repair the dummy with each training session.", - "components": [ [ [ "duct_tape", 50 ] ], [ [ "scrap", 20 ] ] ] - }, - { - "id": "prac_stabbing_beg", - "type": "practice", - "activity_level": "MODERATE_EXERCISE", - "category": "CC_PRACTICE", - "subcategory": "CSC_PRACTICE_COMBAT", - "name": "stabbing (beginner)", - "description": "Practice the use of spears and similar stabbing weapons against a training dummy. You will need to make repairs to the dummy while you train.", - "skill_used": "stabbing", - "skills_required": [ [ "melee", 1 ] ], - "time": "1 h", - "practice_data": { "min_difficulty": 0, "max_difficulty": 2, "skill_limit": 3 }, - "autolearn": [ [ "stabbing", 1 ] ], - "book_learn": [ [ "mag_stabbing", 0 ], [ "manual_stabbing", 0 ] ], - "//": "Only training weapons or light and easy to use weapons.", - "tools": [ - [ "spear_wood", "spear_knife_superior", "spear_stone", "spear_spike", "fencing_foil", "fencing_epee", "fencing_sabre" ], - [ "training_dummy_light" ] - ], - "//1": "A bunch of duct tape to repair the dummy with each training session.", - "components": [ [ [ "duct_tape", 25 ] ] ] - }, - { - "id": "prac_stabbing_int", - "type": "practice", - "activity_level": "BRISK_EXERCISE", - "category": "CC_PRACTICE", - "subcategory": "CSC_PRACTICE_COMBAT", - "name": "stabbing (intermediate)", - "description": "Practice advanced handling of stabbing weapons against an armored training dummy. You will need to make repairs to the dummy while you train.", - "skill_used": "stabbing", - "skills_required": [ [ "melee", 3 ] ], - "time": "1 h", - "practice_data": { "min_difficulty": 3, "max_difficulty": 4 }, - "autolearn": [ [ "stabbing", 3 ] ], - "qualities": [ { "id": "HAMMER", "level": 2 } ], - "//": "Only historial, powerful stabbing weapons.", - "tools": [ - [ "pike", "lucern_hammer", "spear_dory", "sword_cane", "rapier", "estoc", "kris", "qiang", "tanto" ], - [ "training_dummy_heavy" ] - ], - "//1": "A bunch of duct tape and scrap to repair the dummy with each training session.", - "components": [ [ [ "duct_tape", 50 ] ], [ [ "scrap", 20 ] ] ] - }, - { - "id": "prac_unarmed_beg", - "type": "practice", - "activity_level": "MODERATE_EXERCISE", - "category": "CC_PRACTICE", - "subcategory": "CSC_PRACTICE_COMBAT", - "name": "unarmed (beginner)", - "skills_required": [ [ "melee", 1 ] ], - "description": "Practice some unarmed moves against a training dummy or punching bag.", - "skill_used": "unarmed", - "time": "1 h", - "practice_data": { "min_difficulty": 0, "max_difficulty": 2, "skill_limit": 3 }, - "autolearn": [ [ "unarmed", 1 ] ], - "book_learn": [ [ "mag_unarmed", 0 ], [ "manual_brawl", 0 ] ], - "tools": [ [ "training_dummy_light", "pseudo_punching_bag" ] ] - }, - { - "id": "prac_dancing", - "type": "practice", - "activity_level": "LIGHT_EXERCISE", - "category": "CC_PRACTICE", - "subcategory": "CSC_PRACTICE_COMBAT", - "name": "dancing", - "description": "Practice some dancing moves with your imaginary partner.", - "skill_used": "dodge", - "time": "1 h", - "practice_data": { "min_difficulty": 0, "max_difficulty": 1, "skill_limit": 2 }, - "book_learn": [ [ "mag_dodge", 0 ], [ "manual_dodge", 0 ] ] - }, - { - "id": "prac_dodge_beg", - "type": "practice", - "activity_level": "MODERATE_EXERCISE", - "category": "CC_PRACTICE", - "subcategory": "CSC_PRACTICE_COMBAT", - "name": "dodge (beginner)", - "description": "Practice your dodging by throwing a ball at a wall and dodging it when it bounces off.", - "skill_used": "dodge", - "time": "1 h", - "practice_data": { "min_difficulty": 0, "max_difficulty": 2, "skill_limit": 3 }, - "autolearn": [ [ "dodge", 1 ] ], - "book_learn": [ [ "manual_dodge_kid", 0 ], [ "manual_dodge", 0 ] ], - "tools": [ [ "basketball", "indoor_volleyball", "beach_volleyball", "baseball" ] ] - } -] diff --git a/data/json/recipes/recipe_others.json b/data/json/recipes/recipe_others.json index c402793499d61..d0bd6b62a6107 100644 --- a/data/json/recipes/recipe_others.json +++ b/data/json/recipes/recipe_others.json @@ -2312,39 +2312,5 @@ [ [ "glass_shard", 3 ], [ "pipe_glass", 1 ], [ "flask_glass", 3 ], [ "test_tube", 6 ], [ "marble", 75 ] ], [ [ "stopcock", 1 ] ] ] - }, - { - "result": "training_dummy_light", - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_OTHER", - "skill_used": "fabrication", - "difficulty": 2, - "time": "1 h", - "autolearn": true, - "proficiencies": [ { "proficiency": "prof_carpentry_basic" } ], - "qualities": [ { "id": "HAMMER", "level": 2 }, { "id": "SAW_W", "level": 2 } ], - "components": [ - [ [ "wood_panel", 1 ] ], - [ [ "2x4", 2 ] ], - [ [ "nail", 30 ] ], - [ [ "duct_tape", 50 ] ], - [ [ "2x4", 4 ], [ "log", 1 ], [ "wood_beam", 1 ] ] - ] - }, - { - "result": "training_dummy_heavy", - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_OTHER", - "skill_used": "fabrication", - "difficulty": 2, - "time": "30 m", - "autolearn": true, - "using": [ [ "cordage", 4 ] ], - "qualities": [ { "id": "HAMMER", "level": 1 }, { "id": "CUT", "level": 1 } ], - "components": [ [ [ "training_dummy_light", 1 ] ], [ [ "duct_tape", 50 ] ], [ [ "scrap", 150 ] ] ] } ] diff --git a/data/json/recipes/recipe_vehicle.json b/data/json/recipes/recipe_vehicle.json index 8969747eeb35a..132809b9d3e85 100644 --- a/data/json/recipes/recipe_vehicle.json +++ b/data/json/recipes/recipe_vehicle.json @@ -223,7 +223,7 @@ "autolearn": true, "reversible": true, "qualities": [ { "id": "PRY", "level": 1 } ], - "components": [ [ [ "tire_bicycle_or", 1 ] ], [ [ "wheel_rim_bicycle", 1 ] ] ] + "components": [ [ [ "tire_bicycle_or", 1 ] ], [ [ "wheel_rim_wide", 1 ] ] ] }, { "result": "reins_tackle", diff --git a/data/json/recipes/recipes.json b/data/json/recipes/recipes.json index 4c448fb75e79c..3245187d9b631 100644 --- a/data/json/recipes/recipes.json +++ b/data/json/recipes/recipes.json @@ -126,8 +126,7 @@ "CSC_PRACTICE_DEVICES", "CSC_PRACTICE_HEALTH", "CSC_PRACTICE_MECHANICS", - "CSC_PRACTICE_SOCIAL", - "CSC_PRACTICE_COMBAT" + "CSC_PRACTICE_SOCIAL" ] } ] diff --git a/data/json/recipes/tools/tools_hand.json b/data/json/recipes/tools/tools_hand.json index 4edb7b076e91b..88c794288cc0a 100644 --- a/data/json/recipes/tools/tools_hand.json +++ b/data/json/recipes/tools/tools_hand.json @@ -52,25 +52,6 @@ ], "components": [ [ [ "steel_lump", 1 ], [ "steel_chunk", 4 ], [ "scrap", 12 ], [ "pipe", 3 ], [ "pipe_fittings", 1 ] ] ] }, - { - "type": "recipe", - "activity_level": "MODERATE_EXERCISE", - "result": "metalworking_tongs", - "category": "CC_OTHER", - "subcategory": "CSC_OTHER_TOOLS", - "skill_used": "fabrication", - "difficulty": 2, - "time": "60 m", - "autolearn": true, - "qualities": [ { "id": "ANVIL", "level": 1 }, { "id": "HAMMER", "level": 2 } ], - "tools": [ [ [ "forge", 150 ], [ "oxy_torch", 30 ] ] ], - "proficiencies": [ - { "proficiency": "prof_metalworking" }, - { "proficiency": "prof_blacksmithing" }, - { "proficiency": "prof_toolsmithing" } - ], - "components": [ [ [ "steel_lump", 1 ], [ "pipe", 2 ], [ "rebar", 2 ] ], [ [ "nail", 1 ] ] ] - }, { "type": "recipe", "activity_level": "BRISK_EXERCISE", @@ -1167,7 +1148,7 @@ "difficulty": 2, "time": "5 m", "autolearn": true, - "qualities": [ { "id": "DRILL", "level": 2 } ], + "tools": [ [ [ "cordless_drill", 20 ] ] ], "components": [ [ [ "sheet_metal_small", 1 ] ] ] }, { diff --git a/data/json/requirements/cooking_components.json b/data/json/requirements/cooking_components.json index 33ec492e1c1b7..58c03e21ac9e8 100644 --- a/data/json/requirements/cooking_components.json +++ b/data/json/requirements/cooking_components.json @@ -181,7 +181,6 @@ [ "wine_cabernet", 1 ], [ "wine_noir", 1 ], [ "wine_vermouth", 1 ], - [ "wine_marsala", 1 ], [ "sherry", 1 ], [ "bristol_sherry", 1 ], [ "madeira", 1 ] diff --git a/data/json/requirements/toolsets.json b/data/json/requirements/toolsets.json index 38c5167edd0cb..c69b73f9d8d4c 100644 --- a/data/json/requirements/toolsets.json +++ b/data/json/requirements/toolsets.json @@ -40,7 +40,7 @@ "type": "requirement", "//": "Includes forging resources as well as tools needed for most blacksmithing", "qualities": [ { "id": "ANVIL", "level": 3 }, { "id": "HAMMER", "level": 3 } ], - "tools": [ [ [ "forge", 20 ], [ "oxy_torch", 20 ], [ "fake_arc_furnace", 10 ] ], [ [ "metalworking_tongs", -1 ] ] ] + "tools": [ [ [ "forge", 20 ], [ "oxy_torch", 20 ], [ "fake_arc_furnace", 10 ] ], [ [ "tongs", -1 ] ] ] }, { "id": "mutagen_production_standard", diff --git a/data/json/snippets/snippets.json b/data/json/snippets/snippets.json index a5cb4594c7756..6c306d190c289 100644 --- a/data/json/snippets/snippets.json +++ b/data/json/snippets/snippets.json @@ -192,27 +192,6 @@ "Welcome to the Smart Engine Controller ® user manual. This document describes the features and capabilities of the Smart Engine Controller, as well as gives examples of the use cases that reap the most benefits from the Smart Engine Controller.\n\nSmart Engine Controller intelligently turns controllable engines on and off. To put it simply, it tries to find the optimal state of the engines that:\n• won't completely deplete the battery\n• meets requested acceleration and speed\n• is safe for engines\n• has best fuel economy and battery charge rate\n\nSmart Engine Controller only supports engines that are controlled by electronics, such as combustion and electric engines. When enabled, Smart Engine Controller will immediately take control over all compatible engines and will start and shut them down as needed. Smart Engine Controller supports between two and five controllable engines.\nSmart Engine Controller allows the user to tune its settings for the usage of the electric motors. This setting comes in the form of two sliders: \"LO\" and \"HI\" battery level, %.\n• when battery level < LO, electric motor won't engage\n• when battery level > HI, electric motor is preferred (but not guaranteed to be used)\n• between LOW and HI, electric motor usage is determined by battery charge rate and other factors\nNote: Smart Engine Controller will strive to keep battery level at or above \"HI\", utilizing the engines with attached alternators.\n\nIntended use cases of the Smart Engine Controller:\n• Hybrid car with gas and electric engines\nWhen battery level is \"HI\" or above, a more efficient electric engine will be used. When accelerating, gas engine may be started to provide the best acceleration. When battery level is below \"HI\", the gas engine with the alternator will be used to recharge the battery.\n• Car with two or more gas engines\nWhen cruising, only one engine will be used. When accelerating, more engines will be started to provide the best acceleration.\n• Car with a small and large engine\nDepending on the speed, a single engine will be chosen to provide the best acceleration and fuel economy.\n• Stationary generator\nWhen the battery reaches \"HI\" level, the gas engine will be turned off to save fuel.\n\nEnjoy your optimal ride with the Smart Engine Controller! For warranty information please contact your local dealership." ] }, - { - "type": "snippet", - "category": "dogwhistle_message_npc_not_hostile", - "text": [ "What is this unbearable sound!?", "STOP. MY EARS", "I'm not a dog…", "Would you kindly not do that?" ] - }, - { - "type": "snippet", - "category": "dogwhistle_message_npc_hostile", - "text": [ - "I WILL MURDER YOU", - "I'LL SHOVE THAT WHISTLE DOWN YOUR THROAT", - "You're seriously pissing me off…", - "I'm not a dog…", - "What is this unbearable sound!?" - ] - }, - { - "type": "snippet", - "category": "dogwhistle_message_you", - "text": [ "You hate this loud sound." ] - }, { "type": "snippet", "category": "slime_cheers", diff --git a/data/json/vehicleparts/turret.json b/data/json/vehicleparts/turret.json index dfce3ef6594f4..4bdd0fe50419c 100644 --- a/data/json/vehicleparts/turret.json +++ b/data/json/vehicleparts/turret.json @@ -157,24 +157,6 @@ "breaks_into": [ { "item": "scrap", "count": 25 }, { "item": "steel_chunk", "count": 5 }, { "item": "steel_lump", "count": 5 } ], "requirements": { "install": { "skills": [ [ "mechanics", 4 ], [ "rifle", 2 ] ] }, "removal": { "skills": [ [ "mechanics", 2 ] ] } } }, - { - "id": "mounted_m231", - "type": "vehicle_part", - "name": { "str": "mounted M231 PFW" }, - "symbol": "t", - "durability": 400, - "damage_modifier": 80, - "categories": [ "warfare" ], - "flags": [ "TURRET" ], - "item": "m231pfw", - "color": "cyan", - "broken_color": "cyan", - "breaks_into": [ { "item": "scrap", "count": 28 }, { "item": "steel_chunk", "count": 12 }, { "item": "steel_lump", "count": 7 } ], - "requirements": { - "install": { "time": "100 s", "skills": [ [ "mechanics", 0 ], [ "rifle", 1 ] ] }, - "removal": { "time": "50 s", "skills": [ [ "mechanics", 0 ] ] } - } - }, { "id": "mounted_m240", "copy-from": "turret", diff --git a/data/mods/Generic_Guns/vehicles/turrets.json b/data/mods/Generic_Guns/vehicles/turrets.json index 131c25fe34aa6..b85f16d8055f1 100644 --- a/data/mods/Generic_Guns/vehicles/turrets.json +++ b/data/mods/Generic_Guns/vehicles/turrets.json @@ -28,11 +28,6 @@ "item": "rifle_assault", "breaks_into": [ { "item": "rifle_assault", "prob": 50 } ] }, - { - "id": "mounted_m231", - "copy-from": "mounted_m1918", - "type": "vehicle_part" - }, { "id": "mounted_m240", "copy-from": "mounted_m240", @@ -46,11 +41,6 @@ "copy-from": "mounted_m240", "type": "vehicle_part" }, - { - "id": "m249_semi", - "copy-from": "mounted_m240", - "type": "vehicle_part" - }, { "id": "mounted_m134", "copy-from": "mounted_m240", @@ -61,11 +51,6 @@ "copy-from": "mounted_m240", "type": "vehicle_part" }, - { - "id": "mounted_m60_semi", - "copy-from": "mounted_m240", - "type": "vehicle_part" - }, { "id": "mounted_rm614", "copy-from": "mounted_m240", diff --git a/data/mods/Magiclysm/monsters/goblin.json b/data/mods/Magiclysm/monsters/goblin.json index d3eca13c06a11..f2e29b5e73547 100644 --- a/data/mods/Magiclysm/monsters/goblin.json +++ b/data/mods/Magiclysm/monsters/goblin.json @@ -55,7 +55,7 @@ { "item": "sling", "prob": 95 } ] }, - "starting_ammo": { "pebble": 30 }, + "starting_ammo": { "rock": 30 }, "extend": { "special_attacks": [ { @@ -63,7 +63,7 @@ "cooldown": 15, "move_cost": 90, "gun_type": "sling", - "ammo_type": "pebble", + "ammo_type": "rock", "fake_skills": [ [ "gun", 4 ], [ "rifle", 4 ] ], "fake_dex": 8, "fake_per": 8, diff --git a/data/mods/Magiclysm/recipes/blacksmithing.json b/data/mods/Magiclysm/recipes/blacksmithing.json index df26a8995fd4a..bacd132e6b72e 100644 --- a/data/mods/Magiclysm/recipes/blacksmithing.json +++ b/data/mods/Magiclysm/recipes/blacksmithing.json @@ -25,7 +25,6 @@ "type": "recipe", "activity_level": "fake", "category": "CC_OTHER", - "subcategory": "CSC_OTHER_MATERIALS", "skill_used": "fabrication", "difficulty": 5, "time": "180 m", diff --git a/data/mods/Mythos/README.md b/data/mods/Mythos/README.md deleted file mode 100644 index 167ab0fbb3878..0000000000000 --- a/data/mods/Mythos/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# About This Mod - -A very work-in-progress start to a more Lovecraftian-focused version of Cataclysm set in the 1920s, with 99.9% of the population mysteriously disappearing at midnight of day 0. - -Players will take on the roles of investigators in a variety of professions battling the denizens of the shadows to recover and rebuild society. - - -# Planned list of features - -- Removal of Zombies from game to focus more on the Mythos elements - -- Addition of further Mythos creatures to compliment the already existing ones (elder things, ghouls, ghasts, nightgaunts, deep ones, dark young, shantaks, servitors, rat-things etc.) - -- Addition of cults\cult-like posessions among the remaining humans (Esoteric Order of Dagon, Yithian Time Travellers, Insects from Shaggai, Church of Starry Wisdom etc.) - -- Reworking of existing items\buildings\vehicles to 1920s levels of construction and technology and removing the ruined aspect to represent people just vanishing (meals on tables etc.) - -- Plus much more to come diff --git a/data/mods/Mythos/modinfo.json b/data/mods/Mythos/modinfo.json deleted file mode 100644 index a85cd6c313e0e..0000000000000 --- a/data/mods/Mythos/modinfo.json +++ /dev/null @@ -1,29 +0,0 @@ -[ - { - "type": "MOD_INFO", - "id": "Mythos", - "name": "[WIP] Mythos Mod - No Zombies", - "authors": [ "mythosmod" ], - "description": "Removes all the zombies (including fungus zombies) from the game - a very work-in-progress start to a more Lovecraftian-focused version of Cataclysm set in the 1920s, with 99.9% of the population mysteriously disappearing at midnight of day 0. Players will take on the roles of investigators in a variety of professions battling the denizens of the shadows to recover and rebuild society.", - "category": "content", - "dependencies": [ "dda" ], - "version": "0.1" - }, - { - "type": "MONSTER_BLACKLIST", - "monsters": [ - "mon_zombie_fungus", - "mon_boomer_fungus", - "mon_zombie_child_fungus", - "mon_zombie_gasbag_fungus", - "mon_zombie_smoker_fungus", - "mon_skeleton_fungus", - "mon_skeleton_brute_fungus", - "mon_skeleton_hulk_fungus" - ] - }, - { - "type": "MONSTER_BLACKLIST", - "species": [ "ZOMBIE" ] - } -] diff --git a/doc/BASECAMP.md b/doc/BASECAMP.md index 95ba1bf27f7e1..02ff4bc7ee913 100644 --- a/doc/BASECAMP.md +++ b/doc/BASECAMP.md @@ -35,7 +35,8 @@ These are arbitrary strings and can be used to control the branching of the upgr provides `"id"` | meaning -- | -- `"bed"` | every 2 `"amount"`' of `"bed"` allows another expansion in the camp, to a maximum of 8, not include the camp center. -`"tool_storage"` | after this upgrade mission is complete, the Store Tools mission will be available. +`"tool_storage"` | after this upgrade mission is complete, the Store Tools mission will be available +. `"radio"` | after this upgrade mission is complete, two way radios communicating to the camp have extended range. `"pantry"` | after this upgrade mission is complete, the Distribute Food mission is more efficient when dealing with short term spoilage items. `"gathering"` | after this upgrade mission is complete, the Gather Materials, Distribute Food, and Reset Sort Points basecamp missions will be available. @@ -140,7 +141,7 @@ There are two special recipe groups, `"all_faction_base_types"` and `"all_factio }, ``` -Each entry in the `"recipes"` array must be a dictionary with the `"id"`, `"description"`, and `"om_terrains"` fields. `"id"` is the recipe `"id"` of the recipe that starts that basecamp or basecamp expansion upgrade path, and has to conform to the pattern `"faction_base_X_0"`, where X distinguishes the entry from the others, with the prefix and suffix required by the code. `"description"` is a short name of the basecamp or basecamp expansion. `"om_terrains"` is a list of overmap terrain ids which can be used as the basis for the basecamp or basecamp expansion. +Each entry in the `"recipes"` array must be a dictionary with the `"id"`, `"description"`, and `"om_terrains"` fields. `"id"` is the recipe `"id"` of the recipe that starts that basecamp or basecamp expansion upgrade path. `"description"` is a short name of the basecamp or basecamp expansion. `"om_terrains"` is a list of overmap terrain ids which can be used as the basis for the basecamp or basecamp expansion. All recipes that start an upgrade path or expansion should have a blueprint requirement that can never be met, such as "not_an_upgrade", to prevent them from showing up as available upgrades. Additionally, if you want to add an expansion, you must create an OMT with the same `id` as the expansion's `id`. @@ -195,12 +196,3 @@ Modular bases use the following naming scheme for recipes. Each element is sepa * AREA <-- the area in the 3x3 grid of the modular camp layout. blueprint keywords follow a similar scheme, but `"faction_base_modular"` is collapsed into `"fbm"` and the overmap terrain id is collapsed into a short identifier. ie, `"fbmf"` is the keyword identifier for elements of the modular field base. - -# Adding basecamp expansions - -Basecamp expansion upgrade paths are defined by the corresponding set of files to the basecamps themselves, with two additions (at the end of the list): -* The recipe JSONs that define what the material, tool, and skill requirements to perform an upgrade mission and the blueprint mapgen, blueprint requirements, blueprint provides, and blueprint resources associated with each upgrade mission. -* The mapgen_update JSONs that define how the map will change when the upgrade mission is complete. These may include shared instances of nested mapgen, such a standard room or tent. -* The recipe_group JSONs that define what recipes can be crafted after completing the upgrade mission and what camps and expansions are available. -* ../json/overmap/overmap_terrain/overmap_terrain_faction_base.json has to be updated to provide an overmap identifier for each new expansion. -* ../json/mapgen/faction_buildings.json also has to be updated to introduce an entry for the new expansion. \ No newline at end of file diff --git a/doc/JSON_INFO.md b/doc/JSON_INFO.md index 85160e2e840d1..fc23dd696236f 100644 --- a/doc/JSON_INFO.md +++ b/doc/JSON_INFO.md @@ -198,7 +198,6 @@ Use the `Home` key to return to the top. - [`start_name`](#start_name) - [`professions`](#professions) - [`map_special`](#map_special) - - [`eocs`](#eocs) - [`missions`](#missions) - [`custom_initial_date`](#custom_initial_date) - [Starting locations](#starting-locations) diff --git a/doc/MAPGEN.md b/doc/MAPGEN.md index 94e7c2e056ac9..0970b993b258d 100644 --- a/doc/MAPGEN.md +++ b/doc/MAPGEN.md @@ -994,29 +994,6 @@ an `update_mapgen`, as normal mapgen can just specify the terrain directly. - "transform": (required, string) the id of the `ter_furn_transform` to run. -### Spawn nested chunks based on overmap neighbors with "place_nested" - -Place_nested allows for limited conditional spawning of chunks based on the `"id"`s of their overmap neighbors. This is useful for creating smoother transitions between biome types or to dynamically create walls at the edges of a mutable structure. - -| Field | Description -| --- | --- -| chunks/else_chunks | (required, string) the nested_mapgen_id of the chunk that will be conditionally placed. Chunks are placed if the specified neighbor matches, and "else_chunks" otherwise. -| x and y | (required, int) the cardinal position in which the chunk will be placed. -| neighbors | (optional, string ) Any of the neighboring overmaps that should be evaluated before placing the chunk. Despite the plural field name, only a single neighbor direction can be evaluated per chunk. The direction itself can check for any amount of overmap `"id"` substrings. -| - -The following adjacent overmaps can be evaluated in this manner: the direct cardinal neighbors ( `"north", "east", "south", "west"` ) the inter cardinal neighbors ( `"north_east", "north_west", "south_east", "south_west"` ), and the direct vertical neighbors ( `"above", "below"` ). - -Example: - -```json - "place_nested": [ - { "chunks": [ "concrete_wall_ew" ], "x": 0, "y": 0, "neighbors": { "north": [ "empty_rock", "field" ] } }, - { "else_chunks": [ "concrete_wall_ns" ], "x": 0, "y": 0, "neighbors": { "north_west": [ "field", "microlab" ] } } - ], -``` -The code excerpt above will place the nested chunk "concrete_wall_ew" if the north neighbor is either a field or solid rock, otherwise potentially placing `"concrete_wall_ns"`; the latter will be placed only if the north_west neighbor is neither a field nor any of the microlab overmaps). - ## Mapgen values diff --git a/doc/MONSTERS.md b/doc/MONSTERS.md index c48548029ce6a..c99e3ab208c2f 100644 --- a/doc/MONSTERS.md +++ b/doc/MONSTERS.md @@ -328,10 +328,8 @@ Weakpoints in the monster's protection. | --- | --- | `name` | Name of the weakpoint. | `coverage` | Base percentage chance of hitting the weakpoint. May be increased by skill level. (e.g. A coverage of 5 means a 5% base chance of hitting the weakpoint) -| `armor_mult` | multipler on the monster's base protection when hitting the weakpoint. +| `armor_multiplier` | multipler on the monster's base protection when hitting the weakpoint. | `armor_penalty` | a flat penalty to the monster's protection, applied after the multiplier. -| `damage_mult` | multipler on the post-armor damage when hitting the weakpoint. -| `crit_mult` | multipler on the post-armor damage when critically hitting the weakpoint. ## "vision_day", "vision_night" (integer, optional) diff --git a/doc/NPCs.md b/doc/NPCs.md index 3d5667a5c7416..b4c561b6aa568 100644 --- a/doc/NPCs.md +++ b/doc/NPCs.md @@ -530,7 +530,6 @@ Effect | Description `u_lose_morale: morale_string`
`npc_lose_morale: morale_string` | Your character or the NPC will lose any morale of type `morale_string`. `u_message, npc_message: message_string`, (*optional* `sound: sound_bool`),(*optional* `outdoor_only: outdoor_only_bool`),(*optional* `snippet: snippet_bool`),(*optional* `type: type_string`),(*optional* `popup: popup_bool`) | Displays a message to either the player or the npc of `message_string`. Will not display unless the player or npc is the actual player. If `snippet_bool` is true(defaults to false) it will instead display a random snippet from `message_string` category. If `sound` is true(defaults to false) it will only display the message if the player is not deaf. `outdoor_only`(defaults to false) only matters when `sound` is true and will make the message less likely to be heard if the player is underground. Message will display as type of `type_string`. Type affects the color of message and can be any of the following values: good, neutral, bad, mixed, warning, info, debug, headshot, critical, grazing. enums.h has more info on each types use. If `popup_bool` is true the message will be in a modal popup the user has to dismiss to continue. `u_cast_spell, npc_cast_spell : fake_spell_data` | The spell described by fake_spell_data will be cast with u or the npc as the caster and u or the npc's location as the target. Fake spell data can have the following attributes: `id:string`: the id of the spell to cast, (*optional* `hit_self`: bool ( defaults to false ) if true can hit the caster, `trigger_message`: string to display on trigger, `npc_message`: string for message if npc uses, `max_level` int max level of the spell, `min_level` int min level of the spell ) -`u_assign_activity, npc_assign_activity: activity_id_string`, `duration: duration_string or duration_variable_object`) | Your character or the NPC will start activity `activity_id_string`. It will last for `duration: duration_string` time or `duration_variable_object`. #### Trade / Items @@ -609,7 +608,6 @@ Effect | Description `take_control`. If the npc is a character then take control of them. `take_control_menu`. Opens up a menu to choose a follower to take control of. `assign_mission: mission_type_id string` | Will assign mission `mission_type_id` to the player. -`finish_mission: mission_type_id string`,`success: success_bool` | Will complete mission `mission_type_id` to the player as a success if `success` is true, as a failure otherwise. `set_queue_effect_on_condition: effect_on_condition_array`, (*optional* `time_in_future_min: time_in_future_min_int or string or variable_object`,`time_in_future_max: time_in_future_max_int or string or variable_object` | Will queue up all members of the `effect_on_condition_array`. Members should either be the id of an effect_on_condition or an inline effect_on_condition. Members will be run between `time_in_future_min_int` and `time_in_future_max_int` seconds, or if they are strings the future values of them or if they are variable objects the variable they name. If these are zero (their default value) the eocs will happen instantly. For instant activation eocs the current u and npc will be used. For future ones u will be the avatar and npc will be invalid. You cannot queue recurring eocs. `set_weighted_list_eocs: array_array` | Will choose one of a list of eocs to activate based on weight. Members should be an array of first the id of an effect_on_condition or an inline effect_on_condition and second an integer weight. Example: This will cause "EOC_SLEEP" 1/10 as often as it makes a test message appear. diff --git a/doc/PLAYER_ACTIVITY.md b/doc/PLAYER_ACTIVITY.md index 0582e78aa5f28..f3eb467d8b281 100644 --- a/doc/PLAYER_ACTIVITY.md +++ b/doc/PLAYER_ACTIVITY.md @@ -40,8 +40,6 @@ query to stop the activity, and strings that describe it, for example: * interruptable (true): Can this be interrupted. If false, then popups related to e.g. pain or seeing monsters will be suppressed. -* interruptable_with_kb (true): Can this be interrupted by a key press. - * no_resume (false): Rather than resuming, you must always restart the activity from scratch. diff --git a/json_blacklist b/json_blacklist new file mode 100644 index 0000000000000..ac50aae80383c --- /dev/null +++ b/json_blacklist @@ -0,0 +1 @@ +gfx/tile_config_template.json diff --git a/src/activity_type.cpp b/src/activity_type.cpp index 03f4236b0a44e..4a8c37d44c311 100644 --- a/src/activity_type.cpp +++ b/src/activity_type.cpp @@ -47,7 +47,6 @@ void activity_type::load( const JsonObject &jo ) assign( jo, "rooted", result.rooted_, true ); assign( jo, "verb", result.verb_, true ); assign( jo, "interruptable", result.interruptable_, true ); - assign( jo, "interruptable_with_kb", result.interruptable_with_kb_, true ); assign( jo, "suspendable", result.suspendable_, true ); assign( jo, "no_resume", result.no_resume_, true ); assign( jo, "multi_activity", result.multi_activity_, false ); diff --git a/src/activity_type.h b/src/activity_type.h index 623bd5f70e14e..72f040e37acc4 100644 --- a/src/activity_type.h +++ b/src/activity_type.h @@ -33,7 +33,6 @@ class activity_type bool rooted_ = false; translation verb_ = to_translation( "THIS IS A BUG" ); bool interruptable_ = true; - bool interruptable_with_kb_ = true; bool suspendable_ = true; based_on_type based_on_ = based_on_type::SPEED; bool no_resume_ = false; @@ -52,9 +51,6 @@ class activity_type bool interruptable() const { return interruptable_; } - bool interruptable_with_kb() const { - return interruptable_with_kb_; - } bool suspendable() const { return suspendable_; } diff --git a/src/character.cpp b/src/character.cpp index 17360c0969d3d..8c9becee5c0df 100644 --- a/src/character.cpp +++ b/src/character.cpp @@ -8904,9 +8904,7 @@ void Character::process_effects() int_bonus_hardcoded = 0; per_bonus_hardcoded = 0; //Human only effects - effects_map effects_copy = *effects; - // Iterate over a copy, process_one_effect modifies the effects map, potentially invalidating iterators. - for( std::pair> &elem : effects_copy ) { + for( std::pair> &elem : *effects ) { for( std::pair &_effect_it : elem.second ) { process_one_effect( _effect_it.second, false ); } diff --git a/src/creature.cpp b/src/creature.cpp index 04b52d4d3b80b..3a387bdb1a734 100644 --- a/src/creature.cpp +++ b/src/creature.cpp @@ -396,9 +396,9 @@ bool Creature::sees( const tripoint &t, bool is_avatar, int range_mod ) const const int wanted_range = rl_dist( pos(), t ); if( wanted_range <= range_min || ( wanted_range <= range_max && - here.ambient_light_at( t ) > here.get_cache_ref( t.z ).natural_light_level_cache ) ) { + here.ambient_light_at( t ) > g->natural_light_level( t.z ) ) ) { int range = 0; - if( here.ambient_light_at( t ) > here.get_cache_ref( t.z ).natural_light_level_cache ) { + if( here.ambient_light_at( t ) > g->natural_light_level( t.z ) ) { range = MAX_VIEW_DISTANCE; } else { range = range_min; @@ -850,7 +850,6 @@ struct projectile_attack_results { double damage_mult = 1.0; bodypart_id bp_hit; std::string wp_hit; - bool is_crit = false; explicit projectile_attack_results( const projectile &proj ) { max_damage = proj.impact.total_damage(); @@ -890,14 +889,12 @@ projectile_attack_results Creature::select_body_part_projectile_attack( ret.damage_mult *= rng_float( 0.95, 1.05 ); ret.damage_mult *= crit_multiplier; ret.bp_hit = bodypart_id( "head" ); // headshot hits the head, of course - ret.is_crit = true; } else if( goodhit < accuracy_critical && ret.max_damage * crit_multiplier > get_hp_max( bodypart_id( "torso" ) ) ) { ret.message = _( "Critical!" ); ret.gmtSCTcolor = m_critical; ret.damage_mult *= rng_float( 0.75, 1.0 ); ret.damage_mult *= crit_multiplier; - ret.is_crit = true; } else if( goodhit < accuracy_goodhit ) { ret.message = _( "Good hit!" ); ret.gmtSCTcolor = m_good; @@ -1041,9 +1038,6 @@ void Creature::deal_projectile_attack( Creature *source, dealt_projectile_attack projectile_attack_results hit_selection = select_body_part_projectile_attack( proj, goodhit, missed_by ); - // Create a copy that records whether the attack is a crit. - weakpoint_attack wp_attack_copy = wp_attack; - wp_attack_copy.is_crit = hit_selection.is_crit; if( print_messages && source != nullptr && !hit_selection.message.empty() && u_see_this ) { source->add_msg_if_player( m_good, hit_selection.message ); @@ -1066,7 +1060,7 @@ void Creature::deal_projectile_attack( Creature *source, dealt_projectile_attack } } - dealt_dam = deal_damage( source, hit_selection.bp_hit, impact, wp_attack_copy ); + dealt_dam = deal_damage( source, hit_selection.bp_hit, impact, wp_attack ); // Force damage instance to match the selected body point dealt_dam.bp_hit = hit_selection.bp_hit; // Retrieve the selected weakpoint from the damage instance. diff --git a/src/debug.cpp b/src/debug.cpp index ad1cd06510d27..98a9632acf6ef 100644 --- a/src/debug.cpp +++ b/src/debug.cpp @@ -205,7 +205,6 @@ struct buffered_prompt_info { std::string line; std::string funcname; std::string text; - bool forced; }; namespace @@ -227,8 +226,7 @@ static void debug_error_prompt( const char *filename, const char *line, const char *funcname, - const char *text, - bool force ) + const char *text ) { cata_assert( catacurses::stdscr ); cata_assert( filename != nullptr ); @@ -239,7 +237,7 @@ static void debug_error_prompt( std::string msg_key( filename ); msg_key += line; - if( !force && ignored_messages.count( msg_key ) > 0 ) { + if( ignored_messages.count( msg_key ) > 0 ) { return; } @@ -337,99 +335,12 @@ void replay_buffered_debugmsg_prompts() prompt.filename.c_str(), prompt.line.c_str(), prompt.funcname.c_str(), - prompt.text.c_str(), - prompt.forced + prompt.text.c_str() ); } buffered_prompts().clear(); } -struct time_info { - int hours; - int minutes; - int seconds; - int mseconds; - - template - friend Stream &operator<<( Stream &out, const time_info &t ) { - using char_t = typename Stream::char_type; - using base = std::basic_ostream; - - static_assert( std::is_base_of::value, "" ); - - out << std::setfill( '0' ); - out << std::setw( 2 ) << t.hours << ':' << std::setw( 2 ) << t.minutes << ':' << - std::setw( 2 ) << t.seconds << '.' << std::setw( 3 ) << t.mseconds; - - return out; - } -}; - -static time_info get_time() noexcept; - -struct repetition_folder { - const char *m_filename = nullptr; - const char *m_line = nullptr; - const char *m_funcname = nullptr; - std::string m_text; - time_info m_time; - - static constexpr time_info timeout = { 0, 0, 0, 100 }; // 100ms timeout - static constexpr int repetition_threshold = 10000; - - int repeat_count = 0; - - bool test( const char *filename, const char *line, const char *funcname, const std::string &text ) { - return m_filename == filename && - m_line == line && - m_funcname == funcname && - m_text == text && - !timed_out(); - } - void set_time() { - m_time = get_time(); - } - void set( const char *filename, const char *line, const char *funcname, const std::string &text ) { - m_filename = filename; - m_line = line; - m_funcname = funcname; - m_text = text; - - set_time(); - - repeat_count = 0; - } - void increment_count() { - ++repeat_count; - set_time(); - } - void reset() { - m_filename = nullptr; - m_line = nullptr; - m_funcname = nullptr; - - m_time = time_info{0, 0, 0, 0}; - - repeat_count = 0; - } - - bool timed_out() { - const time_info now = get_time(); - - const int now_raw = now.mseconds + 1000 * now.seconds + 60000 * now.minutes + 3600000 * now.hours; - const int old_raw = m_time.mseconds + 1000 * m_time.seconds + 60000 * m_time.minutes + 3600000 * - m_time.hours; - - const int timeout_raw = timeout.mseconds + 1000 * timeout.seconds + 60000 * timeout.minutes + - 3600000 * timeout.hours; - - return ( now_raw - old_raw ) > timeout_raw; - } -}; - -static repetition_folder rep_folder; -static void output_repetitions( std::ostream &out ); - void realDebugmsg( const char *filename, const char *line, const char *funcname, const std::string &text ) { @@ -440,48 +351,20 @@ void realDebugmsg( const char *filename, const char *line, const char *funcname, if( capturing ) { captured += text; } else { - - if( !rep_folder.test( filename, line, funcname, text ) ) { - DebugLog( D_ERROR, D_MAIN ) << filename << ":" << line << " [" << funcname << "] " << text << - std::flush; - rep_folder.set( filename, line, funcname, text ); - } else { - rep_folder.increment_count(); - } + DebugLog( D_ERROR, D_MAIN ) << filename << ":" << line << " [" << funcname << "] " << text << + std::flush; } if( test_mode ) { return; } - // Show excessive repetition prompt once per excessive set - bool excess_repetition = rep_folder.repeat_count == repetition_folder::repetition_threshold; - if( !catacurses::stdscr ) { - buffered_prompts().push_back( {filename, line, funcname, text, false } ); - if( excess_repetition ) { - // prepend excessive error repetition to original text then prompt - std::string rep_err = - "Excessive error repetition detected. Please file a bug report at https://github.com/CleverRaven/Cataclysm-DDA/issues\n " - + text; - buffered_prompts().push_back( {filename, line, funcname, rep_err, true } ); - } + buffered_prompts().push_back( {filename, line, funcname, text } ); return; } - debug_error_prompt( filename, line, funcname, text.c_str(), false ); - - if( excess_repetition ) { - // prepend excessive error repetition to original text then prompt - std::string rep_err = - "Excessive error repetition detected. Please file a bug report at https://github.com/CleverRaven/Cataclysm-DDA/issues\n " - + text; - debug_error_prompt( filename, line, funcname, rep_err.c_str(), true ); - // Do not count this prompt when considering repetition folding - // Might look weird in the log if the repetitions end exactly after this prompt is displayed. - rep_folder.set_time(); - - } + debug_error_prompt( filename, line, funcname, text.c_str() ); } // Normal functions {{{1 @@ -518,6 +401,27 @@ struct NullBuf : public std::streambuf { // DebugFile OStream Wrapper {{{2 // --------------------------------------------------------------------- +struct time_info { + int hours; + int minutes; + int seconds; + int mseconds; + + template + friend Stream &operator<<( Stream &out, const time_info &t ) { + using char_t = typename Stream::char_type; + using base = std::basic_ostream; + + static_assert( std::is_base_of::value, "" ); + + out << std::setfill( '0' ); + out << std::setw( 2 ) << t.hours << ':' << std::setw( 2 ) << t.minutes << ':' << + std::setw( 2 ) << t.seconds << '.' << std::setw( 3 ) << t.mseconds; + + return out; + } +}; + #if defined(_WIN32) static time_info get_time() noexcept { @@ -582,7 +486,6 @@ DebugFile::~DebugFile() void DebugFile::deinit() { if( file && file.get() != &std::cerr ) { - output_repetitions( *file ); *file << "\n"; *file << get_time() << " : Log shutdown.\n"; *file << "-----------------------------------------\n\n"; @@ -1311,25 +1214,6 @@ void debug_write_backtrace( std::ostream &out ) } #endif -void output_repetitions( std::ostream &out ) -{ - // Need to complete the folding - if( rep_folder.repeat_count > 0 ) { - if( rep_folder.repeat_count > 1 ) { - out << std::endl; - out << "[ Previous repeated " << ( rep_folder.repeat_count - 1 ) << " times ]"; - } - out << std::endl; - out << rep_folder.m_time << " "; - // repetition folding is only done through DebugLog( D_ERROR, D_MAIN ) - out << D_ERROR; - out << ": "; - out << rep_folder.m_filename << ":" << rep_folder.m_line << " [" << rep_folder.m_funcname << "] " << - rep_folder.m_text << std::flush; - rep_folder.reset(); - } -} - std::ostream &DebugLog( DebugLevel lev, DebugClass cl ) { if( lev & D_ERROR ) { @@ -1340,9 +1224,6 @@ std::ostream &DebugLog( DebugLevel lev, DebugClass cl ) // Messages from D_MAIN come from debugmsg and are equally important. if( ( lev & debugLevel && cl & debugClass ) || lev & D_ERROR || cl & D_MAIN ) { std::ostream &out = debugFile().get_file(); - - output_repetitions( out ); - out << std::endl; out << get_time() << " "; out << lev; diff --git a/src/debug_menu.cpp b/src/debug_menu.cpp index 20272015fa247..63c1d5ee8f3ca 100644 --- a/src/debug_menu.cpp +++ b/src/debug_menu.cpp @@ -1112,14 +1112,14 @@ static void teleport_overmap( bool specific_coordinates = false ) static void spawn_nested_mapgen() { uilist nest_menu; - std::vector nest_ids; - for( auto &nested : nested_mapgens ) { - nest_menu.addentry( -1, true, -1, nested.first.str() ); - nest_ids.push_back( nested.first ); + std::vector nest_str; + for( auto &nested : nested_mapgen ) { + nest_menu.addentry( -1, true, -1, nested.first ); + nest_str.push_back( nested.first ); } nest_menu.query(); const int nest_choice = nest_menu.ret; - if( nest_choice >= 0 && nest_choice < static_cast( nest_ids.size() ) ) { + if( nest_choice >= 0 && nest_choice < static_cast( nest_str.size() ) ) { const cata::optional where = g->look_around(); if( !where ) { return; @@ -1135,7 +1135,7 @@ static void spawn_nested_mapgen() // TODO: fix point types const tripoint local_ms = target_map.getlocal( abs_ms.raw() ); mapgendata md( abs_omt, target_map, 0.0f, calendar::turn, nullptr ); - const auto &ptr = nested_mapgens[nest_ids[nest_choice]].funcs().pick(); + const auto &ptr = nested_mapgen[nest_str[nest_choice]].pick(); if( ptr == nullptr ) { return; } diff --git a/src/dialogue.h b/src/dialogue.h index 789bea512bcaa..3d92ce25b36ef 100644 --- a/src/dialogue.h +++ b/src/dialogue.h @@ -103,9 +103,7 @@ struct talk_effect_fun_t { void set_lose_bionic( const JsonObject &jo, const std::string &member, bool is_npc = false ); void set_message( const JsonObject &jo, const std::string &member, bool is_npc = false ); void set_add_wet( const JsonObject &jo, const std::string &member, bool is_npc ); - void set_assign_activity( const JsonObject &jo, const std::string &member, bool is_npc = false ); void set_assign_mission( const JsonObject &jo, const std::string &member ); - void set_finish_mission( const JsonObject &jo, const std::string &member ); void set_make_sound( const JsonObject &jo, const std::string &member, bool is_npc ); void set_queue_effect_on_condition( const JsonObject &jo, const std::string &member ); void set_weighted_list_eocs( const JsonObject &jo, const std::string &member ); diff --git a/src/do_turn.cpp b/src/do_turn.cpp index 056aedbb82e1a..1d2e77f00c813 100644 --- a/src/do_turn.cpp +++ b/src/do_turn.cpp @@ -367,7 +367,7 @@ void handle_key_blocking_activity() const std::string action = ctxt.handle_input( 0 ); bool refresh = true; if( action == "pause" ) { - if( u.activity.is_interruptible_with_kb() ) { + if( u.activity.interruptable_with_kb ) { g->cancel_activity_query( _( "Confirm:" ) ); } } else if( action == "player_data" ) { diff --git a/src/faction_camp.cpp b/src/faction_camp.cpp index 62003771ae1d5..5ddae87360c1e 100644 --- a/src/faction_camp.cpp +++ b/src/faction_camp.cpp @@ -517,10 +517,8 @@ static bool extract_and_check_orientation_flags( const recipe_id recipe, const auto check_rotation = [&]( const std::string & flag, int rotation_value ) { if( recipe->has_flag( flag ) ) { if( rotation != 0 ) { - debugmsg( - "%s, the blueprint specifies multiple concurrent rotations, which is not " - "supported", - string_format( base_error_message, actor, recipe->get_blueprint().str() ) ); + debugmsg( "%s, the blueprint specifies multiple concurrent rotations, which is not supported", + string_format( base_error_message, actor, recipe->get_blueprint() ) ); return false; } rotation = rotation_value; @@ -562,10 +560,8 @@ static bool extract_and_check_orientation_flags( const recipe_id recipe, if( recipe->has_flag( "MAP_MIRROR_HORIZONTAL_IF_" + dir_string ) ) { if( mirror_horizontal ) { - debugmsg( - "%s, the blueprint specifies multiple concurrent horizontal mirroring, which is " - "not supported", - string_format( base_error_message, actor, recipe->get_blueprint().str() ) ); + debugmsg( "%s, the blueprint specifies multiple concurrent horizontal mirroring, which is not supported", + string_format( base_error_message, actor, recipe->get_blueprint() ) ); return false; } mirror_horizontal = true; @@ -573,10 +569,8 @@ static bool extract_and_check_orientation_flags( const recipe_id recipe, if( recipe->has_flag( "MAP_MIRROR_VERTICAL_IF_" + dir_string ) ) { if( mirror_vertical ) { - debugmsg( - "%s, the blueprint specifies multiple concurrent vertical mirroring, which is not " - "supported", - string_format( base_error_message, actor, recipe->get_blueprint().str() ) ); + debugmsg( "%s, the blueprint specifies multiple concurrent vertical mirroring, which is not supported", + string_format( base_error_message, actor, recipe->get_blueprint() ) ); return false; } mirror_vertical = true; @@ -675,7 +669,7 @@ void talk_function::start_camp( npc &p ) const recipe &making = camp_type.obj(); if( !run_mapgen_update_func( making.get_blueprint(), omt_pos ) ) { popup( _( "%s failed to start the %s basecamp, perhaps there is a vehicle in the way." ), - p.disp_name(), making.get_blueprint().str() ); + p.disp_name(), making.get_blueprint() ); return; } get_basecamp( p, camp_type.str() ); @@ -2690,7 +2684,7 @@ bool basecamp::upgrade_return( const point &dir, const std::string &miss, mirror_vertical, rotation ) ) { popup( _( "%s failed to build the %s upgrade, perhaps there is a vehicle in the way." ), comp->disp_name(), - making.get_blueprint().str() ); + making.get_blueprint() ); return false; } update_provides( bldg, e->second ); @@ -2793,18 +2787,18 @@ void basecamp::fortifications_return() { npc_ptr comp = companion_choose_return( "_faction_camp_om_fortifications", 3_hours ); if( comp != nullptr ) { - update_mapgen_id build_n{ "faction_wall_level_N_0" }; - update_mapgen_id build_e{ "faction_wall_level_E_0" }; - update_mapgen_id build_s{ "faction_wall_level_S_0" }; - update_mapgen_id build_w{ "faction_wall_level_W_0" }; + std::string build_n = "faction_wall_level_N_0"; + std::string build_e = "faction_wall_level_E_0"; + std::string build_s = "faction_wall_level_S_0"; + std::string build_w = "faction_wall_level_W_0"; if( comp->companion_mission_role_id == "faction_wall_level_N_1" ) { - build_n = update_mapgen_id( "faction_wall_level_N_1" ); - build_e = update_mapgen_id( "faction_wall_level_E_1" ); - build_s = update_mapgen_id( "faction_wall_level_S_1" ); - build_w = update_mapgen_id( "faction_wall_level_W_1" ); + build_n = "faction_wall_level_N_1"; + build_e = "faction_wall_level_E_1"; + build_s = "faction_wall_level_S_1"; + build_w = "faction_wall_level_W_1"; } - update_mapgen_id build_first = build_e; - update_mapgen_id build_second = build_w; + std::string build_first = build_e; + std::string build_second = build_w; bool build_dir_NS = comp->companion_mission_points[0].y() != comp->companion_mission_points[1].y(); if( build_dir_NS ) { @@ -3041,8 +3035,8 @@ bool basecamp::survey_return() return false; } - if( !run_mapgen_update_func( update_mapgen_id( expansion_type.str() ), where, nullptr, true, - mirror_horizontal, mirror_vertical, rotation ) ) { + if( !run_mapgen_update_func( expansion_type.str(), where, nullptr, true, mirror_horizontal, + mirror_vertical, rotation ) ) { popup( _( "%s failed to add the %s expansion, perhaps there is a vehicle in the way." ), comp->disp_name(), expansion_type->blueprint_name() ); diff --git a/src/iexamine_actors.cpp b/src/iexamine_actors.cpp index d5b906712dac2..d8326eaa90c09 100644 --- a/src/iexamine_actors.cpp +++ b/src/iexamine_actors.cpp @@ -80,7 +80,7 @@ bool cardreader_examine_actor::apply( const tripoint &examp ) const if( map_regen ) { tripoint_abs_omt omt_pos( ms_to_omt_copy( here.getabs( examp ) ) ); if( !run_mapgen_update_func( mapgen_id, omt_pos, nullptr, false ) ) { - debugmsg( "Failed to apply magen function %s", mapgen_id.str() ); + debugmsg( "Failed to apply magen function %s", mapgen_id ); } here.set_seen_cache_dirty( examp ); here.set_transparency_cache_dirty( examp.z ); @@ -173,7 +173,7 @@ void cardreader_examine_actor::finalize() const } } - if( terrain_changes.empty() && furn_changes.empty() && mapgen_id.is_empty() ) { + if( terrain_changes.empty() && furn_changes.empty() && mapgen_id.empty() ) { debugmsg( "Cardreader examine actor does not change either terrain or furniture" ); } diff --git a/src/iexamine_actors.h b/src/iexamine_actors.h index f98d31800ff4b..fc29fe2d84de3 100644 --- a/src/iexamine_actors.h +++ b/src/iexamine_actors.h @@ -22,7 +22,7 @@ class cardreader_examine_actor : public iexamine_actor std::map terrain_changes; std::map furn_changes; // Option 2: Regenerate entire current overmap tile - update_mapgen_id mapgen_id; + std::string mapgen_id; cata::optional omt_allowed_radius; diff --git a/src/iuse.cpp b/src/iuse.cpp index b94dbf2dff693..c40ac6110d20d 100644 --- a/src/iuse.cpp +++ b/src/iuse.cpp @@ -4670,6 +4670,25 @@ cata::optional iuse::dog_whistle( Character *p, item *it, bool, const tripo } p->add_msg_if_player( _( "You blow your dog whistle." ) ); + std::array messages_friendly_or_neutral = { + { + _( "What is this unbearable sound!?" ), + _( "STOP. MY EARS" ), + _( "I'm not a dog…" ), + _( "Would you kindly not do that?" ) + } + }; + + std::array messages_hostile = { + { + _( "I WILL MURDER YOU" ), + _( "I'LL SHOVE THAT WHISTLE DOWN YOUR THROAT" ), + _( "You're seriously pissing me off…" ), + _( "I'm not a dog…" ), + _( "What is this unbearable sound!?" ) + }, + }; + // Can the Character hear the dog whistle? auto hearing_check = [p]( const Character & who ) -> bool { return !who.is_deaf() && p->sees( who ) && @@ -4681,24 +4700,15 @@ cata::optional iuse::dog_whistle( Character *p, item *it, bool, const tripo continue; } - cata::optional npc_message; - if( p->attitude_to( subject ) == Creature::Attitude::HOSTILE ) { - npc_message = SNIPPET.random_from_category( "dogwhistle_message_npc_hostile" ); + subject.say( random_entry( messages_hostile ) ); } else { - npc_message = SNIPPET.random_from_category( "dogwhistle_message_npc_not_hostile" ); - } - - if( npc_message ) { - subject.say( npc_message.value().translated() ); + subject.say( random_entry( messages_friendly_or_neutral ) ); } } if( hearing_check( *p ) && one_in( 3 ) ) { - cata::optional your_message = SNIPPET.random_from_category( "dogwhistle_message_you" ); - if( your_message ) { - p->add_msg_if_player( m_info, your_message.value().translated() ); - } + p->add_msg_if_player( m_info, _( "You hate this loud sound." ) ); } for( monster &critter : g->all_monsters() ) { diff --git a/src/level_cache.h b/src/level_cache.h index 85a971a059b83..8c8ac64744665 100644 --- a/src/level_cache.h +++ b/src/level_cache.h @@ -36,9 +36,6 @@ struct level_cache { // This is only valid for the duration of generate_lightmap float light_source_buffer[MAPSIZE_X][MAPSIZE_Y]; - // Cache of natural light level is useful if it needs to be in sync with the light cache. - float natural_light_level_cache; - // if false, means tile is under the roof ("inside"), true means tile is "outside" // "inside" tiles are protected from sun, rain, etc. (see ter_furn_flag::TFLAG_INDOORS flag) bool outside_cache[MAPSIZE_X][MAPSIZE_Y]; diff --git a/src/lightmap.cpp b/src/lightmap.cpp index 61bb4db2a1484..066dd720a0c3f 100644 --- a/src/lightmap.cpp +++ b/src/lightmap.cpp @@ -268,7 +268,6 @@ void map::build_sunlight_cache( int pzlev ) for( int zlev = zlev_max; zlev >= zlev_min; zlev-- ) { level_cache &map_cache = get_cache( zlev ); - map_cache.natural_light_level_cache = g->natural_light_level( zlev ); auto &lm = map_cache.lm; // Grab illumination at ground level. const float outside_light_level = g->natural_light_level( 0 ); diff --git a/src/map_extras.cpp b/src/map_extras.cpp index 8075da93ade52..3fe7a3c36c4c1 100644 --- a/src/map_extras.cpp +++ b/src/map_extras.cpp @@ -556,6 +556,32 @@ static bool mx_military( map &m, const tripoint & ) return true; } +static bool mx_science( map &m, const tripoint & ) +{ + int num_bodies = dice( 2, 5 ); + for( int i = 0; i < num_bodies; i++ ) { + if( const auto p = random_point( m, [&m]( const tripoint & n ) { + return m.passable( n ); + } ) ) { + if( one_in( 10 ) ) { + m.add_spawn( mon_zombie_scientist, 1, *p ); + } else { + m.place_items( item_group_id( "map_extra_science" ), 100, *p, *p, true, + calendar::start_of_cataclysm ); + } + } + } + int num_monsters = rng( 0, 3 ); + for( int i = 0; i < num_monsters; i++ ) { + point m2( rng( 1, SEEX * 2 - 2 ), rng( 1, SEEY * 2 - 2 ) ); + m.place_spawns( GROUP_NETHER_CAPTURED, 1, m2, m2, 1, true ); + } + m.place_items( item_group_id( "rare" ), 45, point_zero, point( SEEX * 2 - 1, SEEY * 2 - 1 ), + true, calendar::start_of_cataclysm ); + + return true; +} + static bool mx_roadblock( map &m, const tripoint &abs_sub ) { // TODO: fix point types @@ -2935,6 +2961,7 @@ FunctionMap builtin_functions = { { "mx_supplydrop", mx_supplydrop }, { "mx_military", mx_military }, { "mx_helicopter", mx_helicopter }, + { "mx_science", mx_science }, { "mx_portal", mx_portal }, { "mx_portal_in", mx_portal_in }, { "mx_house_spider", mx_house_spider }, @@ -2998,8 +3025,7 @@ void apply_function( const string_id &id, map &m, const tripoint_abs_ case map_extra_method::update_mapgen: { mapgendata dat( project_to( abs_sub ), m, 0.0f, calendar::start_of_cataclysm, nullptr ); - applied_successfully = - run_mapgen_update_func( update_mapgen_id( extra.generator_id ), dat ); + applied_successfully = run_mapgen_update_func( extra.generator_id, dat ); break; } case map_extra_method::null: @@ -3140,9 +3166,8 @@ void map_extra::check() const break; } case map_extra_method::update_mapgen: { - const auto update_mapgen_func = update_mapgens.find( update_mapgen_id( generator_id ) ); - if( update_mapgen_func == update_mapgens.end() || - update_mapgen_func->second.funcs().empty() ) { + const auto update_mapgen_func = update_mapgen.find( generator_id ); + if( update_mapgen_func == update_mapgen.end() || update_mapgen_func->second.empty() ) { debugmsg( "invalid update mapgen function (%s) defined for map extra (%s)", generator_id, id.str() ); break; diff --git a/src/mapgen.cpp b/src/mapgen.cpp index 80813402dce79..4662c371fa239 100644 --- a/src/mapgen.cpp +++ b/src/mapgen.cpp @@ -383,8 +383,12 @@ class mapgen_factory static mapgen_factory oter_mapgen; -std::map nested_mapgens; -std::map update_mapgens; +/* + * stores function ref and/or required data + */ +std::map> > + nested_mapgen; +std::map> > update_mapgen; /* * setup mapgen_basic_container::weights_ which mapgen uses to diceroll. Also setup mapgen_function_json @@ -393,15 +397,14 @@ void calculate_mapgen_weights() // TODO: rename as it runs jsonfunction setup { oter_mapgen.setup(); // Not really calculate weights, but let's keep it here for now - for( auto &pr : nested_mapgens ) { - for( const weighted_object> &ptr : - pr.second.funcs() ) { + for( auto &pr : nested_mapgen ) { + for( weighted_object> &ptr : pr.second ) { ptr.obj->setup(); inp_mngr.pump_events(); } } - for( auto &pr : update_mapgens ) { - for( auto &ptr : pr.second.funcs() ) { + for( auto &pr : update_mapgen ) { + for( auto &ptr : pr.second ) { ptr->setup(); inp_mngr.pump_events(); } @@ -409,15 +412,14 @@ void calculate_mapgen_weights() // TODO: rename as it runs jsonfunction setup // Having set up all the mapgens we can now perform a second // pass of finalizing their parameters oter_mapgen.finalize_parameters(); - for( auto &pr : nested_mapgens ) { - for( const weighted_object> &ptr : - pr.second.funcs() ) { + for( auto &pr : nested_mapgen ) { + for( weighted_object> &ptr : pr.second ) { ptr.obj->finalize_parameters(); inp_mngr.pump_events(); } } - for( auto &pr : update_mapgens ) { - for( auto &ptr : pr.second.funcs() ) { + for( auto &pr : update_mapgen ) { + for( auto &ptr : pr.second ) { ptr->finalize_parameters(); inp_mngr.pump_events(); } @@ -427,13 +429,13 @@ void calculate_mapgen_weights() // TODO: rename as it runs jsonfunction setup void check_mapgen_definitions() { oter_mapgen.check_consistency(); - for( auto &oter_definition : nested_mapgens ) { - for( auto &mapgen_function_ptr : oter_definition.second.funcs() ) { + for( auto &oter_definition : nested_mapgen ) { + for( auto &mapgen_function_ptr : oter_definition.second ) { mapgen_function_ptr.obj->check(); } } - for( auto &oter_definition : update_mapgens ) { - for( auto &mapgen_function_ptr : oter_definition.second.funcs() ) { + for( auto &oter_definition : update_mapgen ) { + for( auto &mapgen_function_ptr : oter_definition.second ) { mapgen_function_ptr->check(); } } @@ -500,7 +502,7 @@ load_mapgen_function( const JsonObject &jio, const std::string &id_base, const p return ret; } -static void load_nested_mapgen( const JsonObject &jio, const nested_mapgen_id &id_base ) +static void load_nested_mapgen( const JsonObject &jio, const std::string &id_base ) { const std::string mgtype = jio.get_string( "method" ); if( mgtype == "json" ) { @@ -509,9 +511,8 @@ static void load_nested_mapgen( const JsonObject &jio, const nested_mapgen_id &i JsonObject jo = jio.get_object( "object" ); const json_source_location jsrc = jo.get_source_location(); jo.allow_omitted_members(); - nested_mapgens[id_base].add( - std::make_shared( - jsrc, "nested mapgen " + id_base.str() ), + nested_mapgen[id_base].add( + std::make_shared( jsrc, "nested mapgen " + id_base ), weight ); } else { debugmsg( "Nested mapgen: Invalid mapgen function (missing \"object\" object)", id_base.c_str() ); @@ -522,7 +523,7 @@ static void load_nested_mapgen( const JsonObject &jio, const nested_mapgen_id &i } } -static void load_update_mapgen( const JsonObject &jio, const update_mapgen_id &id_base ) +static void load_update_mapgen( const JsonObject &jio, const std::string &id_base ) { const std::string mgtype = jio.get_string( "method" ); if( mgtype == "json" ) { @@ -530,9 +531,9 @@ static void load_update_mapgen( const JsonObject &jio, const update_mapgen_id &i JsonObject jo = jio.get_object( "object" ); const json_source_location jsrc = jo.get_source_location(); jo.allow_omitted_members(); - update_mapgens[id_base].add( + update_mapgen[id_base].push_back( std::make_unique( - jsrc, "update mapgen " + id_base.str() ) ); + jsrc, "update mapgen " + id_base ) ); } else { debugmsg( "Update mapgen: Invalid mapgen function (missing \"object\" object)", id_base.c_str() ); @@ -585,9 +586,9 @@ void load_mapgen( const JsonObject &jo ) } else if( jo.has_string( "om_terrain" ) ) { load_mapgen_function( jo, jo.get_string( "om_terrain" ), point_zero, point_one ); } else if( jo.has_string( "nested_mapgen_id" ) ) { - load_nested_mapgen( jo, nested_mapgen_id( jo.get_string( "nested_mapgen_id" ) ) ); + load_nested_mapgen( jo, jo.get_string( "nested_mapgen_id" ) ); } else if( jo.has_string( "update_mapgen_id" ) ) { - load_update_mapgen( jo, update_mapgen_id( jo.get_string( "update_mapgen_id" ) ) ); + load_update_mapgen( jo, jo.get_string( "update_mapgen_id" ) ); } else { debugmsg( "mapgen entry requires \"om_terrain\" or \"nested_mapgen_id\"(string, array of strings, or array of array of strings)\n%s\n", jo.str() ); @@ -597,8 +598,8 @@ void load_mapgen( const JsonObject &jo ) void reset_mapgens() { oter_mapgen.reset(); - nested_mapgens.clear(); - update_mapgens.clear(); + nested_mapgen.clear(); + update_mapgen.clear(); } ///////////////////////////////////////////////////////////////////////////////// @@ -2740,8 +2741,8 @@ class jmapgen_nested : public jmapgen_piece }; public: - weighted_int_list entries; - weighted_int_list else_entries; + weighted_int_list entries; + weighted_int_list else_entries; neighborhood_check neighbors; jmapgen_nested( const JsonObject &jsi, const std::string &/*context*/ ) : neighbors( jsi.get_object( "neighbors" ) ) { @@ -2757,46 +2758,45 @@ class jmapgen_nested : public jmapgen_piece } void merge_parameters_into( mapgen_parameters ¶ms, const std::string &outer_context ) const override { - auto merge_from = [&]( const nested_mapgen_id & name ) { - if( name.is_null() ) { + auto merge_from = [&]( const std::string & name ) { + if( name == "null" ) { return; } - const auto iter = nested_mapgens.find( name ); - if( iter == nested_mapgens.end() ) { - debugmsg( "Unknown nested mapgen function id '%s'", name.str() ); + const auto iter = nested_mapgen.find( name ); + if( iter == nested_mapgen.end() ) { + debugmsg( "Unknown nested mapgen function id %s", name ); return; } using Obj = weighted_object>; - for( const Obj &nested : iter->second.funcs() ) { + for( const Obj &nested : iter->second ) { nested.obj->merge_non_nest_parameters_into( params, outer_context ); } }; - for( const weighted_object &name : entries ) { + for( const weighted_object &name : entries ) { merge_from( name.obj ); } - for( const weighted_object &name : else_entries ) { + for( const weighted_object &name : else_entries ) { merge_from( name.obj ); } } void apply( const mapgendata &dat, const jmapgen_int &x, const jmapgen_int &y ) const override { - const nested_mapgen_id *res = - neighbors.test( dat ) ? entries.pick() : else_entries.pick(); - if( res == nullptr || res->is_empty() || res->is_null() ) { + const std::string *res = neighbors.test( dat ) ? entries.pick() : else_entries.pick(); + if( res == nullptr || res->empty() || *res == "null" ) { // This will be common when neighbors.test(...) is false, since else_entires is often empty. return; } - const auto iter = nested_mapgens.find( *res ); - if( iter == nested_mapgens.end() ) { + const auto iter = nested_mapgen.find( *res ); + if( iter == nested_mapgen.end() ) { debugmsg( "Unknown nested mapgen function id %s", res->c_str() ); return; } // A second roll? Let's allow it for now - const auto &ptr = iter->second.funcs().pick(); + const auto &ptr = iter->second.pick(); if( ptr == nullptr ) { return; } @@ -2804,21 +2804,21 @@ class jmapgen_nested : public jmapgen_piece ( *ptr )->nest( dat, point( x.get(), y.get() ) ); } bool has_vehicle_collision( const mapgendata &dat, const point &p ) const override { - const weighted_int_list &selected_entries = - neighbors.test( dat ) ? entries : else_entries; + const weighted_int_list &selected_entries = neighbors.test( + dat ) ? entries : else_entries; if( selected_entries.empty() ) { return false; } for( const auto &entry : selected_entries ) { - if( entry.obj.is_null() ) { + if( entry.obj == "null" ) { continue; } - const auto iter = nested_mapgens.find( entry.obj ); - if( iter == nested_mapgens.end() ) { + const auto iter = nested_mapgen.find( entry.obj ); + if( iter == nested_mapgen.end() ) { return false; } - for( const auto &nest : iter->second.funcs() ) { + for( const auto &nest : iter->second ) { if( nest.obj->has_vehicle_collision( dat, p ) ) { return true; } @@ -6973,7 +6973,7 @@ bool update_mapgen_function_json::update_map( const mapgendata &md, const point mapgen_update_func add_mapgen_update_func( const JsonObject &jo, bool &defer ) { if( jo.has_string( "mapgen_update_id" ) ) { - const update_mapgen_id mapgen_update_id{ jo.get_string( "mapgen_update_id" ) }; + const std::string mapgen_update_id = jo.get_string( "mapgen_update_id" ); const auto update_function = [mapgen_update_id]( const tripoint_abs_omt & omt_pos, mission * miss ) { run_mapgen_update_func( mapgen_update_id, omt_pos, miss, false ); @@ -6997,39 +6997,38 @@ mapgen_update_func add_mapgen_update_func( const JsonObject &jo, bool &defer ) return update_function; } -bool run_mapgen_update_func( - const update_mapgen_id &update_mapgen_id, const tripoint_abs_omt &omt_pos, mission *miss, - bool cancel_on_collision, bool mirror_horizontal, bool mirror_vertical, int rotation ) +bool run_mapgen_update_func( const std::string &update_mapgen_id, const tripoint_abs_omt &omt_pos, + mission *miss, bool cancel_on_collision, + bool mirror_horizontal, bool mirror_vertical, int rotation ) { - const auto update_function = update_mapgens.find( update_mapgen_id ); + const auto update_function = update_mapgen.find( update_mapgen_id ); - if( update_function == update_mapgens.end() || update_function->second.funcs().empty() ) { + if( update_function == update_mapgen.end() || update_function->second.empty() ) { return false; } - return update_function->second.funcs()[0]->update_map( - omt_pos, point_zero, miss, cancel_on_collision, mirror_horizontal, mirror_vertical, - rotation ); + return update_function->second[0]->update_map( omt_pos, point_zero, miss, cancel_on_collision, + mirror_horizontal, mirror_vertical, rotation ); } -bool run_mapgen_update_func( const update_mapgen_id &update_mapgen_id, mapgendata &dat, +bool run_mapgen_update_func( const std::string &update_mapgen_id, mapgendata &dat, const bool cancel_on_collision ) { - const auto update_function = update_mapgens.find( update_mapgen_id ); - if( update_function == update_mapgens.end() || update_function->second.funcs().empty() ) { + const auto update_function = update_mapgen.find( update_mapgen_id ); + if( update_function == update_mapgen.end() || update_function->second.empty() ) { return false; } - return update_function->second.funcs()[0]->update_map( dat, point_zero, cancel_on_collision ); + return update_function->second[0]->update_map( dat, point_zero, cancel_on_collision ); } std::pair, std::map> get_changed_ids_from_update( - const update_mapgen_id &update_mapgen_id ) + const std::string &update_mapgen_id ) { std::map terrains; std::map furnitures; - const auto update_function = update_mapgens.find( update_mapgen_id ); + const auto update_function = update_mapgen.find( update_mapgen_id ); - if( update_function == update_mapgens.end() || update_function->second.funcs().empty() ) { + if( update_function == update_mapgen.end() || update_function->second.empty() ) { return std::make_pair( terrains, furnitures ); } @@ -7042,7 +7041,7 @@ std::pair, std::map> get_changed_ids_from_up mapgendata fake_md( any, any, any, any, any, any, any, any, any, any, 0, dummy_settings, tmp_map, any, {}, 0.0f, calendar::turn, nullptr ); - if( update_function->second.funcs()[0]->update_map( fake_md ) ) { + if( update_function->second[0]->update_map( fake_md ) ) { for( const tripoint &pos : tmp_map.points_on_zlevel( fake_map::fake_map_z ) ) { ter_id ter_at_pos = tmp_map.ter( pos ); if( ter_at_pos != t_dirt ) { @@ -7080,7 +7079,7 @@ bool has_mapgen_for( const std::string &key ) return oter_mapgen.has( key ); } -bool has_update_mapgen_for( const update_mapgen_id &key ) +bool has_update_mapgen_for( const std::string &key ) { - return update_mapgens.count( key ); + return update_mapgen.count( key ); } diff --git a/src/mapgen.h b/src/mapgen.h index b7e769438f3a9..eef2c7410166f 100644 --- a/src/mapgen.h +++ b/src/mapgen.h @@ -489,32 +489,6 @@ class mapgen_function_json_nested : public mapgen_function_json_base jmapgen_int rotation; }; -class nested_mapgen -{ - public: - const weighted_int_list> &funcs() const { - return funcs_; - } - void add( const std::shared_ptr &p, int weight ) { - funcs_.add( p, weight ); - } - private: - weighted_int_list> funcs_; -}; - -class update_mapgen -{ - public: - const std::vector> &funcs() const { - return funcs_; - } - void add( std::unique_ptr &&p ) { - funcs_.push_back( std::move( p ) ); - } - private: - std::vector> funcs_; -}; - ///////////////////////////////////////////////////////// ///// global per-terrain mapgen function lists /* @@ -542,7 +516,7 @@ bool has_mapgen_for( const std::string &key ); /** * Check whether @p key is a valid update_mapgen id. */ -bool has_update_mapgen_for( const update_mapgen_id & ); +bool has_update_mapgen_for( const std::string &key ); /* * Sets the above after init, and initializes mapgen_function_json instances as well */ @@ -589,7 +563,9 @@ void circle( map *m, const ter_id &type, const point &, int rad ); void circle_furn( map *m, const furn_id &type, const point &, int rad ); void add_corpse( map *m, const point & ); -extern std::map nested_mapgens; -extern std::map update_mapgens; +extern std::map> > + nested_mapgen; +extern std::map> > + update_mapgen; #endif // CATA_SRC_MAPGEN_H diff --git a/src/mapgen_functions.h b/src/mapgen_functions.h index b910c27c8d537..c8688fa3e5fb7 100644 --- a/src/mapgen_functions.h +++ b/src/mapgen_functions.h @@ -75,14 +75,14 @@ void mtrap_set( map *m, const point &, trap_id type ); void madd_field( map *m, const point &, field_type_id type, int intensity ); mapgen_update_func add_mapgen_update_func( const JsonObject &jo, bool &defer ); -bool run_mapgen_update_func( const update_mapgen_id &, const tripoint_abs_omt &omt_pos, +bool run_mapgen_update_func( const std::string &update_mapgen_id, const tripoint_abs_omt &omt_pos, mission *miss = nullptr, bool cancel_on_collision = true, bool mirror_horizontal = false, bool mirror_vertical = false, int rotation = 0 ); -bool run_mapgen_update_func( const update_mapgen_id &, mapgendata &dat, +bool run_mapgen_update_func( const std::string &update_mapgen_id, mapgendata &dat, bool cancel_on_collision = true ); bool run_mapgen_func( const std::string &mapgen_id, mapgendata &dat ); std::pair, std::map> get_changed_ids_from_update( - const update_mapgen_id & ); + const std::string &update_mapgen_id ); mapgen_parameters get_map_special_params( const std::string &mapgen_id ); void resolve_regional_terrain_and_furniture( const mapgendata &dat ); diff --git a/src/melee.cpp b/src/melee.cpp index fd54f3e580589..3e6f51d672631 100644 --- a/src/melee.cpp +++ b/src/melee.cpp @@ -710,7 +710,6 @@ bool Character::melee_attack_abstract( Creature &t, bool allow_special, attack.source = this; attack.weapon = cur_weapon; attack.is_melee = true; - attack.is_crit = critical_hit; attack.wp_skill = melee_weakpoint_skill( *cur_weapon ); t.deal_melee_hit( this, hit_spread, critical_hit, d, dealt_dam, attack ); if( dealt_special_dam.type_damage( damage_type::CUT ) > 0 || diff --git a/src/monexamine.cpp b/src/monexamine.cpp index b70fce8f2b5c4..364ce0b605c05 100644 --- a/src/monexamine.cpp +++ b/src/monexamine.cpp @@ -583,9 +583,9 @@ bool monexamine::pet_menu( monster &z ) amenu.addentry( push_monster, true, 'p', _( "Push %s" ), pet_name ); if( z.has_effect( effect_leashed ) ) { if( z.has_effect( effect_led_by_leash ) ) { - amenu.addentry( stop_lead, true, 'l', _( "Stop leading %s" ), pet_name ); + amenu.addentry( stop_lead, true, 'p', _( "Stop leading %s" ), pet_name ); } else { - amenu.addentry( lead, true, 'l', _( "Lead %s by the leash" ), pet_name ); + amenu.addentry( lead, true, 'p', _( "Lead %s by the leash" ), pet_name ); } } amenu.addentry( rename, true, 'e', _( "Rename" ) ); @@ -613,7 +613,7 @@ bool monexamine::pet_menu( monster &z ) } if( z.has_effect( effect_leashed ) && !z.has_effect( effect_tied ) ) { amenu.addentry( tie, true, 't', _( "Tie" ) ); - amenu.addentry( unleash, true, 'L', _( "Remove leash from %s" ), pet_name ); + amenu.addentry( unleash, true, 't', _( "Remove leash from %s" ), pet_name ); } if( !z.has_effect( effect_leashed ) && !z.has_flag( MF_RIDEABLE_MECH ) ) { std::vector rope_inv = player_character.items_with( []( const item & itm ) { diff --git a/src/monster.cpp b/src/monster.cpp index 0ab7ac636cda7..f1ea7c1075eea 100644 --- a/src/monster.cpp +++ b/src/monster.cpp @@ -1535,7 +1535,6 @@ std::string monster::absorb_hit( const weakpoint_attack &attack, const bodypart_ elem.amount -= std::min( r.get_effective_resist( elem ) + get_worn_armor_val( elem.type ), elem.amount ); } - wp->apply_to( dam, attack.is_crit ); return wp->name; } diff --git a/src/monstergenerator.cpp b/src/monstergenerator.cpp index 30be9d0f2f4e4..7b1cec6c7a50e 100644 --- a/src/monstergenerator.cpp +++ b/src/monstergenerator.cpp @@ -713,24 +713,9 @@ void mtype::load( const JsonObject &jo, const std::string &src ) assign( jo, "armor_acid", armor_acid, strict, 0 ); assign( jo, "armor_fire", armor_fire, strict, 0 ); - if( !was_loaded || jo.has_array( "weakpoints" ) ) { + if( jo.has_array( "weakpoints" ) ) { weakpoints.clear(); weakpoints.load( jo.get_array( "weakpoints" ) ); - } else { - if( jo.has_object( "extend" ) ) { - JsonObject tmp = jo.get_object( "extend" ); - tmp.allow_omitted_members(); - if( tmp.has_array( "weakpoints" ) ) { - weakpoints.load( tmp.get_array( "weakpoints" ) ); - } - } - if( jo.has_object( "delete" ) ) { - JsonObject tmp = jo.get_object( "delete" ); - tmp.allow_omitted_members(); - if( tmp.has_array( "weakpoints" ) ) { - weakpoints.remove( tmp.get_array( "weakpoints" ) ); - } - } } optional( jo, was_loaded, "bleed_rate", bleed_rate, 100 ); diff --git a/src/npctalk.cpp b/src/npctalk.cpp index e52a1c43a1045..6c0817fc89154 100644 --- a/src/npctalk.cpp +++ b/src/npctalk.cpp @@ -2030,10 +2030,10 @@ void talk_effect_fun_t::set_npc_cbm_recharge_rule( const std::string &setting ) void talk_effect_fun_t::set_mapgen_update( const JsonObject &jo, const std::string &member ) { mission_target_params target_params = mission_util::parse_mission_om_target( jo ); - std::vector update_ids; + std::vector update_ids; if( jo.has_string( member ) ) { - update_ids.emplace_back( update_mapgen_id( jo.get_string( member ) ) ); + update_ids.emplace_back( jo.get_string( member ) ); } else if( jo.has_array( member ) ) { for( const std::string line : jo.get_array( member ) ) { update_ids.emplace_back( line ); @@ -2046,7 +2046,7 @@ void talk_effect_fun_t::set_mapgen_update( const JsonObject &jo, const std::stri update_params.guy = d.actor( true )->get_npc(); } const tripoint_abs_omt omt_pos = mission_util::get_om_terrain_pos( update_params ); - for( const update_mapgen_id &mapgen_update_id : update_ids ) { + for( const std::string &mapgen_update_id : update_ids ) { run_mapgen_update_func( mapgen_update_id, omt_pos, d.actor( d.has_beta )->selected_mission() ); } }; @@ -2229,19 +2229,6 @@ void talk_effect_fun_t::set_message( const JsonObject &jo, const std::string &me }; } -void talk_effect_fun_t::set_assign_activity( const JsonObject &jo, const std::string &member, - bool is_npc ) -{ - duration_or_var dov = get_duration_or_var( jo, "duration", true ); - activity_id act = activity_id( jo.get_string( member ) ); - function = [is_npc, dov, act]( const dialogue & d ) { - Character *target = d.actor( is_npc )->get_character(); - if( target ) { - target->assign_activity( act, to_moves( dov.evaluate( d.actor( is_npc ) ) ) ); - } - }; -} - void talk_effect_fun_t::set_add_wet( const JsonObject &jo, const std::string &member, bool is_npc ) { @@ -2735,33 +2722,12 @@ void talk_effect_fun_t::set_assign_mission( const JsonObject &jo, const std::str avatar &player_character = get_avatar(); const mission_type_id &mission_type = mission_type_id( mission_name ); + std::vector missions = player_character.get_active_missions(); mission *new_mission = mission::reserve_new( mission_type, character_id() ); new_mission->assign( player_character ); }; } -void talk_effect_fun_t::set_finish_mission( const JsonObject &jo, const std::string &member ) -{ - std::string mission_name = jo.get_string( member ); - bool success = jo.get_bool( "success" ); - function = [mission_name, success]( const dialogue & ) { - avatar &player_character = get_avatar(); - - const mission_type_id &mission_type = mission_type_id( mission_name ); - std::vector missions = player_character.get_active_missions(); - for( mission *mission : missions ) { - if( mission->mission_id() == mission_type ) { - if( success ) { - mission->wrap_up(); - } else { - mission->fail(); - } - break; - } - } - }; -} - void talk_effect_fun_t::set_make_sound( const JsonObject &jo, const std::string &member, bool is_npc ) { @@ -3270,14 +3236,8 @@ void talk_effect_t::parse_sub_effect( const JsonObject &jo ) subeffect_fun.set_add_wet( jo, "u_add_wet", false ); } else if( jo.has_int( "npc_add_wet" ) || jo.has_object( "npc_add_wet" ) ) { subeffect_fun.set_add_wet( jo, "npc_add_wet", true ); - } else if( jo.has_member( "u_assign_activity" ) ) { - subeffect_fun.set_assign_activity( jo, "u_assign_activity", false ); - } else if( jo.has_member( "npc_assign_activity" ) ) { - subeffect_fun.set_assign_activity( jo, "npc_assign_activity", true ); } else if( jo.has_member( "assign_mission" ) ) { subeffect_fun.set_assign_mission( jo, "assign_mission" ); - } else if( jo.has_string( "finish_mission" ) ) { - subeffect_fun.set_finish_mission( jo, "finish_mission" ); } else if( jo.has_member( "u_make_sound" ) ) { subeffect_fun.set_make_sound( jo, "u_make_sound", false ); } else if( jo.has_member( "npc_make_sound" ) ) { diff --git a/src/player_activity.cpp b/src/player_activity.cpp index 40e9f3bc2c4b0..b3719c049005a 100644 --- a/src/player_activity.cpp +++ b/src/player_activity.cpp @@ -409,11 +409,6 @@ bool player_activity::is_interruptible() const return ( type.is_null() || type->interruptable() ) && interruptable; } -bool player_activity::is_interruptible_with_kb() const -{ - return ( type.is_null() || type->interruptable_with_kb() ) && interruptable_with_kb; -} - bool player_activity::is_distraction_ignored( distraction_type distraction ) const { return !is_interruptible() || diff --git a/src/player_activity.h b/src/player_activity.h index 1a07d2703ee6c..3d872ffffe436 100644 --- a/src/player_activity.h +++ b/src/player_activity.h @@ -166,7 +166,6 @@ class player_activity bool can_resume_with( const player_activity &other, const Character &who ) const; bool is_interruptible() const; - bool is_interruptible_with_kb() const; bool is_distraction_ignored( distraction_type ) const; void ignore_distraction( distraction_type ); void allow_distractions(); diff --git a/src/recipe.cpp b/src/recipe.cpp index 74f0a6eb738cc..390268829fc75 100644 --- a/src/recipe.cpp +++ b/src/recipe.cpp @@ -309,8 +309,8 @@ void recipe::load( const JsonObject &jo, const std::string &src ) if( type == "recipe" ) { - mandatory( jo, was_loaded, "category", category ); - mandatory( jo, was_loaded, "subcategory", subcategory ); + assign( jo, "category", category, strict ); + assign( jo, "subcategory", subcategory, strict ); assign( jo, "description", description, strict ); assign( jo, "reversible", reversible, strict ); @@ -325,7 +325,7 @@ void recipe::load( const JsonObject &jo, const std::string &src ) } } assign( jo, "construction_blueprint", blueprint ); - if( !blueprint.is_empty() ) { + if( !blueprint.empty() ) { assign( jo, "blueprint_name", bp_name ); bp_resources.clear(); for( const std::string resource : jo.get_array( "blueprint_resources" ) ) { @@ -377,10 +377,10 @@ void recipe::load( const JsonObject &jo, const std::string &src ) } } else if( type == "practice" ) { mandatory( jo, false, "name", name_ ); - mandatory( jo, was_loaded, "category", category ); - mandatory( jo, was_loaded, "subcategory", subcategory ); + assign( jo, "category", category, strict ); + assign( jo, "subcategory", subcategory, strict ); assign( jo, "description", description, strict ); - mandatory( jo, was_loaded, "practice_data", practice_data ); + mandatory( jo, false, "practice_data", practice_data ); if( jo.has_member( "byproducts" ) ) { byproducts.clear(); @@ -986,10 +986,10 @@ bool recipe::is_practice() const bool recipe::is_blueprint() const { - return !blueprint.is_empty(); + return !blueprint.empty(); } -const update_mapgen_id &recipe::get_blueprint() const +const std::string &recipe::get_blueprint() const { return blueprint; } diff --git a/src/recipe.h b/src/recipe.h index 45aaa3539ebf1..f11386fce2378 100644 --- a/src/recipe.h +++ b/src/recipe.h @@ -107,7 +107,6 @@ class recipe return result_; } - bool was_loaded = false; bool obsolete = false; std::string category; @@ -254,7 +253,7 @@ class recipe bool is_practice() const; bool is_blueprint() const; - const update_mapgen_id &get_blueprint() const; + const std::string &get_blueprint() const; const translation &blueprint_name() const; const std::vector &blueprint_resources() const; const std::vector> &blueprint_provides() const; @@ -322,7 +321,7 @@ class recipe double batch_rscale = 0.0; int batch_rsize = 0; // minimum batch size to needed to reach batch_rscale int result_mult = 1; // used by certain batch recipes that create more than one stack of the result - update_mapgen_id blueprint; + std::string blueprint; translation bp_name; std::vector bp_resources; std::vector> bp_provides; diff --git a/src/recipe_dictionary.cpp b/src/recipe_dictionary.cpp index 8ec74b50ca590..e192b5d4d6d91 100644 --- a/src/recipe_dictionary.cpp +++ b/src/recipe_dictionary.cpp @@ -404,7 +404,6 @@ recipe &recipe_dictionary::load( const JsonObject &jo, const std::string &src, } r.load( jo, src ); - r.was_loaded = true; return out[ r.ident() ] = std::move( r ); } @@ -594,9 +593,9 @@ void recipe_dictionary::check_consistency() for( auto &e : recipe_dict.recipes ) { recipe &r = e.second; - if( !r.blueprint.is_empty() && !has_update_mapgen_for( r.blueprint ) ) { + if( !r.blueprint.empty() && !has_update_mapgen_for( r.blueprint ) ) { debugmsg( "recipe %s specifies invalid construction_blueprint %s; that should be a " - "defined update_mapgen_id but is not", r.ident().str(), r.blueprint.str() ); + "defined update_mapgen_id but is not", r.ident().str(), r.blueprint ); } } } diff --git a/src/sdlsound.cpp b/src/sdlsound.cpp index 327b4b341c508..a2252967b746c 100644 --- a/src/sdlsound.cpp +++ b/src/sdlsound.cpp @@ -101,8 +101,7 @@ bool init_sound() // We should only need to init once if( !sound_init_success ) { // Mix_OpenAudio returns non-zero if something went wrong trying to open the device - if( !Mix_OpenAudioDevice( audio_rate, audio_format, audio_channels, audio_buffers, nullptr, - SDL_AUDIO_ALLOW_FREQUENCY_CHANGE ) ) { + if( !Mix_OpenAudio( audio_rate, audio_format, audio_channels, audio_buffers ) ) { Mix_AllocateChannels( 128 ); Mix_ReserveChannels( static_cast( sfx::channel::MAX_CHANNEL ) ); diff --git a/src/string_id_null_ids.cpp b/src/string_id_null_ids.cpp index e8c5901bdacc3..51e0d57c1e8aa 100644 --- a/src/string_id_null_ids.cpp +++ b/src/string_id_null_ids.cpp @@ -21,7 +21,6 @@ MAKE_NULL_ID( effect_type, "null" ) MAKE_NULL_ID( material_type, "null" ) MAKE_NULL_ID( monfaction, "" ) -MAKE_NULL_ID( nested_mapgen, "null" ) MAKE_NULL_ID( overmap_land_use_code, "" ) MAKE_NULL_ID( overmap_special, "" ) MAKE_NULL_ID( overmap_connection, "" ) @@ -40,7 +39,6 @@ MAKE_NULL_ID( martialart, "style_none" ) MAKE_NULL_ID( recipe, "null" ) MAKE_NULL_ID( ter_furn_transform, "null" ) MAKE_NULL_ID( translation, "null" ) -MAKE_NULL_ID( update_mapgen, "null" ) MAKE_NULL_ID( VehicleGroup, "null" ) MAKE_NULL_ID( zone_type, "null" ) MAKE_NULL_ID( speed_description, "SPEED_DESCRIPTION_NULL_ID" ) diff --git a/src/trap.cpp b/src/trap.cpp index 14b83c2b64890..3eb7195b13042 100644 --- a/src/trap.cpp +++ b/src/trap.cpp @@ -125,7 +125,7 @@ void trap::load( const JsonObject &jo, const std::string & ) // TODO: Is there a generic_factory version of this? act = trap_function_from_string( jo.get_string( "action" ) ); - optional( jo, was_loaded, "map_regen", map_regen, update_mapgen_id( "none" ) ); + optional( jo, was_loaded, "map_regen", map_regen, "none" ); optional( jo, was_loaded, "benign", benign, false ); optional( jo, was_loaded, "always_invisible", always_invisible, false ); optional( jo, was_loaded, "funnel_radius", funnel_radius_mm, 0 ); @@ -187,7 +187,7 @@ std::string trap::name() const return name_.translated(); } -update_mapgen_id trap::map_regen_target() const +std::string trap::map_regen_target() const { return map_regen; } diff --git a/src/trap.h b/src/trap.h index 8b6356bc1607b..91f7f55e728d9 100644 --- a/src/trap.h +++ b/src/trap.h @@ -133,7 +133,8 @@ struct trap { int trap_radius = 0; bool benign = false; bool always_invisible = false; - update_mapgen_id map_regen; + // a valid overmap id, for map_regen action traps + std::string map_regen; trap_function act; translation name_; @@ -195,7 +196,7 @@ struct trap { // Implemented for historical reasons in iexamine.cpp void examine( const tripoint &examp ) const; - update_mapgen_id map_regen_target() const; + std::string map_regen_target() const; /** * Whether triggering the trap can be avoid (if greater than 0) and if so, this is diff --git a/src/trapfunc.cpp b/src/trapfunc.cpp index c48a757d12fa5..0c57834eabbdb 100644 --- a/src/trapfunc.cpp +++ b/src/trapfunc.cpp @@ -1396,7 +1396,7 @@ bool trapfunc::map_regen( const tripoint &p, Creature *c, item * ) map &here = get_map(); you->add_msg_if_player( m_warning, _( "Your surroundings shift!" ) ); tripoint_abs_omt omt_pos = you->global_omt_location(); - const update_mapgen_id ®en_mapgen = here.tr_at( p ).map_regen_target(); + const std::string ®en_mapgen = here.tr_at( p ).map_regen_target(); here.remove_trap( p ); if( !run_mapgen_update_func( regen_mapgen, omt_pos, nullptr, false ) ) { popup( _( "Failed to generate the new map" ) ); diff --git a/src/type_id.h b/src/type_id.h index eb9bf5cfab268..65faf2fa661bd 100644 --- a/src/type_id.h +++ b/src/type_id.h @@ -118,9 +118,6 @@ using morale_type = string_id; struct mtype; using mtype_id = string_id; -class nested_mapgen; -using nested_mapgen_id = string_id; - class npc_class; using npc_class_id = string_id; @@ -198,9 +195,6 @@ using trap_str_id = string_id; struct mutation_branch; using trait_id = string_id; -class update_mapgen; -using update_mapgen_id = string_id; - struct quality; using quality_id = string_id; diff --git a/src/weakpoint.cpp b/src/weakpoint.cpp index 72058bc6fe626..a36d06c6bbe4f 100644 --- a/src/weakpoint.cpp +++ b/src/weakpoint.cpp @@ -55,7 +55,6 @@ weakpoint_attack::weakpoint_attack() : source( nullptr ), weapon( &null_item_reference() ), is_melee( false ), - is_crit( false ), wp_skill( 0.0f ) {} @@ -64,8 +63,6 @@ weakpoint::weakpoint() // arrays must be filled manually to avoid UB. armor_mult.fill( 1.0f ); armor_penalty.fill( 0.0f ); - damage_mult.fill( 1.0f ); - crit_mult.fill( 1.0f ); } void weakpoint::load( const JsonObject &jo ) @@ -79,17 +76,6 @@ void weakpoint::load( const JsonObject &jo ) if( jo.has_object( "armor_penalty" ) ) { armor_penalty = load_damage_array( jo.get_object( "armor_penalty" ), 0.0f ); } - if( jo.has_object( "damage_mult" ) ) { - damage_mult = load_damage_array( jo.get_object( "damage_mult" ), 1.0f ); - } - if( jo.has_object( "crit_mult" ) ) { - crit_mult = load_damage_array( jo.get_object( "crit_mult" ), 1.0f ); - } else { - // Default to damage multiplier, if crit multipler is not specified. - crit_mult = damage_mult; - } - - // Set the ID to the name, if not provided. if( id.empty() ) { id = name; @@ -104,14 +90,6 @@ void weakpoint::apply_to( resistances &resistances ) const } } -void weakpoint::apply_to( damage_instance &damage, bool is_crit ) const -{ - for( auto &elem : damage.damage_units ) { - int idx = static_cast( elem.type ); - elem.damage_multiplier *= is_crit ? crit_mult[idx] : damage_mult[idx]; - } -} - float weakpoint::hit_chance( const weakpoint_attack & ) const { // TODO: scale the hit chance based on the source's skill / stats @@ -172,21 +150,6 @@ void weakpoints::load( const JsonArray &ja ) for( const JsonObject jo : ja ) { weakpoint tmp; tmp.load( jo ); - - if( tmp.id.empty() ) { - default_weakpoint = tmp; - continue; - } - - // Ensure that every weakpoint has a unique ID - auto it = std::find_if( weakpoint_list.begin(), weakpoint_list.end(), - [&]( const weakpoint & wp ) { - return wp.id == tmp.id; - } ); - if( it != weakpoint_list.end() ) { - weakpoint_list.erase( it ); - } - weakpoint_list.push_back( std::move( tmp ) ); } // Prioritizes weakpoints based on their coverage. @@ -195,24 +158,3 @@ void weakpoints::load( const JsonArray &ja ) return a.coverage < b.coverage; } ); } - -void weakpoints::remove( const JsonArray &ja ) -{ - for( const JsonObject jo : ja ) { - weakpoint tmp; - tmp.load( jo ); - - if( tmp.id.empty() ) { - default_weakpoint = weakpoint(); - continue; - } - - auto it = std::find_if( weakpoint_list.begin(), weakpoint_list.end(), - [&]( const weakpoint & wp ) { - return wp.id == tmp.id; - } ); - if( it != weakpoint_list.end() ) { - weakpoint_list.erase( it ); - } - } -} \ No newline at end of file diff --git a/src/weakpoint.h b/src/weakpoint.h index bb2609e5af20e..81af2f30aa745 100644 --- a/src/weakpoint.h +++ b/src/weakpoint.h @@ -24,9 +24,6 @@ struct weakpoint_attack { // Weather the attack is a melee attack. bool is_melee; - // Whether the attack a critical hit. - bool is_crit; - // The Creature's skill in hitting weak points. float wp_skill; @@ -44,18 +41,10 @@ struct weakpoint { std::array( damage_type::NUM )> armor_mult; // Flat penalty to armor values. Applied after the multiplier. std::array( damage_type::NUM )> armor_penalty; - // Damage multipliers. Applied after armor. - std::array( damage_type::NUM )> damage_mult; - // Critical damage multiplers. Applied after armor instead of damage_mult, if the attack is a crit. - std::array( damage_type::NUM )>crit_mult; - // Difficulty to hit the weak point. - float difficulty = -10.0f; weakpoint(); // Apply the armor multipliers and offsets to a set of resistances. void apply_to( resistances &resistances ) const; - // Apply the damage multiplers to a set of damage values. - void apply_to( damage_instance &damage, bool is_crit ) const; // Return the change of the creature hitting the weakpoint. float hit_chance( const weakpoint_attack &attack ) const; void load( const JsonObject &jo ); @@ -72,7 +61,6 @@ struct weakpoints { void clear(); void load( const JsonArray &ja ); - void remove( const JsonArray &ja ); }; #endif // CATA_SRC_WEAKPOINT_H \ No newline at end of file